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 sigc::signal<void>& signal_selection_changed() = 0;
130 virtual sigc::signal<void>& signal_presetlist_changed() = 0;
133 virtual bool rename_bank(
const Glib::ustring& oldname, Glib::ustring& newname) = 0;
134 virtual bool rename_preset(
gx_system::PresetFileGui& pf,
const Glib::ustring& oldname,
const Glib::ustring& newname) = 0;
135 virtual void bank_reorder(
const std::vector<Glib::ustring>& neworder) = 0;
137 virtual bool bank_check_reparse() = 0;
140 virtual std::string bank_get_filename(
const Glib::ustring& bank) = 0;
141 virtual void bank_drag_begin() = 0;
149 virtual bool bank_remove(
const Glib::ustring& bank) = 0;
150 virtual void bank_save() = 0;
153 virtual void next_preset_switch() = 0;
154 virtual void previus_preset_switch() = 0;
155 virtual void process_next_preset_switch(
bool s) = 0;
156 virtual void process_previus_preset_switch(
bool s) = 0;
160 virtual void set_jack_insert(
bool v) = 0;
162 virtual Parameter& get_parameter(
const std::string&
id) = 0;
163 virtual void insert_param(Glib::ustring group, Glib::ustring name) = 0;
164 virtual void set_init_values() = 0;
165 void set_update_parameter(
void *control,
const string&
id,
bool on=
true);
166 virtual bool parameter_hasId(
const char *p) = 0;
167 virtual bool parameter_hasId(
const std::string&
id) = 0;
168 virtual void reset_unit(
const PluginDef *pdef)
const = 0;
169 virtual bool parameter_unit_has_std_values(
const PluginDef *pdef)
const = 0;
170 virtual void set_parameter_value(
const std::string&
id,
int value) = 0;
171 virtual void set_parameter_value(
const std::string&
id,
float value) = 0;
172 virtual void set_parameter_value(
const std::string&
id,
bool value) = 0;
173 virtual void set_parameter_value(
const std::string&
id,
const std::string& value) = 0;
175 template <
class T> T get_parameter_value (
const std::string&
id);
176 template <
class T> sigc::signal<void, T>& signal_parameter_value(
const std::string&
id);
178 virtual bool midi_get_config_mode(
int *ctl = 0) = 0;
179 virtual void midi_set_config_mode(
bool v,
int ctl=-1) = 0;
180 virtual sigc::signal<void>& signal_midi_changed() = 0;
181 virtual sigc::signal<void, int, int>& signal_midi_value_changed() = 0;
182 virtual void request_midi_value_update() = 0;
183 virtual int midi_size() = 0;
185 virtual void midi_deleteParameter(
Parameter& param) = 0;
186 virtual void midi_set_current_control(
int v) = 0;
187 virtual void midi_modifyCurrent(
Parameter& param,
float lower,
float upper,
bool toggle,
int toggle_behaviour) = 0;
189 virtual void set_midi_channel(
int s) = 0;
190 virtual void midi_feedback(
int c,
int v) = 0;
191 virtual void on_tuner_freq_changed() = 0;
193 virtual void reload_impresp_list(
const std::string& path) = 0;
197 virtual void load_impresp_dirs(std::vector<gx_system::FileName>& dirs) = 0;
198 virtual bool read_audio(
const std::string& filename,
unsigned int *audio_size,
int *audio_chan,
199 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer) = 0;
202 template <>
inline float GxMachineBase::get_parameter_value(
const std::string&
id) {
203 return _get_parameter_value_float(
id);
206 template <>
inline int GxMachineBase::get_parameter_value(
const std::string&
id) {
207 return _get_parameter_value_int(
id);
210 template <>
inline bool GxMachineBase::get_parameter_value(
const std::string&
id) {
211 return _get_parameter_value_bool(
id);
214 template <>
inline std::string GxMachineBase::get_parameter_value(
const std::string&
id) {
215 return _get_parameter_value_string(
id);
218 template <>
inline sigc::signal<void, float>& GxMachineBase::signal_parameter_value(
const std::string&
id) {
219 return _signal_parameter_value_float(
id);
222 template <>
inline sigc::signal<void, int>& GxMachineBase::signal_parameter_value(
const std::string&
id) {
223 return _signal_parameter_value_int(
id);
226 template <>
inline sigc::signal<void, bool>& GxMachineBase::signal_parameter_value(
const std::string&
id) {
227 return _signal_parameter_value_bool(
id);
245 void reset_switch_bank();
246 void set_mute_state(
int mute);
247 void do_program_change(
int pgm);
248 void do_bank_change(
int pgm);
249 void edge_toggle_tuner(
bool v);
250 void on_impresp(
const std::string& path);
251 void exit_handler(
bool otherthread);
252 void process_cmdline_bank_preset();
253 virtual int _get_parameter_value_int(
const std::string&
id);
254 virtual int _get_parameter_value_bool(
const std::string&
id);
255 virtual float _get_parameter_value_float(
const std::string&
id);
256 virtual std::string _get_parameter_value_string(
const std::string&
id);
257 virtual sigc::signal<void, int>& _signal_parameter_value_int(
const std::string&
id);
258 virtual sigc::signal<void, bool>& _signal_parameter_value_bool(
const std::string&
id);
259 virtual sigc::signal<void, float>& _signal_parameter_value_float(
const std::string&
id);
260 virtual bool update_parameter();
268 virtual void commit_ladspa_changes();
269 virtual sigc::signal<void,Plugin*,PluginChange::pc>& signal_plugin_changed();
270 virtual Plugin *pluginlist_lookup_plugin(
const std::string&
id)
const;
273 virtual float get_tuner_freq();
274 virtual float get_tuner_note();
275 virtual void set_oscilloscope_mul_buffer(
int a);
276 virtual int get_oscilloscope_mul_buffer();
278 virtual void start_socket(sigc::slot<void> quit_mainloop,
const Glib::ustring& host,
int port);
279 virtual void stop_socket();
280 virtual sigc::signal<void,GxEngineState>& signal_state_change();
281 virtual void tuner_used_for_display(
bool on);
282 virtual void tuner_used_by_midi(
bool on);
283 virtual void tuner_switch(
bool on);
284 virtual const std::vector<std::string>& get_rack_unit_order(
PluginType type);
285 virtual sigc::signal<void,bool>& signal_rack_unit_order_changed();
286 virtual void remove_rack_unit(
const std::string& unit,
PluginType type);
287 virtual void insert_rack_unit(
const std::string& unit,
const std::string& before,
PluginType type);
289 virtual bool get_tuner_switcher_active();
290 virtual void tuner_switcher_activate(
bool v);
291 virtual void tuner_switcher_deactivate();
292 virtual void tuner_switcher_toggle(
bool v);
293 virtual sigc::signal<void,const Glib::ustring&,const Glib::ustring&>& tuner_switcher_signal_display();
294 virtual sigc::signal<void,TunerSwitcher::SwitcherState>& tuner_switcher_signal_set_state();
295 virtual sigc::signal<void, bool>& tuner_switcher_signal_selection_done();
297 virtual bool setting_is_preset();
298 virtual const Glib::ustring& get_current_bank();
300 virtual const Glib::ustring& get_current_name();
302 virtual Glib::ustring get_bank_name(
int n);
304 virtual bool msend_midi_cc(
int cc,
int pgn,
int bgn,
int num);
305 virtual void loadstate();
306 virtual int bank_size();
307 virtual int get_bank_index(
const Glib::ustring& bank);
308 virtual void create_default_scratch_preset();
309 virtual void set_statefilename(
const std::string& fn);
310 virtual void save_to_state(
bool preserve_preset=
false);
312 virtual void plugin_preset_list_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
313 virtual void plugin_preset_list_sync_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
314 virtual void plugin_preset_list_set_on_idle(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
315 virtual void plugin_preset_list_save(
const PluginDef *pdef,
const Glib::ustring& name);
316 virtual void plugin_preset_list_remove(
const PluginDef *pdef,
const Glib::ustring& name);
317 virtual void disable_autosave(
bool v);
318 virtual sigc::signal<void>& signal_selection_changed();
319 virtual sigc::signal<void>& signal_presetlist_changed();
322 virtual bool rename_bank(
const Glib::ustring& oldname, Glib::ustring& newname);
323 virtual bool rename_preset(
gx_system::PresetFileGui& pf,
const Glib::ustring& oldname,
const Glib::ustring& newname);
324 virtual void bank_reorder(
const std::vector<Glib::ustring>& neworder);
326 virtual bool bank_check_reparse();
329 virtual std::string bank_get_filename(
const Glib::ustring& bank);
330 virtual void bank_drag_begin();
338 virtual bool bank_remove(
const Glib::ustring& bank);
339 virtual void bank_save();
342 virtual void next_preset_switch();
343 virtual void previus_preset_switch();
344 virtual void process_next_preset_switch(
bool s);
345 virtual void process_previus_preset_switch(
bool s);
349 virtual void set_jack_insert(
bool v);
351 virtual Parameter& get_parameter(
const char *p);
352 virtual Parameter& get_parameter(
const std::string&
id);
353 virtual void insert_param(Glib::ustring group, Glib::ustring name);
354 virtual void set_init_values();
355 virtual bool parameter_hasId(
const char *p);
356 virtual bool parameter_hasId(
const std::string&
id);
357 virtual void reset_unit(
const PluginDef *pdef)
const;
358 virtual bool parameter_unit_has_std_values(
const PluginDef *pdef)
const;
359 virtual void set_parameter_value(
const std::string&
id,
int value);
360 virtual void set_parameter_value(
const std::string&
id,
bool value);
361 virtual void set_parameter_value(
const std::string&
id,
float value);
362 virtual void set_parameter_value(
const std::string&
id,
const std::string& value);
365 virtual bool midi_get_config_mode(
int *ctl = 0);
366 virtual void midi_set_config_mode(
bool v,
int ctl=-1);
367 virtual sigc::signal<void>& signal_midi_changed();
368 virtual sigc::signal<void, int, int>& signal_midi_value_changed();
369 virtual void request_midi_value_update();
370 virtual int midi_size();
372 virtual void midi_deleteParameter(
Parameter& param);
373 virtual void midi_set_current_control(
int v);
374 virtual void midi_modifyCurrent(
Parameter& param,
float lower,
float upper,
bool toggle,
int toggle_behaviour);
376 virtual void set_midi_channel(
int s);
377 virtual void midi_feedback(
int c,
int v);
378 virtual void on_tuner_freq_changed();
380 virtual void reload_impresp_list(
const std::string& path);
381 virtual void load_impresp_dirs(std::vector<gx_system::FileName>& dirs);
382 virtual bool read_audio(
const std::string& filename,
unsigned int *audio_size,
int *audio_chan,
383 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer);
399 boost::iostreams::stream<boost::iostreams::file_descriptor_sink> *
os;
416 const jsonrpc_method_def& start_call(jsonrpc_method m_id);
418 void socket_error(
int loc);
421 bool socket_input_handler(Glib::IOCondition cond);
422 void add_idle_handler();
423 bool idle_notify_handler();
426 int load_remote_ui(
const UiBuilder& builder,
int form);
432 void create_bluetooth_socket(
const Glib::ustring& bdaddr);
433 void create_tcp_socket();
434 int midi_get_last_controller_value(
int ctl);
435 void midi_set_last_controller_value(
int ctl,
int v);
436 virtual int _get_parameter_value_int(
const std::string&
id);
437 virtual int _get_parameter_value_bool(
const std::string&
id);
438 virtual float _get_parameter_value_float(
const std::string&
id);
439 virtual std::string _get_parameter_value_string(
const std::string&
id);
440 virtual sigc::signal<void, int>& _signal_parameter_value_int(
const std::string&
id);
441 virtual sigc::signal<void, bool>& _signal_parameter_value_bool(
const std::string&
id);
442 virtual sigc::signal<void, float>& _signal_parameter_value_float(
const std::string&
id);
443 virtual bool update_parameter();
452 virtual void commit_ladspa_changes();
453 virtual sigc::signal<void,Plugin*,PluginChange::pc>& signal_plugin_changed();
454 virtual Plugin *pluginlist_lookup_plugin(
const std::string&
id)
const;
457 virtual float get_tuner_freq();
458 virtual float get_tuner_note();
459 virtual void set_oscilloscope_mul_buffer(
int a);
460 virtual int get_oscilloscope_mul_buffer();
462 virtual void start_socket(sigc::slot<void> quit_mainloop,
const Glib::ustring& host,
int port);
463 virtual void stop_socket();
464 virtual sigc::signal<void,GxEngineState>& signal_state_change();
465 virtual void tuner_used_for_display(
bool on);
466 virtual void tuner_used_by_midi(
bool on);
467 virtual void tuner_switch(
bool on);
468 virtual const std::vector<std::string>& get_rack_unit_order(
PluginType type);
469 virtual sigc::signal<void,bool>& signal_rack_unit_order_changed();
470 virtual void remove_rack_unit(
const std::string& unit,
PluginType type);
471 virtual void insert_rack_unit(
const std::string& unit,
const std::string& before,
PluginType type);
473 virtual bool get_tuner_switcher_active();
474 virtual void tuner_switcher_activate(
bool v);
475 virtual void tuner_switcher_deactivate();
476 virtual void tuner_switcher_toggle(
bool v);
477 virtual sigc::signal<void,const Glib::ustring&,const Glib::ustring&>& tuner_switcher_signal_display();
478 virtual sigc::signal<void,TunerSwitcher::SwitcherState>& tuner_switcher_signal_set_state();
479 virtual sigc::signal<void, bool>& tuner_switcher_signal_selection_done();
481 virtual bool setting_is_preset();
482 virtual const Glib::ustring& get_current_bank();
484 virtual const Glib::ustring& get_current_name();
486 virtual Glib::ustring get_bank_name(
int n);
488 virtual bool msend_midi_cc(
int cc,
int pgn,
int bgn,
int num);
489 virtual void loadstate();
490 virtual int bank_size();
491 virtual int get_bank_index(
const Glib::ustring& bank);
492 virtual void create_default_scratch_preset();
493 virtual void set_statefilename(
const std::string& fn);
494 virtual void save_to_state(
bool preserve_preset=
false);
496 virtual void plugin_preset_list_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
497 virtual void plugin_preset_list_sync_set(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
498 virtual void plugin_preset_list_set_on_idle(
const PluginDef *pdef,
bool factory,
const Glib::ustring& name);
499 virtual void plugin_preset_list_save(
const PluginDef *pdef,
const Glib::ustring& name);
500 virtual void plugin_preset_list_remove(
const PluginDef *pdef,
const Glib::ustring& name);
501 virtual void disable_autosave(
bool v);
502 virtual sigc::signal<void>& signal_selection_changed();
503 virtual sigc::signal<void>& signal_presetlist_changed();
506 virtual bool rename_bank(
const Glib::ustring& oldname, Glib::ustring& newname);
507 virtual bool rename_preset(
gx_system::PresetFileGui& pf,
const Glib::ustring& oldname,
const Glib::ustring& newname);
508 virtual void bank_reorder(
const std::vector<Glib::ustring>& neworder);
510 virtual bool bank_check_reparse();
513 virtual std::string bank_get_filename(
const Glib::ustring& bank);
514 virtual void bank_drag_begin();
522 virtual bool bank_remove(
const Glib::ustring& bank);
523 virtual void bank_save();
526 virtual void next_preset_switch();
527 virtual void previus_preset_switch();
528 virtual void process_next_preset_switch(
bool s);
529 virtual void process_previus_preset_switch(
bool s);
533 virtual void set_jack_insert(
bool v);
535 virtual Parameter& get_parameter(
const char *p);
536 virtual Parameter& get_parameter(
const std::string&
id);
537 virtual void insert_param(Glib::ustring group, Glib::ustring name);
538 virtual void set_init_values();
539 virtual bool parameter_hasId(
const char *p);
540 virtual bool parameter_hasId(
const std::string&
id);
541 virtual void reset_unit(
const PluginDef *pdef)
const;
542 virtual bool parameter_unit_has_std_values(
const PluginDef *pdef)
const;
543 virtual void set_parameter_value(
const std::string&
id,
int value);
544 virtual void set_parameter_value(
const std::string&
id,
bool value);
545 virtual void set_parameter_value(
const std::string&
id,
float value);
546 virtual void set_parameter_value(
const std::string&
id,
const std::string& value);
549 virtual bool midi_get_config_mode(
int *ctl = 0);
550 virtual void midi_set_config_mode(
bool v,
int ctl=-1);
551 virtual sigc::signal<void>& signal_midi_changed();
552 virtual sigc::signal<void, int, int>& signal_midi_value_changed();
553 virtual void request_midi_value_update();
554 virtual int midi_size();
556 virtual void midi_deleteParameter(
Parameter& param);
557 virtual void midi_set_current_control(
int v);
558 virtual void midi_modifyCurrent(
Parameter& param,
float lower,
float upper,
bool toggle,
int toggle_behaviour);
560 virtual void set_midi_channel(
int s);
561 virtual void midi_feedback(
int c,
int v);
562 virtual void on_tuner_freq_changed();
564 virtual void reload_impresp_list(
const std::string& path);
565 virtual void load_impresp_dirs(std::vector<gx_system::FileName>& dirs);
566 virtual bool read_audio(
const std::string& filename,
unsigned int *audio_size,
int *audio_chan,
567 int *audio_type,
int *audio_form,
int *audio_rate,
float **buffer);
572 #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