X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fpbd%2Fpbd%2Fstateful.h;h=36c6fe28c7184cac9633cf7c9efb564716816834;hb=7a6e86c9f9bef8db74b755db659794c4a859f36d;hp=dd1659db556e1d1b8d3df6dcbc938c47160df744;hpb=106024330230fca331e2f611fec42ec1f4f43e5a;p=ardour.git diff --git a/libs/pbd/pbd/stateful.h b/libs/pbd/pbd/stateful.h index dd1659db55..36c6fe28c7 100644 --- a/libs/pbd/pbd/stateful.h +++ b/libs/pbd/pbd/stateful.h @@ -65,7 +65,10 @@ class Stateful { void save_extra_xml (const XMLNode&); const PBD::ID& id() const { return _id; } - + bool set_id (const XMLNode&); + void set_id (const std::string&); + void reset_id (); + /* history management */ void clear_changes (); @@ -87,13 +90,13 @@ class Stateful { virtual void suspend_property_changes (); virtual void resume_property_changes (); - - virtual bool frozen() const { return _frozen; } + bool property_changes_suspended() const { return g_atomic_int_get (&_stateful_frozen) > 0; } + protected: - void add_instant_xml (XMLNode&, const sys::path& directory_path); - XMLNode *instant_xml (const std::string& str, const sys::path& directory_path); + void add_instant_xml (XMLNode&, const std::string& directory_path); + XMLNode *instant_xml (const std::string& str, const std::string& directory_path); void add_properties (XMLNode &); PropertyChange set_values (XMLNode const &); @@ -106,8 +109,6 @@ class Stateful { XMLNode *_extra_xml; XMLNode *_instant_xml; - PBD::ID _id; - int32_t _frozen; PBD::PropertyChange _pending_changed; Glib::Mutex _lock; @@ -119,7 +120,10 @@ class Stateful { within thaw() just before send_change() is called. */ virtual void mid_thaw (const PropertyChange&) { } - bool property_changes_suspended() const { return g_atomic_int_get (&_frozen) > 0; } + + private: + PBD::ID _id; + int32_t _stateful_frozen; }; } // namespace PBD