#include "pbd/stacktrace.h"
#include "pbd/enumwriter.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
using namespace std;
using namespace ARDOUR;
AutomationList::~AutomationList()
{
+ delete _before;
}
boost::shared_ptr<Evoral::ControlList>
{
if (s != _state) {
_state = s;
+ delete _before;
if (s == Write && _desc.toggled) {
_before = &get_state ();
+ } else {
+ _before = 0;
}
automation_state_changed (s); /* EMIT SIGNAL */
}
void
AutomationList::start_write_pass (double when)
{
+ delete _before;
if (in_new_write_pass ()) {
_before = &get_state ();
+ } else {
+ _before = 0;
}
ControlList::start_write_pass (when);
}
AutomationList::write_pass_finished (double when, double thinning_factor)
{
ControlList::write_pass_finished (when, thinning_factor);
- /* automation control has deleted this or it is now owned by the session undo stack */
- _before = 0;
}
void
/* _before may be owned by the undo stack,
* so we have to be careful about doing this.
-*/
+ *
+ * ::before () transfers ownership, setting _before to 0
+ */
void
AutomationList::clear_history ()
{
{
XMLNode* root = new XMLNode (X_("AutomationList"));
char buf[64];
- LocaleGuard lg (X_("C"));
+ LocaleGuard lg;
root->add_property ("automation-id", EventTypeMap::instance().to_symbol(_parameter));
int
AutomationList::set_state (const XMLNode& node, int version)
{
- LocaleGuard lg (X_("C"));
+ LocaleGuard lg;
XMLNodeList nlist = node.children();
XMLNode* nsos;
XMLNodeIterator niter;
- const XMLProperty* prop;
+ XMLProperty const * prop;
if (node.name() == X_("events")) {
/* partial state setting*/
const XMLNodeList& elist = node.children();
XMLNodeConstIterator i;
- XMLProperty* prop;
+ XMLProperty const * prop;
pframes_t x;
double y;