change RecallFlags enums to make way for new functionality

This commit is contained in:
Nikolaus Gullotta 2019-05-28 15:42:22 -05:00
parent b52f27721a
commit 940c36468c
5 changed files with 68 additions and 42 deletions

View file

@ -269,12 +269,14 @@ bool MixerSnapshotDialog::bootstrap_display_and_model(Gtkmm2ext::DnDTreeView<str
appending, we can just put this in a vector and use it later */
vector<int> 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<int>::iterator i = column_counts.begin(); i != column_counts.end(); i++) {
@ -399,10 +401,12 @@ void MixerSnapshotDialog::new_row(Glib::RefPtr<ListStore> 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]);

View file

@ -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<ARDOUR::MixerSnapshot*> snapshot;
Gtk::TreeModelColumn<bool> recall_eq;
Gtk::TreeModelColumn<bool> recall_comp;
Gtk::TreeModelColumn<bool> recall_io;
Gtk::TreeModelColumn<bool> recall_sends;
Gtk::TreeModelColumn<bool> recall_pan;
Gtk::TreeModelColumn<bool> recall_plugins;
Gtk::TreeModelColumn<bool> recall_groups;
Gtk::TreeModelColumn<bool> recall_vcas;
};

View file

@ -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<State> 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;};

View file

@ -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);
}

View file

@ -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<State>::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<State>::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;
}