#define __libardour_speaker_h__
#include "pbd/cartesian.h"
+#include "pbd/signals.h"
-namespace ARDOUR {
+namespace ARDOUR {
class Speaker {
- public:
- Speaker (int, const PBD::AngularVector& position);
-
- void move (const PBD::AngularVector& new_position);
+public:
+ Speaker (int, const PBD::AngularVector& position);
+ Speaker (const Speaker &);
+ Speaker& operator= (const Speaker &);
- const PBD::CartesianVector& coords() const { return _coords; }
- const PBD::AngularVector& angles() const { return _angles; }
+ void move (const PBD::AngularVector& new_position);
- int id;
+ const PBD::CartesianVector& coords() const { return _coords; }
+ const PBD::AngularVector& angles() const { return _angles; }
- private:
- PBD::CartesianVector _coords;
- PBD::AngularVector _angles;
+ int id;
+
+ /** emitted when this speaker's position has changed */
+ PBD::Signal0<void> PositionChanged;
+
+private:
+ PBD::CartesianVector _coords;
+ PBD::AngularVector _angles;
};
} /* namespace */