X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fpannable.h;h=afdb51234258325c285301643ca62bec776d4b7f;hb=5fa05b403ca21a6573d07b921dc14f0769dc9fc7;hp=62c9cd123b4d6f1a99a334d7adb40fb43369f68e;hpb=5792674ca4d02e093b4318d31a117a47ae72ecdf;p=ardour.git diff --git a/libs/ardour/ardour/pannable.h b/libs/ardour/ardour/pannable.h index 62c9cd123b..afdb512342 100644 --- a/libs/ardour/ardour/pannable.h +++ b/libs/ardour/ardour/pannable.h @@ -38,7 +38,7 @@ class Panner; class LIBARDOUR_API Pannable : public PBD::Stateful, public Automatable, public SessionHandleRef { - public: +public: Pannable (Session& s); ~Pannable (); @@ -57,42 +57,38 @@ class LIBARDOUR_API Pannable : public PBD::Stateful, public Automatable, public AutoState automation_state() const { return _auto_state; } PBD::Signal1 automation_state_changed; - void set_automation_style (AutoStyle m); - AutoStyle automation_style() const { return _auto_style; } - PBD::Signal0 automation_style_changed; - bool automation_playback() const { - return (_auto_state & Play) || ((_auto_state & Touch) && !touching()); + return (_auto_state & Play) || ((_auto_state & (Touch | Latch)) && !touching()); } bool automation_write () const { - return ((_auto_state & Write) || ((_auto_state & Touch) && touching())); + return ((_auto_state & Write) || ((_auto_state & (Touch | Latch)) && touching())); } - std::string value_as_string (boost::shared_ptr) const; + std::string value_as_string (boost::shared_ptr) const; void start_touch (double when); - void stop_touch (bool mark, double when); - bool touching() const { return g_atomic_int_get (const_cast(&_touching)); } + void stop_touch (double when); + bool touching() const { return g_atomic_int_get (const_cast(&_touching)); } bool writing() const { return _auto_state == Write; } - bool touch_enabled() const { return _auto_state == Touch; } + bool touch_enabled() const { return _auto_state & (Touch | Latch); } XMLNode& get_state (); - XMLNode& state (bool full_state); int set_state (const XMLNode&, int version); bool has_state() const { return _has_state; } - protected: +protected: + virtual XMLNode& state (); + boost::weak_ptr _panner; AutoState _auto_state; - AutoStyle _auto_style; gint _touching; bool _has_state; uint32_t _responding_to_control_auto_state_change; void control_auto_state_changed (AutoState); - private: +private: void value_changed (); };