triggerbox: state saving
This commit is contained in:
parent
b46eaebb76
commit
a9d4668dee
@ -206,11 +206,15 @@ class LIBARDOUR_API AudioTrigger : public Trigger {
|
||||
|
||||
int set_region (boost::shared_ptr<Region>);
|
||||
|
||||
XMLNode& get_state (void);
|
||||
int set_state (const XMLNode&, int version);
|
||||
|
||||
protected:
|
||||
void retrigger ();
|
||||
void set_usable_length ();
|
||||
|
||||
private:
|
||||
PBD::ID data_source;
|
||||
std::vector<Sample*> data;
|
||||
samplecnt_t read_index;
|
||||
samplecnt_t data_length;
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include "pbd/basename.h"
|
||||
#include "pbd/compose.h"
|
||||
#include "pbd/failed_constructor.h"
|
||||
#include "pbd/types_convert.h"
|
||||
|
||||
#include "temporal/tempo.h"
|
||||
|
||||
@ -88,6 +89,19 @@ XMLNode&
|
||||
Trigger::get_state (void)
|
||||
{
|
||||
XMLNode* node = new XMLNode (X_("Trigger"));
|
||||
|
||||
node->set_property (X_("legato"), _legato);
|
||||
node->set_property (X_("launch-style"), enum_2_string (_launch_style));
|
||||
node->set_property (X_("follow-action-0"), enum_2_string (_follow_action[0]));
|
||||
node->set_property (X_("follow-action-1"), enum_2_string (_follow_action[1]));
|
||||
node->set_property (X_("quantization"), _quantization);
|
||||
node->set_property (X_("name"), _name);
|
||||
node->set_property (X_("index"), _index);
|
||||
|
||||
if (_region) {
|
||||
node->set_property (X_("region"), _region->id());
|
||||
}
|
||||
|
||||
return *node;
|
||||
}
|
||||
|
||||
@ -322,6 +336,23 @@ AudioTrigger::~AudioTrigger ()
|
||||
}
|
||||
}
|
||||
|
||||
XMLNode&
|
||||
AudioTrigger::get_state (void)
|
||||
{
|
||||
XMLNode& node (Trigger::get_state());
|
||||
|
||||
node.set_property (X_("start"), timepos_t (_start_offset));
|
||||
node.set_property (X_("length"), timepos_t (usable_length));
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
int
|
||||
AudioTrigger::set_state (const XMLNode&, int version)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
AudioTrigger::set_start (timepos_t const & s)
|
||||
{
|
||||
@ -1161,7 +1192,23 @@ TriggerBox::set_next_trigger (size_t current)
|
||||
XMLNode&
|
||||
TriggerBox::get_state (void)
|
||||
{
|
||||
return Processor::get_state ();
|
||||
XMLNode& node (Processor::get_state ());
|
||||
|
||||
node.set_property (X_("data-type"), _data_type.to_string());
|
||||
|
||||
XMLNode* trigger_child (new XMLNode (X_("Triggers")));
|
||||
|
||||
{
|
||||
Glib::Threads::RWLock::ReaderLock lm (trigger_lock);
|
||||
for (Triggers::iterator t = all_triggers.begin(); t != all_triggers.end(); ++t) {
|
||||
trigger_child->add_child_nocopy ((*t)->get_state());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
node.add_child_nocopy (*trigger_child);
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
int
|
||||
|
Loading…
Reference in New Issue
Block a user