diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-02-17 18:54:13 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-02-17 18:54:13 +0000 |
commit | 96cc6c3410c927ca14f50a52487e304967efdbf3 (patch) | |
tree | 1d583674cf6bbce3a1aecae26191716c79b8bd96 /libs/panners | |
parent | 0d61f205ab4432480dc0e12787774f1d859f2dbf (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.cc | 10 | ||||
-rw-r--r-- | libs/panners/vbap/vbap.h | 1 | ||||
-rw-r--r-- | libs/panners/vbap/vbap_speakers.cc | 8 | ||||
-rw-r--r-- | libs/panners/vbap/vbap_speakers.h | 1 |
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; |