diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2011-02-17 19:47:53 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2011-02-17 19:47:53 +0000 |
commit | 1b8e8303b25b6b013367741f2b47be3585b22cb3 (patch) | |
tree | 9a91c56bbf6ded80dd0bd8a04f00405f13178980 /libs/panners/vbap | |
parent | 96cc6c3410c927ca14f50a52487e304967efdbf3 (diff) |
draw speaker positions in 2d panner
git-svn-id: svn://localhost/ardour2/branches/3.0@8891 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/panners/vbap')
-rw-r--r-- | libs/panners/vbap/vbap.cc | 6 | ||||
-rw-r--r-- | libs/panners/vbap/vbap.h | 1 | ||||
-rw-r--r-- | libs/panners/vbap/vbap_speakers.cc | 6 | ||||
-rw-r--r-- | libs/panners/vbap/vbap_speakers.h | 7 |
4 files changed, 14 insertions, 6 deletions
diff --git a/libs/panners/vbap/vbap.cc b/libs/panners/vbap/vbap.cc index c76a514eaa..fc75ae7183 100644 --- a/libs/panners/vbap/vbap.cc +++ b/libs/panners/vbap/vbap.cc @@ -341,3 +341,9 @@ VBAPanner::signal_position (uint32_t n) const return AngularVector(); } + +boost::shared_ptr<Speakers> +VBAPanner::get_speakers () const +{ + return _speakers->parent(); +} diff --git a/libs/panners/vbap/vbap.h b/libs/panners/vbap/vbap.h index 183554132c..af3c1c0df2 100644 --- a/libs/panners/vbap/vbap.h +++ b/libs/panners/vbap/vbap.h @@ -60,6 +60,7 @@ public: int set_state (const XMLNode&, int version); PBD::AngularVector signal_position (uint32_t n) const; + boost::shared_ptr<Speakers> get_speakers() const; private: struct Signal { diff --git a/libs/panners/vbap/vbap_speakers.cc b/libs/panners/vbap/vbap_speakers.cc index bf87791b60..a0602b3e10 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) - , parent (s) + , _parent (s) { - parent->Changed.connect_same_thread (speaker_connection, boost::bind (&VBAPSpeakers::update, this)); + _parent->Changed.connect_same_thread (speaker_connection, boost::bind (&VBAPSpeakers::update, this)); update (); } @@ -60,7 +60,7 @@ VBAPSpeakers::update () { int dim = 2; - _speakers = parent->speakers(); + _speakers = _parent->speakers(); for (vector<Speaker>::const_iterator i = _speakers.begin(); i != _speakers.end(); ++i) { if ((*i).angles().ele != 0.0) { diff --git a/libs/panners/vbap/vbap_speakers.h b/libs/panners/vbap/vbap_speakers.h index 85cd75d085..4c28fc6489 100644 --- a/libs/panners/vbap/vbap_speakers.h +++ b/libs/panners/vbap/vbap_speakers.h @@ -35,23 +35,24 @@ class Speakers; class VBAPSpeakers : public boost::noncopyable { public: - typedef std::vector<double> dvector; + VBAPSpeakers (boost::shared_ptr<Speakers>); + typedef std::vector<double> dvector; const dvector matrix (int tuple) const { return _matrices[tuple]; } int speaker_for_tuple (int tuple, int which) const { return _speaker_tuples[tuple][which]; } int n_tuples () const { return _matrices.size(); } int dimension() const { return _dimension; } - VBAPSpeakers (boost::shared_ptr<Speakers>); uint32_t n_speakers() const { return _speakers.size(); } + boost::shared_ptr<Speakers> parent() const { return _parent; } ~VBAPSpeakers (); private: static const double MIN_VOL_P_SIDE_LGTH = 0.01; int _dimension; - boost::shared_ptr<Speakers> parent; + boost::shared_ptr<Speakers> _parent; std::vector<Speaker> _speakers; PBD::ScopedConnection speaker_connection; |