X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Fstate_manager.h;h=99bfcfc3ceed22055d93be3a364791deab644db6;hb=a32175bd41eb46f8c544af9f7091c2156035135a;hp=faedc120ee34afb1bbd269b7dca14a29580c1853;hpb=2fcdf14e2b63753be7b9cd74a442fa5aefbfb401;p=ardour.git diff --git a/libs/ardour/ardour/state_manager.h b/libs/ardour/ardour/state_manager.h index faedc120ee..99bfcfc3ce 100644 --- a/libs/ardour/ardour/state_manager.h +++ b/libs/ardour/ardour/state_manager.h @@ -3,6 +3,7 @@ #include #include +#include #include @@ -12,7 +13,6 @@ namespace ARDOUR { typedef uint32_t state_id_t; - class StateManager : public sigc::trackable { public: @@ -35,7 +35,15 @@ class StateManager : public sigc::trackable state_id_t _current_state_id; + virtual bool should_save_state () const { return true; } + + static void prohibit_save (); + static void allow_save (const char* why, bool dosave); + protected: + static bool _allow_save; + static sigc::signal SaveAllowed; + StateMap states; virtual Change restore_state (State&) = 0;