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_sync_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name) = 0;
126 virtual void plugin_preset_list_set_on_idle(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name) = 0;
127 virtual void plugin_preset_list_save(
const PluginDef *pdef,
const Glib::ustring& name) = 0;
128 virtual void plugin_preset_list_remove(
const PluginDef *pdef,
const Glib::ustring& name) = 0;
129 virtual void disable_autosave(
bool v) = 0;
130 virtual sigc::signal<void>& signal_selection_changed() = 0;
131 virtual sigc::signal<void>& signal_presetlist_changed() = 0;
134 virtual bool rename_bank(
const Glib::ustring& oldname, Glib::ustring& newname) = 0;
135 virtual bool rename_preset(
gx_system::PresetFileGui& pf,
const Glib::ustring& oldname,
const Glib::ustring& newname) = 0;
136 virtual void bank_reorder(
const std::vector<Glib::ustring>& neworder) = 0;
138 virtual bool bank_check_reparse() = 0;
141 virtual std::string bank_get_filename(
const Glib::ustring& bank) = 0;
142 virtual void bank_drag_begin() = 0;
150 virtual bool bank_remove(
const Glib::ustring& bank) = 0;
151 virtual void bank_save() = 0;
156 virtual void set_jack_insert(
bool v) = 0;
158 virtual Parameter& get_parameter(
const std::string&
id) = 0;
159 virtual void insert_param(Glib::ustring group, Glib::ustring name) = 0;
160 virtual void set_init_values() = 0;
161 virtual bool parameter_hasId(
const char *p) = 0;
162 virtual bool parameter_hasId(
const std::string&
id) = 0;
163 virtual void reset_unit(
const PluginDef *pdef)
const = 0;
164 virtual bool parameter_unit_has_std_values(
const PluginDef *pdef)
const = 0;
165 virtual void set_parameter_value(
const std::string&
id,
int value) = 0;
166 virtual void set_parameter_value(
const std::string&
id,
float value) = 0;
167 virtual void set_parameter_value(
const std::string&
id,
bool value) = 0;
168 virtual void set_parameter_value(
const std::string&
id,
const std::string& value) = 0;
170 template <
class T> T get_parameter_value (
const std::string&
id);
171 template <
class T> sigc::signal<void, T>& signal_parameter_value(
const std::string&
id);
173 virtual bool midi_get_config_mode(
int *ctl = 0) = 0;
174 virtual void midi_set_config_mode(
bool v,
int ctl=-1) = 0;
175 virtual sigc::signal<void>& signal_midi_changed() = 0;
176 virtual sigc::signal<void, int, int>& signal_midi_value_changed() = 0;
177 virtual void request_midi_value_update() = 0;
178 virtual int midi_size() = 0;
180 virtual void midi_deleteParameter(
Parameter& param) = 0;
181 virtual void midi_set_current_control(
int v) = 0;
182 virtual void midi_modifyCurrent(
Parameter& param,
float lower,
float upper,
bool toggle,
int toggle_behaviour) = 0;
185 virtual void reload_impresp_list(
const std::string& path) = 0;
189 virtual void load_impresp_dirs(std::vector<gx_system::FileName>& dirs) = 0;
190 virtual bool read_audio(
const std::string& filename,
unsigned int *audio_size,
int *audio_chan,
191 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer) = 0;
194 template <>
inline float GxMachineBase::get_parameter_value(
const std::string&
id) {
195 return _get_parameter_value_float(
id);
198 template <>
inline int GxMachineBase::get_parameter_value(
const std::string&
id) {
199 return _get_parameter_value_int(
id);
202 template <>
inline bool GxMachineBase::get_parameter_value(
const std::string&
id) {
203 return _get_parameter_value_bool(
id);
206 template <>
inline std::string GxMachineBase::get_parameter_value(
const std::string&
id) {
207 return _get_parameter_value_string(
id);
210 template <>
inline sigc::signal<void, float>& GxMachineBase::signal_parameter_value(
const std::string&
id) {
211 return _signal_parameter_value_float(
id);
214 template <>
inline sigc::signal<void, int>& GxMachineBase::signal_parameter_value(
const std::string&
id) {
215 return _signal_parameter_value_int(
id);
218 template <>
inline sigc::signal<void, bool>& GxMachineBase::signal_parameter_value(
const std::string&
id) {
219 return _signal_parameter_value_bool(
id);
234 Glib::ustring switch_bank;
236 void reset_switch_bank();
237 int get_bank_num(Glib::ustring num);
238 void set_mute_state(
int mute);
239 void do_program_change(
int pgm);
240 void do_bank_change(
int pgm);
241 void edge_toggle_tuner(
bool v);
242 void on_impresp(
const std::string& path);
243 void exit_handler(
bool otherthread);
244 void on_jack_load_change();
245 virtual int _get_parameter_value_int(
const std::string&
id);
246 virtual int _get_parameter_value_bool(
const std::string&
id);
247 virtual float _get_parameter_value_float(
const std::string&
id);
248 virtual std::string _get_parameter_value_string(
const std::string&
id);
249 virtual sigc::signal<void, int>& _signal_parameter_value_int(
const std::string&
id);
250 virtual sigc::signal<void, bool>& _signal_parameter_value_bool(
const std::string&
id);
251 virtual sigc::signal<void, float>& _signal_parameter_value_float(
const std::string&
id);
259 virtual void commit_ladspa_changes();
260 virtual sigc::signal<void,Plugin*,PluginChange::pc>& signal_plugin_changed();
261 virtual Plugin *pluginlist_lookup_plugin(
const std::string&
id)
const;
264 virtual float get_tuner_freq();
265 virtual void set_oscilloscope_mul_buffer(
int a);
266 virtual int get_oscilloscope_mul_buffer();
267 virtual const float *get_oscilloscope_buffer();
268 virtual void clear_oscilloscope_buffer();
269 virtual bool oscilloscope_plugin_box_visible();
270 virtual sigc::signal<void, int>& signal_oscilloscope_post_pre();
271 virtual sigc::signal<void, bool>& signal_oscilloscope_visible();
272 virtual sigc::signal<int, bool>& signal_oscilloscope_activation();
273 virtual sigc::signal<void, unsigned int>& signal_oscilloscope_size_change();
274 virtual void maxlevel_get(
int channels,
float *values);
275 virtual void get_oscilloscope_info(
int& load,
int& frames,
bool& is_rt, jack_nframes_t& bsize);
277 virtual void start_socket(sigc::slot<void> quit_mainloop,
const Glib::ustring& host,
int port);
278 virtual void stop_socket();
279 virtual sigc::signal<void,GxEngineState>& signal_state_change();
280 virtual void tuner_used_for_display(
bool on);
281 virtual const std::vector<std::string>& get_rack_unit_order(
PluginType type);
282 virtual sigc::signal<void,bool>& signal_rack_unit_order_changed();
283 virtual void remove_rack_unit(
const std::string& unit,
PluginType type);
284 virtual void insert_rack_unit(
const std::string& unit,
const std::string& before,
PluginType type);
286 virtual bool get_tuner_switcher_active();
287 virtual void tuner_switcher_activate(
bool v);
288 virtual void tuner_switcher_deactivate();
289 virtual void tuner_switcher_toggle(
bool v);
290 virtual sigc::signal<void,const Glib::ustring&,const Glib::ustring&>& tuner_switcher_signal_display();
291 virtual sigc::signal<void,TunerSwitcher::SwitcherState>& tuner_switcher_signal_set_state();
292 virtual sigc::signal<void, bool>& tuner_switcher_signal_selection_done();
294 virtual bool setting_is_preset();
295 virtual const Glib::ustring& get_current_bank();
297 virtual const Glib::ustring& get_current_name();
299 virtual Glib::ustring get_bank_name(
int n);
301 virtual void load_online_presets() ;
302 virtual void msend_midi_cc(
int cc,
int pgn,
int bgn,
int num);
303 virtual void loadstate();
304 virtual int bank_size();
305 virtual int get_bank_index(
const Glib::ustring& bank);
306 virtual void create_default_scratch_preset();
307 virtual void set_statefilename(
const std::string& fn);
308 virtual void save_to_state(
bool preserve_preset=
false);
310 virtual void plugin_preset_list_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
311 virtual void plugin_preset_list_sync_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
312 virtual void plugin_preset_list_set_on_idle(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
313 virtual void plugin_preset_list_save(
const PluginDef *pdef,
const Glib::ustring& name);
314 virtual void plugin_preset_list_remove(
const PluginDef *pdef,
const Glib::ustring& name);
315 virtual void disable_autosave(
bool v);
316 virtual sigc::signal<void>& signal_selection_changed();
317 virtual sigc::signal<void>& signal_presetlist_changed();
320 virtual bool rename_bank(
const Glib::ustring& oldname, Glib::ustring& newname);
321 virtual bool rename_preset(
gx_system::PresetFileGui& pf,
const Glib::ustring& oldname,
const Glib::ustring& newname);
322 virtual void bank_reorder(
const std::vector<Glib::ustring>& neworder);
324 virtual bool bank_check_reparse();
327 virtual std::string bank_get_filename(
const Glib::ustring& bank);
328 virtual void bank_drag_begin();
336 virtual bool bank_remove(
const Glib::ustring& bank);
337 virtual void bank_save();
342 virtual void set_jack_insert(
bool v);
344 virtual Parameter& get_parameter(
const char *p);
345 virtual Parameter& get_parameter(
const std::string&
id);
346 virtual void insert_param(Glib::ustring group, Glib::ustring name);
347 virtual void set_init_values();
348 virtual bool parameter_hasId(
const char *p);
349 virtual bool parameter_hasId(
const std::string&
id);
350 virtual void reset_unit(
const PluginDef *pdef)
const;
351 virtual bool parameter_unit_has_std_values(
const PluginDef *pdef)
const;
352 virtual void set_parameter_value(
const std::string&
id,
int value);
353 virtual void set_parameter_value(
const std::string&
id,
bool value);
354 virtual void set_parameter_value(
const std::string&
id,
float value);
355 virtual void set_parameter_value(
const std::string&
id,
const std::string& value);
358 virtual bool midi_get_config_mode(
int *ctl = 0);
359 virtual void midi_set_config_mode(
bool v,
int ctl=-1);
360 virtual sigc::signal<void>& signal_midi_changed();
361 virtual sigc::signal<void, int, int>& signal_midi_value_changed();
362 virtual void request_midi_value_update();
363 virtual int midi_size();
365 virtual void midi_deleteParameter(
Parameter& param);
366 virtual void midi_set_current_control(
int v);
367 virtual void midi_modifyCurrent(
Parameter& param,
float lower,
float upper,
bool toggle,
int toggle_behaviour);
370 virtual void reload_impresp_list(
const std::string& path);
371 virtual void load_impresp_dirs(std::vector<gx_system::FileName>& dirs);
372 virtual bool read_audio(
const std::string& filename,
unsigned int *audio_size,
int *audio_chan,
373 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer);
382 sigc::signal<void,GxEngineState> engine_state_change;
383 sigc::signal<void> selection_changed;
384 sigc::signal<void> presetlist_changed;
385 Glib::RefPtr<Gio::Socket> socket;
386 __gnu_cxx::stdio_filebuf<char> *writebuf;
389 std::vector<gx_system::JsonStringParser*> notify_list;
390 sigc::connection idle_conn;
392 sigc::signal<void> midi_changed;
393 sigc::signal<void, int, int> midi_value_changed;
395 Glib::ustring current_bank;
396 Glib::ustring current_preset;
397 int bank_drag_get_counter;
398 std::string bank_drag_get_path;
399 sigc::signal<int, bool> oscilloscope_activation;
400 sigc::signal<void, unsigned int> oscilloscope_size_change;
401 float *oscilloscope_buffer;
402 unsigned int oscilloscope_buffer_size;
403 sigc::signal<void,const Glib::ustring&,const Glib::ustring&> tuner_switcher_display;
404 sigc::signal<void,TunerSwitcher::SwitcherState> tuner_switcher_set_state;
405 sigc::signal<void, bool> tuner_switcher_selection_done;
406 sigc::signal<void,Plugin*,PluginChange::pc> plugin_changed;
410 void socket_error(
int loc);
413 bool socket_input_handler(Glib::IOCondition cond);
414 void add_idle_handler();
415 bool idle_notify_handler();
418 static int load_remote_ui_static(
const UiBuilder& builder,
int form);
419 int load_remote_ui(
const UiBuilder& builder,
int form);
425 void create_bluetooth_socket(
const Glib::ustring& bdaddr);
426 void create_tcp_socket();
427 virtual int _get_parameter_value_int(
const std::string&
id);
428 virtual int _get_parameter_value_bool(
const std::string&
id);
429 virtual float _get_parameter_value_float(
const std::string&
id);
430 virtual std::string _get_parameter_value_string(
const std::string&
id);
431 virtual sigc::signal<void, int>& _signal_parameter_value_int(
const std::string&
id);
432 virtual sigc::signal<void, bool>& _signal_parameter_value_bool(
const std::string&
id);
433 virtual sigc::signal<void, float>& _signal_parameter_value_float(
const std::string&
id);
442 virtual void commit_ladspa_changes();
443 virtual sigc::signal<void,Plugin*,PluginChange::pc>& signal_plugin_changed();
444 virtual Plugin *pluginlist_lookup_plugin(
const std::string&
id)
const;
447 virtual float get_tuner_freq();
448 virtual void set_oscilloscope_mul_buffer(
int a);
449 virtual int get_oscilloscope_mul_buffer();
450 virtual const float *get_oscilloscope_buffer();
451 virtual void clear_oscilloscope_buffer();
452 virtual bool oscilloscope_plugin_box_visible();
453 virtual sigc::signal<void, int>& signal_oscilloscope_post_pre();
454 virtual sigc::signal<void, bool>& signal_oscilloscope_visible();
455 virtual sigc::signal<int, bool>& signal_oscilloscope_activation();
456 virtual sigc::signal<void, unsigned int>& signal_oscilloscope_size_change();
457 virtual void maxlevel_get(
int channels,
float *values);
458 virtual void get_oscilloscope_info(
int& load,
int& frames,
bool& is_rt, jack_nframes_t& bsize);
460 virtual void start_socket(sigc::slot<void> quit_mainloop,
const Glib::ustring& host,
int port);
461 virtual void stop_socket();
462 virtual sigc::signal<void,GxEngineState>& signal_state_change();
463 virtual void tuner_used_for_display(
bool on);
464 virtual const std::vector<std::string>& get_rack_unit_order(
PluginType type);
465 virtual sigc::signal<void,bool>& signal_rack_unit_order_changed();
466 virtual void remove_rack_unit(
const std::string& unit,
PluginType type);
467 virtual void insert_rack_unit(
const std::string& unit,
const std::string& before,
PluginType type);
469 virtual bool get_tuner_switcher_active();
470 virtual void tuner_switcher_activate(
bool v);
471 virtual void tuner_switcher_deactivate();
472 virtual void tuner_switcher_toggle(
bool v);
473 virtual sigc::signal<void,const Glib::ustring&,const Glib::ustring&>& tuner_switcher_signal_display();
474 virtual sigc::signal<void,TunerSwitcher::SwitcherState>& tuner_switcher_signal_set_state();
475 virtual sigc::signal<void, bool>& tuner_switcher_signal_selection_done();
477 virtual bool setting_is_preset();
478 virtual const Glib::ustring& get_current_bank();
480 virtual const Glib::ustring& get_current_name();
482 virtual Glib::ustring get_bank_name(
int n);
484 virtual void load_online_presets() ;
485 virtual void msend_midi_cc(
int cc,
int pgn,
int bgn,
int num);
486 virtual void loadstate();
487 virtual int bank_size();
488 virtual int get_bank_index(
const Glib::ustring& bank);
489 virtual void create_default_scratch_preset();
490 virtual void set_statefilename(
const std::string& fn);
491 virtual void save_to_state(
bool preserve_preset=
false);
493 virtual void plugin_preset_list_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
494 virtual void plugin_preset_list_sync_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
495 virtual void plugin_preset_list_set_on_idle(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
496 virtual void plugin_preset_list_save(
const PluginDef *pdef,
const Glib::ustring& name);
497 virtual void plugin_preset_list_remove(
const PluginDef *pdef,
const Glib::ustring& name);
498 virtual void disable_autosave(
bool v);
499 virtual sigc::signal<void>& signal_selection_changed();
500 virtual sigc::signal<void>& signal_presetlist_changed();
503 virtual bool rename_bank(
const Glib::ustring& oldname, Glib::ustring& newname);
504 virtual bool rename_preset(
gx_system::PresetFileGui& pf,
const Glib::ustring& oldname,
const Glib::ustring& newname);
505 virtual void bank_reorder(
const std::vector<Glib::ustring>& neworder);
507 virtual bool bank_check_reparse();
510 virtual std::string bank_get_filename(
const Glib::ustring& bank);
511 virtual void bank_drag_begin();
519 virtual bool bank_remove(
const Glib::ustring& bank);
520 virtual void bank_save();
525 virtual void set_jack_insert(
bool v);
527 virtual Parameter& get_parameter(
const char *p);
528 virtual Parameter& get_parameter(
const std::string&
id);
529 virtual void insert_param(Glib::ustring group, Glib::ustring name);
530 virtual void set_init_values();
531 virtual bool parameter_hasId(
const char *p);
532 virtual bool parameter_hasId(
const std::string&
id);
533 virtual void reset_unit(
const PluginDef *pdef)
const;
534 virtual bool parameter_unit_has_std_values(
const PluginDef *pdef)
const;
535 virtual void set_parameter_value(
const std::string&
id,
int value);
536 virtual void set_parameter_value(
const std::string&
id,
bool value);
537 virtual void set_parameter_value(
const std::string&
id,
float value);
538 virtual void set_parameter_value(
const std::string&
id,
const std::string& value);
541 virtual bool midi_get_config_mode(
int *ctl = 0);
542 virtual void midi_set_config_mode(
bool v,
int ctl=-1);
543 virtual sigc::signal<void>& signal_midi_changed();
544 virtual sigc::signal<void, int, int>& signal_midi_value_changed();
545 virtual void request_midi_value_update();
546 virtual int midi_size();
548 virtual void midi_deleteParameter(
Parameter& param);
549 virtual void midi_set_current_control(
int v);
550 virtual void midi_modifyCurrent(
Parameter& param,
float lower,
float upper,
bool toggle,
int toggle_behaviour);
553 virtual void reload_impresp_list(
const std::string& path);
554 virtual void load_impresp_dirs(std::vector<gx_system::FileName>& dirs);
555 virtual bool read_audio(
const std::string& filename,
unsigned int *audio_size,
int *audio_chan,
556 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer);
561 #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()