summaryrefslogtreecommitdiff
path: root/libs/surfaces
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2017-06-24 13:13:53 -0700
committerLen Ovens <len@ovenwerks.net>2017-06-24 13:13:53 -0700
commit86ee4de7a93fc4180b8ffaea1e9f569aff09dabf (patch)
tree14c9d63b12a9569f71fb4a6a82fdd887c5311d83 /libs/surfaces
parent33bfe681c94f7c9ba36a683521daf74b5834b3e9 (diff)
OSC: simplify GUI and make less error-prone
Diffstat (limited to 'libs/surfaces')
-rw-r--r--libs/surfaces/osc/osc.cc62
-rw-r--r--libs/surfaces/osc/osc_gui.cc27
2 files changed, 8 insertions, 81 deletions
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc
index 9818514e36..1d38889d26 100644
--- a/libs/surfaces/osc/osc.cc
+++ b/libs/surfaces/osc/osc.cc
@@ -1333,11 +1333,6 @@ OSC::get_address (lo_message msg)
int
OSC::refresh_surface (lo_message msg)
{
- if (address_only) {
- // get rid of all surfaces and observers.
- // needs change to only clear those for this address on all ports
- clear_devices();
- }
OSCSurface *s = get_surface(get_address (msg));
// restart all observers
set_surface (s->bank_size, (uint32_t) s->strip_types.to_ulong(), (uint32_t) s->feedback.to_ulong(), \
@@ -4757,25 +4752,6 @@ OSC::get_state ()
node.set_property ("gainmode", default_gainmode);
node.set_property ("send-page-size", default_send_size);
node.set_property ("plug-page-size", default_plugin_size);
- if (_surface.size()) {
- XMLNode* config = new XMLNode (X_("Configurations"));
- for (uint32_t it = 0; it < _surface.size(); ++it) {
- OSCSurface* sur = &_surface[it];
- XMLNode* devnode = new XMLNode (X_("Configuration"));
- devnode->set_property (X_("url"), sur->remote_url);
- devnode->set_property (X_("bank-size"), sur->bank_size);
- devnode->set_property (X_("strip-types"), (uint64_t)sur->strip_types.to_ulong());
- devnode->set_property (X_("feedback"), (uint64_t)sur->feedback.to_ulong());
- devnode->set_property (X_("gainmode"), sur->gainmode);
- devnode->set_property (X_("send-page-size"), sur->send_page_size);
- devnode->set_property (X_("plug-page-size"), sur->plug_page_size);
- devnode->set_property (X_("no-clear"), sur->no_clear);
- devnode->set_property (X_("cue"), sur->cue);
- devnode->set_property (X_("aux"), sur->aux);
- config->add_child_nocopy (*devnode);
- }
- node.add_child_nocopy (*config);
- }
return node;
}
@@ -4799,44 +4775,6 @@ OSC::set_state (const XMLNode& node, int version)
node.get_property (X_("send-page-size"), default_send_size);
node.get_property (X_("plugin-page-size"), default_plugin_size);
- XMLNode* cnode = node.child (X_("Configurations"));
-
- if (cnode) {
- XMLNodeList const& devices = cnode->children();
- for (XMLNodeList::const_iterator d = devices.begin(); d != devices.end(); ++d) {
- OSCSurface s;
- if (!(*d)->get_property (X_("url"), s.remote_url)) {
- continue;
- }
-
- bank_dirty = true;
-
- (*d)->get_property (X_("bank-size"), s.bank_size);
-
- uint64_t bits;
- if ((*d)->get_property (X_ ("strip-types"), bits)) {
- s.strip_types = bits;
- }
- if ((*d)->get_property (X_("feedback"), bits)) {
- s.feedback = bits;
- }
- (*d)->get_property (X_("gainmode"), s.gainmode);
-
- (*d)->get_property (X_("send-page-size"), s.send_page_size);
- (*d)->get_property (X_("plug-page-size"), s.plug_page_size);
- (*d)->get_property (X_("no-clear"), s.no_clear);
- (*d)->get_property (X_("cue"), s.cue);
- (*d)->get_property (X_("aux"), s.aux);
- s.bank = 1;
- s.sel_obs = 0;
- s.expand = 0;
- s.expand_enable = false;
- s.strips = get_sorted_stripables (s.strip_types, s.cue);
- s.nstrips = s.strips.size ();
- s.jogmode = JOG;
- _surface.push_back (s);
- }
- }
global_init = true;
tick = false;
diff --git a/libs/surfaces/osc/osc_gui.cc b/libs/surfaces/osc/osc_gui.cc
index 7a64aa27bf..f1dc04d067 100644
--- a/libs/surfaces/osc/osc_gui.cc
+++ b/libs/surfaces/osc/osc_gui.cc
@@ -59,7 +59,6 @@ OSC_GUI::OSC_GUI (OSC& p)
int n = 0; // table row
Table* table = manage (new Table);
Label* label;
- Button* button;
table->set_row_spacings (10);
table->set_col_spacings (6);
table->set_border_width (12);
@@ -80,8 +79,8 @@ OSC_GUI::OSC_GUI (OSC& p)
table->attach (*label, 0, 1, n, n+1, AttachOptions(FILL|EXPAND), AttachOptions(0));
table->attach (portmode_combo, 1, 2, n, n+1, AttachOptions(FILL|EXPAND), AttachOptions(0), 0, 0);
std::vector<std::string> portmode_options;
- portmode_options.push_back (_("Auto"));
- portmode_options.push_back (_("Manual"));
+ portmode_options.push_back (_("Auto - Reply to Originating Port"));
+ portmode_options.push_back (_("Manual - Specify Below"));
set_popdown_strings (portmode_combo, portmode_options);
portmode_combo.set_active ((int)cp.get_portmode());
@@ -182,17 +181,12 @@ OSC_GUI::OSC_GUI (OSC& p)
preset_combo.signal_changed().connect (sigc::mem_fun (*this, &OSC_GUI::preset_changed));
++n;
- // refresh button
- button = manage (new Gtk::Button(_("Clear OSC Devices")));
- table->attach (*button, 0, 2, n, n+1, AttachOptions(FILL|EXPAND), AttachOptions(0), 0, 10);
-
table->show_all ();
append_page (*table, _("OSC Setup"));
debug_combo.signal_changed().connect (sigc::mem_fun (*this, &OSC_GUI::debug_changed));
portmode_combo.signal_changed().connect (sigc::mem_fun (*this, &OSC_GUI::portmode_changed));
gainmode_combo.signal_changed().connect (sigc::mem_fun (*this, &OSC_GUI::gainmode_changed));
- button->signal_clicked().connect (sigc::mem_fun (*this, &OSC_GUI::clear_device));
port_entry.signal_activate().connect (sigc::mem_fun (*this, &OSC_GUI::port_changed));
bank_entry.signal_activate().connect (sigc::mem_fun (*this, &OSC_GUI::bank_changed));
send_page_entry.signal_activate().connect (sigc::mem_fun (*this, &OSC_GUI::send_page_changed));
@@ -503,18 +497,12 @@ OSC_GUI::debug_changed ()
void
OSC_GUI::portmode_changed ()
{
- std::string str = portmode_combo.get_active_text ();
- if (str == _("Auto")) {
- cp.set_portmode (0);
- port_entry.set_sensitive (false);
- }
- else if (str == _("Manual")) {
- cp.set_portmode (1);
+ int pm = portmode_combo.get_active_row_number ();
+ cp.set_portmode (pm);
+ if (pm) {
port_entry.set_sensitive (true);
- }
- else {
- std::cerr << "Invalid OSC Port Mode\n";
- assert (0);
+ } else {
+ port_entry.set_sensitive (false);
}
save_user ();
}
@@ -874,6 +862,7 @@ OSC_GUI::save_user ()
}
preset_combo.set_active (2);
cp.gui_changed();
+ clear_device ();
}