lookup_cache.range.first = events.end();
if (!no_state) {
+#ifdef STATE_MANAGER
save_state (_("initial"));
+#endif
}
AutomationListCreated(this);
AutomationList::~AutomationList()
{
- std::set<ControlEvent*> all_events;
- AutomationList::State* asp;
-
GoingAway ();
for (AutomationEventList::iterator x = events.begin(); x != events.end(); ++x) {
- all_events.insert (*x);
+ delete (*x);
}
+#ifdef STATE_MANAGER
+ std::set<ControlEvent*> all_events;
+ AutomationList::State* asp;
+
for (StateMap::iterator i = states.begin(); i != states.end(); ++i) {
if ((asp = dynamic_cast<AutomationList::State*> (*i)) != 0) {
for (std::set<ControlEvent*>::iterator i = all_events.begin(); i != all_events.end(); ++i) {
delete (*i);
}
+#endif
}
bool
Glib::Mutex::Lock lm (lock);
events.clear ();
if (!no_state) {
+#ifdef STATE_MANAGER
save_state (_("cleared"));
+#endif
}
mark_dirty ();
}
(*i)->when = floor ((*i)->when * factor);
}
+#ifdef STATE_MANAGER
save_state ("x-scaled");
+#endif
mark_dirty ();
}
mark_dirty ();
if (!no_state && !for_loading) {
+#ifdef STATE_MANAGER
save_state (_("added event"));
+#endif
}
}
events.erase (i);
reposition_for_rt_add (0);
if (!no_state) {
+#ifdef STATE_MANAGER
save_state (_("removed event"));
+#endif
}
mark_dirty ();
}
events.erase (start, end);
reposition_for_rt_add (0);
if (!no_state) {
+#ifdef STATE_MANAGER
save_state (_("removed multiple events"));
+#endif
}
mark_dirty ();
}
reset = true;
if (!no_state) {
+#ifdef STATE_MANAGER
save_state (_("removed range"));
+#endif
}
mark_dirty ();
reposition_for_rt_add (0);
erased = true;
if (!no_state) {
+#ifdef STATE_MANAGER
save_state (_("removed range"));
+#endif
}
mark_dirty ();
}
}
if (!no_state) {
+#ifdef STATE_MANAGER
save_state (_("event range adjusted"));
+#endif
}
mark_dirty ();
(*iter)->when = when;
(*iter)->value = val;
if (!no_state) {
+#ifdef STATE_MANAGER
save_state (_("event adjusted"));
+#endif
}
mark_dirty ();
}
}
+#ifdef STATE_MANAGER
StateManager::State*
AutomationList::state_factory (std::string why) const
{
{
return sigc::bind (mem_fun (*(const_cast<AutomationList*> (this)), &StateManager::use_state), _current_state_id);
}
+#endif
void
AutomationList::set_max_xval (double x)
if (changed) {
reposition_for_rt_add (0);
if (!no_state) {
+#ifdef STATE_MANAGER
save_state (_("cut/copy/clear"));
+#endif
}
}
}
if (!no_state) {
+#ifdef STATE_MANAGER
save_state (_("copy"));
+#endif
}
}
reposition_for_rt_add (0);
if (!no_state) {
+#ifdef STATE_MANAGER
save_state (_("paste"));
+#endif
}
mark_dirty ();
nframes_t x;
double y;
+ freeze ();
+
clear ();
for (i = elist.begin(); i != elist.end(); ++i) {
add (x, y);
}
+
+ thaw ();
}
XMLNode &AutomationList::get_state ()