diff --git a/gtk2_ardour/mixer_snapshot_dialog.cc b/gtk2_ardour/mixer_snapshot_dialog.cc index 526f5d348f..60b03d0884 100644 --- a/gtk2_ardour/mixer_snapshot_dialog.cc +++ b/gtk2_ardour/mixer_snapshot_dialog.cc @@ -269,12 +269,14 @@ bool MixerSnapshotDialog::bootstrap_display_and_model(Gtkmm2ext::DnDTreeView column_counts { #ifdef MIXBUS - display.append_column(_("EQ"), _columns.recall_eq), - display.append_column(_("Comp"), _columns.recall_comp), + display.append_column(_("EQ"), _columns.recall_eq), + display.append_column(_("Comp."), _columns.recall_comp), + display.append_column(_("Sends"), _columns.recall_sends), #endif - display.append_column(_("I/O"), _columns.recall_io), - display.append_column(_("Groups"), _columns.recall_groups), - display.append_column(_("VCAs"), _columns.recall_vcas), + display.append_column(_("Pan"), _columns.recall_pan), + display.append_column(_("Plugins"), _columns.recall_plugins), + display.append_column(_("Groups"), _columns.recall_groups), + display.append_column(_("VCAs"), _columns.recall_vcas), }; for(vector::iterator i = column_counts.begin(); i != column_counts.end(); i++) { @@ -399,10 +401,12 @@ void MixerSnapshotDialog::new_row(Glib::RefPtr model, MixerSnapshot* #ifdef MIXBUS row[_columns.recall_eq] = snap->get_recall_eq(); row[_columns.recall_comp] = snap->get_recall_comp(); + row[_columns.recall_sends] = snap->get_recall_sends(); #endif - row[_columns.recall_io] = snap->get_recall_io(); - row[_columns.recall_groups] = snap->get_recall_group(); - row[_columns.recall_vcas] = snap->get_recall_vca(); + row[_columns.recall_pan] = snap->get_recall_pan(); + row[_columns.recall_plugins] = snap->get_recall_plugins(); + row[_columns.recall_groups] = snap->get_recall_groups(); + row[_columns.recall_vcas] = snap->get_recall_vcas(); } @@ -555,24 +559,34 @@ void MixerSnapshotDialog::recall_flag_cell_action(const std::string& path, bool (*iter)[_columns.recall_eq] = snap->get_recall_eq(); } - if(title == "Comp") { + if(title == "Comp.") { snap->set_recall_comp(!snap->get_recall_comp()); (*iter)[_columns.recall_comp] = snap->get_recall_comp(); } + + if(title == "Sends") { + snap->set_recall_sends(!snap->get_recall_sends()); + (*iter)[_columns.recall_comp] = snap->get_recall_sends(); + } #endif - if(title == "I/O") { - snap->set_recall_io(!snap->get_recall_io()); - (*iter)[_columns.recall_io] = snap->get_recall_io(); + if(title == "Pan") { + snap->set_recall_pan(!snap->get_recall_pan()); + (*iter)[_columns.recall_pan] = snap->get_recall_pan(); + } + + if(title == "Plugins") { + snap->set_recall_plugins(!snap->get_recall_plugins()); + (*iter)[_columns.recall_plugins] = snap->get_recall_plugins(); } if(title == "Groups") { - snap->set_recall_group(!snap->get_recall_group()); - (*iter)[_columns.recall_groups] = snap->get_recall_group(); + snap->set_recall_groups(!snap->get_recall_groups()); + (*iter)[_columns.recall_groups] = snap->get_recall_groups(); } if(title == "VCAs") { - snap->set_recall_vca(!snap->get_recall_vca()); - (*iter)[_columns.recall_vcas] = snap->get_recall_vca(); + snap->set_recall_vcas(!snap->get_recall_vcas()); + (*iter)[_columns.recall_vcas] = snap->get_recall_vcas(); } snap->write((*iter)[_columns.full_path]); diff --git a/gtk2_ardour/mixer_snapshot_dialog.h b/gtk2_ardour/mixer_snapshot_dialog.h index 3b5c8dcb87..53401689b7 100644 --- a/gtk2_ardour/mixer_snapshot_dialog.h +++ b/gtk2_ardour/mixer_snapshot_dialog.h @@ -83,7 +83,9 @@ class MixerSnapshotDialog : public ArdourWindow add (snapshot); add (recall_eq); add (recall_comp); - add (recall_io); + add (recall_sends); + add (recall_pan); + add (recall_plugins); add (recall_groups); add (recall_vcas); } @@ -100,7 +102,9 @@ class MixerSnapshotDialog : public ArdourWindow Gtk::TreeModelColumn snapshot; Gtk::TreeModelColumn recall_eq; Gtk::TreeModelColumn recall_comp; - Gtk::TreeModelColumn recall_io; + Gtk::TreeModelColumn recall_sends; + Gtk::TreeModelColumn recall_pan; + Gtk::TreeModelColumn recall_plugins; Gtk::TreeModelColumn recall_groups; Gtk::TreeModelColumn recall_vcas; }; diff --git a/libs/ardour/ardour/mixer_snapshot.h b/libs/ardour/ardour/mixer_snapshot.h index f045da57d5..979d39f14f 100644 --- a/libs/ardour/ardour/mixer_snapshot.h +++ b/libs/ardour/ardour/mixer_snapshot.h @@ -34,10 +34,12 @@ class LIBARDOUR_API MixerSnapshot public: enum RecallFlags { RecallEQ = 0x1, - RecallComp = 0x2, - RecallIO = 0x4, - RecallGroup = 0x8, - RecallVCA = 0x10, + RecallSends = 0x2, + RecallComp = 0x4, + RecallPan = 0x8, + RecallPlugs = 0x10, + RecallGroups = 0x20, + RecallVCAs = 0x40 }; MixerSnapshot(ARDOUR::Session*); @@ -76,19 +78,23 @@ class LIBARDOUR_API MixerSnapshot std::vector get_vcas() {return vca_states;}; #ifdef MIXBUS bool get_recall_eq() const { return _flags & RecallEQ;}; + bool get_recall_sends() const { return _flags & RecallSends;}; bool get_recall_comp() const { return _flags & RecallComp;}; #endif - bool get_recall_io() const { return _flags & RecallIO;}; - bool get_recall_group() const { return _flags & RecallGroup;}; - bool get_recall_vca() const { return _flags & RecallVCA;}; + bool get_recall_pan() const { return _flags & RecallPan;}; + bool get_recall_plugins() const { return _flags & RecallPlugs;}; + bool get_recall_groups() const { return _flags & RecallGroups;}; + bool get_recall_vcas() const { return _flags & RecallVCAs;}; #ifdef MIXBUS void set_recall_eq(bool); + void set_recall_sends(bool); void set_recall_comp(bool); #endif - void set_recall_io(bool); - void set_recall_group(bool); - void set_recall_vca(bool); + void set_recall_pan(bool); + void set_recall_plugins(bool); + void set_recall_groups(bool); + void set_recall_vcas(bool); unsigned int get_id() {return id;}; void set_id(unsigned int new_id) {id = new_id;}; diff --git a/libs/ardour/enums.cc b/libs/ardour/enums.cc index f44c66a4fd..c505edf58b 100644 --- a/libs/ardour/enums.cc +++ b/libs/ardour/enums.cc @@ -783,10 +783,12 @@ setup_enum_writer () REGISTER (mode); REGISTER_CLASS_ENUM (MixerSnapshot, RecallEQ); + REGISTER_CLASS_ENUM (MixerSnapshot, RecallSends); REGISTER_CLASS_ENUM (MixerSnapshot, RecallComp); - REGISTER_CLASS_ENUM (MixerSnapshot, RecallIO); - REGISTER_CLASS_ENUM (MixerSnapshot, RecallGroup); - REGISTER_CLASS_ENUM (MixerSnapshot, RecallVCA); + REGISTER_CLASS_ENUM (MixerSnapshot, RecallPan); + REGISTER_CLASS_ENUM (MixerSnapshot, RecallPlugs); + REGISTER_CLASS_ENUM (MixerSnapshot, RecallGroups); + REGISTER_CLASS_ENUM (MixerSnapshot, RecallVCAs); REGISTER_BITS (_Recall_Flags); } diff --git a/libs/ardour/mixer_snapshot.cc b/libs/ardour/mixer_snapshot.cc index 29c5d4ca43..b5f5b440ad 100644 --- a/libs/ardour/mixer_snapshot.cc +++ b/libs/ardour/mixer_snapshot.cc @@ -53,7 +53,7 @@ MixerSnapshot::MixerSnapshot(Session* s) , label("snapshot") , timestamp(time(0)) , last_modified_with(string_compose("%1 %2", PROGRAM_NAME, revision)) - , _flags(RecallFlags(31)) + , _flags(RecallFlags(127)) { if(s) { _session = s; @@ -66,7 +66,7 @@ MixerSnapshot::MixerSnapshot(Session* s, string file_path) , label("snapshot") , timestamp(time(0)) , last_modified_with(string_compose("%1 %2", PROGRAM_NAME, revision)) - , _flags(RecallFlags(31)) + , _flags(RecallFlags(127)) { if(s) { _session = s; @@ -111,11 +111,13 @@ bool MixerSnapshot::set_flag(bool yn, RecallFlags flag) #ifdef MIXBUS void MixerSnapshot::set_recall_eq(bool yn) { set_flag(yn, RecallEQ); }; +void MixerSnapshot::set_recall_sends(bool yn) { set_flag(yn, RecallSends);}; void MixerSnapshot::set_recall_comp(bool yn) { set_flag(yn, RecallComp); }; #endif -void MixerSnapshot::set_recall_io(bool yn) { set_flag(yn, RecallIO); }; -void MixerSnapshot::set_recall_group(bool yn) { set_flag(yn, RecallGroup);}; -void MixerSnapshot::set_recall_vca(bool yn) { set_flag(yn, RecallVCA); }; +void MixerSnapshot::set_recall_pan(bool yn) { set_flag(yn, RecallPan); }; +void MixerSnapshot::set_recall_plugins(bool yn) { set_flag(yn, RecallPlugs); }; +void MixerSnapshot::set_recall_groups(bool yn) { set_flag(yn, RecallGroups);}; +void MixerSnapshot::set_recall_vcas(bool yn) { set_flag(yn, RecallVCAs); }; bool MixerSnapshot::has_specials() { @@ -305,7 +307,7 @@ void MixerSnapshot::recall() //vcas for(vector::const_iterator i = vca_states.begin(); i != vca_states.end(); i++) { - if(!get_recall_vca()) { + if(!get_recall_vcas()) { break; } @@ -346,7 +348,7 @@ void MixerSnapshot::recall() //groups for(vector::const_iterator i = group_states.begin(); i != group_states.end(); i++) { - if(!get_recall_group()) { + if(!get_recall_groups()) { break; } @@ -543,10 +545,8 @@ XMLNode& MixerSnapshot::sanitize_node(XMLNode& node) } #endif - if(!get_recall_io()) { - node.remove_node_and_delete("IO", "direction", "Input"); - node.remove_node_and_delete("IO", "direction", "Output"); - } + node.remove_node_and_delete("IO", "direction", "Input"); + node.remove_node_and_delete("IO", "direction", "Output"); return node; }