summaryrefslogtreecommitdiff
path: root/libs/pbd
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-05-16 11:08:32 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-05-31 15:30:42 -0400
commitd5127001bb60a8648a277f77e9ae4e8fd5943c9a (patch)
tree993c959fa7737b1e5e63870928e72e41ae7e5d0a /libs/pbd
parent52d4cea712b09cff9536bd5f4c8bb465281480de (diff)
move ControllableDescriptor from libpbd to libardour; add support for describing VCAs
Diffstat (limited to 'libs/pbd')
-rw-r--r--libs/pbd/controllable_descriptor.cc157
-rw-r--r--libs/pbd/pbd/controllable_descriptor.h93
-rw-r--r--libs/pbd/wscript1
3 files changed, 0 insertions, 251 deletions
diff --git a/libs/pbd/controllable_descriptor.cc b/libs/pbd/controllable_descriptor.cc
deleted file mode 100644
index dce734127d..0000000000
--- a/libs/pbd/controllable_descriptor.cc
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- Copyright (C) 2009 Paul Davis
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#include "pbd/controllable_descriptor.h"
-#include "pbd/strsplit.h"
-#include "pbd/convert.h"
-
-using namespace std;
-using namespace PBD;
-
-int
-ControllableDescriptor::set (const std::string& str)
-{
- string::size_type first_space = str.find_first_of (" ");
-
- if (first_space == string::npos) {
- return -1;
- }
-
- string front = str.substr (0, first_space);
- string back = str.substr (first_space);
-
- vector<string> path;
- split (front, path, '/');
-
- if (path.size() < 2) {
- return -1;
- }
-
- vector<string> rest;
- split (back, rest, ' ');
-
- if (rest.size() < 1) {
- return -1;
- }
-
- if (path[0] == "route" || path[0] == "rid") {
-
- _top_level_type = RemoteControlID;
-
- if (rest[0][0] == 'B') {
- _banked = true;
- _rid = atoi (rest[0].substr (1));
- } else if (rest[0][0] == 'S') {
- _top_level_type = SelectionCount;
- _banked = true;
- _selection_id = atoi (rest[0].substr (1));
- } else if (isdigit (rest[0][0])) {
- _banked = false;
- _rid = atoi (rest[0]);
- } else {
- return -1;
- }
-
- } else if (path[0] == "bus" || path[0] == "track") {
-
- _top_level_type = NamedRoute;
- _top_level_name = rest[0];
- }
-
- if (path[1] == "gain") {
- _subtype = Gain;
-
- } else if (path[1] == "trim") {
- _subtype = Trim;
-
- } else if (path[1] == "solo") {
- _subtype = Solo;
-
- } else if (path[1] == "mute") {
- _subtype = Mute;
-
- } else if (path[1] == "recenable") {
- _subtype = Recenable;
-
- } else if (path[1] == "balance") {
- _subtype = Balance;
-
- } else if (path[1] == "panwidth") {
- _subtype = PanWidth;
-
- } else if (path[1] == "pandirection") {
- _subtype = PanDirection;
-
- } else if (path[1] == "plugin") {
- if (path.size() == 3 && rest.size() == 3) {
- if (path[2] == "parameter") {
- _subtype = PluginParameter;
- _target.push_back (atoi (rest[1]));
- _target.push_back (atoi (rest[2]));
- } else {
- return -1;
- }
- } else {
- return -1;
- }
- } else if (path[1] == "send") {
-
- if (path.size() == 3 && rest.size() == 2) {
- if (path[2] == "gain") {
- _subtype = SendGain;
- _target.push_back (atoi (rest[1]));
- } else {
- return -1;
- }
- } else {
- return -1;
- }
- }
-
- return 0;
-}
-
-uint32_t
-ControllableDescriptor::rid () const
-{
- if (banked()) {
- return _rid + _bank_offset;
- }
-
- return _rid;
-}
-
-uint32_t
-ControllableDescriptor::selection_id () const
-{
- if (banked()) {
- return _selection_id + _bank_offset;
- }
-
- return _selection_id;
-}
-
-uint32_t
-ControllableDescriptor::target (uint32_t n) const
-{
- if (n < _target.size()) {
- return _target[n];
- }
-
- return 0;
-}
diff --git a/libs/pbd/pbd/controllable_descriptor.h b/libs/pbd/pbd/controllable_descriptor.h
deleted file mode 100644
index b7eb26988e..0000000000
--- a/libs/pbd/pbd/controllable_descriptor.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- Copyright (C) 2009 Paul Davis
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-#ifndef __pbd_controllable_descriptor_h__
-#define __pbd_controllable_descriptor_h__
-
-#include <vector>
-#include <string>
-#include <stdint.h>
-
-#include "pbd/libpbd_visibility.h"
-
-namespace PBD {
-
-class LIBPBD_API ControllableDescriptor {
-public:
- enum TopLevelType {
- RemoteControlID,
- NamedRoute,
- SelectionCount,
- };
-
- enum SubType {
- Gain,
- Trim,
- Solo,
- Mute,
- Recenable,
- PanDirection,
- PanWidth,
- PanElevation,
- Balance,
- SendGain,
- PluginParameter
- };
-
- ControllableDescriptor ()
- : _top_level_type (RemoteControlID)
- , _subtype (Gain)
- , _rid (0)
- , _banked (false)
- , _bank_offset (0)
- {}
-
- int set (const std::string&);
-
- /* it is only valid to call top_level_name() if top_level_type() returns
- NamedRoute
- */
-
- TopLevelType top_level_type() const { return _top_level_type; }
- const std::string& top_level_name() const { return _top_level_name; }
-
- SubType subtype() const { return _subtype; }
-
- uint32_t rid() const;
- uint32_t selection_id() const;
- uint32_t target (uint32_t n) const;
- bool banked() const { return _banked; }
-
- void set_bank_offset (uint32_t o) { _bank_offset = o; }
-
-private:
- TopLevelType _top_level_type;
- SubType _subtype;
- std::string _top_level_name;
- union {
- uint32_t _rid;
- uint32_t _selection_id;
- };
- std::vector<uint32_t> _target;
- uint32_t _banked;
- uint32_t _bank_offset;
-};
-
-}
-
-#endif /* __pbd_controllable_descriptor_h__ */
diff --git a/libs/pbd/wscript b/libs/pbd/wscript
index 18b13e3054..a996c1913c 100644
--- a/libs/pbd/wscript
+++ b/libs/pbd/wscript
@@ -37,7 +37,6 @@ libpbd_sources = [
'configuration_variable.cc',
'convert.cc',
'controllable.cc',
- 'controllable_descriptor.cc',
'crossthread.cc',
'cpus.cc',
'debug.cc',