21 #ifndef SRC_HEADERS_MACHINE_H_ 22 #define SRC_HEADERS_MACHINE_H_ 24 #include <ext/stdio_filebuf.h> 25 #include "jsonrpc_methods.h" 30 namespace gx_gui {
class UiBuilderImpl; }
53 sigc::signal<void,const std::string&, std::vector<gx_system::FileName> >
impresp_list;
56 virtual int _get_parameter_value_int(
const std::string&
id) = 0;
57 virtual int _get_parameter_value_bool(
const std::string&
id) = 0;
58 virtual float _get_parameter_value_float(
const std::string&
id) = 0;
59 virtual std::string _get_parameter_value_string(
const std::string&
id) = 0;
60 virtual sigc::signal<void, int>& _signal_parameter_value_int(
const std::string&
id) = 0;
61 virtual sigc::signal<void, bool>& _signal_parameter_value_bool(
const std::string&
id) = 0;
62 virtual sigc::signal<void, float>& _signal_parameter_value_float(
const std::string&
id) = 0;
72 virtual void commit_ladspa_changes() = 0;
73 virtual sigc::signal<void,Plugin*,PluginChange::pc>& signal_plugin_changed() = 0;
74 virtual Plugin *pluginlist_lookup_plugin(
const std::string&
id)
const = 0;
77 virtual float get_tuner_freq() = 0;
78 virtual void set_oscilloscope_mul_buffer(
int a) = 0;
79 virtual int get_oscilloscope_mul_buffer() = 0;
80 virtual const float *get_oscilloscope_buffer() = 0;
81 virtual void clear_oscilloscope_buffer() = 0;
82 virtual bool oscilloscope_plugin_box_visible() = 0;
83 virtual sigc::signal<void, int>& signal_oscilloscope_post_pre() = 0;
84 virtual sigc::signal<void, bool>& signal_oscilloscope_visible() = 0;
85 virtual sigc::signal<int, bool>& signal_oscilloscope_activation() = 0;
86 virtual sigc::signal<void, unsigned int>& signal_oscilloscope_size_change() = 0;
87 virtual void maxlevel_get(
int channels,
float *values) = 0;
88 virtual void get_oscilloscope_info(
int& load,
int& frames,
bool& is_rt, jack_nframes_t& bsize) = 0;
90 virtual void start_socket(sigc::slot<void> quit_mainloop,
const Glib::ustring& host,
int port) = 0;
91 virtual void stop_socket() = 0;
92 virtual sigc::signal<void,GxEngineState>& signal_state_change() = 0;
94 virtual void tuner_used_for_display(
bool on) = 0;
95 virtual const std::vector<std::string>& get_rack_unit_order(
PluginType type) = 0;
96 virtual sigc::signal<void,bool>& signal_rack_unit_order_changed() = 0;
97 virtual void remove_rack_unit(
const std::string& unit,
PluginType type) = 0;
98 virtual void insert_rack_unit(
const std::string& unit,
const std::string& before,
PluginType type) = 0;
100 virtual bool get_tuner_switcher_active() = 0;
101 virtual void tuner_switcher_activate(
bool v) = 0;
102 virtual void tuner_switcher_deactivate() = 0;
103 virtual void tuner_switcher_toggle(
bool v) = 0;
104 virtual sigc::signal<void,const Glib::ustring&,const Glib::ustring&>& tuner_switcher_signal_display() = 0;
105 virtual sigc::signal<void,TunerSwitcher::SwitcherState>& tuner_switcher_signal_set_state() = 0;
106 virtual sigc::signal<void, bool>& tuner_switcher_signal_selection_done() = 0;
108 virtual bool setting_is_preset() = 0;
109 virtual const Glib::ustring& get_current_bank() = 0;
111 virtual const Glib::ustring& get_current_name() = 0;
113 virtual Glib::ustring get_bank_name(
int n) = 0;
115 virtual void load_online_presets() = 0;
116 virtual void msend_midi_cc(
int cc,
int pgn,
int bgn,
int num) = 0;
117 virtual void loadstate() = 0;
118 virtual int bank_size() = 0;
119 virtual int get_bank_index(
const Glib::ustring& bank) = 0;
120 virtual void create_default_scratch_preset() = 0;
121 virtual void set_statefilename(
const std::string& fn) = 0;
122 virtual void save_to_state(
bool preserve_preset=
false) = 0;
124 virtual void plugin_preset_list_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name) = 0;
125 virtual void plugin_preset_list_save(
const PluginDef *pdef,
const Glib::ustring& name) = 0;
126 virtual void plugin_preset_list_remove(
const PluginDef *pdef,
const Glib::ustring& name) = 0;
127 virtual void disable_autosave(
bool v) = 0;
128 virtual sigc::signal<void>& signal_selection_changed() = 0;
129 virtual sigc::signal<void>& signal_presetlist_changed() = 0;
132 virtual bool rename_bank(
const Glib::ustring& oldname, Glib::ustring& newname) = 0;
133 virtual bool rename_preset(
gx_system::PresetFileGui& pf,
const Glib::ustring& oldname,
const Glib::ustring& newname) = 0;
134 virtual void bank_reorder(
const std::vector<Glib::ustring>& neworder) = 0;
136 virtual bool bank_check_reparse() = 0;
139 virtual std::string bank_get_filename(
const Glib::ustring& bank) = 0;
140 virtual void bank_drag_begin() = 0;
148 virtual bool bank_remove(
const Glib::ustring& bank) = 0;
149 virtual void bank_save() = 0;
154 virtual void set_jack_insert(
bool v) = 0;
156 virtual Parameter& get_parameter(
const std::string&
id) = 0;
157 virtual void set_init_values() = 0;
158 virtual bool parameter_hasId(
const char *p) = 0;
159 virtual bool parameter_hasId(
const std::string&
id) = 0;
160 virtual void reset_unit(
const PluginDef *pdef)
const = 0;
161 virtual bool parameter_unit_has_std_values(
const PluginDef *pdef)
const = 0;
162 virtual void set_parameter_value(
const std::string&
id,
int value) = 0;
163 virtual void set_parameter_value(
const std::string&
id,
float value) = 0;
164 virtual void set_parameter_value(
const std::string&
id,
bool value) = 0;
165 virtual void set_parameter_value(
const std::string&
id,
const std::string& value) = 0;
167 template <
class T> T get_parameter_value (
const std::string&
id);
168 template <
class T> sigc::signal<void, T>& signal_parameter_value(
const std::string&
id);
170 virtual bool midi_get_config_mode(
int *ctl = 0) = 0;
171 virtual void midi_set_config_mode(
bool v,
int ctl=-1) = 0;
172 virtual sigc::signal<void>& signal_midi_changed() = 0;
173 virtual sigc::signal<void, int, int>& signal_midi_value_changed() = 0;
174 virtual void request_midi_value_update() = 0;
175 virtual int midi_size() = 0;
177 virtual void midi_deleteParameter(
Parameter& param) = 0;
178 virtual void midi_set_current_control(
int v) = 0;
179 virtual void midi_modifyCurrent(
Parameter& param,
float lower,
float upper,
bool toggle,
int toggle_behaviour) = 0;
182 virtual void reload_impresp_list(
const std::string& path) = 0;
186 virtual void load_impresp_dirs(std::vector<gx_system::FileName>& dirs) = 0;
187 virtual bool read_audio(
const std::string& filename,
unsigned int *audio_size,
int *audio_chan,
188 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer) = 0;
191 template <>
inline float GxMachineBase::get_parameter_value(
const std::string&
id) {
192 return _get_parameter_value_float(
id);
195 template <>
inline int GxMachineBase::get_parameter_value(
const std::string&
id) {
196 return _get_parameter_value_int(
id);
199 template <>
inline bool GxMachineBase::get_parameter_value(
const std::string&
id) {
200 return _get_parameter_value_bool(
id);
203 template <>
inline std::string GxMachineBase::get_parameter_value(
const std::string&
id) {
204 return _get_parameter_value_string(
id);
207 template <>
inline sigc::signal<void, float>& GxMachineBase::signal_parameter_value(
const std::string&
id) {
208 return _signal_parameter_value_float(
id);
211 template <>
inline sigc::signal<void, int>& GxMachineBase::signal_parameter_value(
const std::string&
id) {
212 return _signal_parameter_value_int(
id);
215 template <>
inline sigc::signal<void, bool>& GxMachineBase::signal_parameter_value(
const std::string&
id) {
216 return _signal_parameter_value_bool(
id);
231 Glib::ustring switch_bank;
233 void reset_switch_bank();
234 int get_bank_num(Glib::ustring num);
235 void set_mute_state(
int mute);
236 void do_program_change(
int pgm);
237 void do_bank_change(
int pgm);
238 void edge_toggle_tuner(
bool v);
239 void on_impresp(
const std::string& path);
240 void exit_handler(
bool otherthread);
241 void on_jack_load_change();
242 virtual int _get_parameter_value_int(
const std::string&
id);
243 virtual int _get_parameter_value_bool(
const std::string&
id);
244 virtual float _get_parameter_value_float(
const std::string&
id);
245 virtual std::string _get_parameter_value_string(
const std::string&
id);
246 virtual sigc::signal<void, int>& _signal_parameter_value_int(
const std::string&
id);
247 virtual sigc::signal<void, bool>& _signal_parameter_value_bool(
const std::string&
id);
248 virtual sigc::signal<void, float>& _signal_parameter_value_float(
const std::string&
id);
256 virtual void commit_ladspa_changes();
257 virtual sigc::signal<void,Plugin*,PluginChange::pc>& signal_plugin_changed();
258 virtual Plugin *pluginlist_lookup_plugin(
const std::string&
id)
const;
261 virtual float get_tuner_freq();
262 virtual void set_oscilloscope_mul_buffer(
int a);
263 virtual int get_oscilloscope_mul_buffer();
264 virtual const float *get_oscilloscope_buffer();
265 virtual void clear_oscilloscope_buffer();
266 virtual bool oscilloscope_plugin_box_visible();
267 virtual sigc::signal<void, int>& signal_oscilloscope_post_pre();
268 virtual sigc::signal<void, bool>& signal_oscilloscope_visible();
269 virtual sigc::signal<int, bool>& signal_oscilloscope_activation();
270 virtual sigc::signal<void, unsigned int>& signal_oscilloscope_size_change();
271 virtual void maxlevel_get(
int channels,
float *values);
272 virtual void get_oscilloscope_info(
int& load,
int& frames,
bool& is_rt, jack_nframes_t& bsize);
274 virtual void start_socket(sigc::slot<void> quit_mainloop,
const Glib::ustring& host,
int port);
275 virtual void stop_socket();
276 virtual sigc::signal<void,GxEngineState>& signal_state_change();
277 virtual void tuner_used_for_display(
bool on);
278 virtual const std::vector<std::string>& get_rack_unit_order(
PluginType type);
279 virtual sigc::signal<void,bool>& signal_rack_unit_order_changed();
280 virtual void remove_rack_unit(
const std::string& unit,
PluginType type);
281 virtual void insert_rack_unit(
const std::string& unit,
const std::string& before,
PluginType type);
283 virtual bool get_tuner_switcher_active();
284 virtual void tuner_switcher_activate(
bool v);
285 virtual void tuner_switcher_deactivate();
286 virtual void tuner_switcher_toggle(
bool v);
287 virtual sigc::signal<void,const Glib::ustring&,const Glib::ustring&>& tuner_switcher_signal_display();
288 virtual sigc::signal<void,TunerSwitcher::SwitcherState>& tuner_switcher_signal_set_state();
289 virtual sigc::signal<void, bool>& tuner_switcher_signal_selection_done();
291 virtual bool setting_is_preset();
292 virtual const Glib::ustring& get_current_bank();
294 virtual const Glib::ustring& get_current_name();
296 virtual Glib::ustring get_bank_name(
int n);
298 virtual void load_online_presets() ;
299 virtual void msend_midi_cc(
int cc,
int pgn,
int bgn,
int num);
300 virtual void loadstate();
301 virtual int bank_size();
302 virtual int get_bank_index(
const Glib::ustring& bank);
303 virtual void create_default_scratch_preset();
304 virtual void set_statefilename(
const std::string& fn);
305 virtual void save_to_state(
bool preserve_preset=
false);
307 virtual void plugin_preset_list_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
308 virtual void plugin_preset_list_save(
const PluginDef *pdef,
const Glib::ustring& name);
309 virtual void plugin_preset_list_remove(
const PluginDef *pdef,
const Glib::ustring& name);
310 virtual void disable_autosave(
bool v);
311 virtual sigc::signal<void>& signal_selection_changed();
312 virtual sigc::signal<void>& signal_presetlist_changed();
315 virtual bool rename_bank(
const Glib::ustring& oldname, Glib::ustring& newname);
316 virtual bool rename_preset(
gx_system::PresetFileGui& pf,
const Glib::ustring& oldname,
const Glib::ustring& newname);
317 virtual void bank_reorder(
const std::vector<Glib::ustring>& neworder);
319 virtual bool bank_check_reparse();
322 virtual std::string bank_get_filename(
const Glib::ustring& bank);
323 virtual void bank_drag_begin();
331 virtual bool bank_remove(
const Glib::ustring& bank);
332 virtual void bank_save();
337 virtual void set_jack_insert(
bool v);
339 virtual Parameter& get_parameter(
const char *p);
340 virtual Parameter& get_parameter(
const std::string&
id);
341 virtual void set_init_values();
342 virtual bool parameter_hasId(
const char *p);
343 virtual bool parameter_hasId(
const std::string&
id);
344 virtual void reset_unit(
const PluginDef *pdef)
const;
345 virtual bool parameter_unit_has_std_values(
const PluginDef *pdef)
const;
346 virtual void set_parameter_value(
const std::string&
id,
int value);
347 virtual void set_parameter_value(
const std::string&
id,
bool value);
348 virtual void set_parameter_value(
const std::string&
id,
float value);
349 virtual void set_parameter_value(
const std::string&
id,
const std::string& value);
352 virtual bool midi_get_config_mode(
int *ctl = 0);
353 virtual void midi_set_config_mode(
bool v,
int ctl=-1);
354 virtual sigc::signal<void>& signal_midi_changed();
355 virtual sigc::signal<void, int, int>& signal_midi_value_changed();
356 virtual void request_midi_value_update();
357 virtual int midi_size();
359 virtual void midi_deleteParameter(
Parameter& param);
360 virtual void midi_set_current_control(
int v);
361 virtual void midi_modifyCurrent(
Parameter& param,
float lower,
float upper,
bool toggle,
int toggle_behaviour);
364 virtual void reload_impresp_list(
const std::string& path);
365 virtual void load_impresp_dirs(std::vector<gx_system::FileName>& dirs);
366 virtual bool read_audio(
const std::string& filename,
unsigned int *audio_size,
int *audio_chan,
367 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer);
376 sigc::signal<void,GxEngineState> engine_state_change;
377 sigc::signal<void> selection_changed;
378 sigc::signal<void> presetlist_changed;
379 Glib::RefPtr<Gio::Socket> socket;
380 __gnu_cxx::stdio_filebuf<char> *writebuf;
383 std::vector<gx_system::JsonStringParser*> notify_list;
384 sigc::connection idle_conn;
386 sigc::signal<void> midi_changed;
387 sigc::signal<void, int, int> midi_value_changed;
389 Glib::ustring current_bank;
390 Glib::ustring current_preset;
391 int bank_drag_get_counter;
392 std::string bank_drag_get_path;
393 sigc::signal<int, bool> oscilloscope_activation;
394 sigc::signal<void, unsigned int> oscilloscope_size_change;
395 float *oscilloscope_buffer;
396 unsigned int oscilloscope_buffer_size;
397 sigc::signal<void,const Glib::ustring&,const Glib::ustring&> tuner_switcher_display;
398 sigc::signal<void,TunerSwitcher::SwitcherState> tuner_switcher_set_state;
399 sigc::signal<void, bool> tuner_switcher_selection_done;
400 sigc::signal<void,Plugin*,PluginChange::pc> plugin_changed;
404 void socket_error(
int loc);
407 bool socket_input_handler(Glib::IOCondition cond);
408 void add_idle_handler();
409 bool idle_notify_handler();
412 static int load_remote_ui_static(
const UiBuilder& builder,
int form);
413 int load_remote_ui(
const UiBuilder& builder,
int form);
419 void create_bluetooth_socket(
const Glib::ustring& bdaddr);
420 void create_tcp_socket();
421 virtual int _get_parameter_value_int(
const std::string&
id);
422 virtual int _get_parameter_value_bool(
const std::string&
id);
423 virtual float _get_parameter_value_float(
const std::string&
id);
424 virtual std::string _get_parameter_value_string(
const std::string&
id);
425 virtual sigc::signal<void, int>& _signal_parameter_value_int(
const std::string&
id);
426 virtual sigc::signal<void, bool>& _signal_parameter_value_bool(
const std::string&
id);
427 virtual sigc::signal<void, float>& _signal_parameter_value_float(
const std::string&
id);
436 virtual void commit_ladspa_changes();
437 virtual sigc::signal<void,Plugin*,PluginChange::pc>& signal_plugin_changed();
438 virtual Plugin *pluginlist_lookup_plugin(
const std::string&
id)
const;
441 virtual float get_tuner_freq();
442 virtual void set_oscilloscope_mul_buffer(
int a);
443 virtual int get_oscilloscope_mul_buffer();
444 virtual const float *get_oscilloscope_buffer();
445 virtual void clear_oscilloscope_buffer();
446 virtual bool oscilloscope_plugin_box_visible();
447 virtual sigc::signal<void, int>& signal_oscilloscope_post_pre();
448 virtual sigc::signal<void, bool>& signal_oscilloscope_visible();
449 virtual sigc::signal<int, bool>& signal_oscilloscope_activation();
450 virtual sigc::signal<void, unsigned int>& signal_oscilloscope_size_change();
451 virtual void maxlevel_get(
int channels,
float *values);
452 virtual void get_oscilloscope_info(
int& load,
int& frames,
bool& is_rt, jack_nframes_t& bsize);
454 virtual void start_socket(sigc::slot<void> quit_mainloop,
const Glib::ustring& host,
int port);
455 virtual void stop_socket();
456 virtual sigc::signal<void,GxEngineState>& signal_state_change();
457 virtual void tuner_used_for_display(
bool on);
458 virtual const std::vector<std::string>& get_rack_unit_order(
PluginType type);
459 virtual sigc::signal<void,bool>& signal_rack_unit_order_changed();
460 virtual void remove_rack_unit(
const std::string& unit,
PluginType type);
461 virtual void insert_rack_unit(
const std::string& unit,
const std::string& before,
PluginType type);
463 virtual bool get_tuner_switcher_active();
464 virtual void tuner_switcher_activate(
bool v);
465 virtual void tuner_switcher_deactivate();
466 virtual void tuner_switcher_toggle(
bool v);
467 virtual sigc::signal<void,const Glib::ustring&,const Glib::ustring&>& tuner_switcher_signal_display();
468 virtual sigc::signal<void,TunerSwitcher::SwitcherState>& tuner_switcher_signal_set_state();
469 virtual sigc::signal<void, bool>& tuner_switcher_signal_selection_done();
471 virtual bool setting_is_preset();
472 virtual const Glib::ustring& get_current_bank();
474 virtual const Glib::ustring& get_current_name();
476 virtual Glib::ustring get_bank_name(
int n);
478 virtual void load_online_presets() ;
479 virtual void msend_midi_cc(
int cc,
int pgn,
int bgn,
int num);
480 virtual void loadstate();
481 virtual int bank_size();
482 virtual int get_bank_index(
const Glib::ustring& bank);
483 virtual void create_default_scratch_preset();
484 virtual void set_statefilename(
const std::string& fn);
485 virtual void save_to_state(
bool preserve_preset=
false);
487 virtual void plugin_preset_list_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
488 virtual void plugin_preset_list_save(
const PluginDef *pdef,
const Glib::ustring& name);
489 virtual void plugin_preset_list_remove(
const PluginDef *pdef,
const Glib::ustring& name);
490 virtual void disable_autosave(
bool v);
491 virtual sigc::signal<void>& signal_selection_changed();
492 virtual sigc::signal<void>& signal_presetlist_changed();
495 virtual bool rename_bank(
const Glib::ustring& oldname, Glib::ustring& newname);
496 virtual bool rename_preset(
gx_system::PresetFileGui& pf,
const Glib::ustring& oldname,
const Glib::ustring& newname);
497 virtual void bank_reorder(
const std::vector<Glib::ustring>& neworder);
499 virtual bool bank_check_reparse();
502 virtual std::string bank_get_filename(
const Glib::ustring& bank);
503 virtual void bank_drag_begin();
511 virtual bool bank_remove(
const Glib::ustring& bank);
512 virtual void bank_save();
517 virtual void set_jack_insert(
bool v);
519 virtual Parameter& get_parameter(
const char *p);
520 virtual Parameter& get_parameter(
const std::string&
id);
521 virtual void set_init_values();
522 virtual bool parameter_hasId(
const char *p);
523 virtual bool parameter_hasId(
const std::string&
id);
524 virtual void reset_unit(
const PluginDef *pdef)
const;
525 virtual bool parameter_unit_has_std_values(
const PluginDef *pdef)
const;
526 virtual void set_parameter_value(
const std::string&
id,
int value);
527 virtual void set_parameter_value(
const std::string&
id,
bool value);
528 virtual void set_parameter_value(
const std::string&
id,
float value);
529 virtual void set_parameter_value(
const std::string&
id,
const std::string& value);
532 virtual bool midi_get_config_mode(
int *ctl = 0);
533 virtual void midi_set_config_mode(
bool v,
int ctl=-1);
534 virtual sigc::signal<void>& signal_midi_changed();
535 virtual sigc::signal<void, int, int>& signal_midi_value_changed();
536 virtual void request_midi_value_update();
537 virtual int midi_size();
539 virtual void midi_deleteParameter(
Parameter& param);
540 virtual void midi_set_current_control(
int v);
541 virtual void midi_modifyCurrent(
Parameter& param,
float lower,
float upper,
bool toggle,
int toggle_behaviour);
544 virtual void reload_impresp_list(
const std::string& path);
545 virtual void load_impresp_dirs(std::vector<gx_system::FileName>& dirs);
546 virtual bool read_audio(
const std::string& filename,
unsigned int *audio_size,
int *audio_chan,
547 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer);
552 #endif // SRC_HEADERS_MACHINE_H_
sigc::signal< void, const std::string &, std::vector< gx_system::FileName > > impresp_list
BasicOptions & get_options()
void set_parameter_value(const std::string &id, double value)
bank_iterator(gx_system::PresetBanks::iterator it_)
std::vector< PluginPresetEntry > UnitPresetList
bank_iterator & operator++()
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)
sigc::signal< void, const std::string &, std::vector< gx_system::FileName > > & signal_impresp_list()
PresetFileGui * get_guiwrapper()
gx_system::PresetFileGui * operator*()
gx_system::PresetFileGui * operator->()
list< MidiController > midi_controller_list
sigc::signal< void, MidiAudioBuffer::Load > jack_load_change
bool operator!=(const bank_iterator &i) const
sigc::signal< void, MidiAudioBuffer::Load > & signal_jack_load_change()