Go to the documentation of this file.
21 #include "jsonrpc_methods.h"
22 #include <netinet/in.h>
23 #include <netinet/tcp.h>
24 #include <sys/ioctl.h>
25 #include <sys/types.h>
26 #include <sys/socket.h>
28 #include <bluetooth/bluetooth.h>
29 #include <bluetooth/rfcomm.h>
32 #if !defined(__APPLE__) && !defined(__FreeBSD__)
36 if (mlockall(MCL_CURRENT | MCL_FUTURE))
38 #if defined(M_TRIM_THRESHOLD) && defined(M_MMAP_MAX)
39 mallopt(M_TRIM_THRESHOLD, -1);
40 mallopt(M_MMAP_MAX, 0);
52 extern char __rt_text__start[], __rt_text__end[];
53 extern char __rt_data__start[], __rt_data__end[];
58 { __rt_text__start, __rt_text__end - __rt_text__start },
59 { __rt_data__start, __rt_data__end - __rt_data__start },
61 long int total_size = 0;
63 for (
unsigned int i = 0; i <
sizeof(regions)/
sizeof(regions[0]); i++) {
64 total_size +=regions[i].len;
65 if (mlock(regions[i].
start, regions[i].len) != 0) {
68 boost::format(_(
"failed to lock memory: %1%")) % strerror(errno));
72 fprintf(stderr,
"mlock %ld bytes\n",total_size);
79 extern char __rt_text__start[], __rt_text__end[];
80 extern char __rt_data__start[], __rt_data__end[];
85 { __rt_text__start, __rt_text__end - __rt_text__start },
86 { __rt_data__start, __rt_data__end - __rt_data__start },
88 long int total_size = 0;
89 for (
unsigned int i = 0; i <
sizeof(regions)/
sizeof(regions[0]); i++) {
90 total_size +=regions[i].len;
91 if (munlock(regions[i].
start, regions[i].len) != 0) {
94 boost::format(_(
"failed to unlock memory: %1%")) % strerror(errno));
98 fprintf(stderr,
"munlock %ld bytes\n",total_size);
147 engine.controller_map, engine),
148 tuner_switcher(settings, engine),
153 pmap(engine.get_param()) {
161 {
"other",
"other" },
162 {
"qjackctl",
"qjackctl" },
163 {
"autostart",
"autostart" },
167 "ui.jack_starter_idx",
"", starter,
static_cast<int*
>(0),
false, 1);
169 pmap.
reg_string(
"ui.jack_starter",
"", 0,
"");
173 static const value_pair streaming_labels[] = {{
"scale"}, {
"stream"}, {0}};
174 pmap.
reg_non_midi_enum_par(
"racktuner.streaming",
"Streaming Mode", streaming_labels, (
int*)0,
false, 1);
175 static const value_pair tuning_labels[] = {{
"(Chromatic)"},{
"Standard"}, {
"Standard/Es"}, {
"Open E"},
176 {
"Drop D"},{
"Half Step Down"},{
"Full Step Down"},{
"1 and 1/2 Steps Down"},{
"Double Drop D"},{
"Drop C"},
177 {
"Drop C#"},{
"Drop B"},{
"Drop A#"},{
"Drop A"},{
"Open D"},{
"Open D Minor"}, {
"Open G"},{
"Open G Minor"},
178 {
"Open C"},{
"Open C#"},{
"Open C Minor"},{
"Open E7"},{
"Open E Minor7"},{
"Open G Major7"},{
"Open A Minor"},
179 {
"Open A Minor7"},{
"Open A"},{
"C Tuning"},{
"C# Tuning"},{
"Bb Tuning"},{
"A to A (Baritone)"},{
"Open Dsus2"},
180 {
"Open Gsus2"},{
"G6"},{
"Modal G"},{
"Overtone"},{
"Pentatonic"},{
"Minor Third"},{
"Major Third"},{
"All Fourths"},
181 {
"Augmented Fourths"},{
"Slow Motion"},{
"Admiral"},{
"Buzzard"},{
"Face"},{
"Four and Twenty"},{
"Ostrich"},{
"Capo 200"},
182 {
"Balalaika"},{
"Cittern One"},{
"Cittern Two"},{
"Dobro"},{
"Lefty"},{
"Mandoguitar"},{
"Rusty Cage"},{
"Hardcore"}, {0}};
184 static const value_pair tuning_temperament[] = {{
"12-ET"},{
"19-ET"},{
"24-ET"},{
"31-ET"},{
"53-ET"}, {0}};
185 pmap.
reg_non_midi_enum_par(
"racktuner.temperament",
"Temperament", tuning_temperament, (
int*)0,
false, 0);
187 pmap.
reg_par_non_preset(
"ui.tuner_reference_pitch",
"?Tuner Reference Pitch", 0, 440, 225, 453, 0.1);
190 static const value_pair midi_channels[] = {{
"--"},{
"1"},{
"2"},{
"3"},{
"4"},{
"5"},{
"6"},{
"7"},{
"8"},{
"9"},{
"10"},
191 {
"11"},{
"12"},{
"13"},{
"14"},{
"15"},{
"16"}, {0}};
195 pmap.
reg_par(
"ui.live_play_switcher",
"Liveplay preset mode" , (
bool*)0,
false,
false)->
setSavable(
false);
196 pmap.
reg_par(
"ui.racktuner",
N_(
"Tuner on/off"), (
bool*)0,
false,
false);
200 pmap.
reg_par_non_preset(
"ui.liveplay_brightness",
"?liveplay_brightness", 0, 1.0, 0.5, 1.0, 0.01);
201 pmap.
reg_par_non_preset(
"ui.liveplay_background",
"?liveplay_background", 0, 0.8, 0.0, 1.0, 0.01);
202 pmap.
reg_par(
"engine.next_preset",
"Switch to next preset" , (
bool*)0,
false,
false)->
setSavable(
false);
203 pmap.
reg_par(
"engine.previus_preset",
"Switch to previous preset" , (
bool*)0,
false,
false)->
setSavable(
false);
221 "engine.insert",
N_(
"switch insert ports on/off"), (
bool*)0,
false,
false)->
getBool();
227 for (gx_preset::UnitPresetList::iterator i = presetnames.begin(); i != presetnames.end(); ++i) {
228 if (!i->name.empty()) {
229 Glib::ustring
id =
"seq." + i->name;
230 Glib::ustring tb =
"switch to preset " + i->name;
232 id, tb, (
bool*)0,
false,
false)->
getBool();
246 sigc::mem_fun(
this, &GxMachine::do_program_change));
248 sigc::mem_fun(
this, &GxMachine::set_mute_state));
250 sigc::mem_fun(
this, &GxMachine::do_bank_change));
251 pmap[
"ui.live_play_switcher"].signal_changed_bool().connect(
252 sigc::mem_fun(
this, &GxMachine::edge_toggle_tuner));
254 sigc::mem_fun(
this, &GxMachine::on_jack_load_change));
256 pmap[
"engine.next_preset"].signal_changed_bool().connect(
258 pmap[
"engine.previus_preset"].signal_changed_bool().connect(
275 Glib::ustring tb =
"switch to preset " + name;
276 Glib::ustring
id = group +
"." + name;
278 id, tb, (
bool*)0,
false,
false)->
getBool();
284 void GxMachine::on_jack_load_change() {
292 void GxMachine::edge_toggle_tuner(
bool v) {
314 Glib::signal_idle().connect_once(
322 Glib::signal_idle().connect_once(
328 void GxMachine::do_program_change(
int pgm) {
330 if ((bank != switch_bank) && !switch_bank.empty()) {
333 bool in_preset = !bank.empty();
337 in_preset = pgm < f->
size();
351 void GxMachine::reset_switch_bank() {
355 void GxMachine::do_bank_change(
int pgm) {
358 Glib::signal_timeout().connect_once(
359 sigc::mem_fun(
this,&GxMachine::reset_switch_bank), 50);
365 void GxMachine::set_mute_state(
int mute) {
382 pluginlist.
load(options, old_not_found);
386 pluginlist.
save(options);
456 for (
int i = 0; i < channels; i++) {
460 for (
int i = 0; i < channels; i++) {
477 void GxMachine::exit_handler(
bool otherthread) {
486 delete avahi_service;
497 sock =
new GxService(settings, jack, tuner_switcher, quit_mainloop, host, &port);
500 sigc::mem_fun(*
this, &GxMachine::exit_handler));
503 std::string name =
"Guitarix";
600 int GxMachine::get_bank_num(Glib::ustring num) {
601 Glib::ustring array =
"abcdefghijklmnopqrstuvwxyz" ;
604 if(num.compare(array.substr(i,1))==0)
break;
616 #ifdef USE_MIDI_CC_OUT
632 int bl = get_bank_num(sbank.substr(0,1).lowercase());
633 int pgm =
max(0,atoi(sbank.substr(2,Glib::ustring::npos).raw().c_str())-1);
635 do_program_change(pgm);
672 Glib::signal_idle().connect_once(
764 settings.
append(pf, src, pftgt, name);
788 settings.
save(pf, name);
815 return pmap.
hasId(p);
819 return pmap.
hasId(
id);
831 pmap[id].getInt().set(value);
835 pmap[id].getBool().set(value);
847 pmap[id].getFloat().set(value);
851 pmap[id].getString().set(value);
854 int GxMachine::_get_parameter_value_int(
const std::string&
id) {
855 return pmap[id].getInt().get_value();
858 int GxMachine::_get_parameter_value_bool(
const std::string&
id) {
859 return pmap[id].getBool().get_value();
862 float GxMachine::_get_parameter_value_float(
const std::string&
id) {
863 return pmap[id].getFloat().get_value();
866 std::string GxMachine::_get_parameter_value_string(
const std::string&
id) {
867 return pmap[id].getString().get_value();
870 sigc::signal<void, int>& GxMachine::_signal_parameter_value_int(
const std::string&
id) {
871 return pmap[id].signal_changed_int();
874 sigc::signal<void, bool>& GxMachine::_signal_parameter_value_bool(
const std::string&
id) {
875 return pmap[id].signal_changed_bool();
878 sigc::signal<void, float>& GxMachine::_signal_parameter_value_float(
const std::string&
id) {
879 return pmap[id].signal_changed_float();
924 bool toggle,
int toggle_behaviour) {
938 void GxMachine::on_impresp(
const std::string& path) {
944 Glib::signal_idle().connect_once(
946 sigc::mem_fun(
this, &GxMachine::on_impresp), path));
954 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer) {
955 return gx_engine::read_audio(filename, audio_size, audio_chan, audio_type, audio_form, audio_rate, buffer);
964 #define START_NOTIFY(m) { start_call(RPNM_##m)
966 #define START_NOTIFY(m) { const jsonrpc_method_def& _md = start_call(RPNM_##m)
969 #define SEND() assert(!_md.has_result); send(); }
971 #define START_CALL(m) { const jsonrpc_method_def& _md = start_call(RPCM_##m)
973 #define START_RECEIVE(s) assert(_md.has_result); send(); { \
974 gx_system::JsonStringParser *jp = receive();\
975 if (!jp) { return s; }\
978 #define END_RECEIVE(s) } catch (const gx_system::JsonException& e) { report_rpc_error(jp, e, _md.name); } \
988 engine_state_change(),
990 presetlist_changed(),
999 midi_value_changed(),
1002 bank_drag_get_counter(),
1003 bank_drag_get_path(),
1004 oscilloscope_activation(),
1005 oscilloscope_size_change(),
1006 oscilloscope_buffer(0),
1007 oscilloscope_buffer_size(0),
1008 tuner_switcher_display(),
1009 tuner_switcher_set_state(),
1010 tuner_switcher_selection_done() {
1014 create_tcp_socket();
1016 socket->set_blocking(
true);
1018 writebuf =
new boost::iostreams::file_descriptor_sink;
1019 writebuf->open(socket->get_fd(),boost::iostreams::never_close_handle);
1022 os =
new boost::iostreams::stream<boost::iostreams::file_descriptor_sink>(*writebuf);
1030 current_bank = pmap[
"system.current_bank"].getString().get_value();
1031 current_preset = pmap[
"system.current_preset"].getString().get_value();
1042 midi_controller_map.
readJSON(*jp, pmap);
1045 jw->
write(
"preset");
1048 jw->
write(
"display");
1050 jw->
write(
"presetlist_changed");
1051 jw->
write(
"logger");
1053 jw->
write(
"oscilloscope");
1054 jw->
write(
"jack_load");
1056 jw->
write(
"plugins_changed");
1058 jw->
write(
"units_changed");
1074 const char *q = getenv(
"GUITARIX_TRACE");
1078 if (*q && q != p->
id()) {
1081 cerr <<
"set " << p->
id() <<
" = ";
1084 }
else if (p->
isBool()) {
1091 cerr << dynamic_cast<JConvParameter*>(p)->get_value().getFullIRPath();
1093 cerr <<
"SeqParameter";
1098 cerr <<
" (blocked)";
1105 void GxMachineRemote::create_bluetooth_socket(
const Glib::ustring& bdaddr) {
1106 struct sockaddr_rc addr = { 0 };
1107 addr.rc_family = AF_BLUETOOTH;
1108 str2ba(bdaddr.c_str(), &addr.rc_bdaddr);
1110 for (
int channel = 1; channel <= 9; channel++) {
1111 addr.rc_channel = (uint8_t)channel;
1112 int s = ::socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
1113 if (connect(s, (
const struct sockaddr *)&addr,
sizeof(addr)) < 0) {
1116 if (error != EBUSY) {
1120 socket = Gio::Socket::create_from_fd(s);
1126 Glib::ustring::compose(
1127 _(
"Remote Connection: cannot connect to bluetooth %1: %2"),
1128 bdaddr, strerror_r(error, buf,
sizeof(buf))));
1130 #else // !HAVE_BLUEZ
1131 void GxMachineRemote::create_bluetooth_socket(
const Glib::ustring& bdaddr) {
1134 _(
"Bluetooth not available; rebuild Guitarix with Bluetooth support"));
1136 #endif // HAVE_BLUEZ
1138 void GxMachineRemote::create_tcp_socket() {
1139 socket = Gio::Socket::create(Gio::SOCKET_FAMILY_IPV4, Gio::SOCKET_TYPE_STREAM, Gio::SOCKET_PROTOCOL_TCP);
1141 if (setsockopt(socket->get_fd(), IPPROTO_TCP, TCP_NODELAY, &
flag,
sizeof(
int)))
1142 gx_print_error(
"GxMachineRemote",
"setsockopt(IPPROTO_TCP, TCP_NODELAY) failed");
1143 typedef std::vector< Glib::RefPtr<Gio::InetAddress> > adr_list;
1146 al = Gio::Resolver::get_default()->lookup_by_name(options.
get_rpcaddress());
1147 }
catch (Glib::Error& e) {
1152 for (adr_list::iterator i = al.begin(); i != al.end(); ++i) {
1154 socket->connect(Gio::InetSocketAddress::create(*i, options.
get_rpcport()));
1156 }
catch (Gio::Error& e) {
1166 void GxMachineRemote::param_signal(Parameter *p) {
1168 if (p->get_blocked()) {
1174 jw->
write(p->getInt().get_value());
1175 }
else if (p->isBool()) {
1176 jw->
write(p->getBool().get_value());
1177 }
else if (p->isFloat()) {
1178 jw->
write(p->getFloat().get_value());
1179 }
else if (p->isString()) {
1180 jw->
write(p->getString().get_value());
1193 p.set_blocked(
true);
1196 switch (jp->
next()) {
1198 v =
dynamic_cast<FloatEnumParameter*
>(&p)->idx_from_id(jp->
current_value());
1207 p.getFloat().set(v);
1208 }
else if (p.isInt()) {
1210 switch (jp->
next()) {
1222 }
else if (p.isBool()) {
1225 }
else if (p.isString()) {
1228 }
else if (p.isFile()) {
1229 cerr <<
"change file parameter " << p.id() << endl;
1233 pj->setJSON_value();
1237 pj->setJSON_value();
1239 cerr <<
"change special type parameter " << p.id() << endl;
1241 p.set_blocked(
false);
1249 if (method ==
"state_changed") {
1252 }
else if (method ==
"message") {
1262 }
else if (method ==
"preset_changed") {
1268 current_bank = new_bank;
1269 current_preset = new_preset;
1270 selection_changed();
1271 }
else if (method ==
"presetlist_changed") {
1276 presetlist_changed();
1277 }
else if (method ==
"set") {
1280 parameter_changed(jp);
1282 }
else if (method ==
"rack_units_changed") {
1286 std::vector<std::string>& l = (stereo ? rack_units.
stereo : rack_units.
mono);
1294 }
else if (method ==
"midi_changed") {
1295 midi_controller_map.
readJSON(*jp, pmap);
1297 }
else if (method ==
"midi_value_changed") {
1304 midi_value_changed(ctl, value);
1305 }
else if (method ==
"osc_activation") {
1308 }
else if (method ==
"osc_size_changed") {
1311 if (oscilloscope_buffer_size != sz) {
1312 delete oscilloscope_buffer;
1313 oscilloscope_buffer =
new float[sz];
1314 oscilloscope_buffer_size = sz;
1316 oscilloscope_size_change(sz);
1317 }
else if (method ==
"show_tuner") {
1320 }
else if (method ==
"set_display_state") {
1334 tuner_switcher_set_state(state);
1335 }
else if (method ==
"display_bank_preset") {
1340 }
else if (method ==
"impresp_list") {
1341 std::vector<gx_system::FileName> l;
1353 }
else if (method ==
"plugins_changed") {
1355 }
else if (method ==
"jack_load_changed") {
1358 }
else if (method ==
"server_shutdown") {
1365 static int socket_get_available_bytes(
const Glib::RefPtr<Gio::Socket>& socket) {
1368 ioctl(socket->get_fd(), FIONREAD, &avail);
1369 int ret = ioctl(socket->get_fd(), FIONREAD, &avail);
1376 bool GxMachineRemote::socket_input_handler(Glib::IOCondition cond) {
1377 if (cond & (Glib::IO_HUP|Glib::IO_ERR|Glib::IO_NVAL)) {
1381 int n = socket_get_available_bytes(socket);
1391 n = socket->receive(buf,
sizeof(buf));
1392 }
catch(Glib::Error& e) {
1414 cerr <<
"JsonException: " << e.
what() <<
": '" << jp->
get_string() <<
"'" << endl;
1418 int avail = socket_get_available_bytes(socket);
1422 }
else if (avail < 0) {
1447 void GxMachineRemote::send() {
1459 cerr <<
"RPC Error in " << method <<
"(): ";
1461 cerr <<
"RPC Error: ";
1467 bool GxMachineRemote::idle_notify_handler() {
1468 for (
unsigned int i = 0; i < notify_list.size(); ++i) {
1473 notify_list.clear();
1477 void GxMachineRemote::add_idle_handler() {
1478 if (!idle_conn.connected()) {
1479 idle_conn = Glib::signal_idle().connect(
1480 sigc::mem_fun(
this, &GxMachineRemote::idle_notify_handler));
1487 Glib::ustring message;
1501 Glib::ustring::compose(
"RPC error %1 : %2", code, message));
1504 void GxMachineRemote::socket_error(
int loc) {
1505 if (!socket->is_closed()) {
1508 gx_print_fatal(
"Network", Glib::ustring::compose(
"Server has closed connection (%1)", loc));
1520 n = socket->receive(buf,
sizeof(buf));
1521 }
catch(Glib::Error& e) {
1522 cerr <<
"Glib receive error: " << e.what() << endl;
1544 assert(jp_ret == 0);
1548 notify_list.push_back(jp);
1551 if (n == 0 && jp_ret) {
1553 throw_error(jp_ret);
1563 report_rpc_error(jp, e);
1637 plugin_changed(p, c);
1640 Plugin *p =
new Plugin(*jp, pmap);
1646 plugin_changed(p, c);
1664 return plugin_changed;
1698 int GxMachineRemote::load_remote_ui_static (
const UiBuilder& builder,
int form) {
1700 return m->load_remote_ui(builder, form);
1703 int GxMachineRemote::load_remote_ui(
const UiBuilder& builder,
int form) {
1720 }
else if (jp->
current_value() ==
"openHorizontalhideBox") {
1722 }
else if (jp->
current_value() ==
"openHorizontalTableBox") {
1738 std::string
id = next_string(jp);
1739 std::string lab = next_string(jp);
1741 }
else if (jp->
current_value() ==
"create_small_rackknob") {
1742 std::string
id = next_string(jp);
1743 std::string lab = next_string(jp);
1745 }
else if (jp->
current_value() ==
"create_small_rackknobr") {
1746 std::string
id = next_string(jp);
1747 std::string lab = next_string(jp);
1750 std::string
id = next_string(jp);
1751 std::string lab = next_string(jp);
1754 std::string
id = next_string(jp);
1755 std::string lab = next_string(jp);
1757 }
else if (jp->
current_value() ==
"create_feedback_slider") {
1758 std::string
id = next_string(jp);
1759 std::string lab = next_string(jp);
1761 }
else if (jp->
current_value() ==
"create_selector_no_caption") {
1762 std::string
id = next_string(jp);
1765 std::string
id = next_string(jp);
1766 std::string lab = next_string(jp);
1769 std::string
id = next_string(jp);
1771 }
else if (jp->
current_value() ==
"create_simple_c_meter") {
1772 std::string
id = next_string(jp);
1773 std::string idl = next_string(jp);
1774 std::string lab = next_string(jp);
1777 std::string
id = next_string(jp);
1778 std::string lab = next_string(jp);
1780 }
else if (jp->
current_value() ==
"create_switch_no_caption") {
1781 std::string sw_type = next_string(jp);
1782 std::string
id = next_string(jp);
1784 }
else if (jp->
current_value() ==
"create_feedback_switch") {
1785 std::string sw_type = next_string(jp);
1786 std::string
id = next_string(jp);
1789 std::string sw_type = next_string(jp);
1790 std::string
id = next_string(jp);
1791 std::string idf = next_string(jp);
1794 std::string sw_type = next_string(jp);
1795 std::string
id = next_string(jp);
1796 std::string lab = next_string(jp);
1797 builder.
create_switch(sw_type.c_str(),
id.c_str(), lab.c_str());
1799 std::string
id = next_string(jp);
1800 std::string lab = next_string(jp);
1803 std::string
id = next_string(jp);
1804 std::string lab = next_string(jp);
1807 std::string
id = next_string(jp);
1808 std::string idl = next_string(jp);
1809 std::string idh = next_string(jp);
1811 }
else if (jp->
current_value() ==
"create_simple_spin_value") {
1812 std::string
id = next_string(jp);
1814 }
else if (jp->
current_value() ==
"create_eq_rackslider_no_caption") {
1815 std::string
id = next_string(jp);
1823 cerr <<
"unknown uiBuilder function " << jp->
current_value() << endl;
1834 pdef->
load_ui = load_remote_ui_static;
1852 return get_bool(jp);
1857 return oscilloscope_buffer;
1870 return pmap[
"oscilloscope.pp"].signal_changed_int();
1874 return pmap[
"ui.oscilloscope"].signal_changed_bool();
1878 return oscilloscope_activation;
1882 return oscilloscope_size_change;
1895 jw->
write(channels);
1898 for (
int i = 0; i < channels; i++) {
1923 if (oscilloscope_buffer_size != sz) {
1924 delete oscilloscope_buffer;
1925 oscilloscope_buffer =
new float[sz];
1926 oscilloscope_buffer_size = sz;
1927 oscilloscope_size_change(sz);
1930 float *p = oscilloscope_buffer;
1952 return tuner_switcher_display;
1956 return tuner_switcher_set_state;
1960 return tuner_switcher_selection_done;
1964 return engine_state_change;
1975 std::vector<std::string>& l = (stereo ? rack_units.
stereo : rack_units.
mono);
1988 cerr <<
"JsonException: " << e.
what() <<
": '" << jp->get_string() <<
"'" << endl;
2018 return get_bool(jp);
2057 Glib::signal_idle().connect_once(
2065 Glib::signal_idle().connect_once(
2076 static const Glib::ustring empty_string;
2079 return current_bank;
2087 return current_preset;
2113 #ifdef USE_MIDI_CC_OUT
2131 return banks.
size();
2187 Glib::signal_idle().connect_once(
2211 return selection_changed;
2215 return presetlist_changed;
2221 Glib::RefPtr<Gio::File> rem = Gio::File::create_for_uri(uri);
2222 fstream f(rem->get_path().c_str());
2272 bool ret = get_bool(jp);
2276 pf.entries[idx].name = newname;
2284 for (std::vector<Glib::ustring>::const_iterator i = neworder.begin(); i != neworder.end(); ++i) {
2294 for (std::vector<Glib::ustring>::const_iterator i = neworder.begin(); i != neworder.end(); ++i) {
2299 for (std::vector<Glib::ustring>::const_iterator i = neworder.begin(); i != neworder.end(); ++i) {
2300 pf.entries[n++].name = *i;
2302 presetlist_changed();
2308 return get_bool(jp);
2318 if (i->name == name) {
2319 pf.entries.erase(i);
2331 pf->set_flag(
flag, v);
2339 switch (bank_drag_get_counter) {
2341 bank_drag_get_counter++;
2344 bank_drag_get_counter++;
2350 Glib::RefPtr<Gio::File> target = Gio::File::create_for_path(
2352 Gio::File::create_for_path(jp->
current_value())->get_basename()));
2354 Glib::RefPtr<Gio::FileOutputStream> s = target->replace(
2355 "",
false, Gio::FILE_CREATE_REPLACE_DESTINATION);
2359 bank_drag_get_path = target->get_path();
2362 return bank_drag_get_path;
2366 bank_drag_get_counter = 0;
2367 bank_drag_get_path.clear();
2375 return banks.
begin();
2401 if (i->name == pos) {
2417 if (i->name == pos) {
2428 bool ret = get_bool(jp);
2441 bool ret = get_bool(jp);
2443 banks.banklist.remove(f);
2485 Glib::ustring
id = group +
"." + name;
2486 Glib::ustring tb =
"switch to preset " + name;
2491 if (!pmap.
hasId(
id)) {
2495 id, tb, (
bool*)0,
false,
false)->
getBool();
2499 pmap[id].signal_changed_bool().connect(sigc::hide(
2509 }
else if (p->
isInt()) {
2512 }
else if (p->
isBool()) {
2518 }
else if (p->
isFile()) {
2524 }
else if (
dynamic_cast<SeqParameter*
>(i->second) != 0) {
2529 selection_changed();
2530 Glib::signal_io().connect(
2531 sigc::mem_fun(
this, &GxMachineRemote::socket_input_handler),
2532 socket->get_fd(), Glib::IO_IN);
2534 if (i->second->isInt()) {
2535 i->second->getInt().signal_changed().connect(
2538 sigc::mem_fun(
this, &GxMachineRemote::param_signal), i->second)));
2539 }
else if (i->second->isBool()) {
2540 i->second->getBool().signal_changed().connect(
2543 sigc::mem_fun(
this, &GxMachineRemote::param_signal), i->second)));
2544 }
else if (i->second->isFloat()) {
2545 i->second->getFloat().signal_changed().connect(
2548 sigc::mem_fun(
this, &GxMachineRemote::param_signal), i->second)));
2549 }
else if (i->second->isString()) {
2550 i->second->getString().signal_changed().connect(
2553 sigc::mem_fun(
this, &GxMachineRemote::param_signal), i->second)));
2555 dynamic_cast<JConvParameter*
>(i->second)->signal_changed().connect(
2558 sigc::mem_fun(
this, &GxMachineRemote::param_signal), i->second)));
2559 }
else if (
dynamic_cast<SeqParameter*
>(i->second) != 0) {
2560 dynamic_cast<SeqParameter*
>(i->second)->signal_changed().connect(
2563 sigc::mem_fun(
this, &GxMachineRemote::param_signal), i->second)));
2569 return pmap.
hasId(p);
2573 return pmap.
hasId(
id);
2585 pmap[id].getInt().set(value);
2589 pmap[id].getBool().set(value);
2593 pmap[id].getFloat().set(value);
2597 if (!pmap[
id].getString().set(value)) {
2606 int GxMachineRemote::_get_parameter_value_int(
const std::string&
id) {
2613 switch (jp->
next()) {
2628 int GxMachineRemote::_get_parameter_value_bool(
const std::string&
id) {
2639 float GxMachineRemote::_get_parameter_value_float(
const std::string&
id) {
2646 switch (jp->
next()) {
2648 v =
dynamic_cast<FloatEnumParameter*
>(&pmap[id])->idx_from_id(jp->
current_value());
2661 std::string GxMachineRemote::_get_parameter_value_string(
const std::string&
id) {
2672 sigc::signal<void, int>& GxMachineRemote::_signal_parameter_value_int(
const std::string&
id) {
2673 return pmap[id].signal_changed_int();
2676 sigc::signal<void, bool>& GxMachineRemote::_signal_parameter_value_bool(
const std::string&
id) {
2677 return pmap[id].signal_changed_bool();
2680 sigc::signal<void, float>& GxMachineRemote::_signal_parameter_value_float(
const std::string&
id) {
2681 return pmap[id].signal_changed_float();
2689 bool ret = get_bool(jp);
2707 return midi_changed;
2711 return midi_value_changed;
2720 return midi_controller_map.size();
2724 return midi_controller_map[n];
2745 jw->
write(toggle_behaviour);
2784 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer) {
2786 jw->
write(filename);
2790 *audio_chan = *audio_type = *audio_form = *audio_rate = 0;
2806 *buffer =
new float[*audio_size * *audio_chan];
void save(gx_system::CmdlineOptions &options)
void gx_print_fatal(const char *, const std::string &)
bool get_box_visible() const
virtual gx_system::PresetFileGui * get_bank_file(const Glib::ustring &bank) const
void plugin_preset_list_set(const PluginDef *pdef, bool factory, const Glib::ustring &name)
void request_midi_value_update()
static GxExit & get_instance()
virtual void set_oscilloscope_mul_buffer(int a)
void set_current_control(int ctl)
sigc::signal< void > & signal_changed()
virtual void maxlevel_get(int channels, float *values)
virtual std::string bank_get_filename(const Glib::ustring &bank)
virtual void plugin_preset_list_save(const PluginDef *pdef, const Glib::ustring &name)
const Glib::ustring & get_setbank()
int get_current_control()
void insert_rack_unit(const std::string &unit, const std::string &before, bool stereo)
virtual void plugin_preset_list_save(const PluginDef *pdef, const Glib::ustring &name)
virtual void midi_set_config_mode(bool v, int ctl=-1)
void save(PresetFile &pf, const Glib::ustring &name)
void on_engine_mute_changed(bool s, GxEngine &engine)
void(* openHorizontalTableBox)(const char *label)
void readJSON(gx_system::JsonParser &jp, ParamMap ¶m)
void(* create_port_display)(const char *id, const char *label)
static string get_default_instancename()
virtual std::string bank_get_filename(const Glib::ustring &bank)
void set_replace_mode(bool mode)
void begin_object(bool nl=false)
void set_midi_channel(int s)
virtual Plugin * pluginlist_lookup_plugin(const std::string &id) const
virtual sigc::signal< void, int, int > & signal_midi_value_changed()
void reorder_preset(PresetFile &pf, const std::vector< Glib::ustring > &neworder)
virtual int midi_param2controller(Parameter ¶m, const MidiController **p)
FloatParameter * reg_par_non_preset(const string &id, const string &name, float *var, float std, float lower, float upper, float step)
void used_for_display(bool on)
void(* create_wheel)(const char *id, const char *label)
virtual void set_init_values()
virtual bool parameter_hasId(const char *p)
virtual void bank_set_flag(gx_system::PresetFileGui *pf, int flag, bool v)
gx_engine::GxEngineState string_to_engine_state(const std::string &s)
float get_maxlevel(unsigned int channel)
virtual void stop_socket()
virtual void set_state(GxEngineState state)
virtual void set_jack_insert(bool v)
virtual sigc::signal< void > & signal_midi_changed()
virtual void msend_midi_cc(int cc, int pgn, int bgn, int num)
void(* openVerticalBox)(const char *label)
virtual void set_statefilename(const std::string &fn)
virtual void next_preset_switch()
void set_config_mode(bool mode, int ctl=-1)
virtual int get_bank_index(const Glib::ustring &bank)
virtual sigc::signal< void, unsigned int > & signal_oscilloscope_size_change()
virtual void get_oscilloscope_info(int &load, int &frames, bool &is_rt, jack_nframes_t &bsize)
void print(const char *func, const std::string &msg, MsgType msgtype)
void(* create_switch_no_caption)(const char *sw_type, const char *id)
virtual gx_system::CmdlineOptions & get_options() const
std::vector< std::string > stereo
virtual sigc::signal< void, bool > & signal_oscilloscope_visible()
virtual GxEngineState get_state()
virtual sigc::signal< int, bool > & signal_oscilloscope_activation()
virtual void tuner_switcher_activate(bool v)
virtual bool oscilloscope_plugin_box_visible()
void(* create_mid_rackknob)(const char *id, const char *label)
MidiAudioBuffer midiaudiobuffer
virtual sigc::signal< void, TunerSwitcher::SwitcherState > & tuner_switcher_signal_set_state()
StringParameter * reg_string(const string &id, const string &name, Glib::ustring *var, const string &sv, bool preset=false)
virtual sigc::signal< void, int > & signal_oscilloscope_post_pre()
virtual void next_preset_switch()
virtual int get_oscilloscope_mul_buffer()
virtual void pf_save(gx_system::PresetFileGui &pf, const Glib::ustring &name)
void append(PresetFile &pf, const Glib::ustring &src, PresetFile &pftgt, const Glib::ustring &name)
const jsonrpc_method_def jsonrpc_method_list[]
virtual void reload_impresp_list(const std::string &path)
virtual bool bank_remove(const Glib::ustring &bank)
virtual void reset_unit(const PluginDef *pdef) const
virtual void plugin_preset_list_set_on_idle(const PluginDef *pdef, bool factory, const Glib::ustring &name)
StringParameter & getString()
virtual bool bank_remove(const Glib::ustring &bank)
sigc::signal< void, bool > & signal_exit()
virtual sigc::signal< void, bool > & signal_rack_unit_order_changed()
virtual Glib::ustring get_bank_name(int n)
virtual bool rename_bank(const Glib::ustring &oldname, Glib::ustring &newname)
virtual const Glib::ustring & get_current_name()
void insert_after(PresetFile &pf, const Glib::ustring &src, PresetFile &pftgt, const Glib::ustring &pos, const Glib::ustring &name)
sigc::signal< void, GxEngineState > & signal_state_change()
virtual void midi_set_current_control(int v)
virtual gx_jack::GxJack * get_jack()
virtual void midi_deleteParameter(Parameter ¶m)
virtual void load_preset(gx_system::PresetFileGui *pf, const Glib::ustring &name)
ParameterV< GxSeqSettings > SeqParameter
virtual sigc::signal< void > & signal_presetlist_changed()
void(* create_p_display)(const char *id, const char *idl, const char *idh)
virtual bank_iterator bank_end()
virtual bool get_tuner_switcher_active()
int param2controller(Parameter ¶m, const MidiController **p)
virtual void reload_impresp_list(const std::string &path)
jack_nframes_t get_time_is()
sigc::signal< void, bool > & signal_selection_done()
int get_index(const Glib::ustring &bank) const
virtual void plugin_preset_list_set_on_idle(const PluginDef *pdef, bool factory, const Glib::ustring &name)
virtual sigc::signal< void, bool > & signal_rack_unit_order_changed()
bool remove_bank(const Glib::ustring &bank)
int param2controller(Parameter ¶m, const MidiController **p)
virtual void insert_rack_unit(const std::string &unit, const std::string &before, PluginType type)
virtual Glib::ustring get_bank_name(int n)
virtual void disable_autosave(bool v)
virtual void tuner_switcher_toggle(bool v)
sigc::signal< void, int > & signal_changed_int()
string current_value() const
void(* openVerticalBox2)(const char *label)
list< MidiController > midi_controller_list
void plugin_preset_list_save(const PluginDef *pdef, const Glib::ustring &name)
void readJSON(gx_system::JsonParser &jp)
virtual bool convert_preset(gx_system::PresetFileGui &pf)
void erase_preset(const Glib::ustring &name)
virtual void start_socket(sigc::slot< void > quit_mainloop, const Glib::ustring &host, int port)
void plugin_preset_list_load(const PluginDef *pdef, UnitPresetList &presetnames)
virtual void save_ladspalist(ladspa::LadspaPluginList &pluginlist)
const GxJConvSettings & get_value() const
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 bool oscilloscope_plugin_box_visible()
void write(float v, bool nl=false)
virtual void clear_oscilloscope_buffer()
virtual void midi_deleteParameter(Parameter ¶m)
virtual bank_iterator bank_begin()
void(* openpaintampBox)(const char *label)
void(* create_feedback_slider)(const char *id, const char *label)
void append_rack(UiBuilderBase &ui)
virtual bool parameter_unit_has_std_values(const PluginDef *pdef) const
virtual float get_tuner_freq()
virtual void previus_preset_switch()
virtual void tuner_used_for_display(bool on)
virtual const char * what() const
virtual bool get_tuner_switcher_active()
virtual void set_midi_channel(int s)
void plugin_preset_list_remove(const PluginDef *pdef, const Glib::ustring &name)
virtual void plugin_preset_list_sync_set(const PluginDef *pdef, bool factory, const Glib::ustring &name)
virtual Parameter & get_parameter(const char *p)
sigc::signal< void, MidiAudioBuffer::Load > jack_load_change
std::vector< PluginPresetEntry > UnitPresetList
sigc::signal< void, int > & signal_new_program()
virtual void set_parameter_value(const std::string &id, int value)
GxEngineState get_state()
virtual void tuner_switcher_deactivate()
virtual void bank_reorder(const std::vector< Glib::ustring > &neworder)
const GxSeqSettings & get_value() const
virtual void bank_drag_begin()
virtual midi_controller_list & midi_get(int n)
const 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 > & signal_midi_changed()
sigc::signal< void, float > & signal_changed()
void update_plugin(Plugin *pvars)
std::vector< Position >::iterator iterator
void plugin_preset_list_sync_set(const PluginDef *pdef, bool factory, const Glib::ustring &name)
void(* openFrameBox)(const char *label)
virtual sigc::signal< void > & signal_presetlist_changed()
virtual bank_iterator bank_end()
void reset_unit(const PluginDef *pdef) const
virtual bool midi_get_config_mode(int *ctl=0)
virtual gx_system::CmdlineOptions & get_options() const
gx_system::PresetFile * bank_insert_uri(const Glib::ustring &uri, bool move)
virtual void load_impresp_dirs(std::vector< gx_system::FileName > &dirs)
virtual const Glib::ustring & get_current_bank()
sigc::signal< void, const GxSeqSettings * > & signal_changed()
sigc::signal< void > & signal_selection_changed()
void insert(const string &id, const string &group)
gx_system::PresetFile * bank_insert_new(const Glib::ustring &name)
virtual int get_oscilloscope_mul_buffer()
virtual bool midi_get_config_mode(int *ctl=0)
MidiControllerList controller_map
virtual sigc::signal< void, Plugin *, PluginChange::pc > & signal_plugin_changed()
sigc::signal< void > & signal_presetlist_changed()
void insert(PresetFile *f)
virtual gx_system::PresetFileGui * get_current_bank_file()
void unregister(Parameter *p)
virtual void set_oscilloscope_mul_buffer(int a)
void(* create_fload_switch)(const char *sw_type, const char *id, const char *idf)
virtual bool bank_check_reparse()
bool convert_preset(PresetFile &pf)
virtual void pluginlist_append_rack(UiBuilderBase &ui)
void end_object(bool nl=false)
sigc::signal< int, bool > activation
virtual bank_iterator bank_begin()
void update_maxlevel(CmdConnection *cmd=0)
void ladspaloader_update_plugins(gx_system::JsonWriter *jw, CmdConnection *cmd)
virtual bool bank_check_reparse()
void(* create_spin_value)(const char *id, const char *label)
virtual sigc::signal< void, int, int > & signal_midi_value_changed()
bool register_service(std::string name, int port)
virtual int midi_param2controller(Parameter ¶m, const MidiController **p)
GxMachine(gx_system::CmdlineOptions &options)
void disable_autosave(bool v)
virtual bool rename_preset(gx_system::PresetFileGui &pf, const Glib::ustring &oldname, const Glib::ustring &newname)
virtual void bank_set_flag(gx_system::PresetFileGui *pf, int flag, bool v)
bool load_unit(PluginDef *pl)
std::string get_temp_filepath(const std::string &basename) const
void send_rack_changed(bool stereo, CmdConnection *cmd)
BoolParameter & getBool()
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)
void(* create_small_rackknob)(const char *id, const char *label)
virtual void erase_preset(gx_system::PresetFileGui &pf, const Glib::ustring &name)
virtual gx_system::PresetFileGui * get_bank_file(const Glib::ustring &bank) const
sigc::signal< void, const GxJConvSettings * > & signal_changed()
token next(token expect=no_token)
virtual void plugin_preset_list_set(const PluginDef *pdef, bool factory, const Glib::ustring &name)
EnumParameter * reg_non_midi_enum_par(const string &id, const string &name, const value_pair *vl, int *var, bool preset, int std=0)
void debug_trace_param(Parameter *p)
virtual void maxlevel_get(int channels, float *values)
sigc::signal< void, int, int > & signal_midi_value_changed()
void(* create_feedback_switch)(const char *sw_type, const char *id)
virtual void load_preset(gx_system::PresetFileGui *pf, const Glib::ustring &name)
virtual void commit_ladspa_changes()
void(* create_small_rackknobr)(const char *id, const char *label)
jack_nframes_t get_jack_bs()
virtual bool setting_is_preset()
virtual void bank_reorder(const std::vector< Glib::ustring > &neworder)
bool rename_bank(const Glib::ustring &oldname, Glib::ustring &newname)
bool rename_preset(PresetFile &pf, const Glib::ustring &oldname, const Glib::ustring &newname)
virtual bool load_unit(gx_gui::UiBuilderImpl &builder, PluginDef *pdef)
void(* create_eq_rackslider_no_caption)(const char *id)
void delete_module(Plugin *pl)
OscilloscopeAdapter oscilloscope
virtual bool rename_bank(const Glib::ustring &oldname, Glib::ustring &newname)
void(* create_selector_no_caption)(const char *id)
virtual ~GxMachineRemote()
void activate(bool tuner_active)
virtual sigc::signal< void, bool > & signal_oscilloscope_visible()
virtual void create_default_scratch_preset()
void readJSON_remote(gx_system::JsonParser &jp)
const Glib::ustring & get_rpcaddress()
void write_kv(const char *key, float v)
FloatParameter & getFloat()
int insert_plugin(Plugin *pvars)
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)
const Glib::ustring & get_name(int n)
virtual void request_midi_value_update()
virtual gx_jack::GxJack * get_jack()
virtual void midi_modifyCurrent(Parameter ¶m, float lower, float upper, bool toggle, int toggle_behaviour)
PresetFile * get_file(const Glib::ustring &bank) const
virtual void plugin_preset_list_remove(const PluginDef *pdef, const Glib::ustring &name)
virtual void writeJSON(gx_system::JsonWriter &jw) const
virtual void start_socket(sigc::slot< void > quit_mainloop, const Glib::ustring &host, int port)
void throw_unexpected(token expect)
virtual void tuner_switcher_activate(bool v)
void reorder(const std::vector< Glib::ustring > &neworder)
void insert_before(PresetFile &pf, const Glib::ustring &src, PresetFile &pftgt, const Glib::ustring &pos, const Glib::ustring &name)
virtual void set_jack_insert(bool v)
virtual sigc::signal< void, const Glib::ustring &, const Glib::ustring & > & tuner_switcher_signal_display()
virtual sigc::signal< void, GxEngineState > & signal_state_change()
virtual void clear_oscilloscope_buffer()
sigc::signal< void, int > & signal_new_bank()
virtual const std::vector< std::string > & get_rack_unit_order(PluginType type)
virtual gx_system::PresetFileGui * bank_insert_uri(const Glib::ustring &uri, bool move)
virtual void remove_rack_unit(const std::string &unit, PluginType type)
virtual void tuner_switcher_deactivate()
virtual void set_statefilename(const std::string &fn)
virtual void process_next_preset_switch(bool s)
virtual void reset_unit(const PluginDef *pdef) const
const Glib::ustring & get_value() const
virtual void set_parameter_value(const std::string &id, int value)
virtual void commit_ladspa_changes()
virtual sigc::signal< void, unsigned int > & signal_oscilloscope_size_change()
virtual float get_tuner_freq()
void create_default_scratch_preset()
virtual void pf_save(gx_system::PresetFileGui &pf, const Glib::ustring &name)
virtual void set_init_values()
sigc::signal< void > & signal_changed()
void gx_print_error(const char *, const std::string &)
void send_midi_cc(int cc_num, int pgm_num, int bgn, int num)
virtual void midi_modifyCurrent(Parameter ¶m, float lower, float upper, bool toggle, int toggle_behaviour)
ParameterV< GxJConvSettings > JConvParameter
virtual void pluginlist_append_rack(UiBuilderBase &ui)
virtual void pf_append(gx_system::PresetFileGui &pf, const Glib::ustring &src, gx_system::PresetFileGui &pftgt, const Glib::ustring &name)
virtual const float * get_oscilloscope_buffer()
virtual sigc::signal< void > & signal_selection_changed()
const std::string & get_filename() const
virtual bool convert_preset(gx_system::PresetFileGui &pf)
virtual void set_state(GxEngineState state)
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< int, bool > & signal_oscilloscope_activation()
void writeJSON(gx_system::JsonWriter &jw)
MidiStandardControllers midi_std_ctr
ParameterGroups & get_group_table()
FileParameter & getFile()
virtual void save_to_state(bool preserve_preset=false)
void readJSON(gx_system::JsonParser &jp)
virtual gx_system::PresetFileGui * bank_insert_new(const Glib::ustring &newname)
virtual void tuner_used_for_display(bool on)
void begin_array(bool nl=false)
bool unit_has_std_values(const PluginDef *pdef) const
virtual void midi_set_config_mode(bool v, int ctl=-1)
virtual void msend_midi_cc(int cc, int pgn, int bgn, int num)
sigc::signal< void, const Glib::ustring & > & signal_changed()
void(* openVerticalBox1)(const char *label)
virtual void load_ladspalist(std::vector< std::string > &old_not_found, ladspa::LadspaPluginList &pluginlist)
void readJSON(gx_system::JsonParser &jp, ParamMap &pmap)
std::vector< std::string > mono
virtual sigc::signal< void, bool > & tuner_switcher_signal_selection_done()
virtual void process_previus_preset_switch(bool s)
sigc::signal< void, const std::string &, std::vector< gx_system::FileName > > impresp_list
virtual sigc::signal< void, const Glib::ustring &, const Glib::ustring & > & tuner_switcher_signal_display()
sigc::signal< void, Plugin *, PluginChange::pc > & signal_plugin_changed()
virtual Plugin * pluginlist_lookup_plugin(const std::string &id) const
virtual const Glib::ustring & get_current_bank()
virtual gx_system::PresetFileGui * bank_get_file(const Glib::ustring &bank) const
void set_jack_insert(bool v)
const string & get_instancename()
virtual const std::vector< std::string > & get_rack_unit_order(PluginType type)
int get_index(const Glib::ustring &name)
void set_jack(gx_jack::GxJack *jack)
virtual void reorder_preset(gx_system::PresetFileGui &pf, const std::vector< Glib::ustring > &neworder)
virtual void save_ladspalist(ladspa::LadspaPluginList &pluginlist)
std::vector< std::string > & get_rack_unit_order(bool stereo)
virtual void load_online_presets()
virtual sigc::signal< void, GxEngineState > & signal_state_change()
virtual void create_default_scratch_preset()
sigc::signal< void, unsigned int > size_change
void readJSON_remote(JsonParser &jp)
virtual Parameter & get_parameter(const char *p)
void on_engine_bypass_changed(bool s, GxEngine &engine)
virtual midi_controller_list & midi_get(int n)
sigc::signal< void, SwitcherState > & signal_set_state()
void(* create_simple_meter)(const char *id)
const Glib::ustring & get_current_bank()
virtual void load_ladspalist(std::vector< std::string > &old_not_found, ladspa::LadspaPluginList &pluginlist)
virtual void plugin_preset_list_remove(const PluginDef *pdef, const Glib::ustring &name)
virtual bool rename_preset(gx_system::PresetFileGui &pf, const Glib::ustring &oldname, const Glib::ustring &newname)
virtual void bank_drag_begin()
virtual void writeJSON(gx_system::JsonWriter &jw) const
Parameter * readJSON_one(gx_system::JsonParser &jp)
virtual void disable_autosave(bool v)
const string & id() const
virtual void load_online_presets()
void toggle(bool tuner_active)
virtual gx_system::PresetFileGui * bank_insert_new(const Glib::ustring &newname)
sigc::signal< void, bool > rack_unit_order_changed
sigc::signal< void, int > & signal_new_mute_state()
void(* openFlipLabelBox)(const char *label)
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)
Glib::ustring get_name(int n)
void dump(const string &fmt)
void(* create_simple_spin_value)(const char *id)
void set_statefilename(const std::string &fn)
void load_online_presets()
void load_preset(PresetFile *pf, const Glib::ustring &name)
Glib::Dispatcher & signal_jack_load_change()
virtual bool load_unit(gx_gui::UiBuilderImpl &builder, PluginDef *pdef)
static GxLogger & get_logger()
void save_to_state(bool preserve_preset=false)
sigc::signal< void, const Glib::ustring &, const Glib::ustring & > & signal_display()
virtual GxEngineState get_state()
virtual sigc::signal< void, bool > & tuner_switcher_signal_selection_done()
virtual void erase_preset(gx_system::PresetFileGui &pf, const Glib::ustring &name)
float current_value_float()
virtual bool setting_is_preset()
virtual void load_impresp_dirs(std::vector< gx_system::FileName > &dirs)
virtual gx_system::PresetFileGui * bank_get_file(const Glib::ustring &bank) const
CmdConnection::msg_type start
virtual gx_system::PresetFileGui * bank_insert_uri(const Glib::ustring &uri, bool move)
virtual sigc::signal< void, TunerSwitcher::SwitcherState > & tuner_switcher_signal_set_state()
void add_time_measurement()
void write_key(const char *p, bool nl=false)
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)
void deleteParameter(Parameter ¶m)
virtual void plugin_preset_list_sync_set(const PluginDef *pdef, bool factory, const Glib::ustring &name)
const char * engine_state_to_string(gx_engine::GxEngineState s)
void(* set_next_flags)(int flags)
GxMachineRemote(gx_system::CmdlineOptions &options)
map< string, Parameter * >::const_iterator iterator
void(* create_master_slider)(const char *id, const char *label)
PresetFile * get_current_bank_file()
virtual bool parameter_hasId(const char *p)
void(* openHorizontalBox)(const char *label)
static float get(unsigned int channel)
virtual void tuner_switcher_toggle(bool v)
virtual void midi_set_current_control(int v)
virtual void request_midi_value_update()
void(* openHorizontalhideBox)(const char *label)
virtual void readJSON_value(gx_system::JsonParser &jp)
virtual void plugin_preset_list_set(const PluginDef *pdef, bool factory, const Glib::ustring &name)
virtual void previus_preset_switch()
const Glib::ustring & get_current_name()
BoolParameter * reg_non_midi_par(const string &id, bool *var, bool preset, bool std=false)
void(* create_big_rackknob)(const char *id, const char *label)
bool remove_rack_unit(const std::string &unit, bool stereo)
void end_array(bool nl=false)
bool hasId(const string &id) const
FloatParameter * reg_par(const string &id, const string &name, float *var, float std, float lower, float upper, float step)
virtual void reorder_preset(gx_system::PresetFileGui &pf, const std::vector< Glib::ustring > &neworder)
virtual void pf_append(gx_system::PresetFileGui &pf, const Glib::ustring &src, gx_system::PresetFileGui &pftgt, const Glib::ustring &name)
virtual bool parameter_unit_has_std_values(const PluginDef *pdef) const
sigc::signal< void, int > & signal_changed()
virtual void readJSON_value(gx_system::JsonParser &jp)
virtual void get_oscilloscope_info(int &load, int &frames, bool &is_rt, jack_nframes_t &bsize)
virtual void process_previus_preset_switch(bool s)
void set_engine_mute(GxEngineState s, BoolParameter &p)
virtual void insert_rack_unit(const std::string &unit, const std::string &before, PluginType type)
virtual void set_midi_channel(int s)
void set_mul_buffer(int a, unsigned int b)
virtual void stop_socket()
PresetFileGui * get_guiwrapper()
virtual void plugin_preset_list_load(const PluginDef *pdef, gx_preset::UnitPresetList &presetnames)
const std::string & id_box_visible() const
void(* create_simple_c_meter)(const char *id, const char *idl, const char *label)
virtual const float * get_oscilloscope_buffer()
virtual sigc::signal< void, Plugin *, PluginChange::pc > & signal_plugin_changed()
void set_state(GxEngineState state)
void load(gx_system::CmdlineOptions &options, std::vector< std::string > &old_not_found)
void(* load_glade)(const char *data)
virtual void save_to_state(bool preserve_preset=false)
virtual void process_next_preset_switch(bool s)
void(* openTabBox)(const char *label)
virtual void remove_rack_unit(const std::string &unit, PluginType type)
virtual void plugin_preset_list_load(const PluginDef *pdef, gx_preset::UnitPresetList &presetnames)
void(* create_switch)(const char *sw_type, const char *id, const char *label)
virtual int get_bank_index(const Glib::ustring &bank)
virtual sigc::signal< void, int > & signal_oscilloscope_post_pre()
Plugin * lookup_plugin(const std::string &id) const
void(* create_selector)(const char *id, const char *label)
const std::string & id_effect_post_pre() const
int main(int argc, char *argv[])
void ladspaloader_update_plugins()
virtual const Glib::ustring & get_current_name()
sigc::signal< void, bool > & signal_changed()
virtual gx_system::PresetFileGui * get_current_bank_file()
virtual sigc::signal< void > & signal_selection_changed()
virtual void insert_param(Glib::ustring group, Glib::ustring name)
virtual void insert_param(Glib::ustring group, Glib::ustring name)
sigc::signal< void, bool > & signal_rack_unit_order_changed()
@ PRESET_FLAG_VERSIONDIFF
void modifyCurrent(Parameter ¶m, float lower, float upper, bool toggle, int toggle_behaviour)
void set_memory_allocation()