41struct automation_range;
114#define FAKE_INFINITY (65536.0 * 65536.0)
116#define IS_FAKE_INFINITY(value) (fabs(value-FAKE_INFINITY) < 1.0)
146 float from_01(
double value01)
const;
165 virtual void draw_label(
const char *label,
float x,
float y,
int pos,
float margin,
float align) = 0;
217 virtual bool get_moving(
int index,
int subindex,
int &direction,
float *
data,
int x,
int y,
int &offset,
uint32_t &color)
const {
return false; }
223 virtual bool get_dot(
int index,
int subindex,
int phase,
float &
x,
float &
y,
int &
size,
cairo_iface *context)
const {
return false; }
229 virtual bool get_gridline(
int index,
int subindex,
int phase,
float &pos,
bool &vertical, std::string &legend,
cairo_iface *context)
const {
return false; }
236 virtual bool get_layers(
int index,
int generation,
unsigned int &layers)
const {
return false; }
243 virtual std::string
get_crosshair_label(
int x,
int y,
int sx,
int sy,
float q,
int dB,
int name,
int note,
int cents)
const { std::string
s =
"";
return s; }
252 virtual bool get_phase_graph(
int index,
float ** _buffer,
int *_length,
int * _mode,
bool * _use_fade,
float * _fade,
int * _accuracy,
bool * _display)
const {
return false; };
311struct plugin_command_info;
371 virtual bool is_cv(
int param_no)
const = 0;
427 virtual void get_automation(
int param_no, std::multimap<uint32_t, automation_range> &dests) {}
435struct plugin_list_info_iface;
464 virtual void note_on(
int channel,
int note,
int velocity) = 0;
466 virtual void note_off(
int channel,
int note,
int velocity) = 0;
498 virtual void get_port_arrays(
float **&ins_ptrs,
float **&outs_ptrs,
float **¶ms_ptrs) = 0;
517template<
class Metadata>
522 using Metadata::in_count;
523 using Metadata::out_count;
524 using Metadata::param_count;
525 float *
ins[(Metadata::in_count != 0) ? Metadata::in_count : 1];
526 float *
outs[(Metadata::out_count != 0) ? Metadata::out_count : 1];
535 memset(
ins, 0,
sizeof(
ins));
543 void note_on(
int channel,
int note,
int velocity) {}
545 void note_off(
int channel,
int note,
int velocity) {}
579 fprintf(stderr,
"ERROR: message run not implemented\n");
583 virtual void get_port_arrays(
float **&ins_ptrs,
float **&outs_ptrs,
float **¶ms_ptrs)
597 for (
int i=0;
i<Metadata::out_count;
i++) {
598 if ((
mask & (1 <<
i)) == 0) {
606 bool had_errors =
false;
607 for (
int i=0;
i<Metadata::in_count; ++
i) {
608 float *indata =
ins[
i];
613 if (!std::isfinite(indata[
j]) || fabs(indata[
j]) > 4294967296.0) {
619 fprintf(stderr,
"Warning: Plugin %s got questionable value %f on its input %d\n", Metadata::get_name(), errval,
i);
628 uint32_t out_mask = !had_errors ?
process(offset, newend - offset, -1, -1) : 0;
629 total_out_mask |= out_mask;
633 for (
int i=0;
i<Metadata::out_count; ++
i) {
634 if (total_out_mask & (1 <<
i))
637 float *outdata =
outs[
i];
641 if (!std::isfinite(outdata[
j]) || fabs(outdata[
j]) > 4294967296.0) {
647 fprintf(stderr,
"Warning: Plugin %s generated questionable value %f on its output %d - this is most likely a bug in the plugin!\n", Metadata::get_name(), errval,
i);
654 return total_out_mask;
662#if USE_EXEC_GUI || USE_DSSI
677struct dssi_feedback_sender
680 osctl::osc_client *
client;
682 bool is_client_shared;
686 std::vector<int> indices;
688 const calf_plugins::line_graph_iface *graph;
691 const calf_plugins::phase_graph_iface *phase;
694 dssi_feedback_sender(
const char *
URI,
const line_graph_iface *_graph);
695 dssi_feedback_sender(osctl::osc_client *_client,
const line_graph_iface *_graph);
696 void add_graphs(
const calf_plugins::parameter_properties *props,
int num_params);
698 ~dssi_feedback_sender();
703template<
class Metadata>
715 const char *
get_name()
const {
return Metadata::impl_get_name(); }
716 const char *
get_id()
const {
return Metadata::impl_get_id(); }
717 const char *
get_label()
const {
return Metadata::impl_get_label(); }
723 bool get_midi()
const {
return Metadata::support_midi; }
732 bool is_cv(
int param_no)
const {
return true; }
733 bool is_noisy(
int param_no)
const {
return false; }
739#define CALF_PORT_NAMES(name) template<> const char *calf_plugins::plugin_metadata<name##_metadata>::port_names[]
740#define CALF_PORT_PROPS(name) template<> parameter_properties calf_plugins::plugin_metadata<name##_metadata>::param_props[name##_metadata::param_count + 1]
741#define CALF_PLUGIN_INFO(name) template<> calf_plugins::ladspa_plugin_info calf_plugins::plugin_metadata<name##_metadata>::plugin_info
742#define PLUGIN_NAME_ID_LABEL(name, id, label) \
743 static const char *impl_get_name() { return name; } \
744 static const char *impl_get_id() { return id; } \
745 static const char *impl_get_label() { return label; } \
749bool get_freq_gridline(
int subindex,
float &pos,
bool &vertical, std::string &legend, cairo_iface *context,
bool use_frequencies =
true,
float res = 256,
float ofs = 0.4);
752static inline float dB_grid(
float amp,
float res = 256,
float ofs = 0.4)
754 return log(amp) * (1.0 / log(res)) + ofs;
758static bool get_graph(Fx &fx,
int subindex,
float *
data,
int points,
float res = 256,
float ofs = 0.4)
760 for (
int i = 0;
i < points;
i++)
763 double freq = 20.0 * pow (20000.0 / 20.0,
i * 1.0 / points);
770static inline float dB_grid_inv(
float pos,
float res = 256,
float ofs = 0.4)
772 return pow(res, pos - ofs);
780 virtual bool get_gridline(
int index,
int subindex,
int phase,
float &pos,
bool &vertical, std::string &legend,
cairo_iface *context)
const;
782 virtual bool get_layers(
int index,
int generation,
unsigned int &layers)
const;
786std::string
frequency_crosshair_label(
int x,
int y,
int sx,
int sy,
float q,
int dB,
int name,
int note,
int cents,
double res = 256,
double ofs = 0.4);
792void draw_cairo_label(cairo_iface *context,
const char *label,
float x,
float y,
int pos,
float margin,
float align);
819 mod_matrix_metadata(
unsigned int _rows,
const char **_src_names,
const char **_dest_names);
839extern bool parse_table_key(
const char *
key,
const char *prefix,
bool &is_rows,
int &row,
int &column);
842class table_via_configure
845 typedef std::pair<int, int> coord;
846 std::vector<table_column_info> columns;
847 std::map<coord, std::string> values;
850 table_via_configure();
851 void configure(
const char *
key,
const char *
value);
852 virtual ~table_via_configure();
879 freq = 10 * (subindex + 1);
880 else if (subindex < 18)
881 freq = 100 * (subindex - 9 + 1);
882 else if (subindex < 27)
883 freq = 1000 * (subindex - 18 + 1);
885 freq = 10000 * (subindex - 27 + 1);
892#define FORWARD_DECLARE_METADATA(plugin) \
893 template<> const char *calf_plugins::plugin_metadata<calf_plugins::plugin##_metadata>::port_names[]; \
894 template<> calf_plugins::parameter_properties calf_plugins::plugin_metadata<calf_plugins::plugin##_metadata>::param_props[]; \
895 template<> calf_plugins::ladspa_plugin_info calf_plugins::plugin_metadata<calf_plugins::plugin##_metadata>::plugin_info;
Controller controller
Definition main.C:5
uint8_t a
Definition Spc_Cpu.h:141
static void message(int level, const char *fmt,...)
Definition adplugdb.cpp:120
static const unsigned long mask[]
Definition bitwise.c:31
uint32_t process_slice(uint32_t offset, uint32_t end)
utility function: call process, and if it returned zeros in output masks, zero out the relevant outpu...
Definition giface.h:604
void set_sample_rate(uint32_t sr)
Set sample rate for the plugin.
Definition giface.h:563
virtual char * configure(const char *key, const char *value)
DSSI configure call.
Definition giface.h:567
void note_on(int channel, int note, int velocity)
Handle MIDI Note On.
Definition giface.h:543
virtual const plugin_metadata_iface * get_metadata_iface() const
Return metadata object.
Definition giface.h:590
virtual void set_progress_report_iface(progress_report_iface *iface)
Set the progress report interface to communicate progress to.
Definition giface.h:592
void pitch_bend(int channel, int value)
Definition giface.h:552
void params_reset()
Reset parameter values for epp:trigger type parameters (ones activated by oneshot push button instead...
Definition giface.h:573
void program_change(int channel, int program)
Handle MIDI Program Change.
Definition giface.h:547
bool questionable_data_reported_out
Definition giface.h:529
float * ins[(BaseClass::in_count !=0) ? BaseClass::in_count :1]
Definition giface.h:525
void send_configures(send_configure_iface *sci)
Send all understood configure vars (none by default).
Definition giface.h:569
uint32_t message_run(const void *valid_ports, void *output_ports)
Definition giface.h:578
virtual const line_graph_iface * get_line_graph_iface() const
Definition giface.h:657
Metadata metadata_type
Definition giface.h:521
float * params[BaseClass::param_count]
Definition giface.h:527
void post_instantiate(uint32_t)
Called after instantiating (after all the feature pointers are set - including interfaces like progre...
Definition giface.h:575
bool questionable_data_reported_in
Definition giface.h:528
void channel_pressure(int channel, int value)
Definition giface.h:555
void control_change(int channel, int controller, int value)
Handle MIDI Control Change.
Definition giface.h:549
void note_off(int channel, int note, int velocity)
Handle MIDI Note Off.
Definition giface.h:545
void deactivate()
LADSPA-esque deactivate function.
Definition giface.h:561
void params_changed()
Called when params are changed (before processing).
Definition giface.h:557
virtual const phase_graph_iface * get_phase_graph_iface() const
Definition giface.h:659
virtual void get_port_arrays(float **&ins_ptrs, float **&outs_ptrs, float **¶ms_ptrs)
Return the array of input port pointers.
Definition giface.h:583
progress_report_iface * progress_report
Definition giface.h:531
void activate()
LADSPA-esque activate function, except it is called after ports are connected, not before.
Definition giface.h:559
int send_status_updates(send_updates_iface *sui, int last_serial)
Send all supported status vars (none by default).
Definition giface.h:571
void zero_by_mask(uint32_t mask, uint32_t offset, uint32_t nsamples)
utility function: zero port values if mask is 0
Definition giface.h:595
float * outs[(BaseClass::out_count !=0) ? BaseClass::out_count :1]
Definition giface.h:526
audio_module()
Definition giface.h:533
void execute(int cmd_no)
Execute menu command with given number.
Definition giface.h:565
Line graph interface implementation for frequency response graphs.
Definition giface.h:777
virtual bool get_graph(int index, int subindex, int phase, float *data, int points, cairo_iface *context, int *mode) const
Definition giface.cpp:434
bool redraw_graph
Definition giface.h:779
virtual bool get_gridline(int index, int subindex, int phase, float &pos, bool &vertical, std::string &legend, cairo_iface *context) const
Definition giface.cpp:440
virtual bool get_layers(int index, int generation, unsigned int &layers) const
Definition giface.cpp:446
virtual float freq_gain(int index, double freq) const
Definition giface.h:783
virtual std::string get_crosshair_label(int x, int y, int sx, int sy, float q, int dB, int name, int note, int cents) const
Definition giface.cpp:454
const plugin_metadata_iface * get_by_id(const char *id, bool case_sensitive=false)
Get single plugin metadata object by URI.
Definition giface.cpp:514
plugin_vector plugins
Definition giface.h:443
std::vector< const plugin_metadata_iface * > plugin_vector
Definition giface.h:441
plugin_registry()
Definition metadata.cpp:2193
const plugin_vector & get_all()
Get all plugin metadata objects.
Definition giface.h:450
static plugin_registry & instance()
Get the singleton object.
Definition giface.cpp:494
const plugin_metadata_iface * get_by_uri(const char *URI)
Get single plugin metadata object by URI.
Definition giface.cpp:500
int * l
Definition inflate.c:1579
register unsigned j
Definition inflate.c:1576
int y
Definition inflate.c:1588
int g
Definition inflate.c:1573
struct huft * u[BMAX]
Definition inflate.c:1583
register unsigned i
Definition inflate.c:1575
unsigned s
Definition inflate.c:1555
unsigned x[BMAX+1]
Definition inflate.c:1586
static PuglViewHint int value
Definition pugl.h:1708
static const char * name
Definition pugl.h:1582
static int width
Definition pugl.h:1593
JHUFF_TBL long freq[]
Definition jchuff.h:50
JSAMPIMAGE data
Definition jpeglib.h:945
unsigned int uint32_t
Definition mid.cpp:100
Definition benchmark.cpp:53
static float dB_grid(float amp, float res=256, float ofs=0.4)
convert amplitude value to normalized grid-ish value
Definition giface.h:752
parameter_flags
Values ORed together for flags field in parameter_properties.
Definition giface.h:45
@ PF_BOOL
bool value (usually >=0.5f is treated as TRUE, which is inconsistent with LV2 etc....
Definition giface.h:49
@ PF_CTLO_HORIZ
horizontal version of the control (unused)
Definition giface.h:75
@ PF_SCALE_LOG
log scale
Definition giface.h:56
@ PF_SCALE_LOG_INF
log scale + +inf (FAKE_INFINITY)
Definition giface.h:60
@ PF_SCALEMASK
bit mask for scale
Definition giface.h:53
@ PF_CTL_BUTTON
push button
Definition giface.h:69
@ PF_SYNC_BPM
sync a bpm setting with the host environment
Definition giface.h:103
@ PF_SCALE_DEFAULT
no scale given
Definition giface.h:54
@ PF_PROP_OUTPUT_GAIN
epp:outputGain + skip epp:hasStrictBounds
Definition giface.h:83
@ PF_DIGIT_0
Definition giface.h:106
@ PF_CTL_LABEL
label
Definition giface.h:72
@ PF_CTLMASK
bit mask for control type
Definition giface.h:62
@ PF_CTL_DEFAULT
try to figure out automatically
Definition giface.h:63
@ PF_DIGIT_2
Definition giface.h:108
@ PF_UNIT_MSEC
millisecond
Definition giface.h:94
@ PF_UNITMASK
bit mask for units
Definition giface.h:88
@ PF_PROP_EXPENSIVE
epp:expensive, may trigger expensive calculation
Definition giface.h:82
@ PF_UNIT_SEC
second
Definition giface.h:93
@ PF_UNIT_BPM
beats per minute
Definition giface.h:97
@ PF_TYPEMASK
bit mask for type
Definition giface.h:46
@ PF_ENUM_MULTI
SET / multiple-choice.
Definition giface.h:51
@ PF_CTL_LED
light emitting diode
Definition giface.h:71
@ PF_PROP_NOBOUNDS
no epp:hasStrictBounds
Definition giface.h:81
@ PF_DIGIT_ALL
Definition giface.h:110
@ PF_DIGITMASK
Definition giface.h:105
@ PF_UNIT_SAMPLES
samples
Definition giface.h:101
@ PF_SCALE_LINEAR
linear scale
Definition giface.h:55
@ PF_UNIT_SEMITONES
semitones
Definition giface.h:96
@ PF_PROP_GRAPH
add graph
Definition giface.h:85
@ PF_CTLO_REVERSE
use VU_MONOCHROME_REVERSE mode (meters only)
Definition giface.h:78
@ PF_CTLOPTIONS
bit mask for control (widget) options
Definition giface.h:74
@ PF_CTL_KNOB
knob
Definition giface.h:64
@ PF_UNIT_HZ
Hertz.
Definition giface.h:92
@ PF_ENUM
enum value (min, min+1, ..., max, only guaranteed to work when min = 0)
Definition giface.h:50
@ PF_UNIT_DBFS
decibels relative to Full Scale
Definition giface.h:90
@ PF_INT
integer value (still represented as float)
Definition giface.h:48
@ PF_SCALE_QUAD
quadratic scale (decent for some gain/amplitude values)
Definition giface.h:59
@ PF_UNIT_CENTS
cents (1/100 of a semitone, 1/1200 of an octave)
Definition giface.h:95
@ PF_UNIT_DEG
degrees
Definition giface.h:98
@ PF_CTLO_LABEL
add a text display to the control (meters only)
Definition giface.h:77
@ PF_CTL_TOGGLE
toggle button
Definition giface.h:66
@ PF_CTLO_VERT
vertical version of the control (unused)
Definition giface.h:76
@ PF_CTL_COMBO
combo box
Definition giface.h:67
@ PF_UNIT_NOTE
MIDI note number.
Definition giface.h:99
@ PF_SCALE_GAIN
gain = -96dB..0 or -inf dB
Definition giface.h:57
@ PF_DIGIT_1
Definition giface.h:107
@ PF_UNIT_RPM
revolutions per minute
Definition giface.h:100
@ PF_UNIT_DB
decibels
Definition giface.h:89
@ PF_PROP_OUTPUT
output port (flag, cannot be combined with others)
Definition giface.h:86
@ PF_PROP_MASK
bit mask for properties
Definition giface.h:80
@ PF_SCALE_PERC
percent
Definition giface.h:58
@ PF_UNIT_COEF
multiply-by factor
Definition giface.h:91
@ PF_FLOAT
any float value
Definition giface.h:47
@ PF_CTL_RADIO
radio button
Definition giface.h:68
@ PF_CTL_FADER
fader (slider)
Definition giface.h:65
@ PF_CTL_METER
volume meter
Definition giface.h:70
@ PF_PROP_OPTIONAL
connection optional
Definition giface.h:84
@ PF_DIGIT_3
Definition giface.h:109
static float dB_grid_inv(float pos, float res=256, float ofs=0.4)
convert normalized grid-ish value back to amplitude value
Definition giface.h:770
@ MAX_SAMPLE_RUN
Definition giface.h:38
float subindex_to_freq(int subindex)
Definition giface.h:875
bool get_freq_gridline(int subindex, float &pos, bool &vertical, std::string &legend, cairo_iface *context, bool use_frequencies=true, float res=256, float ofs=0.4)
Definition giface.cpp:333
void set_channel_dash(cairo_iface *context, int channel)
Definition giface.cpp:398
std::string frequency_crosshair_label(int x, int y, int sx, int sy, float q, int dB, int name, int note, int cents, double res=256, double ofs=0.4)
Definition giface.cpp:458
table_column_type
Definition giface.h:257
@ TCT_LABEL
string value (encoded as C-escaped string)
Definition giface.h:263
@ TCT_OBJECT
external object, encoded as string
Definition giface.h:262
@ TCT_UNKNOWN
guard invalid type
Definition giface.h:258
@ TCT_FLOAT
float value (encoded as C locale string)
Definition giface.h:259
@ TCT_ENUM
enum value (see: 'values' array in table_column_info) - encoded as string base 10 representation of i...
Definition giface.h:260
@ TCT_STRING
string value (encoded as C-escaped string)
Definition giface.h:261
static bool get_graph(Fx &fx, int subindex, float *data, int points, float res=256, float ofs=0.4)
Definition giface.h:758
const char * calf_copyright_info
Definition metadata.cpp:33
void draw_cairo_label(cairo_iface *context, const char *label, float x, float y, int pos, float margin, float align)
Definition giface.cpp:428
layers_flags
possible bit masks for get_layers
Definition giface.h:176
@ LG_CACHE_DOT
Definition giface.h:182
@ LG_REALTIME_MOVING
Definition giface.h:185
@ LG_REALTIME_GRID
Definition giface.h:179
@ LG_NONE
Definition giface.h:177
@ LG_CACHE_GRAPH
Definition giface.h:180
@ LG_REALTIME_GRAPH
Definition giface.h:181
@ LG_CACHE_MOVING
Definition giface.h:184
@ LG_REALTIME_DOT
Definition giface.h:183
@ LG_CACHE_GRID
Definition giface.h:178
char * load_gui_xml(const std::string &plugin_id)
Load and strdup a text file with GUI definition.
Definition giface.cpp:322
moving_directions
possible values for get_moving
Definition giface.h:189
@ LG_MOVING_DOWN
Definition giface.h:193
@ LG_MOVING_UP
Definition giface.h:192
@ LG_MOVING_LEFT
Definition giface.h:190
@ LG_MOVING_RIGHT
Definition giface.h:191
void set_channel_color(cairo_iface *context, int channel, float alpha=0.6)
set drawing color based on channel index (0 or 1)
Definition giface.cpp:391
bool parse_table_key(const char *key, const char *prefix, bool &is_rows, int &row, int &column)
Definition giface.cpp:528
void zero(float &v)
Set a float to zero.
Definition primitives.h:41
@ quit
Definition juce_ApplicationCommandID.h:62
jack_client_t * client
Definition juce_linux_JackAudio.cpp:57
png_uint_32 length
Definition png.c:2247
png_structrp int mode
Definition png.h:1139
Interface to audio processing plugins (the real things, not only metadata).
Definition giface.h:462
virtual char * configure(const char *key, const char *value)=0
DSSI configure call, value = NULL = reset to default.
virtual uint32_t process_slice(uint32_t offset, uint32_t end)=0
Clear a part of output buffers that have 0s at mask; subdivide the buffer so that no runs > MAX_SAMPL...
virtual const plugin_metadata_iface * get_metadata_iface() const =0
Return metadata object.
virtual void execute(int cmd_no)=0
Execute menu command with given number.
virtual void params_changed()=0
Called when params are changed (before processing).
virtual const line_graph_iface * get_line_graph_iface() const =0
virtual void program_change(int channel, int program)=0
Handle MIDI Program Change.
virtual void control_change(int channel, int controller, int value)=0
Handle MIDI Control Change.
virtual void channel_pressure(int channel, int value)=0
virtual void note_on(int channel, int note, int velocity)=0
Handle MIDI Note On.
virtual void send_configures(send_configure_iface *sci)=0
Send all understood configure vars (none by default).
virtual void get_port_arrays(float **&ins_ptrs, float **&outs_ptrs, float **¶ms_ptrs)=0
Return the arrays of port buffer pointers.
virtual uint32_t process(uint32_t offset, uint32_t numsamples, uint32_t inputs_mask, uint32_t outputs_mask)=0
The audio processing loop; assumes numsamples <= MAX_SAMPLE_RUN, for larger buffers,...
virtual void pitch_bend(int channel, int value)=0
virtual void deactivate()=0
LADSPA-esque deactivate function.
virtual int send_status_updates(send_updates_iface *sui, int last_serial)=0
Send all supported status vars (none by default).
virtual void params_reset()=0
Reset parameter values for epp:trigger type parameters (ones activated by oneshot push button instead...
virtual void set_progress_report_iface(progress_report_iface *iface)=0
Set the progress report interface to communicate progress to.
virtual const phase_graph_iface * get_phase_graph_iface() const =0
virtual uint32_t message_run(const void *valid_ports, void *output_ports)=0
Message port processing function.
virtual void activate()=0
LADSPA-esque activate function, except it is called after ports are connected, not before.
virtual void note_off(int channel, int note, int velocity)=0
Handle MIDI Note Off.
virtual void set_sample_rate(uint32_t sr)=0
Set sample rate for the plugin.
virtual ~audio_module_iface()
Definition giface.h:513
virtual void post_instantiate(uint32_t sample_rate)=0
Called after instantiating (after all the feature pointers are set - including interfaces like progre...
float min_value
Definition giface.h:858
float max_value
Definition giface.h:859
automation_range(float l, float u, int param)
Definition giface.h:862
void send_configure(const plugin_metadata_iface *metadata, uint32_t from_controller, send_configure_iface *sci)
Definition giface.cpp:40
static automation_range * new_from_configure(const plugin_metadata_iface *metadata, const char *key, const char *value, uint32_t &from_controller)
Definition giface.cpp:48
int param_no
Definition giface.h:860
virtual void draw_label(const char *label, float x, float y, int pos, float margin, float align)=0
int size_y
Definition giface.h:161
int size_x
Definition giface.h:161
virtual void set_source_rgba(float r, float g, float b, float a=1.f)=0
int pad_x
Definition giface.h:161
virtual void set_line_width(float width)=0
virtual ~cairo_iface()
Definition giface.h:166
virtual void set_dash(const double *dash, int length)=0
int pad_y
Definition giface.h:161
General information about the plugin -.
Definition giface.h:315
const char * maker
maker (author)
Definition giface.h:323
const char * copyright
copyright notice
Definition giface.h:325
uint32_t unique_id
LADSPA ID.
Definition giface.h:317
const char * plugin_type
plugin type for LRDF/LV2
Definition giface.h:327
const char * label
plugin short name (camel case)
Definition giface.h:319
const char * name
plugin human-readable name
Definition giface.h:321
'provides live line graph values' interface
Definition giface.h:198
virtual bool get_layers(int index, int generation, unsigned int &layers) const
Definition giface.h:236
virtual ~line_graph_iface()
Standard destructor to make compiler happy.
Definition giface.h:246
virtual std::string get_crosshair_label(int x, int y, int sx, int sy, float q, int dB, int name, int note, int cents) const
Definition giface.h:243
virtual bool get_graph(int index, int subindex, int phase, float *data, int points, cairo_iface *context, int *mode=0) const
Definition giface.h:208
virtual bool get_moving(int index, int subindex, int &direction, float *data, int x, int y, int &offset, uint32_t &color) const
Definition giface.h:217
virtual bool get_dot(int index, int subindex, int phase, float &x, float &y, int &size, cairo_iface *context) const
Definition giface.h:223
virtual bool get_gridline(int index, int subindex, int phase, float &pos, bool &vertical, std::string &legend, cairo_iface *context) const
Definition giface.h:229
Range, default value, flags and names for a parameter.
Definition giface.h:128
const char * name
parameter human-readable name
Definition giface.h:144
uint32_t flags
logical OR of parameter_flags
Definition giface.h:138
float get_increment() const
get increment step based on step value (if specified) and other factors
Definition giface.cpp:157
int get_char_count() const
get required width (for reserving GUI space)
Definition giface.cpp:187
float min
minimum value
Definition giface.h:132
float def_value
default value
Definition giface.h:130
float from_01(double value01) const
convert from [0, 1] range to [min, max] (applying scaling)
Definition giface.cpp:80
float max
maximum value
Definition giface.h:134
float step
number of steps (for an integer value from 0 to 100 this will be 101; for 0/90/180/270/360 this will ...
Definition giface.h:136
float string_to_value(const char *string) const
convert string (from text entry) to value
Definition giface.cpp:295
double to_01(float value) const
convert from [min, max] to [0, 1] range (applying reverse scaling)
Definition giface.cpp:128
const char * short_name
parameter label (for use in LV2 label field etc.)
Definition giface.h:142
const char ** choices
for PF_ENUM: array of text values (from min to max step 1), otherwise NULL
Definition giface.h:140
std::string to_string(float value) const
stringify (in sensible way)
Definition giface.cpp:207
'provides live line graph values' interface
Definition giface.h:251
virtual bool get_phase_graph(int index, float **_buffer, int *_length, int *_mode, bool *_use_fade, float *_fade, int *_accuracy, bool *_display) const
Definition giface.h:252
virtual ~phase_graph_iface()
Definition giface.h:253
Information record about plugin's menu command.
Definition giface.h:120
const char * description
description (for status line etc.)
Definition giface.h:123
const char * name
human-readable command name
Definition giface.h:122
const char * label
short command name / label
Definition giface.h:121
Interface for host-GUI-plugin interaction (should be really split in two, but ... meh).
Definition giface.h:389
virtual uint32_t get_last_automation_source()
Return the source identifier for the most recently seen control change that could be used for automat...
Definition giface.h:429
virtual void set_param_value(int param_no, float value)=0
Set value of given parameter.
virtual const line_graph_iface * get_line_graph_iface() const =0
virtual bool blobcall(const char *command, const std::string &request, std::string &result)
Definition giface.h:408
virtual ~plugin_ctl_iface()
Do-nothing destructor to silence compiler warning.
Definition giface.h:432
virtual void clear_preset()
Restore all state (parameters and configure vars) to default values - implemented in giface....
Definition giface.cpp:309
virtual float get_level(unsigned int port)=0
virtual bool activate_preset(int bank, int program)=0
Load preset with given number.
virtual int get_write_serial(int param_no)
Definition giface.h:419
virtual float get_param_value(int param_no)=0
virtual char * configure(const char *key, const char *value)=0
Set a configure variable on a plugin.
virtual void send_configures(send_configure_iface *)=0
Send all configure variables set within a plugin to given destination (which may be limited to only t...
virtual void delete_automation(uint32_t source, int param_no)
Remove parameter automation routing.
Definition giface.h:424
virtual void execute(int cmd_no)=0
Execute menu command with given number.
virtual const plugin_metadata_iface * get_metadata_iface() const =0
Return metadata object.
virtual void get_automation(int param_no, std::multimap< uint32_t, automation_range > &dests)
Definition giface.h:427
virtual int send_status_updates(send_updates_iface *sui, int last_serial)=0
virtual void send_automation_configures(send_configure_iface *)
Definition giface.h:430
virtual const phase_graph_iface * get_phase_graph_iface() const =0
virtual void add_automation(uint32_t source, const automation_range &dest)
Add or update parameter automation routing.
Definition giface.h:422
virtual void activate_preset(int preset, bool builtin)=0
virtual ~preset_access_iface()
Definition giface.h:798
virtual void store_preset()=0
virtual void report_progress(float percentage, const std::string &message)=0
virtual ~progress_report_iface()
Definition giface.h:172
'may receive new status values' interface
Definition giface.h:302
virtual ~send_updates_iface()
Definition giface.h:308
virtual void send_status(const char *key, const char *value)=0
parameters of
Definition giface.h:268
const char * name
column label
Definition giface.h:269
float max
maximum value (for float and enum)
Definition giface.h:272
const char ** values
NULL unless a TCT_ENUM, where it represents a NULL-terminated list of choices.
Definition giface.h:274
table_column_type type
column data type
Definition giface.h:270
float def_value
default value (for float and enum)
Definition giface.h:273
float min
minimum value (for float)
Definition giface.h:271
ZCONST char * key
Definition crypt.c:587
int r
Definition crypt.c:458
register uch * q
Definition fileio.c:817
int result
Definition process.c:1455
else sprintf(d_t_str, LoadFarString(shtYMDHMTime), yr%100, monthstr, dy, hh, mm)