21 #ifndef SRC_HEADERS_MACHINE_H_ 22 #define SRC_HEADERS_MACHINE_H_ 25 #include <boost/iostreams/device/file_descriptor.hpp> 26 #include <boost/iostreams/stream.hpp> 27 #include "jsonrpc_methods.h" 32 namespace gx_gui {
class UiBuilderImpl; }
59 sigc::signal<void,const std::string&, std::vector<gx_system::FileName> >
impresp_list;
62 virtual int _get_parameter_value_int(
const std::string&
id) = 0;
63 virtual int _get_parameter_value_bool(
const std::string&
id) = 0;
64 virtual float _get_parameter_value_float(
const std::string&
id) = 0;
65 virtual std::string _get_parameter_value_string(
const std::string&
id) = 0;
66 virtual sigc::signal<void, int>& _signal_parameter_value_int(
const std::string&
id) = 0;
67 virtual sigc::signal<void, bool>& _signal_parameter_value_bool(
const std::string&
id) = 0;
68 virtual sigc::signal<void, float>& _signal_parameter_value_float(
const std::string&
id) = 0;
69 virtual bool update_parameter() = 0;
79 virtual void commit_ladspa_changes() = 0;
80 virtual sigc::signal<void,Plugin*,PluginChange::pc>& signal_plugin_changed() = 0;
81 virtual Plugin *pluginlist_lookup_plugin(
const std::string&
id)
const = 0;
84 virtual float get_tuner_freq() = 0;
85 virtual float get_tuner_note() = 0;
86 virtual void set_oscilloscope_mul_buffer(
int a) = 0;
87 virtual int get_oscilloscope_mul_buffer() = 0;
89 virtual void start_socket(sigc::slot<void> quit_mainloop,
const Glib::ustring& host,
int port) = 0;
90 virtual void stop_socket() = 0;
91 virtual sigc::signal<void,GxEngineState>& signal_state_change() = 0;
92 virtual void tuner_used_for_display(
bool on) = 0;
93 virtual void tuner_used_by_midi(
bool on) = 0;
94 virtual void tuner_switch(
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 bool 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_sync_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name) = 0;
125 virtual void plugin_preset_list_set_on_idle(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name) = 0;
126 virtual void plugin_preset_list_save(
const PluginDef *pdef,
const Glib::ustring& name) = 0;
127 virtual void plugin_preset_list_remove(
const PluginDef *pdef,
const Glib::ustring& name) = 0;
128 virtual void disable_autosave(
bool v) = 0;
129 virtual void disable_save_on_exit(
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;
154 virtual void next_preset_switch() = 0;
155 virtual void previus_preset_switch() = 0;
156 virtual void process_next_preset_switch(
bool s) = 0;
157 virtual void process_previus_preset_switch(
bool s) = 0;
161 virtual void set_jack_insert(
bool v) = 0;
163 virtual Parameter& get_parameter(
const std::string&
id) = 0;
164 virtual void insert_param(Glib::ustring group, Glib::ustring name) = 0;
165 virtual void set_init_values() = 0;
166 void set_update_parameter(
void *control,
const string&
id,
bool on=
true);
167 virtual bool parameter_hasId(
const char *p) = 0;
168 virtual bool parameter_hasId(
const std::string&
id) = 0;
169 virtual void reset_unit(
const PluginDef *pdef)
const = 0;
170 virtual bool parameter_unit_has_std_values(
const PluginDef *pdef)
const = 0;
171 virtual void set_parameter_value(
const std::string&
id,
int value) = 0;
172 virtual void set_parameter_value(
const std::string&
id,
float value) = 0;
173 virtual void set_parameter_value(
const std::string&
id,
bool value) = 0;
174 virtual void set_parameter_value(
const std::string&
id,
const std::string& value) = 0;
176 template <
class T> T get_parameter_value (
const std::string&
id);
177 template <
class T> sigc::signal<void, T>& signal_parameter_value(
const std::string&
id);
179 virtual bool midi_get_config_mode(
int *ctl = 0) = 0;
180 virtual void midi_set_config_mode(
bool v,
int ctl=-1) = 0;
181 virtual sigc::signal<void>& signal_midi_changed() = 0;
182 virtual sigc::signal<void, int, int>& signal_midi_value_changed() = 0;
183 virtual void request_midi_value_update() = 0;
184 virtual int midi_size() = 0;
186 virtual void midi_deleteParameter(
Parameter& param) = 0;
187 virtual void midi_set_current_control(
int v) = 0;
188 virtual void midi_modifyCurrent(
Parameter& param,
float lower,
float upper,
bool toggle,
int toggle_behaviour) = 0;
190 virtual void set_midi_channel(
int s) = 0;
191 virtual void midi_feedback(
int c,
int v) = 0;
192 virtual bool get_midi_feedback() = 0;
193 virtual void set_midi_feedback(
int v) = 0;
194 virtual void on_tuner_freq_changed() = 0;
196 virtual void reload_impresp_list(
const std::string& path) = 0;
200 virtual void load_impresp_dirs(std::vector<gx_system::FileName>& dirs) = 0;
201 virtual bool read_audio(
const std::string& filename,
unsigned int *audio_size,
int *audio_chan,
202 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer) = 0;
205 template <>
inline float GxMachineBase::get_parameter_value(
const std::string&
id) {
206 return _get_parameter_value_float(
id);
209 template <>
inline int GxMachineBase::get_parameter_value(
const std::string&
id) {
210 return _get_parameter_value_int(
id);
213 template <>
inline bool GxMachineBase::get_parameter_value(
const std::string&
id) {
214 return _get_parameter_value_bool(
id);
217 template <>
inline std::string GxMachineBase::get_parameter_value(
const std::string&
id) {
218 return _get_parameter_value_string(
id);
221 template <>
inline sigc::signal<void, float>& GxMachineBase::signal_parameter_value(
const std::string&
id) {
222 return _signal_parameter_value_float(
id);
225 template <>
inline sigc::signal<void, int>& GxMachineBase::signal_parameter_value(
const std::string&
id) {
226 return _signal_parameter_value_int(
id);
229 template <>
inline sigc::signal<void, bool>& GxMachineBase::signal_parameter_value(
const std::string&
id) {
230 return _signal_parameter_value_bool(
id);
248 void reset_switch_bank();
249 void set_mute_state(
int mute);
250 void do_program_change(
int pgm);
251 void do_bank_change(
int pgm);
252 void edge_toggle_tuner(
bool v);
253 void on_impresp(
const std::string& path);
254 void exit_handler(
bool otherthread);
255 void process_cmdline_bank_preset();
256 virtual int _get_parameter_value_int(
const std::string&
id);
257 virtual int _get_parameter_value_bool(
const std::string&
id);
258 virtual float _get_parameter_value_float(
const std::string&
id);
259 virtual std::string _get_parameter_value_string(
const std::string&
id);
260 virtual sigc::signal<void, int>& _signal_parameter_value_int(
const std::string&
id);
261 virtual sigc::signal<void, bool>& _signal_parameter_value_bool(
const std::string&
id);
262 virtual sigc::signal<void, float>& _signal_parameter_value_float(
const std::string&
id);
263 virtual bool update_parameter();
271 virtual void commit_ladspa_changes();
272 virtual sigc::signal<void,Plugin*,PluginChange::pc>& signal_plugin_changed();
273 virtual Plugin *pluginlist_lookup_plugin(
const std::string&
id)
const;
276 virtual float get_tuner_freq();
277 virtual float get_tuner_note();
278 virtual void set_oscilloscope_mul_buffer(
int a);
279 virtual int get_oscilloscope_mul_buffer();
281 virtual void start_socket(sigc::slot<void> quit_mainloop,
const Glib::ustring& host,
int port);
282 virtual void stop_socket();
283 virtual sigc::signal<void,GxEngineState>& signal_state_change();
284 virtual void tuner_used_for_display(
bool on);
285 virtual void tuner_used_by_midi(
bool on);
286 virtual void tuner_switch(
bool on);
287 virtual const std::vector<std::string>& get_rack_unit_order(
PluginType type);
288 virtual sigc::signal<void,bool>& signal_rack_unit_order_changed();
289 virtual void remove_rack_unit(
const std::string& unit,
PluginType type);
290 virtual void insert_rack_unit(
const std::string& unit,
const std::string& before,
PluginType type);
292 virtual bool get_tuner_switcher_active();
293 virtual void tuner_switcher_activate(
bool v);
294 virtual void tuner_switcher_deactivate();
295 virtual void tuner_switcher_toggle(
bool v);
296 virtual sigc::signal<void,const Glib::ustring&,const Glib::ustring&>& tuner_switcher_signal_display();
297 virtual sigc::signal<void,TunerSwitcher::SwitcherState>& tuner_switcher_signal_set_state();
298 virtual sigc::signal<void, bool>& tuner_switcher_signal_selection_done();
300 virtual bool setting_is_preset();
301 virtual const Glib::ustring& get_current_bank();
303 virtual const Glib::ustring& get_current_name();
305 virtual Glib::ustring get_bank_name(
int n);
307 virtual bool msend_midi_cc(
int cc,
int pgn,
int bgn,
int num);
308 virtual void loadstate();
309 virtual int bank_size();
310 virtual int get_bank_index(
const Glib::ustring& bank);
311 virtual void create_default_scratch_preset();
312 virtual void set_statefilename(
const std::string& fn);
313 virtual void save_to_state(
bool preserve_preset=
false);
315 virtual void plugin_preset_list_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
316 virtual void plugin_preset_list_sync_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
317 virtual void plugin_preset_list_set_on_idle(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
318 virtual void plugin_preset_list_save(
const PluginDef *pdef,
const Glib::ustring& name);
319 virtual void plugin_preset_list_remove(
const PluginDef *pdef,
const Glib::ustring& name);
320 virtual void disable_autosave(
bool v);
321 virtual void disable_save_on_exit(
bool v);
322 virtual sigc::signal<void>& signal_selection_changed();
323 virtual sigc::signal<void>& signal_presetlist_changed();
326 virtual bool rename_bank(
const Glib::ustring& oldname, Glib::ustring& newname);
327 virtual bool rename_preset(
gx_system::PresetFileGui& pf,
const Glib::ustring& oldname,
const Glib::ustring& newname);
328 virtual void bank_reorder(
const std::vector<Glib::ustring>& neworder);
330 virtual bool bank_check_reparse();
333 virtual std::string bank_get_filename(
const Glib::ustring& bank);
334 virtual void bank_drag_begin();
342 virtual bool bank_remove(
const Glib::ustring& bank);
343 virtual void bank_save();
346 virtual void next_preset_switch();
347 virtual void previus_preset_switch();
348 virtual void process_next_preset_switch(
bool s);
349 virtual void process_previus_preset_switch(
bool s);
353 virtual void set_jack_insert(
bool v);
355 virtual Parameter& get_parameter(
const char *p);
356 virtual Parameter& get_parameter(
const std::string&
id);
357 virtual void insert_param(Glib::ustring group, Glib::ustring name);
358 virtual void set_init_values();
359 virtual bool parameter_hasId(
const char *p);
360 virtual bool parameter_hasId(
const std::string&
id);
361 virtual void reset_unit(
const PluginDef *pdef)
const;
362 virtual bool parameter_unit_has_std_values(
const PluginDef *pdef)
const;
363 virtual void set_parameter_value(
const std::string&
id,
int value);
364 virtual void set_parameter_value(
const std::string&
id,
bool value);
365 virtual void set_parameter_value(
const std::string&
id,
float value);
366 virtual void set_parameter_value(
const std::string&
id,
const std::string& value);
369 virtual bool midi_get_config_mode(
int *ctl = 0);
370 virtual void midi_set_config_mode(
bool v,
int ctl=-1);
371 virtual sigc::signal<void>& signal_midi_changed();
372 virtual sigc::signal<void, int, int>& signal_midi_value_changed();
373 virtual void request_midi_value_update();
374 virtual int midi_size();
376 virtual void midi_deleteParameter(
Parameter& param);
377 virtual void midi_set_current_control(
int v);
378 virtual void midi_modifyCurrent(
Parameter& param,
float lower,
float upper,
bool toggle,
int toggle_behaviour);
380 virtual void set_midi_channel(
int s);
381 virtual void midi_feedback(
int c,
int v);
382 virtual bool get_midi_feedback();
383 virtual void set_midi_feedback(
int v);
384 virtual void on_tuner_freq_changed();
386 virtual void reload_impresp_list(
const std::string& path);
387 virtual void load_impresp_dirs(std::vector<gx_system::FileName>& dirs);
388 virtual bool read_audio(
const std::string& filename,
unsigned int *audio_size,
int *audio_chan,
389 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer);
405 boost::iostreams::stream<boost::iostreams::file_descriptor_sink> *
os;
422 const jsonrpc_method_def& start_call(jsonrpc_method m_id);
424 void socket_error(
int loc);
427 bool socket_input_handler(Glib::IOCondition cond);
428 void add_idle_handler();
429 bool idle_notify_handler();
432 int load_remote_ui(
const UiBuilder& builder,
int form);
438 void create_bluetooth_socket(
const Glib::ustring& bdaddr);
439 void create_tcp_socket();
440 int midi_get_last_controller_value(
int ctl);
441 void midi_set_last_controller_value(
int ctl,
int v);
442 virtual int _get_parameter_value_int(
const std::string&
id);
443 virtual int _get_parameter_value_bool(
const std::string&
id);
444 virtual float _get_parameter_value_float(
const std::string&
id);
445 virtual std::string _get_parameter_value_string(
const std::string&
id);
446 virtual sigc::signal<void, int>& _signal_parameter_value_int(
const std::string&
id);
447 virtual sigc::signal<void, bool>& _signal_parameter_value_bool(
const std::string&
id);
448 virtual sigc::signal<void, float>& _signal_parameter_value_float(
const std::string&
id);
449 virtual bool update_parameter();
458 virtual void commit_ladspa_changes();
459 virtual sigc::signal<void,Plugin*,PluginChange::pc>& signal_plugin_changed();
460 virtual Plugin *pluginlist_lookup_plugin(
const std::string&
id)
const;
463 virtual float get_tuner_freq();
464 virtual float get_tuner_note();
465 virtual void set_oscilloscope_mul_buffer(
int a);
466 virtual int get_oscilloscope_mul_buffer();
468 virtual void start_socket(sigc::slot<void> quit_mainloop,
const Glib::ustring& host,
int port);
469 virtual void stop_socket();
470 virtual sigc::signal<void,GxEngineState>& signal_state_change();
471 virtual void tuner_used_for_display(
bool on);
472 virtual void tuner_used_by_midi(
bool on);
473 virtual void tuner_switch(
bool on);
474 virtual const std::vector<std::string>& get_rack_unit_order(
PluginType type);
475 virtual sigc::signal<void,bool>& signal_rack_unit_order_changed();
476 virtual void remove_rack_unit(
const std::string& unit,
PluginType type);
477 virtual void insert_rack_unit(
const std::string& unit,
const std::string& before,
PluginType type);
479 virtual bool get_tuner_switcher_active();
480 virtual void tuner_switcher_activate(
bool v);
481 virtual void tuner_switcher_deactivate();
482 virtual void tuner_switcher_toggle(
bool v);
483 virtual sigc::signal<void,const Glib::ustring&,const Glib::ustring&>& tuner_switcher_signal_display();
484 virtual sigc::signal<void,TunerSwitcher::SwitcherState>& tuner_switcher_signal_set_state();
485 virtual sigc::signal<void, bool>& tuner_switcher_signal_selection_done();
487 virtual bool setting_is_preset();
488 virtual const Glib::ustring& get_current_bank();
490 virtual const Glib::ustring& get_current_name();
492 virtual Glib::ustring get_bank_name(
int n);
494 virtual bool msend_midi_cc(
int cc,
int pgn,
int bgn,
int num);
495 virtual void loadstate();
496 virtual int bank_size();
497 virtual int get_bank_index(
const Glib::ustring& bank);
498 virtual void create_default_scratch_preset();
499 virtual void set_statefilename(
const std::string& fn);
500 virtual void save_to_state(
bool preserve_preset=
false);
502 virtual void plugin_preset_list_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
503 virtual void plugin_preset_list_sync_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
504 virtual void plugin_preset_list_set_on_idle(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
505 virtual void plugin_preset_list_save(
const PluginDef *pdef,
const Glib::ustring& name);
506 virtual void plugin_preset_list_remove(
const PluginDef *pdef,
const Glib::ustring& name);
507 virtual void disable_autosave(
bool v);
508 virtual void disable_save_on_exit(
bool v);
509 virtual sigc::signal<void>& signal_selection_changed();
510 virtual sigc::signal<void>& signal_presetlist_changed();
513 virtual bool rename_bank(
const Glib::ustring& oldname, Glib::ustring& newname);
514 virtual bool rename_preset(
gx_system::PresetFileGui& pf,
const Glib::ustring& oldname,
const Glib::ustring& newname);
515 virtual void bank_reorder(
const std::vector<Glib::ustring>& neworder);
517 virtual bool bank_check_reparse();
520 virtual std::string bank_get_filename(
const Glib::ustring& bank);
521 virtual void bank_drag_begin();
529 virtual bool bank_remove(
const Glib::ustring& bank);
530 virtual void bank_save();
533 virtual void next_preset_switch();
534 virtual void previus_preset_switch();
535 virtual void process_next_preset_switch(
bool s);
536 virtual void process_previus_preset_switch(
bool s);
540 virtual void set_jack_insert(
bool v);
542 virtual Parameter& get_parameter(
const char *p);
543 virtual Parameter& get_parameter(
const std::string&
id);
544 virtual void insert_param(Glib::ustring group, Glib::ustring name);
545 virtual void set_init_values();
546 virtual bool parameter_hasId(
const char *p);
547 virtual bool parameter_hasId(
const std::string&
id);
548 virtual void reset_unit(
const PluginDef *pdef)
const;
549 virtual bool parameter_unit_has_std_values(
const PluginDef *pdef)
const;
550 virtual void set_parameter_value(
const std::string&
id,
int value);
551 virtual void set_parameter_value(
const std::string&
id,
bool value);
552 virtual void set_parameter_value(
const std::string&
id,
float value);
553 virtual void set_parameter_value(
const std::string&
id,
const std::string& value);
556 virtual bool midi_get_config_mode(
int *ctl = 0);
557 virtual void midi_set_config_mode(
bool v,
int ctl=-1);
558 virtual sigc::signal<void>& signal_midi_changed();
559 virtual sigc::signal<void, int, int>& signal_midi_value_changed();
560 virtual void request_midi_value_update();
561 virtual int midi_size();
563 virtual void midi_deleteParameter(
Parameter& param);
564 virtual void midi_set_current_control(
int v);
565 virtual void midi_modifyCurrent(
Parameter& param,
float lower,
float upper,
bool toggle,
int toggle_behaviour);
567 virtual void set_midi_channel(
int s);
568 virtual void midi_feedback(
int c,
int v);
569 virtual bool get_midi_feedback();
570 virtual void set_midi_feedback(
int v);
571 virtual void on_tuner_freq_changed();
573 virtual void reload_impresp_list(
const std::string& path);
574 virtual void load_impresp_dirs(std::vector<gx_system::FileName>& dirs);
575 virtual bool read_audio(
const std::string& filename,
unsigned int *audio_size,
int *audio_chan,
576 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer);
581 #endif // SRC_HEADERS_MACHINE_H_
sigc::signal< void, const std::string &, std::vector< gx_system::FileName > > impresp_list
std::vector< gx_system::JsonStringParser * > notify_list
BasicOptions & get_options()
gx_system::PresetBanks::iterator it
void set_parameter_value(const std::string &id, double value)
bank_iterator(gx_system::PresetBanks::iterator it_)
std::vector< PluginPresetEntry > UnitPresetList
bank_iterator & operator++()
sigc::connection idle_conn
ControllerArray midi_controller_map
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 Glib::ustring &, const Glib::ustring & > tuner_switcher_display
Glib::RefPtr< Gio::Socket > socket
gx_system::CmdlineOptions & options
int bank_drag_get_counter
boost::iostreams::stream< boost::iostreams::file_descriptor_sink > * os
sigc::signal< void > midi_changed
gx_preset::GxSettings settings
gx_system::CmdlineOptions & options
output_listen_map update_map
sigc::signal< void, const std::string &, std::vector< gx_system::FileName > > & signal_impresp_list()
sigc::signal< void, Plugin *, PluginChange::pc > plugin_changed
gx_preset::UnitRacks rack_units
PresetFileGui * get_guiwrapper()
PluginListBase pluginlist
Glib::ustring switch_bank
sigc::signal< void > presetlist_changed
sigc::signal< void, bool > tuner_switcher_selection_done
sigc::connection update_timeout
Glib::ustring current_bank
Glib::ustring current_preset
gx_system::PresetFileGui * operator*()
gx_system::PresetFileGui * operator->()
list< MidiController > midi_controller_list
sigc::signal< void > selection_changed
map< string, set< void * > > output_listen_map
sigc::signal< void, int, int > midi_value_changed
gx_system::JsonWriter * jw
TunerSwitcher tuner_switcher
bool operator!=(const bank_iterator &i) const
sigc::signal< void, TunerSwitcher::SwitcherState > tuner_switcher_set_state
boost::iostreams::file_descriptor_sink * writebuf
std::string bank_drag_get_path
gx_system::PresetBanks banks
sigc::signal< void, GxEngineState > engine_state_change