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 msend_midi_cc(
int cc,
int pgn,
int bgn,
int num) = 0;
116 virtual void loadstate() = 0;
117 virtual int bank_size() = 0;
118 virtual int get_bank_index(
const Glib::ustring& bank) = 0;
119 virtual void create_default_scratch_preset() = 0;
120 virtual void set_statefilename(
const std::string& fn) = 0;
121 virtual void save_to_state(
bool preserve_preset=
false) = 0;
123 virtual void plugin_preset_list_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name) = 0;
124 virtual void plugin_preset_list_save(
const PluginDef *pdef,
const Glib::ustring& name) = 0;
125 virtual void plugin_preset_list_remove(
const PluginDef *pdef,
const Glib::ustring& name) = 0;
126 virtual void disable_autosave(
bool v) = 0;
127 virtual sigc::signal<void>& signal_selection_changed() = 0;
128 virtual sigc::signal<void>& signal_presetlist_changed() = 0;
131 virtual bool rename_bank(
const Glib::ustring& oldname, Glib::ustring& newname) = 0;
132 virtual bool rename_preset(
gx_system::PresetFileGui& pf,
const Glib::ustring& oldname,
const Glib::ustring& newname) = 0;
133 virtual void bank_reorder(
const std::vector<Glib::ustring>& neworder) = 0;
135 virtual bool bank_check_reparse() = 0;
138 virtual std::string bank_get_filename(
const Glib::ustring& bank) = 0;
139 virtual void bank_drag_begin() = 0;
147 virtual bool bank_remove(
const Glib::ustring& bank) = 0;
148 virtual void bank_save() = 0;
153 virtual void set_jack_insert(
bool v) = 0;
155 virtual Parameter& get_parameter(
const std::string&
id) = 0;
156 virtual void set_init_values() = 0;
157 virtual bool parameter_hasId(
const char *p) = 0;
158 virtual bool parameter_hasId(
const std::string&
id) = 0;
159 virtual void reset_unit(
const PluginDef *pdef)
const = 0;
160 virtual bool parameter_unit_has_std_values(
const PluginDef *pdef)
const = 0;
161 virtual void set_parameter_value(
const std::string&
id,
int value) = 0;
162 virtual void set_parameter_value(
const std::string&
id,
float value) = 0;
163 virtual void set_parameter_value(
const std::string&
id,
bool value) = 0;
164 virtual void set_parameter_value(
const std::string&
id,
const std::string& value) = 0;
166 template <
class T> T get_parameter_value (
const std::string&
id);
167 template <
class T> sigc::signal<void, T>& signal_parameter_value(
const std::string&
id);
169 virtual bool midi_get_config_mode(
int *ctl = 0) = 0;
170 virtual void midi_set_config_mode(
bool v,
int ctl=-1) = 0;
171 virtual sigc::signal<void>& signal_midi_changed() = 0;
172 virtual sigc::signal<void, int, int>& signal_midi_value_changed() = 0;
173 virtual void request_midi_value_update() = 0;
174 virtual int midi_size() = 0;
176 virtual void midi_deleteParameter(
Parameter& param) = 0;
177 virtual void midi_set_current_control(
int v) = 0;
178 virtual void midi_modifyCurrent(
Parameter& param,
float lower,
float upper,
bool toggle) = 0;
181 virtual void reload_impresp_list(
const std::string& path) = 0;
185 virtual void load_impresp_dirs(std::vector<gx_system::FileName>& dirs) = 0;
186 virtual bool read_audio(
const std::string& filename,
unsigned int *audio_size,
int *audio_chan,
187 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer) = 0;
190 template <>
inline float GxMachineBase::get_parameter_value(
const std::string&
id) {
191 return _get_parameter_value_float(
id);
194 template <>
inline int GxMachineBase::get_parameter_value(
const std::string&
id) {
195 return _get_parameter_value_int(
id);
198 template <>
inline bool GxMachineBase::get_parameter_value(
const std::string&
id) {
199 return _get_parameter_value_bool(
id);
202 template <>
inline std::string GxMachineBase::get_parameter_value(
const std::string&
id) {
203 return _get_parameter_value_string(
id);
206 template <>
inline sigc::signal<void, float>& GxMachineBase::signal_parameter_value(
const std::string&
id) {
207 return _signal_parameter_value_float(
id);
210 template <>
inline sigc::signal<void, int>& GxMachineBase::signal_parameter_value(
const std::string&
id) {
211 return _signal_parameter_value_int(
id);
214 template <>
inline sigc::signal<void, bool>& GxMachineBase::signal_parameter_value(
const std::string&
id) {
215 return _signal_parameter_value_bool(
id);
230 Glib::ustring switch_bank;
232 void reset_switch_bank();
233 int get_bank_num(Glib::ustring num);
234 void set_mute_state(
int mute);
235 void do_program_change(
int pgm);
236 void do_bank_change(
int pgm);
237 void edge_toggle_tuner(
bool v);
238 void on_impresp(
const std::string& path);
239 void exit_handler(
bool otherthread);
240 void on_jack_load_change();
241 virtual int _get_parameter_value_int(
const std::string&
id);
242 virtual int _get_parameter_value_bool(
const std::string&
id);
243 virtual float _get_parameter_value_float(
const std::string&
id);
244 virtual std::string _get_parameter_value_string(
const std::string&
id);
245 virtual sigc::signal<void, int>& _signal_parameter_value_int(
const std::string&
id);
246 virtual sigc::signal<void, bool>& _signal_parameter_value_bool(
const std::string&
id);
247 virtual sigc::signal<void, float>& _signal_parameter_value_float(
const std::string&
id);
255 virtual void commit_ladspa_changes();
256 virtual sigc::signal<void,Plugin*,PluginChange::pc>& signal_plugin_changed();
257 virtual Plugin *pluginlist_lookup_plugin(
const std::string&
id)
const;
260 virtual float get_tuner_freq();
261 virtual void set_oscilloscope_mul_buffer(
int a);
262 virtual int get_oscilloscope_mul_buffer();
263 virtual const float *get_oscilloscope_buffer();
264 virtual void clear_oscilloscope_buffer();
265 virtual bool oscilloscope_plugin_box_visible();
266 virtual sigc::signal<void, int>& signal_oscilloscope_post_pre();
267 virtual sigc::signal<void, bool>& signal_oscilloscope_visible();
268 virtual sigc::signal<int, bool>& signal_oscilloscope_activation();
269 virtual sigc::signal<void, unsigned int>& signal_oscilloscope_size_change();
270 virtual void maxlevel_get(
int channels,
float *values);
271 virtual void get_oscilloscope_info(
int& load,
int& frames,
bool& is_rt, jack_nframes_t& bsize);
273 virtual void start_socket(sigc::slot<void> quit_mainloop,
const Glib::ustring& host,
int port);
274 virtual void stop_socket();
275 virtual sigc::signal<void,GxEngineState>& signal_state_change();
276 virtual void tuner_used_for_display(
bool on);
277 virtual const std::vector<std::string>& get_rack_unit_order(
PluginType type);
278 virtual sigc::signal<void,bool>& signal_rack_unit_order_changed();
279 virtual void remove_rack_unit(
const std::string& unit,
PluginType type);
280 virtual void insert_rack_unit(
const std::string& unit,
const std::string& before,
PluginType type);
282 virtual bool get_tuner_switcher_active();
283 virtual void tuner_switcher_activate(
bool v);
284 virtual void tuner_switcher_deactivate();
285 virtual void tuner_switcher_toggle(
bool v);
286 virtual sigc::signal<void,const Glib::ustring&,const Glib::ustring&>& tuner_switcher_signal_display();
287 virtual sigc::signal<void,TunerSwitcher::SwitcherState>& tuner_switcher_signal_set_state();
288 virtual sigc::signal<void, bool>& tuner_switcher_signal_selection_done();
290 virtual bool setting_is_preset();
291 virtual const Glib::ustring& get_current_bank();
293 virtual const Glib::ustring& get_current_name();
295 virtual Glib::ustring get_bank_name(
int n);
297 virtual void msend_midi_cc(
int cc,
int pgn,
int bgn,
int num);
298 virtual void loadstate();
299 virtual int bank_size();
300 virtual int get_bank_index(
const Glib::ustring& bank);
301 virtual void create_default_scratch_preset();
302 virtual void set_statefilename(
const std::string& fn);
303 virtual void save_to_state(
bool preserve_preset=
false);
305 virtual void plugin_preset_list_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
306 virtual void plugin_preset_list_save(
const PluginDef *pdef,
const Glib::ustring& name);
307 virtual void plugin_preset_list_remove(
const PluginDef *pdef,
const Glib::ustring& name);
308 virtual void disable_autosave(
bool v);
309 virtual sigc::signal<void>& signal_selection_changed();
310 virtual sigc::signal<void>& signal_presetlist_changed();
313 virtual bool rename_bank(
const Glib::ustring& oldname, Glib::ustring& newname);
314 virtual bool rename_preset(
gx_system::PresetFileGui& pf,
const Glib::ustring& oldname,
const Glib::ustring& newname);
315 virtual void bank_reorder(
const std::vector<Glib::ustring>& neworder);
317 virtual bool bank_check_reparse();
320 virtual std::string bank_get_filename(
const Glib::ustring& bank);
321 virtual void bank_drag_begin();
329 virtual bool bank_remove(
const Glib::ustring& bank);
330 virtual void bank_save();
335 virtual void set_jack_insert(
bool v);
337 virtual Parameter& get_parameter(
const char *p);
338 virtual Parameter& get_parameter(
const std::string&
id);
339 virtual void set_init_values();
340 virtual bool parameter_hasId(
const char *p);
341 virtual bool parameter_hasId(
const std::string&
id);
342 virtual void reset_unit(
const PluginDef *pdef)
const;
343 virtual bool parameter_unit_has_std_values(
const PluginDef *pdef)
const;
344 virtual void set_parameter_value(
const std::string&
id,
int value);
345 virtual void set_parameter_value(
const std::string&
id,
bool value);
346 virtual void set_parameter_value(
const std::string&
id,
float value);
347 virtual void set_parameter_value(
const std::string&
id,
const std::string& value);
350 virtual bool midi_get_config_mode(
int *ctl = 0);
351 virtual void midi_set_config_mode(
bool v,
int ctl=-1);
352 virtual sigc::signal<void>& signal_midi_changed();
353 virtual sigc::signal<void, int, int>& signal_midi_value_changed();
354 virtual void request_midi_value_update();
355 virtual int midi_size();
357 virtual void midi_deleteParameter(
Parameter& param);
358 virtual void midi_set_current_control(
int v);
359 virtual void midi_modifyCurrent(
Parameter& param,
float lower,
float upper,
bool toggle);
362 virtual void reload_impresp_list(
const std::string& path);
363 virtual void load_impresp_dirs(std::vector<gx_system::FileName>& dirs);
364 virtual bool read_audio(
const std::string& filename,
unsigned int *audio_size,
int *audio_chan,
365 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer);
374 sigc::signal<void,GxEngineState> engine_state_change;
375 sigc::signal<void> selection_changed;
376 sigc::signal<void> presetlist_changed;
377 Glib::RefPtr<Gio::Socket> socket;
378 __gnu_cxx::stdio_filebuf<char> *writebuf;
381 std::vector<gx_system::JsonStringParser*> notify_list;
382 sigc::connection idle_conn;
384 sigc::signal<void> midi_changed;
385 sigc::signal<void, int, int> midi_value_changed;
387 Glib::ustring current_bank;
388 Glib::ustring current_preset;
389 int bank_drag_get_counter;
390 std::string bank_drag_get_path;
391 sigc::signal<int, bool> oscilloscope_activation;
392 sigc::signal<void, unsigned int> oscilloscope_size_change;
393 float *oscilloscope_buffer;
394 unsigned int oscilloscope_buffer_size;
395 sigc::signal<void,const Glib::ustring&,const Glib::ustring&> tuner_switcher_display;
396 sigc::signal<void,TunerSwitcher::SwitcherState> tuner_switcher_set_state;
397 sigc::signal<void, bool> tuner_switcher_selection_done;
398 sigc::signal<void,Plugin*,PluginChange::pc> plugin_changed;
402 void socket_error(
int loc);
405 bool socket_input_handler(Glib::IOCondition cond);
406 void add_idle_handler();
407 bool idle_notify_handler();
410 static int load_remote_ui_static(
const UiBuilder& builder,
int form);
411 int load_remote_ui(
const UiBuilder& builder,
int form);
417 void create_bluetooth_socket(
const Glib::ustring& bdaddr);
418 void create_tcp_socket();
419 virtual int _get_parameter_value_int(
const std::string&
id);
420 virtual int _get_parameter_value_bool(
const std::string&
id);
421 virtual float _get_parameter_value_float(
const std::string&
id);
422 virtual std::string _get_parameter_value_string(
const std::string&
id);
423 virtual sigc::signal<void, int>& _signal_parameter_value_int(
const std::string&
id);
424 virtual sigc::signal<void, bool>& _signal_parameter_value_bool(
const std::string&
id);
425 virtual sigc::signal<void, float>& _signal_parameter_value_float(
const std::string&
id);
434 virtual void commit_ladspa_changes();
435 virtual sigc::signal<void,Plugin*,PluginChange::pc>& signal_plugin_changed();
436 virtual Plugin *pluginlist_lookup_plugin(
const std::string&
id)
const;
439 virtual float get_tuner_freq();
440 virtual void set_oscilloscope_mul_buffer(
int a);
441 virtual int get_oscilloscope_mul_buffer();
442 virtual const float *get_oscilloscope_buffer();
443 virtual void clear_oscilloscope_buffer();
444 virtual bool oscilloscope_plugin_box_visible();
445 virtual sigc::signal<void, int>& signal_oscilloscope_post_pre();
446 virtual sigc::signal<void, bool>& signal_oscilloscope_visible();
447 virtual sigc::signal<int, bool>& signal_oscilloscope_activation();
448 virtual sigc::signal<void, unsigned int>& signal_oscilloscope_size_change();
449 virtual void maxlevel_get(
int channels,
float *values);
450 virtual void get_oscilloscope_info(
int& load,
int& frames,
bool& is_rt, jack_nframes_t& bsize);
452 virtual void start_socket(sigc::slot<void> quit_mainloop,
const Glib::ustring& host,
int port);
453 virtual void stop_socket();
454 virtual sigc::signal<void,GxEngineState>& signal_state_change();
455 virtual void tuner_used_for_display(
bool on);
456 virtual const std::vector<std::string>& get_rack_unit_order(
PluginType type);
457 virtual sigc::signal<void,bool>& signal_rack_unit_order_changed();
458 virtual void remove_rack_unit(
const std::string& unit,
PluginType type);
459 virtual void insert_rack_unit(
const std::string& unit,
const std::string& before,
PluginType type);
461 virtual bool get_tuner_switcher_active();
462 virtual void tuner_switcher_activate(
bool v);
463 virtual void tuner_switcher_deactivate();
464 virtual void tuner_switcher_toggle(
bool v);
465 virtual sigc::signal<void,const Glib::ustring&,const Glib::ustring&>& tuner_switcher_signal_display();
466 virtual sigc::signal<void,TunerSwitcher::SwitcherState>& tuner_switcher_signal_set_state();
467 virtual sigc::signal<void, bool>& tuner_switcher_signal_selection_done();
469 virtual bool setting_is_preset();
470 virtual const Glib::ustring& get_current_bank();
472 virtual const Glib::ustring& get_current_name();
474 virtual Glib::ustring get_bank_name(
int n);
476 virtual void msend_midi_cc(
int cc,
int pgn,
int bgn,
int num);
477 virtual void loadstate();
478 virtual int bank_size();
479 virtual int get_bank_index(
const Glib::ustring& bank);
480 virtual void create_default_scratch_preset();
481 virtual void set_statefilename(
const std::string& fn);
482 virtual void save_to_state(
bool preserve_preset=
false);
484 virtual void plugin_preset_list_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
485 virtual void plugin_preset_list_save(
const PluginDef *pdef,
const Glib::ustring& name);
486 virtual void plugin_preset_list_remove(
const PluginDef *pdef,
const Glib::ustring& name);
487 virtual void disable_autosave(
bool v);
488 virtual sigc::signal<void>& signal_selection_changed();
489 virtual sigc::signal<void>& signal_presetlist_changed();
492 virtual bool rename_bank(
const Glib::ustring& oldname, Glib::ustring& newname);
493 virtual bool rename_preset(
gx_system::PresetFileGui& pf,
const Glib::ustring& oldname,
const Glib::ustring& newname);
494 virtual void bank_reorder(
const std::vector<Glib::ustring>& neworder);
496 virtual bool bank_check_reparse();
499 virtual std::string bank_get_filename(
const Glib::ustring& bank);
500 virtual void bank_drag_begin();
508 virtual bool bank_remove(
const Glib::ustring& bank);
509 virtual void bank_save();
514 virtual void set_jack_insert(
bool v);
516 virtual Parameter& get_parameter(
const char *p);
517 virtual Parameter& get_parameter(
const std::string&
id);
518 virtual void set_init_values();
519 virtual bool parameter_hasId(
const char *p);
520 virtual bool parameter_hasId(
const std::string&
id);
521 virtual void reset_unit(
const PluginDef *pdef)
const;
522 virtual bool parameter_unit_has_std_values(
const PluginDef *pdef)
const;
523 virtual void set_parameter_value(
const std::string&
id,
int value);
524 virtual void set_parameter_value(
const std::string&
id,
bool value);
525 virtual void set_parameter_value(
const std::string&
id,
float value);
526 virtual void set_parameter_value(
const std::string&
id,
const std::string& value);
529 virtual bool midi_get_config_mode(
int *ctl = 0);
530 virtual void midi_set_config_mode(
bool v,
int ctl=-1);
531 virtual sigc::signal<void>& signal_midi_changed();
532 virtual sigc::signal<void, int, int>& signal_midi_value_changed();
533 virtual void request_midi_value_update();
534 virtual int midi_size();
536 virtual void midi_deleteParameter(
Parameter& param);
537 virtual void midi_set_current_control(
int v);
538 virtual void midi_modifyCurrent(
Parameter& param,
float lower,
float upper,
bool toggle);
541 virtual void reload_impresp_list(
const std::string& path);
542 virtual void load_impresp_dirs(std::vector<gx_system::FileName>& dirs);
543 virtual bool read_audio(
const std::string& filename,
unsigned int *audio_size,
int *audio_chan,
544 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer);
549 #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()