*/
-#include <ardour/ardour.h>
+#include "ardour/ardour.h"
#include <fstream>
#include <inttypes.h>
#include <cstdio>
#include <errno.h>
-#include <pbd/error.h>
-#include <pbd/enumwriter.h>
-#include <midi++/names.h>
-#include <ardour/automatable.h>
-#include <ardour/event_type_map.h>
-#include <ardour/midi_track.h>
-#include <ardour/panner.h>
-#include <ardour/plugin_insert.h>
-#include <ardour/session.h>
+#include "pbd/error.h"
+#include "pbd/enumwriter.h"
+
+#include "midi++/names.h"
+
+#include "ardour/automatable.h"
+#include "ardour/amp.h"
+#include "ardour/event_type_map.h"
+#include "ardour/midi_track.h"
+#include "ardour/panner.h"
+#include "ardour/plugin_insert.h"
+#include "ardour/session.h"
#include "i18n.h"
boost::shared_ptr<Evoral::Control> newcontrol = control_factory(param);
add_control(newcontrol);
newcontrol->set_list(al);
- warning << "Control did not exist";
}
} else {
for (Controls::iterator li = controls().begin(); li != controls().end(); ++li) {
boost::shared_ptr<AutomationList> l
= boost::dynamic_pointer_cast<AutomationList>(li->second->list());
- node->add_child_nocopy (l->get_state ());
+ if (!l->empty()) {
+ node->add_child_nocopy (l->get_state ());
+ }
}
return *node;
}
void
-Automatable::transport_stopped (nframes_t now)
+Automatable::transport_stopped (sframes_t now)
{
for (Controls::iterator li = controls().begin(); li != controls().end(); ++li) {
} else if (param.type() == PluginAutomation) {
control = new PluginInsert::PluginControl((PluginInsert*)this, param);
} else if (param.type() == GainAutomation) {
- control = new IO::GainControl( X_("gaincontrol"), (IO*)this, param);
+ control = new Amp::GainControl( X_("gaincontrol"), _a_session, (Amp*)this, param);
} else if (param.type() == PanAutomation) {
- control = new Panner::PanControllable( ((Panner *)this)->session(), X_("panner"), *(Panner *)this, param);
+ Panner* me = dynamic_cast<Panner*>(this);
+ if (me) {
+ control = new Panner::PanControllable(me->session(), X_("panner"), *me, param);
+ } else {
+ cerr << "ERROR: PanAutomation for non-Panner" << endl;
+ }
} else {
control = new AutomationControl(_a_session, param);
}