21 #include "jsonrpc_methods.h" 22 #include <netinet/in.h> 23 #include <netinet/tcp.h> 24 #include <sys/ioctl.h> 26 #include <bluetooth/bluetooth.h> 27 #include <bluetooth/rfcomm.h> 31 extern char __rt_text__start[], __rt_text__end[];
32 extern char __rt_data__start[], __rt_data__end[];
37 { __rt_text__start, __rt_text__end - __rt_text__start },
38 { __rt_data__start, __rt_data__end - __rt_data__start },
40 for (
unsigned int i = 0; i <
sizeof(regions)/
sizeof(regions[0]); i++) {
41 if (mlock(regions[i].
start, regions[i].len) != 0) {
44 boost::format(_(
"failed to lock memory: %1%")) % strerror(errno));
94 engine.controller_map, engine),
95 tuner_switcher(settings, engine),
100 pmap(engine.get_param()) {
108 {
"other",
"other" },
109 {
"qjackctl",
"qjackctl" },
110 {
"autostart",
"autostart" },
114 "ui.jack_starter_idx",
"", starter, static_cast<int*>(0),
false, 1);
116 pmap.
reg_string(
"ui.jack_starter",
"", 0,
"");
120 static const value_pair streaming_labels[] = {{
"scale"}, {
"stream"}, {0}};
121 pmap.
reg_non_midi_enum_par(
"racktuner.streaming",
"Streaming Mode", streaming_labels, (
int*)0,
false, 1);
122 static const value_pair tuning_labels[] = {{
"(Chromatic)"},{
"Standard"}, {
"Standard/Es"}, {
"Open E"},
123 {
"Drop D"},{
"Half Step Down"},{
"Full Step Down"},{
"1 and 1/2 Steps Down"},{
"Double Drop D"},{
"Drop C"},
124 {
"Drop C#"},{
"Drop B"},{
"Drop A#"},{
"Drop A"},{
"Open D"},{
"Open D Minor"}, {
"Open G"},{
"Open G Minor"},
125 {
"Open C"},{
"Open C#"},{
"Open C Minor"},{
"Open E7"},{
"Open E Minor7"},{
"Open G Major7"},{
"Open A Minor"},
126 {
"Open A Minor7"},{
"Open A"},{
"C Tuning"},{
"C# Tuning"},{
"Bb Tuning"},{
"A to A (Baritone)"},{
"Open Dsus2"},
127 {
"Open Gsus2"},{
"G6"},{
"Modal G"},{
"Overtone"},{
"Pentatonic"},{
"Minor Third"},{
"Major Third"},{
"All Fourths"},
128 {
"Augmented Fourths"},{
"Slow Motion"},{
"Admiral"},{
"Buzzard"},{
"Face"},{
"Four and Twenty"},{
"Ostrich"},{
"Capo 200"},
129 {
"Balalaika"},{
"Cittern One"},{
"Cittern Two"},{
"Dobro"},{
"Lefty"},{
"Mandoguitar"},{
"Rusty Cage"},{
"Hardcore"}, {0}};
131 static const value_pair tuning_temperament[] = {{
"12-ET"},{
"19-ET"},{
"24-ET"},{
"31-ET"},{
"53-ET"}, {0}};
132 pmap.
reg_non_midi_enum_par(
"racktuner.temperament",
"Temperament", tuning_temperament, (
int*)0,
false, 0);
134 pmap.
reg_par_non_preset(
"ui.tuner_reference_pitch",
"?Tuner Reference Pitch", 0, 440, 225, 453, 0.1);
137 pmap.
reg_par(
"ui.live_play_switcher",
"Liveplay preset mode" , (
bool*)0,
false,
false)->
setSavable(
false);
138 pmap.
reg_par(
"ui.racktuner",
N_(
"Tuner on/off"), (
bool*)0,
false,
false);
141 pmap.
reg_par_non_preset(
"ui.liveplay_brightness",
"?liveplay_brightness", 0, 1.0, 0.5, 1.0, 0.01);
142 pmap.
reg_par_non_preset(
"ui.liveplay_background",
"?liveplay_background", 0, 0.8, 0.0, 1.0, 0.01);
159 "engine.insert",
N_(
"switch insert ports on/off"), (
bool*)0,
false,
false)->
getBool();
165 for (gx_preset::UnitPresetList::iterator i = presetnames.begin(); i != presetnames.end(); ++i) {
166 if (!i->name.empty()) {
167 Glib::ustring
id =
"seq." + i->name;
168 Glib::ustring tb =
"switch to Drumsequencer preset " + i->name;
170 id, tb, (
bool*)0,
false,
false)->
getBool();
184 sigc::mem_fun(
this, &GxMachine::do_program_change));
186 sigc::mem_fun(
this, &GxMachine::set_mute_state));
188 sigc::mem_fun(
this, &GxMachine::do_bank_change));
189 pmap[
"ui.live_play_switcher"].signal_changed_bool().connect(
190 sigc::mem_fun(
this, &GxMachine::edge_toggle_tuner));
192 sigc::mem_fun(
this, &GxMachine::on_jack_load_change));
208 Glib::ustring tb =
"switch to Drumsequencer preset " + name;
209 Glib::ustring
id = group +
"." + name;
211 id, tb, (
bool*)0,
false,
false)->
getBool();
217 void GxMachine::on_jack_load_change() {
225 void GxMachine::edge_toggle_tuner(
bool v) {
231 void GxMachine::do_program_change(
int pgm) {
233 if ((bank != switch_bank) && !switch_bank.empty()) {
236 bool in_preset = !bank.empty();
240 in_preset = pgm < f->
size();
254 void GxMachine::reset_switch_bank() {
258 void GxMachine::do_bank_change(
int pgm) {
261 Glib::signal_timeout().connect_once(
262 sigc::mem_fun(
this,&GxMachine::reset_switch_bank), 50);
268 void GxMachine::set_mute_state(
int mute) {
285 pluginlist.
load(options, old_not_found);
289 pluginlist.
save(options);
359 for (
int i = 0; i < channels; i++) {
363 for (
int i = 0; i < channels; i++) {
380 void GxMachine::exit_handler(
bool otherthread) {
389 delete avahi_service;
400 sock =
new GxService(settings, jack, tuner_switcher, quit_mainloop, host, &port);
403 sigc::mem_fun(*
this, &GxMachine::exit_handler));
406 std::string name =
"Guitarix";
503 int GxMachine::get_bank_num(Glib::ustring num) {
504 Glib::ustring array =
"abcdefghijklmnopqrstuvwxyz" ;
507 if(num.compare(array.substr(i,1))==0)
break;
519 #ifdef USE_MIDI_CC_OUT 535 int bl = get_bank_num(sbank.substr(0,1).lowercase());
536 int pgm =
max(0,atoi(sbank.substr(2,Glib::ustring::npos).raw().c_str())-1);
538 do_program_change(pgm);
575 Glib::signal_idle().connect_once(
667 settings.
append(pf, src, pftgt, name);
691 settings.
save(pf, name);
718 return pmap.
hasId(p);
722 return pmap.
hasId(
id);
734 pmap[id].getInt().set(value);
738 pmap[id].getBool().set(value);
750 pmap[id].getFloat().set(value);
754 pmap[id].getString().set(value);
757 int GxMachine::_get_parameter_value_int(
const std::string&
id) {
758 return pmap[id].getInt().get_value();
761 int GxMachine::_get_parameter_value_bool(
const std::string&
id) {
762 return pmap[id].getBool().get_value();
765 float GxMachine::_get_parameter_value_float(
const std::string&
id) {
766 return pmap[id].getFloat().get_value();
769 std::string GxMachine::_get_parameter_value_string(
const std::string&
id) {
770 return pmap[id].getString().get_value();
773 sigc::signal<void, int>& GxMachine::_signal_parameter_value_int(
const std::string&
id) {
774 return pmap[id].signal_changed_int();
777 sigc::signal<void, bool>& GxMachine::_signal_parameter_value_bool(
const std::string&
id) {
778 return pmap[id].signal_changed_bool();
781 sigc::signal<void, float>& GxMachine::_signal_parameter_value_float(
const std::string&
id) {
782 return pmap[id].signal_changed_float();
827 bool toggle,
int toggle_behaviour) {
837 void GxMachine::on_impresp(
const std::string& path) {
843 Glib::signal_idle().connect_once(
845 sigc::mem_fun(
this, &GxMachine::on_impresp), path));
853 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer) {
854 return gx_engine::read_audio(filename, audio_size, audio_chan, audio_type, audio_form, audio_rate, buffer);
863 #define START_NOTIFY(m) { start_call(RPNM_##m) 865 #define START_NOTIFY(m) { const jsonrpc_method_def& _md = start_call(RPNM_##m) 868 #define SEND() assert(!_md.has_result); send(); } 870 #define START_CALL(m) { const jsonrpc_method_def& _md = start_call(RPCM_##m) 872 #define START_RECEIVE(s) assert(_md.has_result); send(); { \ 873 gx_system::JsonStringParser *jp = receive();\ 874 if (!jp) { return s; }\ 877 #define END_RECEIVE(s) } catch (const gx_system::JsonException& e) { report_rpc_error(jp, e, _md.name); } \ 887 engine_state_change(),
889 presetlist_changed(),
898 midi_value_changed(),
901 bank_drag_get_counter(),
902 bank_drag_get_path(),
903 oscilloscope_activation(),
904 oscilloscope_size_change(),
905 oscilloscope_buffer(0),
906 oscilloscope_buffer_size(0),
907 tuner_switcher_display(),
908 tuner_switcher_set_state(),
909 tuner_switcher_selection_done() {
915 socket->set_blocking(
true);
916 writebuf =
new __gnu_cxx::stdio_filebuf<char>(socket->get_fd(), std::ios::out);
917 os =
new ostream(writebuf);
924 current_bank = pmap[
"system.current_bank"].getString().get_value();
925 current_preset = pmap[
"system.current_preset"].getString().get_value();
936 midi_controller_map.
readJSON(*jp, pmap);
942 jw->
write(
"display");
944 jw->
write(
"presetlist_changed");
947 jw->
write(
"oscilloscope");
948 jw->
write(
"jack_load");
950 jw->
write(
"plugins_changed");
952 jw->
write(
"units_changed");
968 const char *q = getenv(
"GUITARIX_TRACE");
972 if (*q && q != p->
id()) {
975 cerr <<
"set " << p->
id() <<
" = ";
984 }
else if (dynamic_cast<JConvParameter*>(p) != 0) {
985 cerr << dynamic_cast<JConvParameter*>(p)->get_value().getFullIRPath();
986 }
else if (dynamic_cast<SeqParameter*>(p) != 0) {
987 cerr <<
"SeqParameter";
992 cerr <<
" (blocked)";
999 void GxMachineRemote::create_bluetooth_socket(
const Glib::ustring& bdaddr) {
1000 struct sockaddr_rc addr = { 0 };
1001 addr.rc_family = AF_BLUETOOTH;
1002 str2ba(bdaddr.c_str(), &addr.rc_bdaddr);
1004 for (
int channel = 1; channel <= 9; channel++) {
1005 addr.rc_channel = (uint8_t)channel;
1006 int s = ::socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
1007 if (connect(s, (
const struct sockaddr *)&addr,
sizeof(addr)) < 0) {
1010 if (error != EBUSY) {
1014 socket = Gio::Socket::create_from_fd(s);
1020 Glib::ustring::compose(
1021 _(
"Remote Connection: cannot connect to bluetooth %1: %2"),
1022 bdaddr, strerror_r(error, buf,
sizeof(buf))));
1024 #else // !HAVE_BLUEZ 1025 void GxMachineRemote::create_bluetooth_socket(
const Glib::ustring& bdaddr) {
1028 _(
"Bluetooth not available; rebuild Guitarix with Bluetooth support"));
1030 #endif // HAVE_BLUEZ 1032 void GxMachineRemote::create_tcp_socket() {
1033 socket = Gio::Socket::create(Gio::SOCKET_FAMILY_IPV4, Gio::SOCKET_TYPE_STREAM, Gio::SOCKET_PROTOCOL_TCP);
1035 setsockopt(socket->get_fd(), IPPROTO_TCP, TCP_NODELAY, &
flag,
sizeof(int));
1036 typedef std::vector< Glib::RefPtr<Gio::InetAddress> > adr_list;
1039 al = Gio::Resolver::get_default()->lookup_by_name(options.
get_rpcaddress());
1040 }
catch (Glib::Error e) {
1045 for (adr_list::iterator i = al.begin(); i != al.end(); ++i) {
1047 socket->connect(Gio::InetSocketAddress::create(*i, options.
get_rpcport()));
1049 }
catch (Gio::Error e) {
1059 void GxMachineRemote::param_signal(
Parameter *p) {
1068 }
else if (p->
isBool()) {
1074 }
else if (dynamic_cast<JConvParameter*>(p) != 0) {
1076 }
else if (dynamic_cast<SeqParameter*>(p) != 0) {
1089 switch (jp->
next()) {
1101 }
else if (p.
isInt()) {
1103 switch (jp->
next()) {
1122 cerr <<
"change file parameter " << p.
id() << endl;
1123 }
else if (dynamic_cast<JConvParameter*>(&p) != 0) {
1127 }
else if (dynamic_cast<SeqParameter*>(&p) != 0) {
1132 cerr <<
"change special type parameter " << p.
id() << endl;
1142 if (method ==
"state_changed") {
1145 }
else if (method ==
"message") {
1155 }
else if (method ==
"preset_changed") {
1161 current_bank = new_bank;
1162 current_preset = new_preset;
1163 selection_changed();
1164 }
else if (method ==
"presetlist_changed") {
1169 presetlist_changed();
1170 }
else if (method ==
"set") {
1173 parameter_changed(jp);
1175 }
else if (method ==
"rack_units_changed") {
1179 std::vector<std::string>& l = (stereo ? rack_units.
stereo : rack_units.
mono);
1187 }
else if (method ==
"midi_changed") {
1188 midi_controller_map.
readJSON(*jp, pmap);
1190 }
else if (method ==
"midi_value_changed") {
1197 midi_value_changed(ctl, value);
1198 }
else if (method ==
"osc_activation") {
1201 }
else if (method ==
"osc_size_changed") {
1204 if (oscilloscope_buffer_size != sz) {
1205 delete oscilloscope_buffer;
1206 oscilloscope_buffer =
new float[sz];
1207 oscilloscope_buffer_size = sz;
1209 oscilloscope_size_change(sz);
1210 }
else if (method ==
"show_tuner") {
1213 }
else if (method ==
"set_display_state") {
1227 tuner_switcher_set_state(state);
1228 }
else if (method ==
"display_bank_preset") {
1233 }
else if (method ==
"impresp_list") {
1234 std::vector<gx_system::FileName> l;
1246 }
else if (method ==
"plugins_changed") {
1248 }
else if (method ==
"jack_load_changed") {
1251 }
else if (method ==
"server_shutdown") {
1258 static int socket_get_available_bytes(
const Glib::RefPtr<Gio::Socket>& socket) {
1261 ioctl(socket->get_fd(), FIONREAD, &avail);
1262 int ret = ioctl(socket->get_fd(), FIONREAD, &avail);
1269 bool GxMachineRemote::socket_input_handler(Glib::IOCondition cond) {
1270 if (cond & (Glib::IO_HUP|Glib::IO_ERR|Glib::IO_NVAL)) {
1274 int n = socket_get_available_bytes(socket);
1284 n = socket->receive(buf,
sizeof(buf));
1285 }
catch(Glib::Error e) {
1307 cerr <<
"JsonException: " << e.
what() <<
": '" << jp->
get_string() <<
"'" << endl;
1311 int avail = socket_get_available_bytes(socket);
1315 }
else if (avail < 0) {
1340 void GxMachineRemote::send() {
1352 cerr <<
"RPC Error in " << method <<
"(): ";
1354 cerr <<
"RPC Error: ";
1360 bool GxMachineRemote::idle_notify_handler() {
1361 for (
unsigned int i = 0; i < notify_list.size(); ++i) {
1366 notify_list.clear();
1370 void GxMachineRemote::add_idle_handler() {
1371 if (!idle_conn.connected()) {
1372 idle_conn = Glib::signal_idle().connect(
1373 sigc::mem_fun(
this, &GxMachineRemote::idle_notify_handler));
1380 Glib::ustring message;
1394 Glib::ustring::compose(
"RPC error %1 : %2", code, message));
1397 void GxMachineRemote::socket_error(
int loc) {
1398 if (!socket->is_closed()) {
1401 gx_print_fatal(
"Network", Glib::ustring::compose(
"Server has closed connection (%1)", loc));
1413 n = socket->receive(buf,
sizeof(buf));
1414 }
catch(Glib::Error e) {
1415 cerr <<
"Glib receive error: " << e.what() << endl;
1437 assert(jp_ret == 0);
1441 notify_list.push_back(jp);
1444 if (n == 0 && jp_ret) {
1446 throw_error(jp_ret);
1456 report_rpc_error(jp, e);
1530 plugin_changed(p, c);
1539 plugin_changed(p, c);
1557 return plugin_changed;
1591 int GxMachineRemote::load_remote_ui_static (
const UiBuilder& builder,
int form) {
1593 return m->load_remote_ui(builder, form);
1596 int GxMachineRemote::load_remote_ui(
const UiBuilder& builder,
int form) {
1613 }
else if (jp->
current_value() ==
"openHorizontalhideBox") {
1615 }
else if (jp->
current_value() ==
"openHorizontalTableBox") {
1631 std::string
id = next_string(jp);
1632 std::string lab = next_string(jp);
1634 }
else if (jp->
current_value() ==
"create_small_rackknob") {
1635 std::string
id = next_string(jp);
1636 std::string lab = next_string(jp);
1638 }
else if (jp->
current_value() ==
"create_small_rackknobr") {
1639 std::string
id = next_string(jp);
1640 std::string lab = next_string(jp);
1643 std::string
id = next_string(jp);
1644 std::string lab = next_string(jp);
1647 std::string
id = next_string(jp);
1648 std::string lab = next_string(jp);
1650 }
else if (jp->
current_value() ==
"create_feedback_slider") {
1651 std::string
id = next_string(jp);
1652 std::string lab = next_string(jp);
1654 }
else if (jp->
current_value() ==
"create_selector_no_caption") {
1655 std::string
id = next_string(jp);
1658 std::string
id = next_string(jp);
1659 std::string lab = next_string(jp);
1662 std::string
id = next_string(jp);
1664 }
else if (jp->
current_value() ==
"create_simple_c_meter") {
1665 std::string
id = next_string(jp);
1666 std::string idl = next_string(jp);
1667 std::string lab = next_string(jp);
1670 std::string
id = next_string(jp);
1671 std::string lab = next_string(jp);
1673 }
else if (jp->
current_value() ==
"create_switch_no_caption") {
1674 std::string sw_type = next_string(jp);
1675 std::string
id = next_string(jp);
1677 }
else if (jp->
current_value() ==
"create_feedback_switch") {
1678 std::string sw_type = next_string(jp);
1679 std::string
id = next_string(jp);
1682 std::string sw_type = next_string(jp);
1683 std::string
id = next_string(jp);
1684 std::string idf = next_string(jp);
1687 std::string sw_type = next_string(jp);
1688 std::string
id = next_string(jp);
1689 std::string lab = next_string(jp);
1690 builder.
create_switch(sw_type.c_str(),
id.c_str(), lab.c_str());
1692 std::string
id = next_string(jp);
1693 std::string lab = next_string(jp);
1696 std::string
id = next_string(jp);
1697 std::string lab = next_string(jp);
1700 std::string
id = next_string(jp);
1701 std::string idl = next_string(jp);
1702 std::string idh = next_string(jp);
1704 }
else if (jp->
current_value() ==
"create_simple_spin_value") {
1705 std::string
id = next_string(jp);
1707 }
else if (jp->
current_value() ==
"create_eq_rackslider_no_caption") {
1708 std::string
id = next_string(jp);
1716 cerr <<
"unknown uiBuilder function " << jp->
current_value() << endl;
1727 pdef->
load_ui = load_remote_ui_static;
1745 return get_bool(jp);
1750 return oscilloscope_buffer;
1763 return pmap[
"oscilloscope.pp"].signal_changed_int();
1767 return pmap[
"ui.oscilloscope"].signal_changed_bool();
1771 return oscilloscope_activation;
1775 return oscilloscope_size_change;
1788 jw->
write(channels);
1791 for (
int i = 0; i < channels; i++) {
1816 if (oscilloscope_buffer_size != sz) {
1817 delete oscilloscope_buffer;
1818 oscilloscope_buffer =
new float[sz];
1819 oscilloscope_buffer_size = sz;
1820 oscilloscope_size_change(sz);
1823 float *p = oscilloscope_buffer;
1845 return tuner_switcher_display;
1849 return tuner_switcher_set_state;
1853 return tuner_switcher_selection_done;
1857 return engine_state_change;
1868 std::vector<std::string>& l = (stereo ? rack_units.
stereo : rack_units.
mono);
1881 cerr <<
"JsonException: " << e.
what() <<
": '" << jp->get_string() <<
"'" << endl;
1911 return get_bool(jp);
1937 static const Glib::ustring empty_string;
1940 return current_bank;
1948 return current_preset;
1974 #ifdef USE_MIDI_CC_OUT 1992 return banks.
size();
2048 Glib::signal_idle().connect_once(
2072 return selection_changed;
2076 return presetlist_changed;
2082 Glib::RefPtr<Gio::File> rem = Gio::File::create_for_uri(uri);
2083 fstream f(rem->get_path().c_str());
2133 bool ret = get_bool(jp);
2137 pf.
entries[idx].name = newname;
2145 for (std::vector<Glib::ustring>::const_iterator i = neworder.begin(); i != neworder.end(); ++i) {
2155 for (std::vector<Glib::ustring>::const_iterator i = neworder.begin(); i != neworder.end(); ++i) {
2160 for (std::vector<Glib::ustring>::const_iterator i = neworder.begin(); i != neworder.end(); ++i) {
2163 presetlist_changed();
2169 return get_bool(jp);
2179 if (i->name == name) {
2200 switch (bank_drag_get_counter) {
2202 bank_drag_get_counter++;
2205 bank_drag_get_counter++;
2211 Glib::RefPtr<Gio::File> target = Gio::File::create_for_path(
2213 Gio::File::create_for_path(jp->
current_value())->get_basename()));
2215 Glib::RefPtr<Gio::FileOutputStream> s = target->replace(
2216 "",
false, Gio::FILE_CREATE_REPLACE_DESTINATION);
2220 bank_drag_get_path = target->get_path();
2223 return bank_drag_get_path;
2227 bank_drag_get_counter = 0;
2228 bank_drag_get_path.clear();
2236 return banks.
begin();
2262 if (i->name == pos) {
2278 if (i->name == pos) {
2289 bool ret = get_bool(jp);
2302 bool ret = get_bool(jp);
2304 banks.banklist.remove(f);
2346 Glib::ustring
id = group +
"." + name;
2347 Glib::ustring tb =
"switch to Drumsequencer preset " + name;
2352 if (!pmap.
hasId(
id)) {
2356 id, tb, (
bool*)0,
false,
false)->
getBool();
2360 pmap[
id].signal_changed_bool().connect(sigc::hide(
2370 }
else if (p->
isInt()) {
2373 }
else if (p->
isBool()) {
2379 }
else if (p->
isFile()) {
2382 }
else if (dynamic_cast<JConvParameter*>(i->second) != 0) {
2385 }
else if (dynamic_cast<SeqParameter*>(i->second) != 0) {
2390 selection_changed();
2391 Glib::signal_io().connect(
2392 sigc::mem_fun(
this, &GxMachineRemote::socket_input_handler),
2393 socket->get_fd(), Glib::IO_IN);
2395 if (i->second->isInt()) {
2396 i->second->getInt().signal_changed().connect(
2399 sigc::mem_fun(
this, &GxMachineRemote::param_signal), i->second)));
2400 }
else if (i->second->isBool()) {
2401 i->second->getBool().signal_changed().connect(
2404 sigc::mem_fun(
this, &GxMachineRemote::param_signal), i->second)));
2405 }
else if (i->second->isFloat()) {
2406 i->second->getFloat().signal_changed().connect(
2409 sigc::mem_fun(
this, &GxMachineRemote::param_signal), i->second)));
2410 }
else if (i->second->isString()) {
2411 i->second->getString().signal_changed().connect(
2414 sigc::mem_fun(
this, &GxMachineRemote::param_signal), i->second)));
2415 }
else if (dynamic_cast<JConvParameter*>(i->second) != 0) {
2416 dynamic_cast<JConvParameter*
>(i->second)->signal_changed().connect(
2419 sigc::mem_fun(
this, &GxMachineRemote::param_signal), i->second)));
2420 }
else if (dynamic_cast<SeqParameter*>(i->second) != 0) {
2421 dynamic_cast<SeqParameter*
>(i->second)->signal_changed().connect(
2424 sigc::mem_fun(
this, &GxMachineRemote::param_signal), i->second)));
2430 return pmap.
hasId(p);
2434 return pmap.
hasId(
id);
2446 pmap[id].getInt().set(value);
2450 pmap[id].getBool().set(value);
2454 pmap[id].getFloat().set(value);
2458 if (!pmap[
id].getString().
set(value)) {
2467 int GxMachineRemote::_get_parameter_value_int(
const std::string&
id) {
2474 switch (jp->
next()) {
2489 int GxMachineRemote::_get_parameter_value_bool(
const std::string&
id) {
2500 float GxMachineRemote::_get_parameter_value_float(
const std::string&
id) {
2507 switch (jp->
next()) {
2522 std::string GxMachineRemote::_get_parameter_value_string(
const std::string&
id) {
2533 sigc::signal<void, int>& GxMachineRemote::_signal_parameter_value_int(
const std::string&
id) {
2534 return pmap[id].signal_changed_int();
2537 sigc::signal<void, bool>& GxMachineRemote::_signal_parameter_value_bool(
const std::string&
id) {
2538 return pmap[id].signal_changed_bool();
2541 sigc::signal<void, float>& GxMachineRemote::_signal_parameter_value_float(
const std::string&
id) {
2542 return pmap[id].signal_changed_float();
2550 bool ret = get_bool(jp);
2568 return midi_changed;
2572 return midi_value_changed;
2581 return midi_controller_map.size();
2585 return midi_controller_map[n];
2606 jw->
write(toggle_behaviour);
2639 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer) {
2641 jw->
write(filename);
2645 *audio_chan = *audio_type = *audio_form = *audio_rate = 0;
2661 *buffer =
new float[*audio_size * *audio_chan];
void write_kv(const char *key, float v)
bool register_service(std::string name, int port)
virtual void plugin_preset_list_set(const PluginDef *pdef, bool factory, const Glib::ustring &name)
virtual Glib::ustring get_bank_name(int n)
virtual void bank_set_flag(gx_system::PresetFileGui *pf, int flag, bool v)
virtual void midi_set_current_control(int v)
gx_system::PresetFile * bank_insert_uri(const Glib::ustring &uri, bool move)
virtual void tuner_used_for_display(bool on)
void readJSON_remote(JsonParser &jp)
virtual const Glib::ustring & get_current_name()
CmdConnection::msg_type start
virtual void start_socket(sigc::slot< void > quit_mainloop, const Glib::ustring &host, int port)
void throw_unexpected(token expect)
virtual void load_ladspalist(std::vector< std::string > &old_not_found, ladspa::LadspaPluginList &pluginlist)
void begin_array(bool nl=false)
void save(PresetFile &pf, const Glib::ustring &name)
void modifyCurrent(Parameter ¶m, float lower, float upper, bool toggle, int toggle_behaviour)
PresetFile * get_current_bank_file()
virtual void insert_rack_unit(const std::string &unit, const std::string &before, PluginType type)
bool rename_preset(PresetFile &pf, const Glib::ustring &oldname, const Glib::ustring &newname)
virtual void msend_midi_cc(int cc, int pgn, int bgn, int num)
int param2controller(Parameter ¶m, const MidiController **p)
Glib::Dispatcher & signal_jack_load_change()
virtual void reorder_preset(gx_system::PresetFileGui &pf, const std::vector< Glib::ustring > &neworder)
virtual void disable_autosave(bool v)
virtual void save_ladspalist(ladspa::LadspaPluginList &pluginlist)
virtual float get_tuner_freq()
virtual bool rename_preset(gx_system::PresetFileGui &pf, const Glib::ustring &oldname, const Glib::ustring &newname)
virtual int idx_from_id(string v_id)
int get_current_control()
virtual void stop_socket()
virtual sigc::signal< void > & signal_midi_changed()
bool remove_rack_unit(const std::string &unit, bool stereo)
void set_current_control(int ctl)
virtual int midi_param2controller(Parameter ¶m, const MidiController **p)
sigc::signal< void > & signal_changed()
virtual Plugin * pluginlist_lookup_plugin(const std::string &id) const
void disable_autosave(bool v)
void writeJSON(gx_system::JsonWriter &jw)
OscilloscopeAdapter oscilloscope
BoolParameter * reg_non_midi_par(const string &id, bool *var, bool preset, bool std=false)
sigc::signal< void, const std::string &, std::vector< gx_system::FileName > > impresp_list
virtual void load_impresp_dirs(std::vector< gx_system::FileName > &dirs)
virtual void pf_insert_after(gx_system::PresetFileGui &pf, const Glib::ustring &src, gx_system::PresetFileGui &pftgt, const Glib::ustring &pos, const Glib::ustring &name)
MidiStandardControllers midi_std_ctr
virtual const float * get_oscilloscope_buffer()
virtual void set_state(GxEngineState state)
map< string, Parameter * >::const_iterator iterator
sigc::signal< void, SwitcherState > & signal_set_state()
virtual bool parameter_unit_has_std_values(const PluginDef *pdef) const
Parameter * readJSON_one(gx_system::JsonParser &jp)
void create_default_scratch_preset()
std::vector< std::string > & get_rack_unit_order(bool stereo)
void insert(PresetFile *f)
void unregister(Parameter *p)
void(* create_fload_switch)(const char *sw_type, const char *id, const char *idf)
void(* load_glade)(const char *data)
virtual void midi_set_current_control(int v)
virtual sigc::signal< void, bool > & signal_rack_unit_order_changed()
gx_engine::GxEngineState string_to_engine_state(const std::string &s)
void end_array(bool nl=false)
void set_config_mode(bool mode, int ctl=-1)
virtual int get_oscilloscope_mul_buffer()
bool load_unit(PluginDef *pl)
void dump(const string &fmt)
virtual void maxlevel_get(int channels, float *values)
virtual void load_online_presets()
virtual void midi_modifyCurrent(Parameter ¶m, float lower, float upper, bool toggle, int toggle_behaviour)
void activate(bool tuner_active)
virtual void start_socket(sigc::slot< void > quit_mainloop, const Glib::ustring &host, int port)
FloatParameter * reg_par_non_preset(const string &id, const string &name, float *var, float std, float lower, float upper, float step)
virtual sigc::signal< void > & signal_midi_changed()
virtual void reset_unit(const PluginDef *pdef) const
void readJSON(gx_system::JsonParser &jp, ParamMap ¶m)
void(* openFlipLabelBox)(const char *label)
void on_engine_bypass_changed(bool s, GxEngine &engine)
virtual bool rename_bank(const Glib::ustring &oldname, Glib::ustring &newname)
virtual std::string bank_get_filename(const Glib::ustring &bank)
virtual void disable_autosave(bool v)
virtual void plugin_preset_list_save(const PluginDef *pdef, const Glib::ustring &name)
virtual sigc::signal< void, GxEngineState > & signal_state_change()
std::vector< PluginPresetEntry > UnitPresetList
virtual void stop_socket()
bool remove_bank(const Glib::ustring &bank)
virtual void commit_ladspa_changes()
virtual bool midi_get_config_mode(int *ctl=0)
virtual bool parameter_unit_has_std_values(const PluginDef *pdef) const
PresetFile * get_file(const Glib::ustring &bank) const
void(* openTabBox)(const char *label)
virtual void set_statefilename(const std::string &fn)
void(* create_feedback_switch)(const char *sw_type, const char *id)
void reorder(const std::vector< Glib::ustring > &neworder)
virtual void set_init_values()
virtual void erase_preset(gx_system::PresetFileGui &pf, const Glib::ustring &name)
virtual bool parameter_hasId(const char *p)
bool set(const Glib::ustring &val) const
float get_maxlevel(unsigned int channel)
virtual bank_iterator bank_begin()
virtual void set_jack_insert(bool v)
virtual void set_jack_insert(bool v)
FileParameter & getFile()
virtual int midi_param2controller(Parameter ¶m, const MidiController **p)
void(* create_switch_no_caption)(const char *sw_type, const char *id)
virtual midi_controller_list & midi_get(int n)
int param2controller(Parameter ¶m, const MidiController **p)
GxMachine(gx_system::CmdlineOptions &options)
void set_flag(int flag, bool v)
Glib::ustring get_name(int n)
virtual bool read_audio(const std::string &filename, unsigned int *audio_size, int *audio_chan, int *audio_type, int *audio_form, int *audio_rate, float **buffer)
virtual sigc::signal< void, bool > & tuner_switcher_signal_selection_done()
virtual void clear_oscilloscope_buffer()
sigc::signal< void, bool > & signal_selection_done()
jack_nframes_t get_jack_bs()
sigc::signal< void, bool > rack_unit_order_changed
void append(PresetFile &pf, const Glib::ustring &src, PresetFile &pftgt, const Glib::ustring &name)
std::vector< Position >::iterator iterator
virtual bool bank_remove(const Glib::ustring &bank)
bool rename_bank(const Glib::ustring &oldname, Glib::ustring &newname)
virtual void set_oscilloscope_mul_buffer(int a)
bool read_audio(const std::string &filename, unsigned int *audio_size, int *audio_chan, int *audio_type, int *audio_form, int *audio_rate, float **buffer)
std::vector< std::string > mono
virtual Plugin * pluginlist_lookup_plugin(const std::string &id) const
bool get_box_visible() const
virtual gx_system::PresetFileGui * bank_insert_uri(const Glib::ustring &uri, bool move)
void load(gx_system::CmdlineOptions &options, std::vector< std::string > &old_not_found)
void(* create_p_display)(const char *id, const char *idl, const char *idh)
void used_for_display(bool on)
sigc::signal< void, int > & signal_new_program()
virtual void pf_append(gx_system::PresetFileGui &pf, const Glib::ustring &src, gx_system::PresetFileGui &pftgt, const Glib::ustring &name)
void write_key(const char *p, bool nl=false)
void set_jack_insert(bool v)
void update_maxlevel(CmdConnection *cmd=0)
void ladspaloader_update_plugins(gx_system::JsonWriter *jw, CmdConnection *cmd)
virtual GxEngineState get_state()
std::vector< Position > entries
sigc::signal< void, const GxJConvSettings * > & signal_changed()
virtual void tuner_used_for_display(bool on)
virtual void plugin_preset_list_set(const PluginDef *pdef, bool factory, const Glib::ustring &name)
virtual void remove_rack_unit(const std::string &unit, PluginType type)
void gx_print_fatal(const char *, const std::string &)
virtual sigc::signal< void, int, int > & signal_midi_value_changed()
virtual gx_system::PresetFileGui * get_bank_file(const Glib::ustring &bank) const
sigc::signal< void, float > & signal_changed()
virtual void save_ladspalist(ladspa::LadspaPluginList &pluginlist)
virtual bool read_audio(const std::string &filename, unsigned int *audio_size, int *audio_chan, int *audio_type, int *audio_form, int *audio_rate, float **buffer)
const Glib::ustring & get_rpcaddress()
int insert_plugin(Plugin *pvars)
StringParameter * reg_string(const string &id, const string &name, Glib::ustring *var, const string &sv, bool preset=false)
virtual void setJSON_value()
virtual const std::vector< std::string > & get_rack_unit_order(PluginType type)
sigc::signal< void > & signal_selection_changed()
virtual void midi_set_config_mode(bool v, int ctl=-1)
virtual gx_system::PresetFileGui * bank_insert_uri(const Glib::ustring &uri, bool move)
virtual void readJSON_value(gx_system::JsonParser &jp)
sigc::signal< void, Plugin *, PluginChange::pc > & signal_plugin_changed()
virtual void remove_rack_unit(const std::string &unit, PluginType type)
virtual void set_statefilename(const std::string &fn)
virtual void reset_unit(const PluginDef *pdef) const
virtual void maxlevel_get(int channels, float *values)
virtual void plugin_preset_list_sync_set(const PluginDef *pdef, bool factory, const Glib::ustring &name)
sigc::signal< void, int, int > & signal_midi_value_changed()
void gx_print_error(const char *, const std::string &)
virtual bool get_tuner_switcher_active()
sigc::signal< int, bool > activation
virtual void plugin_preset_list_save(const PluginDef *pdef, const Glib::ustring &name)
virtual bool bank_remove(const Glib::ustring &bank)
void insert(const string &id, const string &group)
static string get_default_instancename()
virtual bool setting_is_preset()
virtual bool bank_check_reparse()
sigc::signal< void > & signal_changed()
static GxLogger & get_logger()
gx_system::PresetFile * bank_insert_new(const Glib::ustring &name)
ParameterGroups & get_group_table()
virtual bank_iterator bank_begin()
void(* create_wheel)(const char *id, const char *label)
void plugin_preset_list_load(const PluginDef *pdef, UnitPresetList &presetnames)
virtual void bank_reorder(const std::vector< Glib::ustring > &neworder)
void(* create_selector)(const char *id, const char *label)
virtual void set_init_values()
virtual void pf_insert_before(gx_system::PresetFileGui &pf, const Glib::ustring &src, gx_system::PresetFileGui &pftgt, const Glib::ustring &pos, const Glib::ustring &name)
virtual void request_midi_value_update()
void(* openHorizontalBox)(const char *label)
const std::string & id_box_visible() const
virtual void midi_modifyCurrent(Parameter ¶m, float lower, float upper, bool toggle, int toggle_behaviour)
virtual bool parameter_hasId(const char *p)
int get_index(const Glib::ustring &name)
virtual bool setting_is_preset()
PresetFileGui * get_guiwrapper()
virtual bool load_unit(gx_gui::UiBuilderImpl &builder, PluginDef *pdef)
void send_midi_cc(int cc_num, int pgm_num, int bgn, int num)
bool hasId(const string &id) const
void send_rack_changed(bool stereo, CmdConnection *cmd)
virtual void readJSON_value(gx_system::JsonParser &jp)
virtual void pf_append(gx_system::PresetFileGui &pf, const Glib::ustring &src, gx_system::PresetFileGui &pftgt, const Glib::ustring &name)
void readJSON(gx_system::JsonParser &jp)
virtual int get_oscilloscope_mul_buffer()
virtual void set_parameter_value(const std::string &id, int value)
void on_engine_mute_changed(bool s, GxEngine &engine)
virtual void reorder_preset(gx_system::PresetFileGui &pf, const std::vector< Glib::ustring > &neworder)
void plugin_preset_list_save(const PluginDef *pdef, const Glib::ustring &name)
virtual void set_parameter_value(const std::string &id, int value)
virtual void get_oscilloscope_info(int &load, int &frames, bool &is_rt, jack_nframes_t &bsize)
void(* create_port_display)(const char *id, const char *label)
void delete_module(Plugin *pl)
virtual void load_online_presets()
virtual sigc::signal< void, bool > & signal_rack_unit_order_changed()
sigc::signal< void, bool > & signal_changed()
void set_replace_mode(bool mode)
virtual Glib::ustring get_bank_name(int n)
StringParameter & getString()
void save(gx_system::CmdlineOptions &options)
void set_engine_mute(GxEngineState s, BoolParameter &p)
void insert_rack_unit(const std::string &unit, const std::string &before, bool stereo)
virtual float get_tuner_freq()
virtual void bank_drag_begin()
bool convert_preset(PresetFile &pf)
void(* openFrameBox)(const char *label)
virtual sigc::signal< void, unsigned int > & signal_oscilloscope_size_change()
void ladspaloader_update_plugins()
std::vector< std::string > stereo
void begin_object(bool nl=false)
void plugin_preset_list_sync_set(const PluginDef *pdef, bool factory, const Glib::ustring &name)
void(* create_small_rackknobr)(const char *id, const char *label)
void insert_after(PresetFile &pf, const Glib::ustring &src, PresetFile &pftgt, const Glib::ustring &pos, const Glib::ustring &name)
void readJSON(gx_system::JsonParser &jp, ParamMap &pmap)
sigc::signal< void > & signal_presetlist_changed()
MidiAudioBuffer midiaudiobuffer
void(* create_simple_spin_value)(const char *id)
virtual sigc::signal< void > & signal_selection_changed()
void(* create_simple_meter)(const char *id)
static GxExit & get_instance()
virtual sigc::signal< void, int > & signal_oscilloscope_post_pre()
GxMachineRemote(gx_system::CmdlineOptions &options)
void set_statefilename(const std::string &fn)
virtual void tuner_switcher_deactivate()
void set_jack(gx_jack::GxJack *jack)
virtual void bank_reorder(const std::vector< Glib::ustring > &neworder)
virtual void clear_oscilloscope_buffer()
void load_preset(PresetFile *pf, const Glib::ustring &name)
virtual void plugin_preset_list_load(const PluginDef *pdef, gx_preset::UnitPresetList &presetnames)
void(* create_mid_rackknob)(const char *id, const char *label)
virtual sigc::signal< void, bool > & tuner_switcher_signal_selection_done()
Plugin * lookup_plugin(const std::string &id) const
virtual int get_bank_index(const Glib::ustring &bank)
virtual Parameter & get_parameter(const char *p)
void(* openVerticalBox2)(const char *label)
virtual sigc::signal< void, GxEngineState > & signal_state_change()
sigc::signal< void, int > & signal_new_bank()
virtual const Glib::ustring & get_current_bank()
const std::string & id_effect_post_pre() const
virtual void writeJSON(gx_system::JsonWriter &jw) const
virtual void pf_insert_after(gx_system::PresetFileGui &pf, const Glib::ustring &src, gx_system::PresetFileGui &pftgt, const Glib::ustring &pos, const Glib::ustring &name)
virtual gx_system::CmdlineOptions & get_options() const
virtual const char * what() const
FloatParameter * reg_par(const string &id, const string &name, float *var, float std, float lower, float upper, float step)
MidiControllerList controller_map
virtual void midi_deleteParameter(Parameter ¶m)
void set_state(GxEngineState state)
sigc::signal< void, bool > & signal_rack_unit_order_changed()
virtual void pf_save(gx_system::PresetFileGui &pf, const Glib::ustring &name)
virtual void commit_ladspa_changes()
void(* create_small_rackknob)(const char *id, const char *label)
virtual Parameter & get_parameter(const char *p)
sigc::signal< void, unsigned int > size_change
void readJSON_remote(gx_system::JsonParser &jp)
void update_plugin(Plugin *pvars)
virtual void create_default_scratch_preset()
virtual void load_ladspalist(std::vector< std::string > &old_not_found, ladspa::LadspaPluginList &pluginlist)
int get_index(const Glib::ustring &bank) const
virtual bool rename_preset(gx_system::PresetFileGui &pf, const Glib::ustring &oldname, const Glib::ustring &newname)
virtual void get_oscilloscope_info(int &load, int &frames, bool &is_rt, jack_nframes_t &bsize)
virtual void bank_drag_begin()
virtual void save_to_state(bool preserve_preset=false)
virtual bool midi_get_config_mode(int *ctl=0)
sigc::signal< void, GxEngineState > & signal_state_change()
virtual bool rename_bank(const Glib::ustring &oldname, Glib::ustring &newname)
void(* openpaintampBox)(const char *label)
virtual void setJSON_value()
std::vector< FileName > & get_listing()
virtual sigc::signal< void, int, int > & signal_midi_value_changed()
FloatParameter & getFloat()
void(* openHorizontalhideBox)(const char *label)
list< MidiController > midi_controller_list
virtual void plugin_preset_list_remove(const PluginDef *pdef, const Glib::ustring &name)
static float get(unsigned int channel)
virtual void tuner_switcher_toggle(bool v)
const char * engine_state_to_string(gx_engine::GxEngineState s)
virtual void plugin_preset_list_load(const PluginDef *pdef, gx_preset::UnitPresetList &presetnames)
virtual gx_system::PresetFileGui * get_current_bank_file()
virtual void insert_param(Glib::ustring group, Glib::ustring name)
virtual const Glib::ustring & get_current_bank()
virtual sigc::signal< void, const Glib::ustring &, const Glib::ustring & > & tuner_switcher_signal_display()
virtual void tuner_switcher_activate(bool v)
sigc::signal< void, bool > & signal_exit()
virtual bank_iterator bank_end()
virtual gx_system::PresetFileGui * bank_insert_new(const Glib::ustring &newname)
const jsonrpc_method_def jsonrpc_method_list[]
const string & get_instancename()
const GxJConvSettings & get_value() const
virtual void msend_midi_cc(int cc, int pgn, int bgn, int num)
int main(int argc, char *argv[])
virtual gx_system::PresetFileGui * get_bank_file(const Glib::ustring &bank) const
const Glib::ustring & get_current_name()
void(* create_feedback_slider)(const char *id, const char *label)
virtual void pluginlist_append_rack(UiBuilderBase &ui)
void(* create_spin_value)(const char *id, const char *label)
std::string get_temp_filepath(const std::string &basename) const
virtual void pf_save(gx_system::PresetFileGui &pf, const Glib::ustring &name)
virtual gx_system::PresetFileGui * bank_get_file(const Glib::ustring &bank) const
virtual GxEngineState get_state()
virtual sigc::signal< int, bool > & signal_oscilloscope_activation()
virtual void tuner_switcher_activate(bool v)
const Glib::ustring & get_setbank()
void print(const char *func, const std::string &msg, MsgType msgtype)
string current_value() const
virtual gx_system::PresetFileGui * bank_get_file(const Glib::ustring &bank) const
virtual void pluginlist_append_rack(UiBuilderBase &ui)
virtual sigc::signal< void, int > & signal_oscilloscope_post_pre()
virtual midi_controller_list & midi_get(int n)
sigc::signal< void, MidiAudioBuffer::Load > jack_load_change
virtual sigc::signal< void, Plugin *, PluginChange::pc > & signal_plugin_changed()
virtual void midi_set_config_mode(bool v, int ctl=-1)
void(* create_big_rackknob)(const char *id, const char *label)
void(* openHorizontalTableBox)(const char *label)
void(* set_next_flags)(int flags)
GxEngineState get_state()
virtual void insert_rack_unit(const std::string &unit, const std::string &before, PluginType type)
void load_online_presets()
void debug_trace_param(Parameter *p)
virtual const Glib::ustring & get_current_name()
virtual ~GxMachineRemote()
virtual sigc::signal< void, TunerSwitcher::SwitcherState > & tuner_switcher_signal_set_state()
EnumParameter & getEnum()
void plugin_preset_list_remove(const PluginDef *pdef, const Glib::ustring &name)
virtual gx_jack::GxJack * get_jack()
const Glib::ustring & get_name(int n)
virtual void set_state(GxEngineState state)
virtual int get_bank_index(const Glib::ustring &bank)
virtual gx_system::PresetFileGui * bank_insert_new(const Glib::ustring &newname)
sigc::signal< void, int > & signal_new_mute_state()
sigc::signal< void, const Glib::ustring & > & signal_changed()
virtual bool bank_check_reparse()
virtual void load_preset(gx_system::PresetFileGui *pf, const Glib::ustring &name)
sigc::signal< void, const GxSeqSettings * > & signal_changed()
virtual void reload_impresp_list(const std::string &path)
virtual void plugin_preset_list_set_on_idle(const PluginDef *pdef, bool factory, const Glib::ustring &name)
virtual void insert_param(Glib::ustring group, Glib::ustring name)
const Glib::ustring & get_value() const
bool group_exist(const string &id)
virtual sigc::signal< void > & signal_presetlist_changed()
virtual void save_to_state(bool preserve_preset=false)
virtual const std::vector< std::string > & get_rack_unit_order(PluginType type)
virtual void bank_set_flag(gx_system::PresetFileGui *pf, int flag, bool v)
virtual sigc::signal< void, unsigned int > & signal_oscilloscope_size_change()
virtual void tuner_switcher_deactivate()
float current_value_float()
virtual void erase_preset(gx_system::PresetFileGui &pf, const Glib::ustring &name)
sigc::signal< void, const Glib::ustring &, const Glib::ustring & > & signal_display()
virtual bool oscilloscope_plugin_box_visible()
bool set(float val) const
void(* create_simple_c_meter)(const char *id, const char *idl, const char *label)
void deleteParameter(Parameter ¶m)
virtual bool get_tuner_switcher_active()
virtual sigc::signal< void, TunerSwitcher::SwitcherState > & tuner_switcher_signal_set_state()
token next(token expect=no_token)
BoolParameter & getBool()
virtual void load_preset(gx_system::PresetFileGui *pf, const Glib::ustring &name)
void write(float v, bool nl=false)
void(* create_eq_rackslider_no_caption)(const char *id)
bool unit_has_std_values(const PluginDef *pdef) const
void add_time_measurement()
virtual void tuner_switcher_toggle(bool v)
virtual void plugin_preset_list_sync_set(const PluginDef *pdef, bool factory, const Glib::ustring &name)
virtual void request_midi_value_update()
const string & id() const
virtual void set_oscilloscope_mul_buffer(int a)
virtual bank_iterator bank_end()
void insert_before(PresetFile &pf, const Glib::ustring &src, PresetFile &pftgt, const Glib::ustring &pos, const Glib::ustring &name)
void(* create_switch)(const char *sw_type, const char *id, const char *label)
virtual std::string bank_get_filename(const Glib::ustring &bank)
virtual gx_jack::GxJack * get_jack()
void toggle(bool tuner_active)
virtual void reload_impresp_list(const std::string &path)
virtual void plugin_preset_list_set_on_idle(const PluginDef *pdef, bool factory, const Glib::ustring &name)
virtual void plugin_preset_list_remove(const PluginDef *pdef, const Glib::ustring &name)
const GxSeqSettings & get_value() const
const std::string & get_filename() const
EnumParameter * reg_non_midi_enum_par(const string &id, const string &name, const value_pair *vl, int *var, bool preset, int std=0)
virtual bool load_unit(gx_gui::UiBuilderImpl &builder, PluginDef *pdef)
virtual void load_impresp_dirs(std::vector< gx_system::FileName > &dirs)
void(* openVerticalBox1)(const char *label)
void request_midi_value_update()
virtual gx_system::CmdlineOptions & get_options() const
virtual sigc::signal< void, bool > & signal_oscilloscope_visible()
void append_rack(UiBuilderBase &ui)
sigc::signal< void, int > & signal_changed()
virtual sigc::signal< void > & signal_presetlist_changed()
virtual sigc::signal< int, bool > & signal_oscilloscope_activation()
void readJSON(gx_system::JsonParser &jp)
void set_mul_buffer(int a, unsigned int b)
virtual void pf_insert_before(gx_system::PresetFileGui &pf, const Glib::ustring &src, gx_system::PresetFileGui &pftgt, const Glib::ustring &pos, const Glib::ustring &name)
virtual gx_system::PresetFileGui * get_current_bank_file()
virtual void create_default_scratch_preset()
void(* create_master_slider)(const char *id, const char *label)
jack_nframes_t get_time_is()
virtual sigc::signal< void, const Glib::ustring &, const Glib::ustring & > & tuner_switcher_signal_display()
void end_object(bool nl=false)
void reset_unit(const PluginDef *pdef) const
virtual void midi_deleteParameter(Parameter ¶m)
virtual sigc::signal< void > & signal_selection_changed()
virtual const float * get_oscilloscope_buffer()
const Glib::ustring & get_current_bank()
void save_to_state(bool preserve_preset=false)
void(* create_selector_no_caption)(const char *id)
virtual bool convert_preset(gx_system::PresetFileGui &pf)
void(* openVerticalBox)(const char *label)
void plugin_preset_list_set(const PluginDef *pdef, bool factory, const Glib::ustring &name)
void reorder_preset(PresetFile &pf, const std::vector< Glib::ustring > &neworder)
virtual void writeJSON(gx_system::JsonWriter &jw) const
virtual bool convert_preset(gx_system::PresetFileGui &pf)
void erase_preset(const Glib::ustring &name)
virtual sigc::signal< void, Plugin *, PluginChange::pc > & signal_plugin_changed()
virtual bool oscilloscope_plugin_box_visible()
virtual sigc::signal< void, bool > & signal_oscilloscope_visible()