Loading...
Searching...
No Matches
gx_parameter.h
Go to the documentation of this file.
/*
* Copyright (C) 2009, 2010 Hermann Meyer, James Warden, Andreas Degert
* Copyright (C) 2011 Pete Shorthose
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* --------------------------------------------------------------------------
*
* This file is part of the guitarix GUI main class
* Note: this header file depends on gx_system.h
*
* ----------------------------------------------------------------------------
*/
#pragma once
#ifndef SRC_HEADERS_GX_PARAMETER_H_
#define SRC_HEADERS_GX_PARAMETER_H_
namespace gx_system { class JsonWriter; class JsonParser; }
namespace gx_engine {
#ifndef NDEBUG
#define debug_check(func, ...) func(__VA_ARGS__)
#else
#define debug_check(...)
#endif
/****************************************************************
**
** Parameter
**
*/
class ParameterGroups {
private:
map<string, string> groups;
#ifndef NDEBUG
map<string, bool> used;
void group_exists(const string& id);
void group_is_new(const string& id);
friend string param_group(const string& group_id, bool nowarn);
#endif
public:
ParameterGroups();
~ParameterGroups();
inline string get(const string& id) { return groups[id]; }
inline string operator[](const string& id) {
debug_check(group_exists, id);
return groups[id];
}
inline void insert(const string& id, const string& group) {
debug_check(group_is_new, id);
groups.insert(pair<string, string>(id, group));
}
bool group_exist(const string& id);
inline void erase(const string& id) {
if (!group_exist(id)) return;
#ifndef NDEBUG // avoid unused variable warning in release mode
size_t n = groups.erase(id);
assert(n == 1);
#else
groups.erase(id);
#endif
}
#ifndef NDEBUG
void dump();
#endif
};
ParameterGroups& get_group_table();
string param_group(const string& group_id, bool nowarn = false);
/****************************************************************
** Parameter
*/
template <class T> class ParameterV;
typedef ParameterV<float> FloatParameter;
typedef ParameterV<int> IntParameter;
typedef ParameterV<bool> BoolParameter;
typedef ParameterV<Glib::ustring> StringParameter;
class FloatEnumParameter;
class EnumParameter;
class FileParameter;
/****************************************************************/
class Parameter: boost::noncopyable {
public:
enum ctrl_type { None, Continuous, Switch, Enum };
enum toggle_type { OnOff = 0, Constant = 1, Toggle = 2, Commander = 3, _Count = 4 };
private:
virtual bool midi_set(float n, float high, float llimit, float ulimit); //RT
virtual bool midi_set_bpm(float n, float high, float llimit, float ulimit); //RT
friend class MidiController;
protected:
enum value_type { tp_float, tp_int, tp_bool, tp_file, tp_string, tp_special };
enum display_flags { dtp_normal, dtp_log = 1 };
string _id;
string _name, _group, _desc;
enum value_type v_type : 3;
enum ctrl_type c_type : 3;
unsigned int d_flags : 2;
bool save_in_preset : 1;
bool controllable : 1;
bool do_not_save : 1;
bool blocked : 1;
bool midi_blocked : 1;
bool output : 1;
bool maxlevel : 1;
bool nowarn : 1;
bool used : 1; // debug
protected:
void range_warning(float value, float lower, float upper);
static gx_system::JsonParser& jp_next(gx_system::JsonParser& jp, const char *key);
public:
inline std::string group_id() const { return _id.substr(0, _id.find_last_of(".")); }
Parameter(const string& id, const string& name, value_type vtp, ctrl_type ctp, bool preset,
bool ctrl):
boost::noncopyable(),
_id(id),
_name(name),
_group(param_group(group_id())),
_desc(),
v_type(vtp),
c_type(ctp),
d_flags(0),
save_in_preset(preset),
controllable(ctrl),
do_not_save(false),
blocked(false),
midi_blocked(false),
output(false),
maxlevel(false),
used(false) {}
Parameter(gx_system::JsonParser& jp);
virtual ~Parameter();
virtual void serializeJSON(gx_system::JsonWriter& jw);
virtual void trigger_changed();
#ifndef NDEBUG
bool isUsed() const { return used; }
void setUsed() { used = true; }
friend void compare_parameter(const char* title, Parameter* p1,
Parameter* p2, bool all);
void dump(gx_system::JsonWriter *jw);
#endif
const char *get_typename() const;
bool isFloat() const { return v_type == tp_float; }
bool isInt() const { return v_type == tp_int; }
bool isBool() const { return v_type == tp_bool; }
bool isFile() const { return v_type == tp_file; }
bool isString() const { return v_type == tp_string; }
ctrl_type getControlType() const { return c_type; }
bool isControllable() const { return controllable; }
bool isInPreset() const { return save_in_preset; }
bool isSavable() const { return !do_not_save; }
void setSavable(bool v) { do_not_save = !v; }
bool isOutput() const { return output; }
void setOutput(bool v) { output = v; }
bool isMaxlevel() const { return maxlevel; }
void setMaxlevel(bool v) { maxlevel = v; }
bool isNoWarning() const { return nowarn; }
void setNoWarning(bool v) { nowarn = v; }
const string& id() const { return _id; }
const string& group() const { return _group; }
string l_group() const { return gettext(_group.c_str()); }
const string& name() const { return _name; }
string l_name() const { return gettext(_name.c_str()); }
const string& desc() const { return _desc; }
void set_desc(const string& desc) { _desc = desc; }
string l_desc() const { return gettext(_desc.c_str()); }
void set_log_display() { d_flags |= dtp_log; }
bool is_log_display() const { return d_flags & dtp_log; }
void set_blocked(bool v) { blocked = v; }
bool get_blocked() const { return blocked; }
void set_midi_blocked(bool v) { midi_blocked = v; }
bool get_midi_blocked() const { return midi_blocked; }
bool operator==(const Parameter& p) const { return &p == this; }
virtual void stdJSON_value() = 0;
virtual bool on_off_value() = 0; //RT
virtual void writeJSON(gx_system::JsonWriter& jw) const = 0;
virtual void readJSON_value(gx_system::JsonParser& jp) = 0;
virtual void setJSON_value() = 0;
virtual bool compareJSON_value() = 0;
virtual bool hasRange() const;
virtual float getLowerAsFloat() const;
virtual float getUpperAsFloat() const;
virtual float getStepAsFloat() const;
virtual const value_pair *getValueNames() const;
static inline const char *value_label(const value_pair& vp) {
return gettext(vp.value_label ? vp.value_label : vp.value_id);
}
FloatParameter& getFloat();
IntParameter& getInt();
EnumParameter& getEnum();
BoolParameter& getBool();
FileParameter &getFile();
StringParameter &getString();
sigc::signal<void, float>& signal_changed_float();
sigc::signal<void, int>& signal_changed_int();
sigc::signal<void, bool>& signal_changed_bool();
sigc::signal<void, const Glib::ustring&>& signal_changed_string();
};
#ifndef NDEBUG
void compare_parameter(const char* title, Parameter* p1,
Parameter* p2, bool all = false);
#endif
/****************************************************************/
typedef list<Parameter*> paramlist;
/****************************************************************/
template<class T>
class ParameterV: public Parameter {
};
template<>
class ParameterV<float>: public Parameter {
private:
virtual bool midi_set(float n, float high, float llimit, float ulimit); //RT
virtual bool midi_set_bpm(float n, float high, float llimit, float ulimit); //RT
virtual void trigger_changed();
protected:
float json_value;
float *value;
float std_value;
float lower, upper, step;
sigc::signal<void, float> changed;
float value_storage;
friend class ParamRegImpl;
friend class GxMachine;
public:
bool set(float val) const;
bool ramp_value(float val);
float get_value() const { return *value; }
void convert_from_range(float low, float up);
void set_zero() { *value = 0; }
virtual void stdJSON_value();
virtual bool on_off_value();
virtual void writeJSON(gx_system::JsonWriter& jw) const;
virtual void readJSON_value(gx_system::JsonParser& jp);
virtual void rampJSON_value(gx_system::JsonParser& jp);
virtual bool compareJSON_value();
virtual void setJSON_value();
virtual bool hasRange() const;
virtual float getLowerAsFloat() const;
virtual float getUpperAsFloat() const;
virtual float getStepAsFloat() const;
virtual float idx_from_id(string v_id);
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):
Parameter(id, name, tp_float, ctp, preset, ctrl),
value(v ? v : &value_storage), std_value(sv),lower(lv),upper(uv),step(tv) {
assert(lv <= sv && sv <= uv);
if (!no_init) {
*value = sv;
}
}
#ifndef NDEBUG
friend void compare_parameter(const char* title, Parameter* p1,
Parameter* p2, bool all);
#endif
~ParameterV();
ParameterV(gx_system::JsonParser& jp);
virtual void serializeJSON(gx_system::JsonWriter& jw);
sigc::signal<void, float>& signal_changed() { return changed; }
};
/****************************************************************/
class FloatEnumParameter: public FloatParameter {
protected:
const value_pair* value_names;
FloatEnumParameter(gx_system::JsonParser& jp): FloatParameter(jp_next(jp, "FloatParameter")), value_names(0) {}
public:
virtual void writeJSON(gx_system::JsonWriter& jw) const;
virtual void readJSON_value(gx_system::JsonParser& jp);
virtual const value_pair *getValueNames() const;
FloatEnumParameter(const string& id, const string& name, const value_pair* vn, bool preset, float *v,
int sv, int low, bool ctrl, bool no_init);
virtual void serializeJSON(gx_system::JsonWriter& jw);
virtual float idx_from_id(string v_id);
};
/****************************************************************/
template<>
class ParameterV<int>: public Parameter {
private:
virtual bool midi_set(float n, float high, float llimit, float ulimit); //RT
virtual void trigger_changed();
protected:
int json_value;
int *value;
int std_value;
int lower, upper;
sigc::signal<void, int> changed;
int value_storage;
friend class ParamRegImpl;
public:
bool set(int val) const;
int get_value() const { return *value; }
virtual void stdJSON_value();
virtual bool on_off_value();
virtual void writeJSON(gx_system::JsonWriter& jw) const;
virtual void readJSON_value(gx_system::JsonParser& jp);
virtual bool compareJSON_value();
virtual void setJSON_value();
virtual bool hasRange() const;
virtual float getLowerAsFloat() const;
virtual float getUpperAsFloat() const;
virtual int idx_from_id(string v_id);
ParameterV(const string& id, const string& name, ctrl_type ctp, bool preset,
int *v, int sv, int lv, int uv, bool ctrl):
Parameter(id, name, tp_int, ctp, preset, ctrl),
value(v ? v : &value_storage), std_value(sv), lower(lv), upper(uv) {
*value = sv;
}
~ParameterV();
ParameterV(gx_system::JsonParser& jp);
virtual void serializeJSON(gx_system::JsonWriter& jw);
sigc::signal<void, int>& signal_changed() { return changed; }
};
/****************************************************************/
class EnumParameter: public IntParameter {
protected:
const value_pair* value_names;
EnumParameter(gx_system::JsonParser& jp): IntParameter(jp_next(jp, "IntParameter")), value_names(0) {}
public:
virtual void writeJSON(gx_system::JsonWriter& jw) const;
virtual void readJSON_value(gx_system::JsonParser& jp);
virtual const value_pair *getValueNames() const;
virtual int idx_from_id(string v_id);
const value_pair& get_pair() { return getValueNames()[get_value()]; }
EnumParameter(const string& id, const string& name, const value_pair* vn, bool preset, int *v,
int sv, bool ctrl);
virtual void serializeJSON(gx_system::JsonWriter& jw);
};
/****************************************************************/
template<>
class ParameterV<bool>: public Parameter {
private:
virtual bool midi_set(float n, float high, float llimit, float ulimit); //RT
virtual void trigger_changed();
protected:
bool json_value;
bool *value;
bool std_value;
sigc::signal<void, bool> changed;
bool value_storage;
friend class ParamRegImpl;
public:
bool set(bool val) const;
virtual void stdJSON_value();
bool get_value() const { return *value; }
virtual bool on_off_value();
virtual void writeJSON(gx_system::JsonWriter& jw) const;
virtual bool compareJSON_value();
virtual void setJSON_value();
virtual void readJSON_value(gx_system::JsonParser& jp);
ParameterV(const string& id, const string& name, ctrl_type ctp, bool preset,
bool *v, bool sv, bool ctrl):
Parameter(id, name, tp_bool, ctp, preset, ctrl),
value(v ? v : &value_storage), std_value(sv) {
*value = sv;
}
~ParameterV();
ParameterV(gx_system::JsonParser& jp);
virtual void serializeJSON(gx_system::JsonWriter& jw);
sigc::signal<void, bool>& signal_changed() { return changed; }
};
/****************************************************************/
/****************************************************************/
class FileParameter: public Parameter {
protected:
Glib::RefPtr<Gio::File> value;
Glib::RefPtr<Gio::File> std_value;
Glib::RefPtr<Gio::File> json_value;
sigc::signal<void> changed;
public:
sigc::signal<void>& signal_changed() { return changed; }
bool set(const Glib::RefPtr<Gio::File>& val);
void set_path(const string& path);
const Glib::RefPtr<Gio::File>& get() const { return value; }
virtual void stdJSON_value();
virtual bool on_off_value();
virtual void writeJSON(gx_system::JsonWriter& jw) const;
virtual void readJSON_value(gx_system::JsonParser& jp);
virtual bool compareJSON_value();
virtual void setJSON_value();
FileParameter(const string& id, const string& filename, bool preset = false):
Parameter(id, "", tp_file, None, preset, false),
value(Gio::File::create_for_path(filename)),
std_value(value->dup()) {}
FileParameter(const string& id, bool preset = false):
Parameter(id, "", tp_file, None, preset, false),
value(0),
std_value(0) {}
FileParameter(gx_system::JsonParser& jp);
virtual void serializeJSON(gx_system::JsonWriter& jw);
void set_standard(const string& filename);
bool is_equal(const Glib::RefPtr<Gio::File>& v) const;
bool is_standard() const { return is_equal(std_value); }
string get_path() const;
string get_directory_path() const;
string get_parse_name() const;
string get_display_name() const;
void copy(const string& destination) const;
};
/****************************************************************/
template<>
class ParameterV<Glib::ustring>: public Parameter {
protected:
Glib::ustring json_value;
Glib::ustring *value;
Glib::ustring std_value;
sigc::signal<void, const Glib::ustring&> changed;
Glib::ustring value_storage;
public:
bool set(const Glib::ustring& val) const;
const Glib::ustring& get_value() const { return *value; }
virtual void stdJSON_value();
virtual bool on_off_value();
virtual void writeJSON(gx_system::JsonWriter& jw) const;
virtual bool compareJSON_value();
virtual void setJSON_value();
virtual void readJSON_value(gx_system::JsonParser& jp);
ParameterV(const string& id, const string& name, Glib::ustring *v, const Glib::ustring& sv, bool preset = false)
: Parameter(id, name, tp_string, None, preset, false),
value(v ? v : &value_storage), std_value(sv) {
}
~ParameterV();
ParameterV(gx_system::JsonParser& jp);
virtual void serializeJSON(gx_system::JsonWriter& jw);
sigc::signal<void, const Glib::ustring&>& signal_changed() { return changed; }
Glib::ustring& get_json_value() { return json_value; }
};
/****************************************************************/
inline FloatParameter &Parameter::getFloat() {
assert(isFloat());
return static_cast<FloatParameter&>(*this);
}
inline IntParameter &Parameter::getInt() {
assert(isInt());
return static_cast<IntParameter&>(*this);
}
inline EnumParameter &Parameter::getEnum() {
EnumParameter *p = dynamic_cast<EnumParameter*>(this);
assert(p);
return *p;
}
inline BoolParameter &Parameter::getBool() {
assert(isBool());
return static_cast<BoolParameter&>(*this);
}
inline FileParameter &Parameter::getFile() {
assert(isFile());
return static_cast<FileParameter&>(*this);
}
inline StringParameter &Parameter::getString() {
assert(isString());
return static_cast<StringParameter&>(*this);
}
inline sigc::signal<void, float>& Parameter::signal_changed_float() {
FloatParameter *p = dynamic_cast<FloatParameter*>(this);
assert(p);
return p->signal_changed();
}
inline sigc::signal<void, int>& Parameter::signal_changed_int() {
IntParameter *p = dynamic_cast<IntParameter*>(this);
assert(p);
return p->signal_changed();
}
inline sigc::signal<void, bool>& Parameter::signal_changed_bool() {
BoolParameter *p = dynamic_cast<BoolParameter*>(this);
assert(p);
return p->signal_changed();
}
inline sigc::signal<void, const Glib::ustring&>& Parameter::signal_changed_string() {
StringParameter *p = dynamic_cast<StringParameter*>(this);
assert(p);
return p->signal_changed();
}
/****************************************************************
** ParamMap
*/
class ParamMap: boost::noncopyable {
private:
map<string, Parameter*> id_map;
bool replace_mode;
sigc::signal<void,Parameter*,bool> insert_remove;
#ifndef NDEBUG
void unique_id(Parameter* param);
void check_id(const string& id);
void check_p(const char *p);
#endif
Parameter *insert(Parameter* param); // private so we can make sure parameters are owned
public:
template<class T> friend class ParameterV;
ParamMap();
~ParamMap();
void writeJSON(gx_system::JsonWriter& jw);
void readJSON(gx_system::JsonParser& jp);
Parameter *readJSON_one(gx_system::JsonParser& jp);
void writeJSON_one(gx_system::JsonWriter& jw, Parameter *p);
typedef map<string, Parameter*>::const_iterator iterator;
iterator begin() const { return id_map.begin(); }
iterator end() const { return id_map.end(); }
bool hasId(const string& id) const { return id_map.find(id) != id_map.end(); }
bool hasId(const char *p) const { return id_map.find(p) != id_map.end(); }
void set_replace_mode(bool mode) { replace_mode = mode; }
Parameter& operator[](const string& id) {
debug_check(check_id, id);
return *id_map[id];
}
Parameter& operator[](const char *p) {
debug_check(check_p, p);
return *id_map[p];
}
void set_init_values();
void reset_unit(const PluginDef *pdef) const;
bool unit_has_std_values(const PluginDef *pdef) const;
sigc::signal<void,Parameter*,bool> signal_insert_remove() { return insert_remove; }
void unregister(Parameter *p);
void unregister(const string& id);
inline FloatParameter *reg_par(const string& id, const string& name, float *var, float std,
float lower, float upper, float step, bool midi=true) {
FloatParameter *p = new FloatParameter(id, name, Parameter::Continuous, true, var, std, lower, upper, step, midi, replace_mode);
insert(p);
return p;
}
inline FloatParameter *reg_par_non_preset(
const string& id, const string& name, float *var, float std, float lower, float upper, float step) {
FloatParameter *p = new FloatParameter(id, name, Parameter::Continuous, false, var, std, lower, upper, step, false, replace_mode);
insert(p);
return p;
}
inline FloatParameter *reg_par(const string& id, const string& name, float *var, float std = 0, bool midi = true) {
FloatParameter *p = new FloatParameter(id, name, Parameter::Switch, true, var, std, 0, 1, 1, midi, replace_mode);
insert(p);
return p;
}
inline BoolParameter *reg_par(const string& id, const string& name, bool *var, bool std=false, bool preset=true, bool midi=true) {
BoolParameter * p = new BoolParameter(id, name, Parameter::Switch, preset, var, std, midi);
insert(p);
return p;
}
inline EnumParameter *reg_enum_par(const string& id, const string& name,
const value_pair *vl, int *var, int std = 0, bool midi=true) {
EnumParameter *p = new EnumParameter(id, name, vl, true, var, std, midi);
insert(p);
return p;
}
inline EnumParameter *reg_non_midi_enum_par(
const string& id, const string& name, const value_pair *vl,
int *var, bool preset, int std = 0) {
EnumParameter *p = new EnumParameter(id, name, vl, preset, var, std, false);
insert(p);
return p;
}
inline FloatEnumParameter *reg_enum_par(const string& id, const string& name,
const value_pair *vl, float *var,
int std = 0, int low = 0, bool midi=true) {
FloatEnumParameter *p = new FloatEnumParameter(id, name, vl, true, var, std, low, midi, replace_mode);
insert(p);
return p;
}
inline BoolParameter *reg_non_midi_par(const string& id, bool *var, bool preset, bool std = false) {
BoolParameter *p = new BoolParameter(id, "", Parameter::Switch, preset, var, std, false);
insert(p);
return p;
}
inline IntParameter *reg_par(const string& id, const string& name, int *var, int std,
int lower, int upper, bool midi) {
IntParameter *p = new IntParameter(id, name, Parameter::Continuous, true, var, std, lower, upper, midi);
insert(p);
return p;
}
inline IntParameter *reg_par(const string& id, const string& name, int *var, int std, bool midi) {
IntParameter *p = new IntParameter(id, name, Parameter::Switch, true, var, std, 0, 1, midi);
insert(p);
return p;
}
inline IntParameter *reg_non_midi_par(const string& id, int *var, bool preset, int std, int lower, int upper) {
IntParameter *p = new IntParameter(id, "", Parameter::None, preset, var, std, lower, upper, false);
insert(p);
return p;
}
inline FloatParameter *reg_non_midi_par(const string& id, float *val, bool preset,
float std = 0, float lower = 0, float upper = 1, float step = 0) {
FloatParameter *p = new FloatParameter(id, "", Parameter::Continuous, preset, val, std, lower, upper, step, false, replace_mode);
insert(p);
return p;
}
inline FileParameter *reg_filepar(const string& id, bool preset = false) {
FileParameter *p = new FileParameter(id, preset);
insert(p);
return p;
}
inline StringParameter *reg_string(const string& id, const string& name, Glib::ustring *var, const string& sv, bool preset=false) {
StringParameter *p = new StringParameter(id, name, var, sv, preset);
insert(p);
return p;
}
inline StringParameter *reg_preset_string(const string& id, const string& name, Glib::ustring *var, const string& sv, bool preset=true) {
StringParameter *p = new StringParameter(id, name, var, sv, preset);
insert(p);
return p;
}
#ifndef NDEBUG
void dump(const string& fmt);
#endif
};
/****************************************************************
**
** Midi
**
*/
/*
** MidiStandardControllers
*/
/****************************************************************/
class MidiStandardControllers {
private:
struct modstring {
string name;
bool modified;
const char *std;
modstring(const string& n, bool m, const char* s): name(n), modified(m), std(s) {}
explicit modstring(const char* n): name(n), modified(false), std(n) {}
modstring(): name(""), modified(false), std(0) {}
};
map<int, modstring> m;
string midi_to_note(int ctr);
string ctr_desc(int ctr);
public:
MidiStandardControllers();
const string operator[](int ctr) { return m[ctr].name; }
void replace(int ctr, const string& name);
void writeJSON(gx_system::JsonWriter& jw) const;
void readJSON(gx_system::JsonParser& jp);
};
extern MidiStandardControllers midi_std_ctr; // map ctrl num -> standard name
/****************************************************************
**
** MidiController
**/
class MidiController {
private:
Parameter *param; //RT
float _lower, _upper; //RT
bool toggle; //RT
int _toggle_behaviour;
public:
MidiController(Parameter& p, float l, float u, bool t=false, int tt=0):
param(&p), _lower(l), _upper(u), toggle(t), _toggle_behaviour(tt) {}
float lower() const { return _lower; }
float upper() const { return _upper; }
bool is_toggle() const { return toggle; }
int toggle_behaviour() const { return _toggle_behaviour; }
bool hasParameter(const Parameter& p) const { return *param == p; }
Parameter& getParameter() const { return *param; }
static MidiController *readJSON(gx_system::JsonParser& jp, ParamMap& param);
bool set_midi(int n, int last_value, int *value_set, bool update); //RT
bool set_bpm(int n, int last_value); //RT
bool set_trans(int n, int last_value); //RT
void set(float v, float high) { param->midi_set(v, high, _lower, _upper); }
void trigger_changed() { param->trigger_changed(); }
void writeJSON(gx_system::JsonWriter& jw) const;
};
typedef list<MidiController> midi_controller_list;
/****************************************************************
**
** MidiControllerList
**/
class MidiClockToBpm {
private:
double time1;
double time_diff;
int collect;
int collect_;
double bpm;
double bpm_new;
bool ret;
public:
MidiClockToBpm();
~MidiClockToBpm() {}
unsigned int rounded(float f);
bool time_to_bpm(double time, unsigned int* bpm_);
};
class ControllerArray: public vector<midi_controller_list> {
public:
enum { array_size = 328 };
ControllerArray(): vector<midi_controller_list>(array_size) {}
~ControllerArray() {}
void writeJSON(gx_system::JsonWriter& jw) const;
void readJSON(gx_system::JsonParser& jp, ParamMap& param);
int param2controller(Parameter& param, const MidiController** p);
bool deleteParameter(Parameter& p);
};
class MidiControllerList: public sigc::trackable {
public:
private:
ControllerArray map; //RT
int last_midi_control_value[ControllerArray::array_size]; //RT
int last_midi_control; //RT
int changed_midi_control_value[ControllerArray::array_size]; //RT
volatile gint program_change; //RT
volatile gint mute_change; //RT
volatile gint bank_change; //RT
int bank_changed;
int channel_select;
timespec ts1;
double time0;
unsigned int bpm_;
MidiClockToBpm mp;
Glib::Dispatcher pgm_chg;
Glib::Dispatcher mute_chg;
Glib::Dispatcher bank_chg;
Glib::Dispatcher val_chg;
sigc::signal<void> changed;
sigc::signal<void,int> new_program;
sigc::signal<void,int> new_mute_state;
sigc::signal<void,int> new_bank;
sigc::signal<void, int, int> midi_value_changed;
private:
void on_pgm_chg();
void on_mute_chg();
void on_bank_chg();
void on_val_chg();
bool check_midi_values();
public:
MidiControllerList();
midi_controller_list& operator[](int n) { return map[n]; }
int size() { return map.size(); }
void set_config_mode(bool mode, int ctl=-1);
bool get_config_mode() { return last_midi_control != -2; }
int get_current_control() { return last_midi_control; }
void set_current_control(int ctl) { last_midi_control = ctl; }
void set_ctr_val(int ctr, int val); //RT
void set_bpm_val(unsigned int val); //RT
void deleteParameter(Parameter& param);
void modifyCurrent(Parameter& param, float lower, float upper, bool toggle, int toggle_behaviour);
int param2controller(Parameter& param, const MidiController** p) {
return map.param2controller(param, p); }
void writeJSON(gx_system::JsonWriter& jw) const { map.writeJSON(jw); }
int get_last_midi_control_value(unsigned int n) {
assert(n < ControllerArray::array_size); return last_midi_control_value[n]; } //RT
void set_last_midi_control_value(unsigned int n, int v) {
assert(n < ControllerArray::array_size); last_midi_control_value[n] = v; changed_midi_control_value[n] = 1; } //RT
void set_controller_array(const ControllerArray& m);
void remove_controlled_parameters(paramlist& plist, const ControllerArray *m);
sigc::signal<void>& signal_changed() { return changed; }
sigc::signal<void,int>& signal_new_program() { return new_program; }
sigc::signal<void,int>& signal_new_mute_state() { return new_mute_state; }
sigc::signal<void,int>& signal_new_bank() { return new_bank; }
void compute_midi_in(void* midi_input_port_buf, void *arg); //RT
void process_trans(int transport_state); //RT
void update_from_controller(int ctr);
void update_from_controllers();
void set_midi_channel(int s);
int get_midi_channel() {return channel_select; }
sigc::signal<void, int, int>& signal_midi_value_changed() { return midi_value_changed; }
sigc::signal<void, int, int> trigger_midi_feedback;
sigc::signal<void, int, int>& signal_trigger_midi_feedback() { return trigger_midi_feedback; }
void request_midi_value_update();
};
} // namespace gx_gui
#endif // SRC_HEADERS_GX_PARAMETER_H_
gx_engine::ControllerArray
Definition gx_parameter.h:757
gx_engine::ControllerArray::writeJSON
void writeJSON(gx_system::JsonWriter &jw) const
gx_engine::ControllerArray::param2controller
int param2controller(Parameter &param, const MidiController **p)
gx_engine::ControllerArray::ControllerArray
ControllerArray()
Definition gx_parameter.h:760
gx_engine::ControllerArray::~ControllerArray
~ControllerArray()
Definition gx_parameter.h:761
gx_engine::ControllerArray::readJSON
void readJSON(gx_system::JsonParser &jp, ParamMap &param)
gx_engine::ControllerArray::deleteParameter
bool deleteParameter(Parameter &p)
gx_engine::ControllerArray::array_size
@ array_size
Definition gx_parameter.h:759
gx_engine::EnumParameter
Definition gx_parameter.h:351
gx_engine::EnumParameter::getValueNames
virtual const value_pair * getValueNames() const
gx_engine::EnumParameter::value_names
const value_pair * value_names
Definition gx_parameter.h:353
gx_engine::EnumParameter::serializeJSON
virtual void serializeJSON(gx_system::JsonWriter &jw)
gx_engine::EnumParameter::EnumParameter
EnumParameter(gx_system::JsonParser &jp)
Definition gx_parameter.h:354
gx_engine::EnumParameter::readJSON_value
virtual void readJSON_value(gx_system::JsonParser &jp)
gx_engine::EnumParameter::get_pair
const value_pair & get_pair()
Definition gx_parameter.h:360
gx_engine::EnumParameter::EnumParameter
EnumParameter(const string &id, const string &name, const value_pair *vn, bool preset, int *v, int sv, bool ctrl)
gx_engine::EnumParameter::idx_from_id
virtual int idx_from_id(string v_id)
gx_engine::EnumParameter::writeJSON
virtual void writeJSON(gx_system::JsonWriter &jw) const
gx_engine::FileParameter
Definition gx_parameter.h:405
gx_engine::FileParameter::value
Glib::RefPtr< Gio::File > value
Definition gx_parameter.h:407
gx_engine::FileParameter::FileParameter
FileParameter(const string &id, const string &filename, bool preset=false)
Definition gx_parameter.h:422
gx_engine::FileParameter::signal_changed
sigc::signal< void > & signal_changed()
Definition gx_parameter.h:412
gx_engine::FileParameter::set
bool set(const Glib::RefPtr< Gio::File > &val)
gx_engine::FileParameter::set_path
void set_path(const string &path)
gx_engine::FileParameter::setJSON_value
virtual void setJSON_value()
gx_engine::FileParameter::stdJSON_value
virtual void stdJSON_value()
gx_engine::FileParameter::is_standard
bool is_standard() const
Definition gx_parameter.h:434
gx_engine::FileParameter::FileParameter
FileParameter(gx_system::JsonParser &jp)
gx_engine::FileParameter::set_standard
void set_standard(const string &filename)
gx_engine::FileParameter::serializeJSON
virtual void serializeJSON(gx_system::JsonWriter &jw)
gx_engine::FileParameter::get_parse_name
string get_parse_name() const
gx_engine::FileParameter::json_value
Glib::RefPtr< Gio::File > json_value
Definition gx_parameter.h:409
gx_engine::FileParameter::copy
void copy(const string &destination) const
gx_engine::FileParameter::get_path
string get_path() const
gx_engine::FileParameter::on_off_value
virtual bool on_off_value()
gx_engine::FileParameter::get_display_name
string get_display_name() const
gx_engine::FileParameter::is_equal
bool is_equal(const Glib::RefPtr< Gio::File > &v) const
gx_engine::FileParameter::readJSON_value
virtual void readJSON_value(gx_system::JsonParser &jp)
gx_engine::FileParameter::std_value
Glib::RefPtr< Gio::File > std_value
Definition gx_parameter.h:408
gx_engine::FileParameter::writeJSON
virtual void writeJSON(gx_system::JsonWriter &jw) const
gx_engine::FileParameter::changed
sigc::signal< void > changed
Definition gx_parameter.h:410
gx_engine::FileParameter::compareJSON_value
virtual bool compareJSON_value()
gx_engine::FileParameter::FileParameter
FileParameter(const string &id, bool preset=false)
Definition gx_parameter.h:426
gx_engine::FileParameter::get_directory_path
string get_directory_path() const
gx_engine::FileParameter::get
const Glib::RefPtr< Gio::File > & get() const
Definition gx_parameter.h:415
gx_engine::FloatEnumParameter
Definition gx_parameter.h:295
gx_engine::FloatEnumParameter::serializeJSON
virtual void serializeJSON(gx_system::JsonWriter &jw)
gx_engine::FloatEnumParameter::value_names
const value_pair * value_names
Definition gx_parameter.h:297
gx_engine::FloatEnumParameter::getValueNames
virtual const value_pair * getValueNames() const
gx_engine::FloatEnumParameter::FloatEnumParameter
FloatEnumParameter(const string &id, const string &name, const value_pair *vn, bool preset, float *v, int sv, int low, bool ctrl, bool no_init)
gx_engine::FloatEnumParameter::FloatEnumParameter
FloatEnumParameter(gx_system::JsonParser &jp)
Definition gx_parameter.h:298
gx_engine::FloatEnumParameter::writeJSON
virtual void writeJSON(gx_system::JsonWriter &jw) const
gx_engine::FloatEnumParameter::readJSON_value
virtual void readJSON_value(gx_system::JsonParser &jp)
gx_engine::FloatEnumParameter::idx_from_id
virtual float idx_from_id(string v_id)
gx_engine::MidiClockToBpm
Definition gx_parameter.h:739
gx_engine::MidiClockToBpm::bpm
double bpm
Definition gx_parameter.h:745
gx_engine::MidiClockToBpm::time_diff
double time_diff
Definition gx_parameter.h:742
gx_engine::MidiClockToBpm::ret
bool ret
Definition gx_parameter.h:747
gx_engine::MidiClockToBpm::time1
double time1
Definition gx_parameter.h:741
gx_engine::MidiClockToBpm::rounded
unsigned int rounded(float f)
gx_engine::MidiClockToBpm::MidiClockToBpm
MidiClockToBpm()
gx_engine::MidiClockToBpm::bpm_new
double bpm_new
Definition gx_parameter.h:746
gx_engine::MidiClockToBpm::collect_
int collect_
Definition gx_parameter.h:744
gx_engine::MidiClockToBpm::collect
int collect
Definition gx_parameter.h:743
gx_engine::MidiClockToBpm::~MidiClockToBpm
~MidiClockToBpm()
Definition gx_parameter.h:751
gx_engine::MidiClockToBpm::time_to_bpm
bool time_to_bpm(double time, unsigned int *bpm_)
gx_engine::MidiController
Definition gx_parameter.h:706
gx_engine::MidiController::set_trans
bool set_trans(int n, int last_value)
gx_engine::MidiController::getParameter
Parameter & getParameter() const
Definition gx_parameter.h:721
gx_engine::MidiController::is_toggle
bool is_toggle() const
Definition gx_parameter.h:718
gx_engine::MidiController::param
Parameter * param
Definition gx_parameter.h:708
gx_engine::MidiController::MidiController
MidiController(Parameter &p, float l, float u, bool t=false, int tt=0)
Definition gx_parameter.h:714
gx_engine::MidiController::set_bpm
bool set_bpm(int n, int last_value)
gx_engine::MidiController::trigger_changed
void trigger_changed()
Definition gx_parameter.h:727
gx_engine::MidiController::toggle_behaviour
int toggle_behaviour() const
Definition gx_parameter.h:719
gx_engine::MidiController::lower
float lower() const
Definition gx_parameter.h:716
gx_engine::MidiController::set_midi
bool set_midi(int n, int last_value, int *value_set, bool update)
gx_engine::MidiController::_upper
float _upper
Definition gx_parameter.h:709
gx_engine::MidiController::_toggle_behaviour
int _toggle_behaviour
Definition gx_parameter.h:711
gx_engine::MidiController::hasParameter
bool hasParameter(const Parameter &p) const
Definition gx_parameter.h:720
gx_engine::MidiController::toggle
bool toggle
Definition gx_parameter.h:710
gx_engine::MidiController::_lower
float _lower
Definition gx_parameter.h:709
gx_engine::MidiController::set
void set(float v, float high)
Definition gx_parameter.h:726
gx_engine::MidiController::upper
float upper() const
Definition gx_parameter.h:717
gx_engine::MidiController::readJSON
static MidiController * readJSON(gx_system::JsonParser &jp, ParamMap &param)
gx_engine::MidiController::writeJSON
void writeJSON(gx_system::JsonWriter &jw) const
gx_engine::MidiControllerList::signal_trigger_midi_feedback
sigc::signal< void, int, int > & signal_trigger_midi_feedback()
Definition gx_parameter.h:832
gx_engine::MidiControllerList::signal_midi_value_changed
sigc::signal< void, int, int > & signal_midi_value_changed()
Definition gx_parameter.h:830
gx_engine::MidiControllerList::set_current_control
void set_current_control(int ctl)
Definition gx_parameter.h:806
gx_engine::MidiControllerList::pgm_chg
Glib::Dispatcher pgm_chg
Definition gx_parameter.h:784
gx_engine::MidiControllerList::changed_midi_control_value
int changed_midi_control_value[ControllerArray::array_size]
Definition gx_parameter.h:774
gx_engine::MidiControllerList::changed
sigc::signal< void > changed
Definition gx_parameter.h:788
gx_engine::MidiControllerList::bpm_
unsigned int bpm_
Definition gx_parameter.h:782
gx_engine::MidiControllerList::map
ControllerArray map
Definition gx_parameter.h:771
gx_engine::MidiControllerList::on_val_chg
void on_val_chg()
gx_engine::MidiControllerList::update_from_controllers
void update_from_controllers()
gx_engine::MidiControllerList::mute_chg
Glib::Dispatcher mute_chg
Definition gx_parameter.h:785
gx_engine::MidiControllerList::request_midi_value_update
void request_midi_value_update()
gx_engine::MidiControllerList::MidiControllerList
MidiControllerList()
gx_engine::MidiControllerList::set_bpm_val
void set_bpm_val(unsigned int val)
gx_engine::MidiControllerList::set_config_mode
void set_config_mode(bool mode, int ctl=-1)
gx_engine::MidiControllerList::deleteParameter
void deleteParameter(Parameter &param)
gx_engine::MidiControllerList::on_pgm_chg
void on_pgm_chg()
gx_engine::MidiControllerList::operator[]
midi_controller_list & operator[](int n)
Definition gx_parameter.h:801
gx_engine::MidiControllerList::val_chg
Glib::Dispatcher val_chg
Definition gx_parameter.h:787
gx_engine::MidiControllerList::mute_change
volatile gint mute_change
Definition gx_parameter.h:776
gx_engine::MidiControllerList::bank_changed
int bank_changed
Definition gx_parameter.h:778
gx_engine::MidiControllerList::bank_change
volatile gint bank_change
Definition gx_parameter.h:777
gx_engine::MidiControllerList::program_change
volatile gint program_change
Definition gx_parameter.h:775
gx_engine::MidiControllerList::check_midi_values
bool check_midi_values()
gx_engine::MidiControllerList::signal_new_mute_state
sigc::signal< void, int > & signal_new_mute_state()
Definition gx_parameter.h:822
gx_engine::MidiControllerList::writeJSON
void writeJSON(gx_system::JsonWriter &jw) const
Definition gx_parameter.h:813
gx_engine::MidiControllerList::compute_midi_in
void compute_midi_in(void *midi_input_port_buf, void *arg)
gx_engine::MidiControllerList::time0
double time0
Definition gx_parameter.h:781
gx_engine::MidiControllerList::ts1
timespec ts1
Definition gx_parameter.h:780
gx_engine::MidiControllerList::get_current_control
int get_current_control()
Definition gx_parameter.h:805
gx_engine::MidiControllerList::get_config_mode
bool get_config_mode()
Definition gx_parameter.h:804
gx_engine::MidiControllerList::last_midi_control_value
int last_midi_control_value[ControllerArray::array_size]
Definition gx_parameter.h:772
gx_engine::MidiControllerList::bank_chg
Glib::Dispatcher bank_chg
Definition gx_parameter.h:786
gx_engine::MidiControllerList::modifyCurrent
void modifyCurrent(Parameter &param, float lower, float upper, bool toggle, int toggle_behaviour)
gx_engine::MidiControllerList::set_last_midi_control_value
void set_last_midi_control_value(unsigned int n, int v)
Definition gx_parameter.h:816
gx_engine::MidiControllerList::set_midi_channel
void set_midi_channel(int s)
gx_engine::MidiControllerList::new_bank
sigc::signal< void, int > new_bank
Definition gx_parameter.h:791
gx_engine::MidiControllerList::new_mute_state
sigc::signal< void, int > new_mute_state
Definition gx_parameter.h:790
gx_engine::MidiControllerList::process_trans
void process_trans(int transport_state)
gx_engine::MidiControllerList::signal_new_program
sigc::signal< void, int > & signal_new_program()
Definition gx_parameter.h:821
gx_engine::MidiControllerList::signal_changed
sigc::signal< void > & signal_changed()
Definition gx_parameter.h:820
gx_engine::MidiControllerList::last_midi_control
int last_midi_control
Definition gx_parameter.h:773
gx_engine::MidiControllerList::signal_new_bank
sigc::signal< void, int > & signal_new_bank()
Definition gx_parameter.h:823
gx_engine::MidiControllerList::channel_select
int channel_select
Definition gx_parameter.h:779
gx_engine::MidiControllerList::remove_controlled_parameters
void remove_controlled_parameters(paramlist &plist, const ControllerArray *m)
gx_engine::MidiControllerList::get_midi_channel
int get_midi_channel()
Definition gx_parameter.h:829
gx_engine::MidiControllerList::midi_value_changed
sigc::signal< void, int, int > midi_value_changed
Definition gx_parameter.h:792
gx_engine::MidiControllerList::on_bank_chg
void on_bank_chg()
gx_engine::MidiControllerList::mp
MidiClockToBpm mp
Definition gx_parameter.h:783
gx_engine::MidiControllerList::update_from_controller
void update_from_controller(int ctr)
gx_engine::MidiControllerList::param2controller
int param2controller(Parameter &param, const MidiController **p)
Definition gx_parameter.h:811
gx_engine::MidiControllerList::on_mute_chg
void on_mute_chg()
gx_engine::MidiControllerList::new_program
sigc::signal< void, int > new_program
Definition gx_parameter.h:789
gx_engine::MidiControllerList::set_ctr_val
void set_ctr_val(int ctr, int val)
gx_engine::MidiControllerList::get_last_midi_control_value
int get_last_midi_control_value(unsigned int n)
Definition gx_parameter.h:814
gx_engine::MidiControllerList::set_controller_array
void set_controller_array(const ControllerArray &m)
gx_engine::MidiControllerList::trigger_midi_feedback
sigc::signal< void, int, int > trigger_midi_feedback
Definition gx_parameter.h:831
gx_engine::MidiControllerList::size
int size()
Definition gx_parameter.h:802
gx_engine::MidiStandardControllers
Definition gx_parameter.h:678
gx_engine::MidiStandardControllers::replace
void replace(int ctr, const string &name)
gx_engine::MidiStandardControllers::midi_to_note
string midi_to_note(int ctr)
gx_engine::MidiStandardControllers::MidiStandardControllers
MidiStandardControllers()
gx_engine::MidiStandardControllers::writeJSON
void writeJSON(gx_system::JsonWriter &jw) const
gx_engine::MidiStandardControllers::m
map< int, modstring > m
Definition gx_parameter.h:688
gx_engine::MidiStandardControllers::operator[]
const string operator[](int ctr)
Definition gx_parameter.h:693
gx_engine::MidiStandardControllers::readJSON
void readJSON(gx_system::JsonParser &jp)
gx_engine::MidiStandardControllers::ctr_desc
string ctr_desc(int ctr)
gx_engine::ParamMap
Definition gx_parameter.h:535
gx_engine::ParamMap::replace_mode
bool replace_mode
Definition gx_parameter.h:538
gx_engine::ParamMap::insert_remove
sigc::signal< void, Parameter *, bool > insert_remove
Definition gx_parameter.h:539
gx_engine::ParamMap::operator[]
Parameter & operator[](const char *p)
Definition gx_parameter.h:565
gx_engine::ParamMap::ParamMap
ParamMap()
gx_engine::ParamMap::signal_insert_remove
sigc::signal< void, Parameter *, bool > signal_insert_remove()
Definition gx_parameter.h:572
gx_engine::ParamMap::hasId
bool hasId(const char *p) const
Definition gx_parameter.h:559
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, bool midi=true)
Definition gx_parameter.h:597
gx_engine::ParamMap::dump
void dump(const string &fmt)
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:603
gx_engine::ParamMap::iterator
map< string, Parameter * >::const_iterator iterator
Definition gx_parameter.h:555
gx_engine::ParamMap::reg_par
IntParameter * reg_par(const string &id, const string &name, int *var, int std, int lower, int upper, bool midi)
Definition gx_parameter.h:622
gx_engine::ParamMap::readJSON_one
Parameter * readJSON_one(gx_system::JsonParser &jp)
gx_engine::ParamMap::writeJSON
void writeJSON(gx_system::JsonWriter &jw)
gx_engine::ParamMap::unregister
void unregister(const string &id)
gx_engine::ParamMap::reg_non_midi_par
FloatParameter * reg_non_midi_par(const string &id, float *val, bool preset, float std=0, float lower=0, float upper=1, float step=0)
Definition gx_parameter.h:638
gx_engine::ParamMap::reg_enum_par
FloatEnumParameter * reg_enum_par(const string &id, const string &name, const value_pair *vl, float *var, int std=0, int low=0, bool midi=true)
Definition gx_parameter.h:610
gx_engine::ParamMap::reg_par
FloatParameter * reg_par(const string &id, const string &name, float *var, float std, float lower, float upper, float step, bool midi=true)
Definition gx_parameter.h:575
gx_engine::ParamMap::unit_has_std_values
bool unit_has_std_values(const PluginDef *pdef) const
gx_engine::ParamMap::id_map
map< string, Parameter * > id_map
Definition gx_parameter.h:537
gx_engine::ParamMap::operator[]
Parameter & operator[](const string &id)
Definition gx_parameter.h:561
gx_engine::ParamMap::reg_filepar
FileParameter * reg_filepar(const string &id, bool preset=false)
Definition gx_parameter.h:644
gx_engine::ParamMap::check_p
void check_p(const char *p)
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:654
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:649
gx_engine::ParamMap::reg_par
BoolParameter * reg_par(const string &id, const string &name, bool *var, bool std=false, bool preset=true, bool midi=true)
Definition gx_parameter.h:592
gx_engine::ParamMap::ParameterV
friend class ParameterV
Definition gx_parameter.h:548
gx_engine::ParamMap::set_replace_mode
void set_replace_mode(bool mode)
Definition gx_parameter.h:560
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:617
gx_engine::ParamMap::reg_par
IntParameter * reg_par(const string &id, const string &name, int *var, int std, bool midi)
Definition gx_parameter.h:628
gx_engine::ParamMap::readJSON
void readJSON(gx_system::JsonParser &jp)
gx_engine::ParamMap::hasId
bool hasId(const string &id) const
Definition gx_parameter.h:558
gx_engine::ParamMap::insert
Parameter * insert(Parameter *param)
gx_engine::ParamMap::check_id
void check_id(const string &id)
gx_engine::ParamMap::reset_unit
void reset_unit(const PluginDef *pdef) const
gx_engine::ParamMap::reg_par
FloatParameter * reg_par(const string &id, const string &name, float *var, float std=0, bool midi=true)
Definition gx_parameter.h:587
gx_engine::ParamMap::unregister
void unregister(Parameter *p)
gx_engine::ParamMap::reg_non_midi_par
IntParameter * reg_non_midi_par(const string &id, int *var, bool preset, int std, int lower, int upper)
Definition gx_parameter.h:633
gx_engine::ParamMap::set_init_values
void set_init_values()
gx_engine::ParamMap::begin
iterator begin() const
Definition gx_parameter.h:556
gx_engine::ParamMap::~ParamMap
~ParamMap()
gx_engine::ParamMap::writeJSON_one
void writeJSON_one(gx_system::JsonWriter &jw, Parameter *p)
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:581
gx_engine::ParamMap::end
iterator end() const
Definition gx_parameter.h:557
gx_engine::ParamMap::unique_id
void unique_id(Parameter *param)
gx_engine::ParameterGroups
Definition gx_parameter.h:47
gx_engine::ParameterGroups::group_is_new
void group_is_new(const string &id)
gx_engine::ParameterGroups::param_group
friend string param_group(const string &group_id, bool nowarn)
gx_engine::ParameterGroups::group_exists
void group_exists(const string &id)
gx_engine::ParameterGroups::dump
void dump()
gx_engine::ParameterGroups::~ParameterGroups
~ParameterGroups()
gx_engine::ParameterGroups::groups
map< string, string > groups
Definition gx_parameter.h:49
gx_engine::ParameterGroups::ParameterGroups
ParameterGroups()
gx_engine::ParameterGroups::group_exist
bool group_exist(const string &id)
gx_engine::ParameterGroups::get
string get(const string &id)
Definition gx_parameter.h:62
gx_engine::ParameterGroups::erase
void erase(const string &id)
Definition gx_parameter.h:72
gx_engine::ParameterGroups::insert
void insert(const string &id, const string &group)
Definition gx_parameter.h:67
gx_engine::ParameterGroups::operator[]
string operator[](const string &id)
Definition gx_parameter.h:63
gx_engine::ParameterGroups::used
map< string, bool > used
Definition gx_parameter.h:52
gx_engine::Parameter
Definition gx_parameter.h:107
gx_engine::Parameter::isString
bool isString() const
Definition gx_parameter.h:173
gx_engine::Parameter::do_not_save
bool do_not_save
Definition gx_parameter.h:125
gx_engine::Parameter::getEnum
EnumParameter & getEnum()
Definition gx_parameter.h:485
gx_engine::Parameter::operator==
bool operator==(const Parameter &p) const
Definition gx_parameter.h:199
gx_engine::Parameter::dump
void dump(gx_system::JsonWriter *jw)
gx_engine::Parameter::getString
StringParameter & getString()
Definition gx_parameter.h:501
gx_engine::Parameter::get_typename
const char * get_typename() const
gx_engine::Parameter::Parameter
Parameter(gx_system::JsonParser &jp)
gx_engine::Parameter::setNoWarning
void setNoWarning(bool v)
Definition gx_parameter.h:184
gx_engine::Parameter::toggle_type
toggle_type
Definition gx_parameter.h:110
gx_engine::Parameter::Toggle
@ Toggle
Definition gx_parameter.h:110
gx_engine::Parameter::_Count
@ _Count
Definition gx_parameter.h:110
gx_engine::Parameter::Commander
@ Commander
Definition gx_parameter.h:110
gx_engine::Parameter::OnOff
@ OnOff
Definition gx_parameter.h:110
gx_engine::Parameter::Constant
@ Constant
Definition gx_parameter.h:110
gx_engine::Parameter::_group
string _group
Definition gx_parameter.h:119
gx_engine::Parameter::midi_set_bpm
virtual bool midi_set_bpm(float n, float high, float llimit, float ulimit)
gx_engine::Parameter::hasRange
virtual bool hasRange() const
gx_engine::Parameter::v_type
enum value_type v_type
Definition gx_parameter.h:120
gx_engine::Parameter::group_id
std::string group_id() const
Definition gx_parameter.h:136
gx_engine::Parameter::getFile
FileParameter & getFile()
Definition gx_parameter.h:496
gx_engine::Parameter::isInt
bool isInt() const
Definition gx_parameter.h:170
gx_engine::Parameter::_name
string _name
Definition gx_parameter.h:119
gx_engine::Parameter::midi_blocked
bool midi_blocked
Definition gx_parameter.h:127
gx_engine::Parameter::get_midi_blocked
bool get_midi_blocked() const
Definition gx_parameter.h:198
gx_engine::Parameter::getUpperAsFloat
virtual float getUpperAsFloat() const
gx_engine::Parameter::isOutput
bool isOutput() const
Definition gx_parameter.h:179
gx_engine::Parameter::compare_parameter
friend void compare_parameter(const char *title, Parameter *p1, Parameter *p2, bool all)
gx_engine::Parameter::~Parameter
virtual ~Parameter()
gx_engine::Parameter::signal_changed_bool
sigc::signal< void, bool > & signal_changed_bool()
Definition gx_parameter.h:518
gx_engine::Parameter::compareJSON_value
virtual bool compareJSON_value()=0
gx_engine::Parameter::desc
const string & desc() const
Definition gx_parameter.h:190
gx_engine::Parameter::getValueNames
virtual const value_pair * getValueNames() const
gx_engine::Parameter::isMaxlevel
bool isMaxlevel() const
Definition gx_parameter.h:181
gx_engine::Parameter::group
const string & group() const
Definition gx_parameter.h:186
gx_engine::Parameter::maxlevel
bool maxlevel
Definition gx_parameter.h:129
gx_engine::Parameter::getInt
IntParameter & getInt()
Definition gx_parameter.h:480
gx_engine::Parameter::controllable
bool controllable
Definition gx_parameter.h:124
gx_engine::Parameter::get_blocked
bool get_blocked() const
Definition gx_parameter.h:196
gx_engine::Parameter::MidiController
friend class MidiController
Definition gx_parameter.h:114
gx_engine::Parameter::isNoWarning
bool isNoWarning() const
Definition gx_parameter.h:183
gx_engine::Parameter::isFloat
bool isFloat() const
Definition gx_parameter.h:169
gx_engine::Parameter::id
const string & id() const
Definition gx_parameter.h:185
gx_engine::Parameter::serializeJSON
virtual void serializeJSON(gx_system::JsonWriter &jw)
gx_engine::Parameter::jp_next
static gx_system::JsonParser & jp_next(gx_system::JsonParser &jp, const char *key)
gx_engine::Parameter::name
const string & name() const
Definition gx_parameter.h:188
gx_engine::Parameter::getFloat
FloatParameter & getFloat()
Definition gx_parameter.h:475
gx_engine::Parameter::_desc
string _desc
Definition gx_parameter.h:119
gx_engine::Parameter::isFile
bool isFile() const
Definition gx_parameter.h:172
gx_engine::Parameter::signal_changed_float
sigc::signal< void, float > & signal_changed_float()
Definition gx_parameter.h:506
gx_engine::Parameter::getBool
BoolParameter & getBool()
Definition gx_parameter.h:491
gx_engine::Parameter::stdJSON_value
virtual void stdJSON_value()=0
gx_engine::Parameter::l_name
string l_name() const
Definition gx_parameter.h:189
gx_engine::Parameter::isControllable
bool isControllable() const
Definition gx_parameter.h:175
gx_engine::Parameter::readJSON_value
virtual void readJSON_value(gx_system::JsonParser &jp)=0
gx_engine::Parameter::used
bool used
Definition gx_parameter.h:131
gx_engine::Parameter::on_off_value
virtual bool on_off_value()=0
gx_engine::Parameter::isInPreset
bool isInPreset() const
Definition gx_parameter.h:176
gx_engine::Parameter::_id
string _id
Definition gx_parameter.h:118
gx_engine::Parameter::signal_changed_int
sigc::signal< void, int > & signal_changed_int()
Definition gx_parameter.h:512
gx_engine::Parameter::save_in_preset
bool save_in_preset
Definition gx_parameter.h:123
gx_engine::Parameter::range_warning
void range_warning(float value, float lower, float upper)
gx_engine::Parameter::midi_set
virtual bool midi_set(float n, float high, float llimit, float ulimit)
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:137
gx_engine::Parameter::set_midi_blocked
void set_midi_blocked(bool v)
Definition gx_parameter.h:197
gx_engine::Parameter::set_desc
void set_desc(const string &desc)
Definition gx_parameter.h:191
gx_engine::Parameter::value_label
static const char * value_label(const value_pair &vp)
Definition gx_parameter.h:211
gx_engine::Parameter::output
bool output
Definition gx_parameter.h:128
gx_engine::Parameter::blocked
bool blocked
Definition gx_parameter.h:126
gx_engine::Parameter::getControlType
ctrl_type getControlType() const
Definition gx_parameter.h:174
gx_engine::Parameter::nowarn
bool nowarn
Definition gx_parameter.h:130
gx_engine::Parameter::getLowerAsFloat
virtual float getLowerAsFloat() const
gx_engine::Parameter::is_log_display
bool is_log_display() const
Definition gx_parameter.h:194
gx_engine::Parameter::setOutput
void setOutput(bool v)
Definition gx_parameter.h:180
gx_engine::Parameter::c_type
enum ctrl_type c_type
Definition gx_parameter.h:121
gx_engine::Parameter::trigger_changed
virtual void trigger_changed()
gx_engine::Parameter::l_group
string l_group() const
Definition gx_parameter.h:187
gx_engine::Parameter::isSavable
bool isSavable() const
Definition gx_parameter.h:177
gx_engine::Parameter::isBool
bool isBool() const
Definition gx_parameter.h:171
gx_engine::Parameter::isUsed
bool isUsed() const
Definition gx_parameter.h:161
gx_engine::Parameter::l_desc
string l_desc() const
Definition gx_parameter.h:192
gx_engine::Parameter::display_flags
display_flags
Definition gx_parameter.h:117
gx_engine::Parameter::dtp_log
@ dtp_log
Definition gx_parameter.h:117
gx_engine::Parameter::dtp_normal
@ dtp_normal
Definition gx_parameter.h:117
gx_engine::Parameter::setUsed
void setUsed()
Definition gx_parameter.h:162
gx_engine::Parameter::set_log_display
void set_log_display()
Definition gx_parameter.h:193
gx_engine::Parameter::setMaxlevel
void setMaxlevel(bool v)
Definition gx_parameter.h:182
gx_engine::Parameter::setSavable
void setSavable(bool v)
Definition gx_parameter.h:178
gx_engine::Parameter::getStepAsFloat
virtual float getStepAsFloat() const
gx_engine::Parameter::d_flags
unsigned int d_flags
Definition gx_parameter.h:122
gx_engine::Parameter::signal_changed_string
sigc::signal< void, const Glib::ustring & > & signal_changed_string()
Definition gx_parameter.h:524
gx_engine::Parameter::writeJSON
virtual void writeJSON(gx_system::JsonWriter &jw) const =0
gx_engine::Parameter::set_blocked
void set_blocked(bool v)
Definition gx_parameter.h:195
gx_engine::Parameter::setJSON_value
virtual void setJSON_value()=0
gx_engine::Parameter::ctrl_type
ctrl_type
Definition gx_parameter.h:109
gx_engine::Parameter::None
@ None
Definition gx_parameter.h:109
gx_engine::Parameter::Enum
@ Enum
Definition gx_parameter.h:109
gx_engine::Parameter::Switch
@ Switch
Definition gx_parameter.h:109
gx_engine::Parameter::Continuous
@ Continuous
Definition gx_parameter.h:109
gx_engine::Parameter::value_type
value_type
Definition gx_parameter.h:116
gx_engine::Parameter::tp_float
@ tp_float
Definition gx_parameter.h:116
gx_engine::Parameter::tp_bool
@ tp_bool
Definition gx_parameter.h:116
gx_engine::Parameter::tp_int
@ tp_int
Definition gx_parameter.h:116
gx_engine::Parameter::tp_special
@ tp_special
Definition gx_parameter.h:116
gx_engine::Parameter::tp_string
@ tp_string
Definition gx_parameter.h:116
gx_engine::Parameter::tp_file
@ tp_file
Definition gx_parameter.h:116
gx_engine::ParameterV< Glib::ustring >::ParameterV
ParameterV(gx_system::JsonParser &jp)
gx_engine::ParameterV< Glib::ustring >::set
bool set(const Glib::ustring &val) const
gx_engine::ParameterV< Glib::ustring >::get_json_value
Glib::ustring & get_json_value()
Definition gx_parameter.h:469
gx_engine::ParameterV< Glib::ustring >::value
Glib::ustring * value
Definition gx_parameter.h:448
gx_engine::ParameterV< Glib::ustring >::get_value
const Glib::ustring & get_value() const
Definition gx_parameter.h:454
gx_engine::ParameterV< Glib::ustring >::signal_changed
sigc::signal< void, const Glib::ustring & > & signal_changed()
Definition gx_parameter.h:468
gx_engine::ParameterV< Glib::ustring >::setJSON_value
virtual void setJSON_value()
gx_engine::ParameterV< Glib::ustring >::json_value
Glib::ustring json_value
Definition gx_parameter.h:447
gx_engine::ParameterV< Glib::ustring >::readJSON_value
virtual void readJSON_value(gx_system::JsonParser &jp)
gx_engine::ParameterV< Glib::ustring >::serializeJSON
virtual void serializeJSON(gx_system::JsonWriter &jw)
gx_engine::ParameterV< Glib::ustring >::stdJSON_value
virtual void stdJSON_value()
gx_engine::ParameterV< Glib::ustring >::on_off_value
virtual bool on_off_value()
gx_engine::ParameterV< Glib::ustring >::writeJSON
virtual void writeJSON(gx_system::JsonWriter &jw) const
gx_engine::ParameterV< Glib::ustring >::changed
sigc::signal< void, const Glib::ustring & > changed
Definition gx_parameter.h:450
gx_engine::ParameterV< Glib::ustring >::value_storage
Glib::ustring value_storage
Definition gx_parameter.h:451
gx_engine::ParameterV< Glib::ustring >::~ParameterV
~ParameterV()
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:461
gx_engine::ParameterV< Glib::ustring >::std_value
Glib::ustring std_value
Definition gx_parameter.h:449
gx_engine::ParameterV< Glib::ustring >::compareJSON_value
virtual bool compareJSON_value()
gx_engine::ParameterV< bool >::std_value
bool std_value
Definition gx_parameter.h:376
gx_engine::ParameterV< bool >::signal_changed
sigc::signal< void, bool > & signal_changed()
Definition gx_parameter.h:398
gx_engine::ParameterV< bool >::serializeJSON
virtual void serializeJSON(gx_system::JsonWriter &jw)
gx_engine::ParameterV< bool >::value
bool * value
Definition gx_parameter.h:375
gx_engine::ParameterV< bool >::midi_set
virtual bool midi_set(float n, float high, float llimit, float ulimit)
gx_engine::ParameterV< bool >::compareJSON_value
virtual bool compareJSON_value()
gx_engine::ParameterV< bool >::set
bool set(bool val) const
gx_engine::ParameterV< bool >::changed
sigc::signal< void, bool > changed
Definition gx_parameter.h:377
gx_engine::ParameterV< bool >::stdJSON_value
virtual void stdJSON_value()
gx_engine::ParameterV< bool >::get_value
bool get_value() const
Definition gx_parameter.h:383
gx_engine::ParameterV< bool >::ParameterV
ParameterV(gx_system::JsonParser &jp)
gx_engine::ParameterV< bool >::readJSON_value
virtual void readJSON_value(gx_system::JsonParser &jp)
gx_engine::ParameterV< bool >::on_off_value
virtual bool on_off_value()
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:389
gx_engine::ParameterV< bool >::ParamRegImpl
friend class ParamRegImpl
Definition gx_parameter.h:379
gx_engine::ParameterV< bool >::writeJSON
virtual void writeJSON(gx_system::JsonWriter &jw) const
gx_engine::ParameterV< bool >::setJSON_value
virtual void setJSON_value()
gx_engine::ParameterV< bool >::~ParameterV
~ParameterV()
gx_engine::ParameterV< bool >::value_storage
bool value_storage
Definition gx_parameter.h:378
gx_engine::ParameterV< bool >::trigger_changed
virtual void trigger_changed()
gx_engine::ParameterV< bool >::json_value
bool json_value
Definition gx_parameter.h:374
gx_engine::ParameterV< float >::getUpperAsFloat
virtual float getUpperAsFloat() const
gx_engine::ParameterV< float >::writeJSON
virtual void writeJSON(gx_system::JsonWriter &jw) const
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:274
gx_engine::ParameterV< float >::setJSON_value
virtual void setJSON_value()
gx_engine::ParameterV< float >::compareJSON_value
virtual bool compareJSON_value()
gx_engine::ParameterV< float >::midi_set_bpm
virtual bool midi_set_bpm(float n, float high, float llimit, float ulimit)
gx_engine::ParameterV< float >::get_value
float get_value() const
Definition gx_parameter.h:259
gx_engine::ParameterV< float >::value_storage
float value_storage
Definition gx_parameter.h:253
gx_engine::ParameterV< float >::set
bool set(float val) const
gx_engine::ParameterV< float >::serializeJSON
virtual void serializeJSON(gx_system::JsonWriter &jw)
gx_engine::ParameterV< float >::convert_from_range
void convert_from_range(float low, float up)
gx_engine::ParameterV< float >::compare_parameter
friend void compare_parameter(const char *title, Parameter *p1, Parameter *p2, bool all)
gx_engine::ParameterV< float >::on_off_value
virtual bool on_off_value()
gx_engine::ParameterV< float >::stdJSON_value
virtual void stdJSON_value()
gx_engine::ParameterV< float >::rampJSON_value
virtual void rampJSON_value(gx_system::JsonParser &jp)
gx_engine::ParameterV< float >::upper
float upper
Definition gx_parameter.h:251
gx_engine::ParameterV< float >::step
float step
Definition gx_parameter.h:251
gx_engine::ParameterV< float >::GxMachine
friend class GxMachine
Definition gx_parameter.h:255
gx_engine::ParameterV< float >::value
float * value
Definition gx_parameter.h:249
gx_engine::ParameterV< float >::midi_set
virtual bool midi_set(float n, float high, float llimit, float ulimit)
gx_engine::ParameterV< float >::ParameterV
ParameterV(gx_system::JsonParser &jp)
gx_engine::ParameterV< float >::signal_changed
sigc::signal< void, float > & signal_changed()
Definition gx_parameter.h:290
gx_engine::ParameterV< float >::getLowerAsFloat
virtual float getLowerAsFloat() const
gx_engine::ParameterV< float >::std_value
float std_value
Definition gx_parameter.h:250
gx_engine::ParameterV< float >::ramp_value
bool ramp_value(float val)
gx_engine::ParameterV< float >::lower
float lower
Definition gx_parameter.h:251
gx_engine::ParameterV< float >::trigger_changed
virtual void trigger_changed()
gx_engine::ParameterV< float >::hasRange
virtual bool hasRange() const
gx_engine::ParameterV< float >::ParamRegImpl
friend class ParamRegImpl
Definition gx_parameter.h:254
gx_engine::ParameterV< float >::changed
sigc::signal< void, float > changed
Definition gx_parameter.h:252
gx_engine::ParameterV< float >::readJSON_value
virtual void readJSON_value(gx_system::JsonParser &jp)
gx_engine::ParameterV< float >::idx_from_id
virtual float idx_from_id(string v_id)
gx_engine::ParameterV< float >::set_zero
void set_zero()
Definition gx_parameter.h:261
gx_engine::ParameterV< float >::~ParameterV
~ParameterV()
gx_engine::ParameterV< float >::getStepAsFloat
virtual float getStepAsFloat() const
gx_engine::ParameterV< float >::json_value
float json_value
Definition gx_parameter.h:248
gx_engine::ParameterV< int >::stdJSON_value
virtual void stdJSON_value()
gx_engine::ParameterV< int >::signal_changed
sigc::signal< void, int > & signal_changed()
Definition gx_parameter.h:346
gx_engine::ParameterV< int >::get_value
int get_value() const
Definition gx_parameter.h:326
gx_engine::ParameterV< int >::ParameterV
ParameterV(gx_system::JsonParser &jp)
gx_engine::ParameterV< int >::serializeJSON
virtual void serializeJSON(gx_system::JsonWriter &jw)
gx_engine::ParameterV< int >::setJSON_value
virtual void setJSON_value()
gx_engine::ParameterV< int >::value_storage
int value_storage
Definition gx_parameter.h:322
gx_engine::ParameterV< int >::~ParameterV
~ParameterV()
gx_engine::ParameterV< int >::compareJSON_value
virtual bool compareJSON_value()
gx_engine::ParameterV< int >::hasRange
virtual bool hasRange() const
gx_engine::ParameterV< int >::lower
int lower
Definition gx_parameter.h:320
gx_engine::ParameterV< int >::readJSON_value
virtual void readJSON_value(gx_system::JsonParser &jp)
gx_engine::ParameterV< int >::getLowerAsFloat
virtual float getLowerAsFloat() const
gx_engine::ParameterV< int >::writeJSON
virtual void writeJSON(gx_system::JsonWriter &jw) const
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:337
gx_engine::ParameterV< int >::changed
sigc::signal< void, int > changed
Definition gx_parameter.h:321
gx_engine::ParameterV< int >::value
int * value
Definition gx_parameter.h:318
gx_engine::ParameterV< int >::idx_from_id
virtual int idx_from_id(string v_id)
gx_engine::ParameterV< int >::getUpperAsFloat
virtual float getUpperAsFloat() const
gx_engine::ParameterV< int >::json_value
int json_value
Definition gx_parameter.h:317
gx_engine::ParameterV< int >::set
bool set(int val) const
gx_engine::ParameterV< int >::trigger_changed
virtual void trigger_changed()
gx_engine::ParameterV< int >::upper
int upper
Definition gx_parameter.h:320
gx_engine::ParameterV< int >::midi_set
virtual bool midi_set(float n, float high, float llimit, float ulimit)
gx_engine::ParameterV< int >::ParamRegImpl
friend class ParamRegImpl
Definition gx_parameter.h:323
gx_engine::ParameterV< int >::on_off_value
virtual bool on_off_value()
gx_engine::ParameterV< int >::std_value
int std_value
Definition gx_parameter.h:319
gx_engine::ParameterV
Definition gx_parameter.h:238
gx_system::JsonParser
Definition gx_json.h:112
gx_system::JsonWriter
Definition gx_json.h:55
debug_check
#define debug_check(func,...)
Definition gx_parameter.h:36
gx_engine
Definition gx_convolver.h:37
gx_engine::midi_std_ctr
MidiStandardControllers midi_std_ctr
gx_engine::StringParameter
ParameterV< Glib::ustring > StringParameter
Definition gx_parameter.h:99
gx_engine::midi_controller_list
list< MidiController > midi_controller_list
Definition gx_parameter.h:731
gx_engine::FloatParameter
ParameterV< float > FloatParameter
Definition gx_parameter.h:96
gx_engine::compare_parameter
void compare_parameter(const char *title, Parameter *p1, Parameter *p2, bool all=false)
gx_engine::param_group
string param_group(const string &group_id, bool nowarn=false)
gx_engine::paramlist
list< Parameter * > paramlist
Definition gx_parameter.h:233
gx_engine::IntParameter
ParameterV< int > IntParameter
Definition gx_parameter.h:97
gx_engine::get_group_table
ParameterGroups & get_group_table()
gx_engine::BoolParameter
ParameterV< bool > BoolParameter
Definition gx_parameter.h:98
gx_system
Definition gx_json.h:33
PluginDef
Definition gx_plugin.h:195
gx_engine::MidiStandardControllers::modstring::modstring
modstring(const string &n, bool m, const char *s)
Definition gx_parameter.h:684
gx_engine::MidiStandardControllers::modstring::modstring
modstring()
Definition gx_parameter.h:686
gx_engine::MidiStandardControllers::modstring::name
string name
Definition gx_parameter.h:681
gx_engine::MidiStandardControllers::modstring::modstring
modstring(const char *n)
Definition gx_parameter.h:685
gx_engine::MidiStandardControllers::modstring::std
const char * std
Definition gx_parameter.h:683
gx_engine::MidiStandardControllers::modstring::modified
bool modified
Definition gx_parameter.h:682
value_pair
Definition gx_plugin.h:117
value_pair::value_label
const char * value_label
Definition gx_plugin.h:119
value_pair::value_id
const char * value_id
Definition gx_plugin.h:118