Guitarix
gx_parameter.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2009, 2010 Hermann Meyer, James Warden, Andreas Degert
3  * Copyright (C) 2011 Pete Shorthose
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  * --------------------------------------------------------------------------
19  *
20  * This file is part of the guitarix GUI main class
21  * Note: this header file depends on gx_system.h
22  *
23  * ----------------------------------------------------------------------------
24  */
25 
26 #pragma once
27 
28 #ifndef SRC_HEADERS_GX_PARAMETER_H_
29 #define SRC_HEADERS_GX_PARAMETER_H_
30 
31 namespace gx_system { class JsonWriter; class JsonParser; }
32 
33 namespace gx_engine {
34 
35 #ifndef NDEBUG
36 #define debug_check(func, ...) func(__VA_ARGS__)
37 #else
38 #define debug_check(...)
39 #endif
40 
41 /****************************************************************
42  **
43  ** Parameter
44  **
45  */
46 
48  private:
49  map<string, string> groups;
50 
51 #ifndef NDEBUG
52  map<string, bool> used;
53  void group_exists(const string& id);
54  void group_is_new(const string& id);
55  friend string param_group(const string& group_id, bool nowarn);
56 #endif
57 
58  public:
61 
62  inline string get(const string& id) { return groups[id]; }
63  inline string operator[](const string& id) {
64  debug_check(group_exists, id);
65  return groups[id];
66  }
67  inline void insert(const string& id, const string& group) {
68  debug_check(group_is_new, id);
69  groups.insert(pair<string, string>(id, group));
70  }
71  bool group_exist(const string& id);
72  inline void erase(const string& id) {
73 #ifndef NDEBUG // avoid unused variable warning in release mode
74  size_t n = groups.erase(id);
75  assert(n == 1);
76 #else
77  groups.erase(id);
78 #endif
79  }
80 #ifndef NDEBUG
81  void dump();
82 #endif
83 };
84 
85 
86 ParameterGroups& get_group_table();
87 string param_group(const string& group_id, bool nowarn = false);
88 
89 /****************************************************************
90  ** Parameter
91  */
92 
93 template <class T> class ParameterV;
94 
99 
100 class FloatEnumParameter;
101 class EnumParameter;
102 class FileParameter;
103 
104 /****************************************************************/
105 
106 class Parameter: boost::noncopyable {
107 public:
109  enum toggle_type { OnOff = 0, Constant = 1, _Count = 2 };
110 private:
111  virtual bool midi_set(float n, float high, float llimit, float ulimit); //RT
112  virtual bool midi_set_bpm(float n, float high, float llimit, float ulimit); //RT
113  virtual void trigger_changed();
114  friend class MidiController;
115 protected:
118  string _id;
119  string _name, _group, _desc;
120  enum value_type v_type : 3;
121  enum ctrl_type c_type : 3;
122  unsigned int d_flags : 2;
123  bool save_in_preset : 1;
124  bool controllable : 1;
125  bool do_not_save : 1;
126  bool blocked : 1;
127  bool midi_blocked : 1;
128  bool used : 1; // debug
129 protected:
130  void range_warning(float value, float lower, float upper);
131  static gx_system::JsonParser& jp_next(gx_system::JsonParser& jp, const char *key);
132 public:
133  inline std::string group_id() const { return _id.substr(0, _id.find_last_of(".")); }
134  Parameter(const string& id, const string& name, value_type vtp, ctrl_type ctp, bool preset,
135  bool ctrl):
136  boost::noncopyable(),
137  _id(id),
138  _name(name),
140  _desc(),
141  v_type(vtp),
142  c_type(ctp),
143  d_flags(0),
144  save_in_preset(preset),
145  controllable(ctrl),
146  do_not_save(false),
147  blocked(false),
148  midi_blocked(false),
149  used(false) {}
151  virtual ~Parameter();
152  virtual void serializeJSON(gx_system::JsonWriter& jw);
153 
154 #ifndef NDEBUG
155  bool isUsed() const { return used; }
156  void setUsed() { used = true; }
157  friend void compare_parameter(const char* title, Parameter* p1,
158  Parameter* p2, bool all);
159  void dump(gx_system::JsonWriter *jw);
160 #endif
161 
162  const char *get_typename() const;
163  bool isFloat() const { return v_type == tp_float; }
164  bool isInt() const { return v_type == tp_int; }
165  bool isBool() const { return v_type == tp_bool; }
166  bool isFile() const { return v_type == tp_file; }
167  bool isString() const { return v_type == tp_string; }
168  ctrl_type getControlType() const { return c_type; }
169  bool isControllable() const { return controllable; }
170  bool isInPreset() const { return save_in_preset; }
171  bool isSavable() const { return !do_not_save; }
172  void setSavable(bool v) { do_not_save = !v; }
173  const string& id() const { return _id; }
174  const string& group() const { return _group; }
175  string l_group() const { return gettext(_group.c_str()); }
176  const string& name() const { return _name; }
177  string l_name() const { return gettext(_name.c_str()); }
178  const string& desc() const { return _desc; }
179  void set_desc(const string& desc) { _desc = desc; }
180  string l_desc() const { return gettext(_desc.c_str()); }
182  bool is_log_display() { return d_flags & dtp_log; }
183  void set_blocked(bool v) { blocked = v; }
184  bool get_blocked() { return blocked; }
185  void set_midi_blocked(bool v) { midi_blocked = v; }
186  bool get_midi_blocked() { return midi_blocked; }
187  bool operator==(const Parameter& p) const { return &p == this; }
188  virtual void stdJSON_value() = 0;
189  virtual bool on_off_value() = 0; //RT
190  virtual void writeJSON(gx_system::JsonWriter& jw) const = 0;
191  virtual void readJSON_value(gx_system::JsonParser& jp) = 0;
192  virtual void setJSON_value() = 0;
193  virtual bool compareJSON_value() = 0;
194  virtual bool hasRange() const;
195  virtual float getLowerAsFloat() const;
196  virtual float getUpperAsFloat() const;
197  virtual float getStepAsFloat() const;
198  virtual const value_pair *getValueNames() const;
199  static inline const char *value_label(const value_pair& vp) {
200  return gettext(vp.value_label ? vp.value_label : vp.value_id);
201  }
203  IntParameter& getInt();
208  sigc::signal<void, float>& signal_changed_float();
209  sigc::signal<void, int>& signal_changed_int();
210  sigc::signal<void, bool>& signal_changed_bool();
211  sigc::signal<void, const Glib::ustring&>& signal_changed_string();
212 };
213 
214 #ifndef NDEBUG
215 void compare_parameter(const char* title, Parameter* p1,
216  Parameter* p2, bool all = false);
217 #endif
218 
219 /****************************************************************/
220 
221 typedef list<Parameter*> paramlist;
222 
223 /****************************************************************/
224 
225 template<class T>
226 class ParameterV: public Parameter {
227 };
228 
229 template<>
230 class ParameterV<float>: public Parameter {
231 private:
232  virtual bool midi_set(float n, float high, float llimit, float ulimit); //RT
233  virtual bool midi_set_bpm(float n, float high, float llimit, float ulimit); //RT
234  virtual void trigger_changed();
235 protected:
236  float json_value;
237  float *value;
238  float std_value;
239  float lower, upper, step;
240  sigc::signal<void, float> changed;
242  friend class ParamRegImpl;
243 public:
244  bool set(float val) const;
245  bool ramp_value(float val);
246  float get_value() const { return *value; }
247  void convert_from_range(float low, float up);
248  virtual void stdJSON_value();
249  virtual bool on_off_value();
250  virtual void writeJSON(gx_system::JsonWriter& jw) const;
251  virtual void readJSON_value(gx_system::JsonParser& jp);
252  virtual void rampJSON_value(gx_system::JsonParser& jp);
253  virtual bool compareJSON_value();
254  virtual void setJSON_value();
255  virtual bool hasRange() const;
256  virtual float getLowerAsFloat() const;
257  virtual float getUpperAsFloat() const;
258  virtual float getStepAsFloat() const;
259  virtual float idx_from_id(string v_id);
260  ParameterV(const string& id, const string& name, ctrl_type ctp, bool preset,
261  float *v, float sv, float lv, float uv, float tv, bool ctrl, bool no_init):
262  Parameter(id, name, tp_float, ctp, preset, ctrl),
263  value(v ? v : &value_storage), std_value(sv),lower(lv),upper(uv),step(tv) {
264  set(no_init ? *value : sv);
265  }
266 #ifndef NDEBUG
267  friend void compare_parameter(const char* title, Parameter* p1,
268  Parameter* p2, bool all);
269 #endif
270  ~ParameterV();
272  virtual void serializeJSON(gx_system::JsonWriter& jw);
273  sigc::signal<void, float>& signal_changed() { return changed; }
274 };
275 
276 /****************************************************************/
277 
279 protected:
282 public:
283  virtual void writeJSON(gx_system::JsonWriter& jw) const;
284  virtual void readJSON_value(gx_system::JsonParser& jp);
285  virtual const value_pair *getValueNames() const;
286  FloatEnumParameter(const string& id, const string& name, const value_pair* vn, bool preset, float *v,
287  int sv, int low, bool ctrl, bool no_init);
288  virtual void serializeJSON(gx_system::JsonWriter& jw);
289  virtual float idx_from_id(string v_id);
290 };
291 
292 /****************************************************************/
293 
294 template<>
295 class ParameterV<int>: public Parameter {
296 private:
297  virtual bool midi_set(float n, float high, float llimit, float ulimit); //RT
298  virtual void trigger_changed();
299 protected:
301  int *value;
303  int lower, upper;
304  sigc::signal<void, int> changed;
306 public:
307  bool set(int val) const;
308  int get_value() const { return *value; }
309  virtual void stdJSON_value();
310  virtual bool on_off_value();
311  virtual void writeJSON(gx_system::JsonWriter& jw) const;
312  virtual void readJSON_value(gx_system::JsonParser& jp);
313  virtual bool compareJSON_value();
314  virtual void setJSON_value();
315  virtual bool hasRange() const;
316  virtual float getLowerAsFloat() const;
317  virtual float getUpperAsFloat() const;
318  virtual int idx_from_id(string v_id);
319  ParameterV(const string& id, const string& name, ctrl_type ctp, bool preset,
320  int *v, int sv, int lv, int uv, bool ctrl):
321  Parameter(id, name, tp_int, ctp, preset, ctrl),
322  value(v ? v : &value_storage), std_value(sv), lower(lv), upper(uv) {
323  *value = sv;
324  }
325  ~ParameterV();
327  virtual void serializeJSON(gx_system::JsonWriter& jw);
328  sigc::signal<void, int>& signal_changed() { return changed; }
329 };
330 
331 /****************************************************************/
332 
334 protected:
337 public:
338  virtual void writeJSON(gx_system::JsonWriter& jw) const;
339  virtual void readJSON_value(gx_system::JsonParser& jp);
340  virtual const value_pair *getValueNames() const;
341  virtual int idx_from_id(string v_id);
342  const value_pair& get_pair() { return getValueNames()[get_value()]; }
343  EnumParameter(const string& id, const string& name, const value_pair* vn, bool preset, int *v,
344  int sv, bool ctrl);
345  virtual void serializeJSON(gx_system::JsonWriter& jw);
346 };
347 
348 /****************************************************************/
349 
350 template<>
351 class ParameterV<bool>: public Parameter {
352 private:
353  virtual bool midi_set(float n, float high, float llimit, float ulimit); //RT
354  virtual void trigger_changed();
355 protected:
357  bool *value;
358  bool std_value;
359  sigc::signal<void, bool> changed;
361 public:
362  bool set(bool val) const;
363  virtual void stdJSON_value();
364  bool get_value() const { return *value; }
365  virtual bool on_off_value();
366  virtual void writeJSON(gx_system::JsonWriter& jw) const;
367  virtual bool compareJSON_value();
368  virtual void setJSON_value();
369  virtual void readJSON_value(gx_system::JsonParser& jp);
370  ParameterV(const string& id, const string& name, ctrl_type ctp, bool preset,
371  bool *v, bool sv, bool ctrl):
372  Parameter(id, name, tp_bool, ctp, preset, ctrl),
373  value(v ? v : &value_storage), std_value(sv) {
374  *value = sv;
375  }
376  ~ParameterV();
378  virtual void serializeJSON(gx_system::JsonWriter& jw);
379  sigc::signal<void, bool>& signal_changed() { return changed; }
380 };
381 
382 /****************************************************************/
383 
384 /****************************************************************/
385 
386 class FileParameter: public Parameter {
387 protected:
388  Glib::RefPtr<Gio::File> value;
389  Glib::RefPtr<Gio::File> std_value;
390  Glib::RefPtr<Gio::File> json_value;
391  sigc::signal<void> changed;
392 public:
393  sigc::signal<void>& signal_changed() { return changed; }
394  bool set(const Glib::RefPtr<Gio::File>& val);
395  void set_path(const string& path);
396  const Glib::RefPtr<Gio::File>& get() const { return value; }
397  virtual void stdJSON_value();
398  virtual bool on_off_value();
399  virtual void writeJSON(gx_system::JsonWriter& jw) const;
400  virtual void readJSON_value(gx_system::JsonParser& jp);
401  virtual bool compareJSON_value();
402  virtual void setJSON_value();
403  FileParameter(const string& id, const string& filename, bool preset = false):
404  Parameter(id, "", tp_file, None, preset, false),
405  value(Gio::File::create_for_path(filename)),
406  std_value(value->dup()) {}
407  FileParameter(const string& id, bool preset = false):
408  Parameter(id, "", tp_file, None, preset, false),
409  value(0),
410  std_value(0) {}
412  virtual void serializeJSON(gx_system::JsonWriter& jw);
413  void set_standard(const string& filename);
414  bool is_equal(const Glib::RefPtr<Gio::File>& v) const;
415  bool is_standard() const { return is_equal(std_value); }
416  string get_path() const;
417  string get_directory_path() const;
418  string get_parse_name() const;
419  string get_display_name() const;
420  void copy(const string& destination) const;
421 };
422 
423 /****************************************************************/
424 
425 template<>
426 class ParameterV<Glib::ustring>: public Parameter {
427 protected:
428  Glib::ustring json_value;
429  Glib::ustring *value;
430  Glib::ustring std_value;
431  sigc::signal<void, const Glib::ustring&> changed;
432  Glib::ustring value_storage;
433 public:
434  bool set(const Glib::ustring& val) const;
435  const Glib::ustring& get_value() const { return *value; }
436  virtual void stdJSON_value();
437  virtual bool on_off_value();
438  virtual void writeJSON(gx_system::JsonWriter& jw) const;
439  virtual bool compareJSON_value();
440  virtual void setJSON_value();
441  virtual void readJSON_value(gx_system::JsonParser& jp);
442  ParameterV(const string& id, const string& name, Glib::ustring *v, const Glib::ustring& sv, bool preset = false)
443  : Parameter(id, name, tp_string, None, preset, false),
444  value(v ? v : &value_storage), std_value(sv) {
445  }
446  ~ParameterV();
448  virtual void serializeJSON(gx_system::JsonWriter& jw);
449  sigc::signal<void, const Glib::ustring&>& signal_changed() { return changed; }
450 };
451 
452 
453 /****************************************************************/
454 
456  assert(isFloat());
457  return static_cast<FloatParameter&>(*this);
458 }
459 
461  assert(isInt());
462  return static_cast<IntParameter&>(*this);
463 }
464 
466  EnumParameter *p = dynamic_cast<EnumParameter*>(this);
467  assert(p);
468  return *p;
469 }
470 
472  assert(isBool());
473  return static_cast<BoolParameter&>(*this);
474 }
475 
477  assert(isFile());
478  return static_cast<FileParameter&>(*this);
479 }
480 
482  assert(isString());
483  return static_cast<StringParameter&>(*this);
484 }
485 
486 inline sigc::signal<void, float>& Parameter::signal_changed_float() {
487  FloatParameter *p = dynamic_cast<FloatParameter*>(this);
488  assert(p);
489  return p->signal_changed();
490 }
491 
492 inline sigc::signal<void, int>& Parameter::signal_changed_int() {
493  IntParameter *p = dynamic_cast<IntParameter*>(this);
494  assert(p);
495  return p->signal_changed();
496 }
497 
498 inline sigc::signal<void, bool>& Parameter::signal_changed_bool() {
499  BoolParameter *p = dynamic_cast<BoolParameter*>(this);
500  assert(p);
501  return p->signal_changed();
502 }
503 
504 inline sigc::signal<void, const Glib::ustring&>& Parameter::signal_changed_string() {
505  StringParameter *p = dynamic_cast<StringParameter*>(this);
506  assert(p);
507  return p->signal_changed();
508 }
509 
510 
511 /****************************************************************
512  ** ParamMap
513  */
514 
515 class ParamMap: boost::noncopyable {
516  private:
517  map<string, Parameter*> id_map;
518  bool replace_mode;
519  sigc::signal<void,Parameter*,bool> insert_remove;
520 #ifndef NDEBUG
521  void unique_id(Parameter* param);
522  void check_id(const string& id);
523  void check_p(const char *p);
524 #endif
525  Parameter *insert(Parameter* param); // private so we can make sure parameters are owned
526 
527  public:
528  template<class T> friend class ParameterV;
529  ParamMap();
535  typedef map<string, Parameter*>::const_iterator iterator;
536  iterator begin() const { return id_map.begin(); }
537  iterator end() const { return id_map.end(); }
538  bool hasId(const string& id) const { return id_map.find(id) != id_map.end(); }
539  bool hasId(const char *p) const { return id_map.find(p) != id_map.end(); }
540  void set_replace_mode(bool mode) { replace_mode = mode; }
541  Parameter& operator[](const string& id) {
543  return *id_map[id];
544  }
545  Parameter& operator[](const char *p) {
546  debug_check(check_p, p);
547  return *id_map[p];
548  }
549  void set_init_values();
550  void reset_unit(const PluginDef *pdef) const;
551  bool unit_has_std_values(const PluginDef *pdef) const;
552  sigc::signal<void,Parameter*,bool> signal_insert_remove() { return insert_remove; }
553  void unregister(Parameter *p);
554  void unregister(const string& id);
555  inline FloatParameter *reg_par(const string& id, const string& name, float *var, float std,
556  float lower, float upper, float step) {
557  FloatParameter *p = new FloatParameter(id, name, Parameter::Continuous, true, var, std, lower, upper, step, true, replace_mode);
558  insert(p);
559  return p;
560  }
562  const string& id, const string& name, float *var, float std, float lower, float upper, float step) {
563  FloatParameter *p = new FloatParameter(id, name, Parameter::Continuous, false, var, std, lower, upper, step, false, replace_mode);
564  insert(p);
565  return p;
566  }
567  inline FloatParameter *reg_par(const string& id, const string& name, float *var, float std = 0) {
568  FloatParameter *p = new FloatParameter(id, name, Parameter::Switch, true, var, std, 0, 1, 1, true, replace_mode);
569  insert(p);
570  return p;
571  }
572  inline BoolParameter *reg_par(const string& id, const string& name, bool *var, bool std=false, bool preset=true) {
573  BoolParameter * p = new BoolParameter(id, name, Parameter::Switch, preset, var, std, true);
574  insert(p);
575  return p;
576  }
577  inline EnumParameter *reg_enum_par(const string& id, const string& name,
578  const value_pair *vl, int *var, int std = 0) {
579  EnumParameter *p = new EnumParameter(id, name, vl, true, var, std, true);
580  insert(p);
581  return p;
582  }
584  const string& id, const string& name, const value_pair *vl,
585  int *var, bool preset, int std = 0) {
586  EnumParameter *p = new EnumParameter(id, name, vl, preset, var, std, false);
587  insert(p);
588  return p;
589  }
590  inline FloatEnumParameter *reg_enum_par(const string& id, const string& name,
591  const value_pair *vl, float *var,
592  int std = 0, int low = 0) {
593  FloatEnumParameter *p = new FloatEnumParameter(id, name, vl, true, var, std, low, true, replace_mode);
594  insert(p);
595  return p;
596  }
597  inline BoolParameter *reg_non_midi_par(const string& id, bool *var, bool preset, bool std = false) {
598  BoolParameter *p = new BoolParameter(id, "", Parameter::Switch, preset, var, std, false);
599  insert(p);
600  return p;
601  }
602  inline IntParameter *reg_non_midi_par(const string& id, int *var, bool preset, int std, int lower, int upper) {
603  IntParameter *p = new IntParameter(id, "", Parameter::None, preset, var, std, lower, upper, false);
604  insert(p);
605  return p;
606  }
607  inline FloatParameter *reg_non_midi_par(const string& id, float *val, bool preset,
608  float std = 0, float lower = 0, float upper = 1, float step = 0) {
609  FloatParameter *p = new FloatParameter(id, "", Parameter::Continuous, preset, val, std, lower, upper, step, false, replace_mode);
610  insert(p);
611  return p;
612  }
613  inline FileParameter *reg_filepar(const string& id, bool preset = false) {
614  FileParameter *p = new FileParameter(id, preset);
615  insert(p);
616  return p;
617  }
618  inline StringParameter *reg_string(const string& id, const string& name, Glib::ustring *var, const string& sv, bool preset=false) {
619  StringParameter *p = new StringParameter(id, name, var, sv, preset);
620  insert(p);
621  return p;
622  }
623  inline StringParameter *reg_preset_string(const string& id, const string& name, Glib::ustring *var, const string& sv, bool preset=true) {
624  StringParameter *p = new StringParameter(id, name, var, sv, preset);
625  insert(p);
626  return p;
627  }
628 
629 #ifndef NDEBUG
630  void dump(const string& fmt);
631 #endif
632 };
633 
634 /****************************************************************
635  **
636  ** Midi
637  **
638  */
639 
640 
641 /*
642 ** MidiStandardControllers
643 */
644 
645 /****************************************************************/
646 
648  private:
649  struct modstring {
650  string name;
651  bool modified;
652  const char *std;
653  modstring(const string& n, bool m, const char* s): name(n), modified(m), std(s) {}
654  explicit modstring(const char* n): name(n), modified(false), std(n) {}
655  modstring(): name(""), modified(false), std(0) {}
656  };
657  map<int, modstring> m;
658  string midi_to_note(int ctr);
659  string ctr_desc(int ctr);
660  public:
662  const string operator[](int ctr) { return m[ctr].name; }
663  void replace(int ctr, const string& name);
664  void writeJSON(gx_system::JsonWriter& jw) const;
666 };
667 
668 extern MidiStandardControllers midi_std_ctr; // map ctrl num -> standard name
669 
670 /****************************************************************
671 **
672 ** MidiController
673 **/
674 
676  private:
677  Parameter *param; //RT
678  float _lower, _upper; //RT
679  bool toggle; //RT
680  int _toggle_behaviour;
681 
682  public:
683  MidiController(Parameter& p, float l, float u, bool t=false, int tt=0):
684  param(&p), _lower(l), _upper(u), toggle(t), _toggle_behaviour(tt) {}
685  float lower() const { return _lower; }
686  float upper() const { return _upper; }
687  bool is_toggle() const { return toggle; }
688  int toggle_behaviour() const { return _toggle_behaviour; }
689  bool hasParameter(const Parameter& p) const { return *param == p; }
690  Parameter& getParameter() const { return *param; }
692  bool set_midi(int n, int last_value, bool update); //RT
693  bool set_bpm(int n, int last_value); //RT
694  bool set_trans(int n, int last_value); //RT
695  void set(float v, float high) { param->midi_set(v, high, _lower, _upper); }
696  void trigger_changed() { param->trigger_changed(); }
697  void writeJSON(gx_system::JsonWriter& jw) const;
698 };
699 
700 typedef list<MidiController> midi_controller_list;
701 
702 /****************************************************************
703 **
704 ** MidiControllerList
705 **/
706 
707 
709 private:
710  double time1;
711  double time_diff;
712  int collect;
713  int collect_;
714  double bpm;
715  double bpm_new;
716  bool ret;
717 
718 public:
719  MidiClockToBpm();
720  ~MidiClockToBpm() {}
721  unsigned int rounded(float f);
722  bool time_to_bpm(double time, unsigned int* bpm_);
723 };
724 
725 
726 class ControllerArray: public vector<midi_controller_list> {
727 public:
728  enum { array_size = 328 };
731  void writeJSON(gx_system::JsonWriter& jw) const;
732  void readJSON(gx_system::JsonParser& jp, ParamMap& param);
733  int param2controller(Parameter& param, const MidiController** p);
734  bool deleteParameter(Parameter& p);
735 };
736 
737 class MidiControllerList: public sigc::trackable {
738 public:
739 private:
740  ControllerArray map; //RT
741  int last_midi_control_value[ControllerArray::array_size]; //RT
742  int last_midi_control; //RT
743  int changed_midi_control_value[ControllerArray::array_size]; //RT
744  volatile gint program_change; //RT
745  volatile gint mute_change; //RT
746  volatile gint bank_change; //RT
747  int channel_select;
748  timespec ts1;
749  double time0;
750  unsigned int bpm_;
751  MidiClockToBpm mp;
752  Glib::Dispatcher pgm_chg;
753  Glib::Dispatcher mute_chg;
754  Glib::Dispatcher bank_chg;
755  Glib::Dispatcher val_chg;
756  sigc::signal<void> changed;
757  sigc::signal<void,int> new_program;
758  sigc::signal<void,int> new_mute_state;
759  sigc::signal<void,int> new_bank;
760  sigc::signal<void, int, int> midi_value_changed;
761 private:
762  void on_pgm_chg();
763  void on_mute_chg();
764  void on_bank_chg();
765  void on_val_chg();
766  bool check_midi_values();
767 public:
769  midi_controller_list& operator[](int n) { return map[n]; }
770  int size() { return map.size(); }
771  void set_config_mode(bool mode, int ctl=-1);
772  bool get_config_mode() { return last_midi_control != -2; }
773  int get_current_control() { return last_midi_control; }
774  void set_current_control(int ctl) { last_midi_control = ctl; }
775  void set_ctr_val(int ctr, int val); //RT
776  void set_bpm_val(unsigned int val); //RT
777  void deleteParameter(Parameter& param);
778  void modifyCurrent(Parameter& param, float lower, float upper, bool toggle, int toggle_behaviour);
779  int param2controller(Parameter& param, const MidiController** p) {
780  return map.param2controller(param, p); }
781  void writeJSON(gx_system::JsonWriter& jw) const { map.writeJSON(jw); }
782  int get_last_midi_control_value(unsigned int n) {
783  assert(n < ControllerArray::array_size); return last_midi_control_value[n]; } //RT
784  void set_last_midi_control_value(unsigned int n, int v) {
785  assert(n < ControllerArray::array_size); last_midi_control_value[n] = v; changed_midi_control_value[n] = 1; } //RT
786  void set_controller_array(const ControllerArray& m);
788  sigc::signal<void>& signal_changed() { return changed; }
789  sigc::signal<void,int>& signal_new_program() { return new_program; }
790  sigc::signal<void,int>& signal_new_mute_state() { return new_mute_state; }
791  sigc::signal<void,int>& signal_new_bank() { return new_bank; }
792  void compute_midi_in(void* midi_input_port_buf, void *arg); //RT
793  void process_trans(int transport_state); //RT
794  void update_from_controller(int ctr);
796  void set_midi_channel(int s);
797  sigc::signal<void, int, int>& signal_midi_value_changed() { return midi_value_changed; }
799 };
800 
801 } // namespace gx_gui
802 
803 #endif // SRC_HEADERS_GX_PARAMETER_H_
804 
gx_engine::FileParameter::is_equal
bool is_equal(const Glib::RefPtr< Gio::File > &v) const
Definition: gx_paramtable.cpp:1769
gx_engine::compare_parameter
void compare_parameter(const char *title, Parameter *p1, Parameter *p2, bool all=false)
Definition: gx_paramtable.cpp:1011
gx_engine::MidiControllerList::request_midi_value_update
void request_midi_value_update()
Definition: gx_paramtable.cpp:645
gx_engine::MidiControllerList::set_last_midi_control_value
void set_last_midi_control_value(unsigned int n, int v)
Definition: gx_parameter.h:784
gx_engine::MidiControllerList::set_current_control
void set_current_control(int ctl)
Definition: gx_parameter.h:774
gx_engine::MidiControllerList::signal_changed
sigc::signal< void > & signal_changed()
Definition: gx_parameter.h:788
Glib
Definition: bigknob.cc:41
gx_engine::MidiControllerList::get_current_control
int get_current_control()
Definition: gx_parameter.h:773
gx_engine::Parameter::l_name
string l_name() const
Definition: gx_parameter.h:177
gx_engine::Parameter::value_type
value_type
Definition: gx_parameter.h:116
gx_engine::ControllerArray::readJSON
void readJSON(gx_system::JsonParser &jp, ParamMap &param)
Definition: gx_paramtable.cpp:375
gx_engine::Parameter::get_typename
const char * get_typename() const
Definition: gx_paramtable.cpp:983
gx_engine::Parameter::range_warning
void range_warning(float value, float lower, float upper)
Definition: gx_paramtable.cpp:976
gx_engine::ParamMap::set_replace_mode
void set_replace_mode(bool mode)
Definition: gx_parameter.h:542
gx_engine::FloatEnumParameter::serializeJSON
virtual void serializeJSON(gx_system::JsonWriter &jw)
Definition: gx_paramtable.cpp:1313
gx_engine::FileParameter::get_parse_name
string get_parse_name() const
Definition: gx_paramtable.cpp:1792
gx_engine::ParameterGroups::get
string get(const string &id)
Definition: gx_parameter.h:66
gx_engine::MidiControllerList::set_midi_channel
void set_midi_channel(int s)
Definition: gx_paramtable.cpp:722
gx_engine::ParamMap::reg_par_non_preset
FloatParameter * reg_par_non_preset(const string &id, const string &name, float *var, float std, float lower, float upper, float step)
Definition: gx_parameter.h:563
gx_engine::Parameter::_id
string _id
Definition: gx_parameter.h:118
gx_engine::Parameter::v_type
enum value_type v_type
Definition: gx_parameter.h:120
gx_engine::ControllerArray::ControllerArray
ControllerArray()
Definition: gx_parameter.h:729
gx_engine::Parameter::jp_next
static gx_system::JsonParser & jp_next(gx_system::JsonParser &jp, const char *key)
Definition: gx_paramtable.cpp:881
gx_engine::ParamMap::writeJSON_one
void writeJSON_one(gx_system::JsonWriter &jw, Parameter *p)
Definition: gx_paramtable.cpp:1881
gx_engine::MidiControllerList::get_config_mode
bool get_config_mode()
Definition: gx_parameter.h:772
gx_engine::Parameter::getUpperAsFloat
virtual float getUpperAsFloat() const
Definition: gx_paramtable.cpp:1002
gx_engine::ParameterV< Glib::ustring >::changed
sigc::signal< void, const Glib::ustring & > changed
Definition: gx_parameter.h:431
gx_engine::MidiControllerList::set_config_mode
void set_config_mode(bool mode, int ctl=-1)
Definition: gx_paramtable.cpp:607
gx_engine::Parameter::_Count
@ _Count
Definition: gx_parameter.h:109
gx_engine::ParamRegImpl
Definition: gx_pluginloader.h:97
gx_engine::FileParameter::set
bool set(const Glib::RefPtr< Gio::File > &val)
Definition: gx_paramtable.cpp:1722
gx_engine::ParamMap::signal_insert_remove
sigc::signal< void, Parameter *, bool > signal_insert_remove()
Definition: gx_parameter.h:554
gx_engine::Parameter::isInPreset
bool isInPreset() const
Definition: gx_parameter.h:170
gx_engine::ParameterV< int >::changed
sigc::signal< void, int > changed
Definition: gx_parameter.h:304
gx_engine::ParamMap::reg_string
StringParameter * reg_string(const string &id, const string &name, Glib::ustring *var, const string &sv, bool preset=false)
Definition: gx_parameter.h:620
gx_engine::ParameterV< bool >::value_storage
bool value_storage
Definition: gx_parameter.h:360
value_pair
Definition: gx_plugin.h:117
gx_engine::ParameterV< float >::json_value
float json_value
Definition: gx_parameter.h:236
gx_engine::Parameter::display_flags
display_flags
Definition: gx_parameter.h:117
gx_engine::Parameter::~Parameter
virtual ~Parameter()
Definition: gx_paramtable.cpp:951
gx_engine::EnumParameter::getValueNames
virtual const value_pair * getValueNames() const
Definition: gx_paramtable.cpp:1492
gx_engine::Parameter::getString
StringParameter & getString()
Definition: gx_parameter.h:481
gx_engine::Parameter::getControlType
ctrl_type getControlType() const
Definition: gx_parameter.h:168
gx_engine::Parameter::tp_bool
@ tp_bool
Definition: gx_parameter.h:116
gx_engine::ParameterV< int >::value_storage
int value_storage
Definition: gx_parameter.h:305
gx_engine::FileParameter::serializeJSON
virtual void serializeJSON(gx_system::JsonWriter &jw)
Definition: gx_paramtable.cpp:1686
gx_engine::MidiController::getParameter
Parameter & getParameter() const
Definition: gx_parameter.h:693
gx_engine::MidiController::hasParameter
bool hasParameter(const Parameter &p) const
Definition: gx_parameter.h:692
gx_engine::Parameter::on_off_value
virtual bool on_off_value()=0
gx_engine::EnumParameter::value_names
const value_pair * value_names
Definition: gx_parameter.h:335
gx_engine::Parameter::is_log_display
bool is_log_display()
Definition: gx_parameter.h:182
gx_engine::ControllerArray::param2controller
int param2controller(Parameter &param, const MidiController **p)
Definition: gx_paramtable.cpp:412
gx_engine::ParamMap::ParamMap
ParamMap()
Definition: gx_paramtable.cpp:1870
gx_engine::Parameter::getValueNames
virtual const value_pair * getValueNames() const
Definition: gx_paramtable.cpp:1006
gx_engine::ParameterGroups::erase
void erase(const string &id)
Definition: gx_parameter.h:76
gx_engine::MidiControllerList::param2controller
int param2controller(Parameter &param, const MidiController **p)
Definition: gx_parameter.h:779
gx_engine::MidiController::lower
float lower() const
Definition: gx_parameter.h:688
gx_engine::Parameter::signal_changed_int
sigc::signal< void, int > & signal_changed_int()
Definition: gx_parameter.h:492
gx_engine::FileParameter::stdJSON_value
virtual void stdJSON_value()
Definition: gx_paramtable.cpp:1739
gx_engine::midi_controller_list
list< MidiController > midi_controller_list
Definition: gx_parameter.h:700
gx_engine::ParamMap::readJSON
void readJSON(gx_system::JsonParser &jp)
Definition: gx_paramtable.cpp:1949
gx_engine::Parameter::desc
const string & desc() const
Definition: gx_parameter.h:178
gx_engine::Parameter::getEnum
EnumParameter & getEnum()
Definition: gx_parameter.h:465
gx_engine::Parameter::_name
string _name
Definition: gx_parameter.h:119
gx_engine::Parameter::set_blocked
void set_blocked(bool v)
Definition: gx_parameter.h:183
gx_engine::Parameter::Constant
@ Constant
Definition: gx_parameter.h:109
gx_engine::ParameterGroups::ParameterGroups
ParameterGroups()
Definition: gx_paramtable.cpp:815
gx_engine::ParameterV< bool >
Definition: gx_parameter.h:351
gx_engine::ParameterV< int >::upper
int upper
Definition: gx_parameter.h:303
gx_engine::MidiControllerList::size
int size()
Definition: gx_parameter.h:770
gx_engine::ControllerArray::deleteParameter
bool deleteParameter(Parameter &p)
Definition: gx_paramtable.cpp:427
gx_engine::Parameter::set_desc
void set_desc(const string &desc)
Definition: gx_parameter.h:179
gx_engine::StringParameter
ParameterV< Glib::ustring > StringParameter
Definition: gx_parameter.h:98
gx_engine::ParameterGroups::~ParameterGroups
~ParameterGroups()
Definition: gx_paramtable.cpp:822
gx_engine::MidiControllerList::signal_new_program
sigc::signal< void, int > & signal_new_program()
Definition: gx_parameter.h:789
gx_engine::MidiControllerList::writeJSON
void writeJSON(gx_system::JsonWriter &jw) const
Definition: gx_parameter.h:781
gx_engine::Parameter::hasRange
virtual bool hasRange() const
Definition: gx_paramtable.cpp:990
gx_engine::Parameter::c_type
enum ctrl_type c_type
Definition: gx_parameter.h:121
gx_engine::FloatEnumParameter::idx_from_id
virtual float idx_from_id(string v_id)
Definition: gx_paramtable.cpp:1334
gx_engine::MidiControllerList::update_from_controllers
void update_from_controllers()
Definition: gx_paramtable.cpp:577
gx_engine::FloatEnumParameter::writeJSON
virtual void writeJSON(gx_system::JsonWriter &jw) const
Definition: gx_paramtable.cpp:1329
gx_engine::ControllerArray::~ControllerArray
~ControllerArray()
Definition: gx_parameter.h:730
gx_engine::ParamMap::begin
iterator begin() const
Definition: gx_parameter.h:538
gx_engine::Parameter::controllable
bool controllable
Definition: gx_parameter.h:124
gx_engine::FileParameter::std_value
Glib::RefPtr< Gio::File > std_value
Definition: gx_parameter.h:389
gx_engine::Parameter::getStepAsFloat
virtual float getStepAsFloat() const
Definition: gx_paramtable.cpp:994
gx_engine::ParameterV< float >::signal_changed
sigc::signal< void, float > & signal_changed()
Definition: gx_parameter.h:273
gx_engine::FileParameter::compareJSON_value
virtual bool compareJSON_value()
Definition: gx_paramtable.cpp:1757
gx_engine::FileParameter::changed
sigc::signal< void > changed
Definition: gx_parameter.h:391
gx_engine::Parameter::serializeJSON
virtual void serializeJSON(gx_system::JsonWriter &jw)
Definition: gx_paramtable.cpp:888
PluginDef
Definition: gx_plugin.h:183
gx_engine::Parameter::Continuous
@ Continuous
Definition: gx_parameter.h:108
gx_engine::ParamMap::reset_unit
void reset_unit(const PluginDef *pdef) const
Definition: gx_paramtable.cpp:2134
gx_engine::Parameter::used
bool used
Definition: gx_parameter.h:128
gx_engine::ParameterGroups::insert
void insert(const string &id, const string &group)
Definition: gx_parameter.h:71
gx_engine::Parameter::set_log_display
void set_log_display()
Definition: gx_parameter.h:181
gx_engine::ParameterV< int >::std_value
int std_value
Definition: gx_parameter.h:302
gx_engine::FileParameter::FileParameter
FileParameter(const string &id, bool preset=false)
Definition: gx_parameter.h:407
gx_engine::ParamMap::unregister
void unregister(Parameter *p)
Definition: gx_paramtable.cpp:2070
gx_engine::Parameter::isControllable
bool isControllable() const
Definition: gx_parameter.h:169
gx_engine::ParamMap::reg_enum_par
EnumParameter * reg_enum_par(const string &id, const string &name, const value_pair *vl, int *var, int std=0)
Definition: gx_parameter.h:579
gx_engine::MidiController::set_bpm
bool set_bpm(int n, int last_value)
Definition: gx_paramtable.cpp:352
gx_engine::MidiStandardControllers::MidiStandardControllers
MidiStandardControllers()
Definition: gx_paramtable.cpp:127
gx_engine::EnumParameter::serializeJSON
virtual void serializeJSON(gx_system::JsonWriter &jw)
Definition: gx_paramtable.cpp:1480
gx_engine::ParameterV< bool >::ParameterV
ParameterV(const string &id, const string &name, ctrl_type ctp, bool preset, bool *v, bool sv, bool ctrl)
Definition: gx_parameter.h:370
gx_engine::EnumParameter::idx_from_id
virtual int idx_from_id(string v_id)
Definition: gx_paramtable.cpp:1496
gx_engine::MidiControllerList::compute_midi_in
void compute_midi_in(void *midi_input_port_buf, void *arg)
Definition: gx_paramtable.cpp:754
gx_engine::FloatEnumParameter::value_names
const value_pair * value_names
Definition: gx_parameter.h:280
gx_engine::ParameterV< float >
Definition: gx_parameter.h:230
gx_engine::Parameter::dtp_normal
@ dtp_normal
Definition: gx_parameter.h:117
gx_engine::MidiController::upper
float upper() const
Definition: gx_parameter.h:689
gx_engine::Parameter::tp_special
@ tp_special
Definition: gx_parameter.h:116
gx_engine::Parameter::getBool
BoolParameter & getBool()
Definition: gx_parameter.h:471
gx_engine::Parameter::dtp_log
@ dtp_log
Definition: gx_parameter.h:117
gx_engine::Parameter::signal_changed_string
sigc::signal< void, const Glib::ustring & > & signal_changed_string()
Definition: gx_parameter.h:504
gx_engine::ParameterV< bool >::get_value
bool get_value() const
Definition: gx_parameter.h:364
gx_engine::Parameter::signal_changed_bool
sigc::signal< void, bool > & signal_changed_bool()
Definition: gx_parameter.h:498
gx_engine::ParameterGroups::param_group
friend string param_group(const string &group_id, bool nowarn)
gx_engine::Parameter::group
const string & group() const
Definition: gx_parameter.h:174
gx_engine::ParamMap::reg_non_midi_enum_par
EnumParameter * reg_non_midi_enum_par(const string &id, const string &name, const value_pair *vl, int *var, bool preset, int std=0)
Definition: gx_parameter.h:585
debug_check
#define debug_check(func,...)
Definition: gx_parameter.h:36
gx_engine::MidiControllerList::signal_midi_value_changed
sigc::signal< void, int, int > & signal_midi_value_changed()
Definition: gx_parameter.h:797
gx_engine::Parameter::get_blocked
bool get_blocked()
Definition: gx_parameter.h:184
gx_engine::MidiClockToBpm::rounded
unsigned int rounded(float f)
Definition: gx_paramtable.cpp:454
gx_engine::Parameter::isInt
bool isInt() const
Definition: gx_parameter.h:164
gx_engine::Parameter::save_in_preset
bool save_in_preset
Definition: gx_parameter.h:123
gx_engine::ParameterV< int >
Definition: gx_parameter.h:295
gx_engine::FileParameter::setJSON_value
virtual void setJSON_value()
Definition: gx_paramtable.cpp:1761
gx_engine
Definition: gx_convolver.h:33
gx_engine::Parameter::tp_file
@ tp_file
Definition: gx_parameter.h:116
gx_engine::FileParameter::is_standard
bool is_standard() const
Definition: gx_parameter.h:415
gx_engine::Parameter::dump
void dump(gx_system::JsonWriter *jw)
Definition: gx_paramtable.cpp:1998
gx_engine::ParamMap::end
iterator end() const
Definition: gx_parameter.h:539
gx_engine::Parameter::getFloat
FloatParameter & getFloat()
Definition: gx_parameter.h:455
gx_engine::MidiControllerList
Definition: gx_parameter.h:737
gx_system::JsonWriter
Definition: gx_json.h:55
gx_engine::param_group
string param_group(const string &group_id, bool nowarn=false)
gx_engine::MidiControllerList::set_ctr_val
void set_ctr_val(int ctr, int val)
Definition: gx_paramtable.cpp:658
gx_engine::Parameter::tp_float
@ tp_float
Definition: gx_parameter.h:116
gx_engine::MidiControllerList::signal_new_bank
sigc::signal< void, int > & signal_new_bank()
Definition: gx_parameter.h:791
gx_engine::EnumParameter::get_pair
const value_pair & get_pair()
Definition: gx_parameter.h:342
gx_engine::Parameter::isUsed
bool isUsed() const
Definition: gx_parameter.h:155
gx_engine::MidiClockToBpm::MidiClockToBpm
MidiClockToBpm()
Definition: gx_paramtable.cpp:445
gx_engine::ParameterGroups::group_exist
bool group_exist(const string &id)
Definition: gx_paramtable.cpp:869
gx_engine::Parameter::setUsed
void setUsed()
Definition: gx_parameter.h:156
gx_engine::ParameterV< float >::get_value
float get_value() const
Definition: gx_parameter.h:246
gx_system::JsonParser
Definition: gx_json.h:112
gx_engine::Parameter::setSavable
void setSavable(bool v)
Definition: gx_parameter.h:172
gx_engine::ParameterV< Glib::ustring >::get_value
const Glib::ustring & get_value() const
Definition: gx_parameter.h:435
gx_engine::ParameterV< bool >::json_value
bool json_value
Definition: gx_parameter.h:356
gx_engine::EnumParameter
Definition: gx_parameter.h:333
gx_engine::MidiStandardControllers
Definition: gx_parameter.h:647
gx_engine::Parameter::setJSON_value
virtual void setJSON_value()=0
gx_engine::FileParameter::signal_changed
sigc::signal< void > & signal_changed()
Definition: gx_parameter.h:393
gx_engine::Parameter::tp_int
@ tp_int
Definition: gx_parameter.h:116
gx_engine::FileParameter::value
Glib::RefPtr< Gio::File > value
Definition: gx_parameter.h:388
gx_engine::Parameter::value_label
static const char * value_label(const value_pair &vp)
Definition: gx_parameter.h:199
gx_engine::ParamMap::reg_filepar
FileParameter * reg_filepar(const string &id, bool preset=false)
Definition: gx_parameter.h:615
gx_engine::FloatEnumParameter
Definition: gx_parameter.h:278
gx_engine::ParameterV< float >::upper
float upper
Definition: gx_parameter.h:239
gx_engine::midi_std_ctr
MidiStandardControllers midi_std_ctr
Definition: gx_paramtable.cpp:38
gx_engine::get_group_table
ParameterGroups & get_group_table()
Definition: gx_paramtable.cpp:855
gx_engine::MidiController::toggle_behaviour
int toggle_behaviour() const
Definition: gx_parameter.h:691
gx_engine::Parameter::getFile
FileParameter & getFile()
Definition: gx_parameter.h:476
gx_engine::FileParameter::on_off_value
virtual bool on_off_value()
Definition: gx_paramtable.cpp:1744
gx_engine::Parameter::l_group
string l_group() const
Definition: gx_parameter.h:175
gx_engine::ParamMap::unit_has_std_values
bool unit_has_std_values(const PluginDef *pdef) const
Definition: gx_paramtable.cpp:2111
gx_engine::ParameterV< Glib::ustring >::signal_changed
sigc::signal< void, const Glib::ustring & > & signal_changed()
Definition: gx_parameter.h:449
gx_engine::MidiStandardControllers::readJSON
void readJSON(gx_system::JsonParser &jp)
Definition: gx_paramtable.cpp:172
gx_engine::EnumParameter::writeJSON
virtual void writeJSON(gx_system::JsonWriter &jw) const
Definition: gx_paramtable.cpp:1506
gx_engine::ParamMap::set_init_values
void set_init_values()
Definition: gx_paramtable.cpp:2086
gx_engine::ControllerArray
Definition: gx_parameter.h:726
value_pair::value_id
const char * value_id
Definition: gx_plugin.h:118
gx_engine::MidiStandardControllers::replace
void replace(int ctr, const string &name)
Definition: gx_paramtable.cpp:137
gx_engine::MidiController::writeJSON
void writeJSON(gx_system::JsonWriter &jw) const
Definition: gx_paramtable.cpp:193
gx_engine::Parameter::get_midi_blocked
bool get_midi_blocked()
Definition: gx_parameter.h:186
gx_engine::MidiController::set_midi
bool set_midi(int n, int last_value, bool update)
Definition: gx_paramtable.cpp:300
gx_engine::Parameter::readJSON_value
virtual void readJSON_value(gx_system::JsonParser &jp)=0
gx_engine::Parameter::d_flags
unsigned int d_flags
Definition: gx_parameter.h:122
gx_engine::ParameterV< Glib::ustring >::ParameterV
ParameterV(const string &id, const string &name, Glib::ustring *v, const Glib::ustring &sv, bool preset=false)
Definition: gx_parameter.h:442
gx_engine::ParameterV< float >::changed
sigc::signal< void, float > changed
Definition: gx_parameter.h:240
gx_engine::MidiControllerList::update_from_controller
void update_from_controller(int ctr)
update all controlled parameters with last received value from MIDI controller ctr.
Definition: gx_paramtable.cpp:567
gx_engine::ParameterV< float >::ParameterV
ParameterV(const string &id, const string &name, ctrl_type ctp, bool preset, float *v, float sv, float lv, float uv, float tv, bool ctrl, bool no_init)
Definition: gx_parameter.h:260
gx_engine::Parameter::l_desc
string l_desc() const
Definition: gx_parameter.h:180
gx_engine::MidiController::MidiController
MidiController(Parameter &p, float l, float u, bool t=false, int tt=0)
Definition: gx_parameter.h:686
gx_engine::MidiControllerList::set_controller_array
void set_controller_array(const ControllerArray &m)
Definition: gx_paramtable.cpp:682
gx_engine::MidiClockToBpm
Definition: gx_parameter.h:708
gx_engine::FileParameter::set_path
void set_path(const string &path)
Definition: gx_paramtable.cpp:1713
gx_engine::MidiStandardControllers::writeJSON
void writeJSON(gx_system::JsonWriter &jw) const
Definition: gx_paramtable.cpp:160
gx_engine::ParamMap::~ParamMap
~ParamMap()
Definition: gx_paramtable.cpp:1875
gx_engine::ParameterGroups
Definition: gx_parameter.h:47
gx_engine::Parameter::Parameter
Parameter(const string &id, const string &name, value_type vtp, ctrl_type ctp, bool preset, bool ctrl)
Definition: gx_parameter.h:134
gx_engine::ParameterV< int >::get_value
int get_value() const
Definition: gx_parameter.h:308
gx_engine::ParamMap
Definition: gx_parameter.h:515
gx_engine::Parameter::writeJSON
virtual void writeJSON(gx_system::JsonWriter &jw) const =0
gx_system
Definition: gx_json.h:33
gx_engine::ParamMap::readJSON_one
Parameter * readJSON_one(gx_system::JsonParser &jp)
Definition: gx_paramtable.cpp:1921
gx_engine::ParamMap::writeJSON
void writeJSON(gx_system::JsonWriter &jw)
Definition: gx_paramtable.cpp:1913
gx_engine::Parameter::set_midi_blocked
void set_midi_blocked(bool v)
Definition: gx_parameter.h:185
gx_engine::FileParameter::get
const Glib::RefPtr< Gio::File > & get() const
Definition: gx_parameter.h:396
gx_engine::ParameterV< int >::ParameterV
ParameterV(const string &id, const string &name, ctrl_type ctp, bool preset, int *v, int sv, int lv, int uv, bool ctrl)
Definition: gx_parameter.h:319
gx_engine::Parameter::id
const string & id() const
Definition: gx_parameter.h:173
gx_engine::Parameter::Switch
@ Switch
Definition: gx_parameter.h:108
gx_engine::MidiControllerList::signal_new_mute_state
sigc::signal< void, int > & signal_new_mute_state()
Definition: gx_parameter.h:790
gx_engine::ParamMap::operator[]
Parameter & operator[](const string &id)
Definition: gx_parameter.h:543
gx_engine::ParameterV< Glib::ustring >::json_value
Glib::ustring json_value
Definition: gx_parameter.h:428
gx_engine::Parameter::isFloat
bool isFloat() const
Definition: gx_parameter.h:163
gx_engine::MidiController::set_trans
bool set_trans(int n, int last_value)
Definition: gx_paramtable.cpp:341
gx_engine::MidiControllerList::set_bpm_val
void set_bpm_val(unsigned int val)
Definition: gx_paramtable.cpp:670
gx_engine::FileParameter::writeJSON
virtual void writeJSON(gx_system::JsonWriter &jw) const
Definition: gx_paramtable.cpp:1748
gx_engine::MidiClockToBpm::time_to_bpm
bool time_to_bpm(double time, unsigned int *bpm_)
Definition: gx_paramtable.cpp:459
gx_engine::Parameter::isSavable
bool isSavable() const
Definition: gx_parameter.h:171
gx_engine::ParamMap::dump
void dump(const string &fmt)
Definition: gx_paramtable.cpp:1976
gx_engine::Parameter::ctrl_type
ctrl_type
Definition: gx_parameter.h:108
gx_engine::MidiController::trigger_changed
void trigger_changed()
Definition: gx_parameter.h:699
gx_engine::ParameterV< Glib::ustring >::value_storage
Glib::ustring value_storage
Definition: gx_parameter.h:432
gx_engine::FileParameter::set_standard
void set_standard(const string &filename)
Definition: gx_paramtable.cpp:1731
gx_engine::FileParameter::copy
void copy(const string &destination) const
Definition: gx_paramtable.cpp:1800
gx_engine::Parameter::toggle_type
toggle_type
Definition: gx_parameter.h:109
gx_engine::FileParameter::get_path
string get_path() const
Definition: gx_paramtable.cpp:1784
gx_engine::Parameter::isFile
bool isFile() const
Definition: gx_parameter.h:166
gx_engine::ParamMap::reg_preset_string
StringParameter * reg_preset_string(const string &id, const string &name, Glib::ustring *var, const string &sv, bool preset=true)
Definition: gx_parameter.h:625
gx_engine::paramlist
list< Parameter * > paramlist
Definition: gx_parameter.h:221
gx_engine::ParameterV< Glib::ustring >::value
Glib::ustring * value
Definition: gx_parameter.h:429
gx_engine::Parameter::compareJSON_value
virtual bool compareJSON_value()=0
gx_engine::Parameter::None
@ None
Definition: gx_parameter.h:108
gx_engine::FloatParameter
ParameterV< float > FloatParameter
Definition: gx_parameter.h:93
gx_engine::MidiControllerList::deleteParameter
void deleteParameter(Parameter &param)
Definition: gx_paramtable.cpp:616
gx_engine::Parameter::blocked
bool blocked
Definition: gx_parameter.h:126
gx_engine::FloatEnumParameter::readJSON_value
virtual void readJSON_value(gx_system::JsonParser &jp)
Definition: gx_paramtable.cpp:1346
gx_engine::ParamMap::iterator
map< string, Parameter * >::const_iterator iterator
Definition: gx_parameter.h:537
gx_engine::ParameterV< bool >::value
bool * value
Definition: gx_parameter.h:357
gx_engine::ParameterGroups::operator[]
string operator[](const string &id)
Definition: gx_parameter.h:67
gx_engine::ParameterGroups::dump
void dump()
Definition: gx_paramtable.cpp:847
gx_engine::FileParameter::json_value
Glib::RefPtr< Gio::File > json_value
Definition: gx_parameter.h:390
gx_engine::MidiControllerList::MidiControllerList
MidiControllerList()
Definition: gx_paramtable.cpp:491
gx_engine::MidiClockToBpm::~MidiClockToBpm
~MidiClockToBpm()
Definition: gx_parameter.h:723
gx_engine::ParameterV< Glib::ustring >::std_value
Glib::ustring std_value
Definition: gx_parameter.h:430
gx_engine::Parameter::OnOff
@ OnOff
Definition: gx_parameter.h:109
gx_engine::MidiController::set
void set(float v, float high)
Definition: gx_parameter.h:698
gx_engine::Parameter::_desc
string _desc
Definition: gx_parameter.h:119
gx_engine::ParameterV< int >::json_value
int json_value
Definition: gx_parameter.h:300
gx_engine::ControllerArray::array_size
@ array_size
Definition: gx_parameter.h:728
gx_engine::IntParameter
ParameterV< int > IntParameter
Definition: gx_parameter.h:96
gx_engine::MidiControllerList::process_trans
void process_trans(int transport_state)
Definition: gx_paramtable.cpp:726
gx_engine::FileParameter
Definition: gx_parameter.h:386
gx_engine::ParamMap::reg_non_midi_par
BoolParameter * reg_non_midi_par(const string &id, bool *var, bool preset, bool std=false)
Definition: gx_parameter.h:599
gx_engine::Parameter::tp_string
@ tp_string
Definition: gx_parameter.h:116
gx_engine::ParamMap::hasId
bool hasId(const string &id) const
Definition: gx_parameter.h:540
gx_engine::ParamMap::reg_par
FloatParameter * reg_par(const string &id, const string &name, float *var, float std, float lower, float upper, float step)
Definition: gx_parameter.h:557
gx_engine::FloatEnumParameter::getValueNames
virtual const value_pair * getValueNames() const
Definition: gx_paramtable.cpp:1325
gx_engine::ParameterV< int >::value
int * value
Definition: gx_parameter.h:301
gx_gui::check_id
void check_id(Gtk::Widget *w, const std::string &id, gx_engine::GxMachineBase &machine)
Definition: gx_main_interface.h:262
gx_engine::ParameterV< int >::signal_changed
sigc::signal< void, int > & signal_changed()
Definition: gx_parameter.h:328
gx_engine::Parameter::do_not_save
bool do_not_save
Definition: gx_parameter.h:125
gx_engine::Parameter::signal_changed_float
sigc::signal< void, float > & signal_changed_float()
Definition: gx_parameter.h:486
gx_engine::ParameterV< Glib::ustring >
Definition: gx_parameter.h:426
gx_engine::Parameter::compare_parameter
friend void compare_parameter(const char *title, Parameter *p1, Parameter *p2, bool all)
Definition: gx_paramtable.cpp:1011
gx_engine::EnumParameter::EnumParameter
EnumParameter(gx_system::JsonParser &jp)
Definition: gx_parameter.h:336
gx_engine::Parameter::stdJSON_value
virtual void stdJSON_value()=0
gx_engine::FileParameter::get_display_name
string get_display_name() const
Definition: gx_paramtable.cpp:1796
gx_engine::FileParameter::get_directory_path
string get_directory_path() const
Definition: gx_paramtable.cpp:1788
gx_engine::Parameter::getInt
IntParameter & getInt()
Definition: gx_parameter.h:460
gx_engine::Parameter::_group
string _group
Definition: gx_parameter.h:119
gx_engine::FileParameter::readJSON_value
virtual void readJSON_value(gx_system::JsonParser &jp)
Definition: gx_paramtable.cpp:1752
gx_engine::ParameterV< float >::value
float * value
Definition: gx_parameter.h:237
gx_engine::MidiControllerList::remove_controlled_parameters
void remove_controlled_parameters(paramlist &plist, const ControllerArray *m)
Definition: gx_paramtable.cpp:694
gx_engine::ParameterV< bool >::changed
sigc::signal< void, bool > changed
Definition: gx_parameter.h:359
gx_engine::Parameter::getLowerAsFloat
virtual float getLowerAsFloat() const
Definition: gx_paramtable.cpp:998
gx_engine::MidiController
Definition: gx_parameter.h:675
gx_engine::Parameter::operator==
bool operator==(const Parameter &p) const
Definition: gx_parameter.h:187
gx_engine::ParameterV< float >::std_value
float std_value
Definition: gx_parameter.h:238
gx_engine::ParameterV
Definition: gx_parameter.h:93
gx_engine::Parameter
Definition: gx_parameter.h:106
gx_engine::Parameter::isBool
bool isBool() const
Definition: gx_parameter.h:165
gx_engine::ParameterV< bool >::std_value
bool std_value
Definition: gx_parameter.h:358
gx_engine::FloatEnumParameter::FloatEnumParameter
FloatEnumParameter(gx_system::JsonParser &jp)
Definition: gx_parameter.h:281
gx_engine::Parameter::Enum
@ Enum
Definition: gx_parameter.h:108
value_pair::value_label
const char * value_label
Definition: gx_plugin.h:119
gx_engine::MidiControllerList::get_last_midi_control_value
int get_last_midi_control_value(unsigned int n)
Definition: gx_parameter.h:782
gx_engine::EnumParameter::readJSON_value
virtual void readJSON_value(gx_system::JsonParser &jp)
Definition: gx_paramtable.cpp:1511
gx_engine::ParameterV< bool >::signal_changed
sigc::signal< void, bool > & signal_changed()
Definition: gx_parameter.h:379
gx_engine::Parameter::name
const string & name() const
Definition: gx_parameter.h:176
gx_engine::tp_int
@ tp_int
Definition: gx_internal_plugins.h:704
gx_engine::ControllerArray::writeJSON
void writeJSON(gx_system::JsonWriter &jw) const
Definition: gx_paramtable.cpp:396
gx_engine::MidiController::is_toggle
bool is_toggle() const
Definition: gx_parameter.h:690
gx_engine::BoolParameter
ParameterV< bool > BoolParameter
Definition: gx_parameter.h:97
gx_engine::FileParameter::FileParameter
FileParameter(const string &id, const string &filename, bool preset=false)
Definition: gx_parameter.h:403
gx_engine::Parameter::group_id
std::string group_id() const
Definition: gx_parameter.h:133
gx_engine::MidiStandardControllers::operator[]
const string operator[](int ctr)
Definition: gx_parameter.h:666
gx_engine::Parameter::midi_blocked
bool midi_blocked
Definition: gx_parameter.h:127
gx_engine::ParameterV< float >::value_storage
float value_storage
Definition: gx_parameter.h:241
gx_engine::MidiControllerList::modifyCurrent
void modifyCurrent(Parameter &param, float lower, float upper, bool toggle, int toggle_behaviour)
Definition: gx_paramtable.cpp:629
gx_engine::Parameter::isString
bool isString() const
Definition: gx_parameter.h:167
gx_engine::MidiController::readJSON
static MidiController * readJSON(gx_system::JsonParser &jp, ParamMap &param)
Definition: gx_paramtable.cpp:208
gx_engine::MidiControllerList::operator[]
midi_controller_list & operator[](int n)
Definition: gx_parameter.h:769