X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fspeakers.h;h=cde2c40dbbf37ca4b540b72854a667ee2ecf9762;hb=cf89f645ab4a7fae37abd0241c02203353f359ff;hp=ee8d752ed9ced94c1bca26fc2c2a37e5ee118a69;hpb=553cf2982c4905c5a08f305ce2772beaa8c50324;p=ardour.git diff --git a/libs/ardour/ardour/speakers.h b/libs/ardour/ardour/speakers.h index ee8d752ed9..cde2c40dbb 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 { - public: - Speakers (); - virtual ~Speakers (); +class LIBARDOUR_API 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); - 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 (); + std::vector& speakers() { return _speakers; } - std::vector& speakers() { return _speakers; } + void dump_speakers (std::ostream&); - void dump_speakers (std::ostream&); + XMLNode& get_state (); + int set_state (const XMLNode&, int version); - PBD::Signal0 Changed; + PBD::Signal0 Changed; - protected: - std::vector _speakers; +protected: + std::vector _speakers; - virtual void update () {} + virtual void update () {} }; } /* namespace */