summaryrefslogtreecommitdiff
path: root/libs/panners
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2011-02-17 18:54:13 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2011-02-17 18:54:13 +0000
commit96cc6c3410c927ca14f50a52487e304967efdbf3 (patch)
tree1d583674cf6bbce3a1aecae26191716c79b8bd96 /libs/panners
parent0d61f205ab4432480dc0e12787774f1d859f2dbf (diff)
draw pucks (signal positions) on vbap panner
git-svn-id: svn://localhost/ardour2/branches/3.0@8890 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/panners')
-rw-r--r--libs/panners/vbap/vbap.cc10
-rw-r--r--libs/panners/vbap/vbap.h1
-rw-r--r--libs/panners/vbap/vbap_speakers.cc8
-rw-r--r--libs/panners/vbap/vbap_speakers.h1
4 files changed, 17 insertions, 3 deletions
diff --git a/libs/panners/vbap/vbap.cc b/libs/panners/vbap/vbap.cc
index e563952efd..c76a514eaa 100644
--- a/libs/panners/vbap/vbap.cc
+++ b/libs/panners/vbap/vbap.cc
@@ -331,3 +331,13 @@ VBAPanner::value_as_string (boost::shared_ptr<AutomationControl> ac) const
return _pannable->value_as_string (ac);
}
}
+
+AngularVector
+VBAPanner::signal_position (uint32_t n) const
+{
+ if (n < _signals.size()) {
+ return _signals[n]->direction;
+ }
+
+ return AngularVector();
+}
diff --git a/libs/panners/vbap/vbap.h b/libs/panners/vbap/vbap.h
index 937199194f..183554132c 100644
--- a/libs/panners/vbap/vbap.h
+++ b/libs/panners/vbap/vbap.h
@@ -59,6 +59,7 @@ public:
XMLNode& get_state ();
int set_state (const XMLNode&, int version);
+ PBD::AngularVector signal_position (uint32_t n) const;
private:
struct Signal {
diff --git a/libs/panners/vbap/vbap_speakers.cc b/libs/panners/vbap/vbap_speakers.cc
index 506ad4a25b..bf87791b60 100644
--- a/libs/panners/vbap/vbap_speakers.cc
+++ b/libs/panners/vbap/vbap_speakers.cc
@@ -45,9 +45,9 @@ using namespace std;
VBAPSpeakers::VBAPSpeakers (boost::shared_ptr<Speakers> s)
: _dimension (2)
- , _speakers (s->speakers())
+ , parent (s)
{
- // s.Changed.connect_same_thread (speaker_connection, boost::bind (&VBAPSpeakers::update, this));
+ parent->Changed.connect_same_thread (speaker_connection, boost::bind (&VBAPSpeakers::update, this));
update ();
}
@@ -59,7 +59,9 @@ void
VBAPSpeakers::update ()
{
int dim = 2;
-
+
+ _speakers = parent->speakers();
+
for (vector<Speaker>::const_iterator i = _speakers.begin(); i != _speakers.end(); ++i) {
if ((*i).angles().ele != 0.0) {
cerr << "\n\n\nSPEAKER " << (*i).id << " has ele = " << (*i).angles().ele << "\n\n\n\n";
diff --git a/libs/panners/vbap/vbap_speakers.h b/libs/panners/vbap/vbap_speakers.h
index 3bd298ba3d..85cd75d085 100644
--- a/libs/panners/vbap/vbap_speakers.h
+++ b/libs/panners/vbap/vbap_speakers.h
@@ -51,6 +51,7 @@ public:
private:
static const double MIN_VOL_P_SIDE_LGTH = 0.01;
int _dimension;
+ boost::shared_ptr<Speakers> parent;
std::vector<Speaker> _speakers;
PBD::ScopedConnection speaker_connection;