X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fspeakers.h;h=dbe4ef180ee58712633b131eb0bd94078f1a3f1c;hb=da9b82732eed632d8b940818382f7eb369100964;hp=bae8cb96db918a7181c5a23a1696e040ff84db43;hpb=a8d4e33d1b61b7fc2eadec355689ccbe93fece22;p=ardour.git diff --git a/libs/ardour/ardour/speakers.h b/libs/ardour/ardour/speakers.h index bae8cb96db..dbe4ef180e 100644 --- a/libs/ardour/ardour/speakers.h +++ b/libs/ardour/ardour/speakers.h @@ -23,31 +23,43 @@ #include #include +#include #include "ardour/speaker.h" +class XMLNode; + namespace ARDOUR { -class Speakers { +class Speakers : public PBD::Stateful { public: Speakers (); + Speakers (const Speakers&); virtual ~Speakers (); + Speakers& operator= (const Speakers&); + virtual int add_speaker (const PBD::AngularVector&); virtual void remove_speaker (int id); virtual void move_speaker (int id, const PBD::AngularVector& new_position); virtual void clear_speakers (); + uint32_t size() const { return _speakers.size(); } + + void setup_default_speakers (uint32_t nspeakers); std::vector& speakers() { return _speakers; } void dump_speakers (std::ostream&); + XMLNode& get_state (); + int set_state (const XMLNode&, int version); + PBD::Signal0 Changed; protected: std::vector _speakers; - virtual void update () {} + virtual void update () {} }; } /* namespace */