LMMS
Loading...
Searching...
No Matches
giface.h File Reference
#include <config.h>
#include "primitives.h"
#include <complex>
#include <exception>
#include <string>
#include <vector>

Go to the source code of this file.

Classes

struct  calf_plugins::plugin_command_info
 Information record about plugin's menu command. More...
struct  calf_plugins::parameter_properties
 Range, default value, flags and names for a parameter. More...
struct  calf_plugins::cairo_iface
struct  calf_plugins::progress_report_iface
struct  calf_plugins::line_graph_iface
 'provides live line graph values' interface More...
struct  calf_plugins::phase_graph_iface
 'provides live line graph values' interface More...
struct  calf_plugins::table_column_info
 parameters of More...
 'has string parameters containing tabular data' interface More...
struct  calf_plugins::send_configure_iface
 'may receive configure variables' interface More...
struct  calf_plugins::send_updates_iface
 'may receive new status values' interface More...
struct  calf_plugins::ladspa_plugin_info
 General information about the plugin -. More...
 An interface returning metadata about a plugin. More...
struct  calf_plugins::plugin_ctl_iface
 Interface for host-GUI-plugin interaction (should be really split in two, but ... meh). More...
class  calf_plugins::plugin_registry
 A class to retrieve and query the list of Calf plugins. More...
struct  calf_plugins::audio_module_iface
 Interface to audio processing plugins (the real things, not only metadata). More...
 Empty implementations for plugin functions. More...
 Metadata base class template, to provide default versions of interface functions. More...
class  calf_plugins::frequency_response_line_graph
 Line graph interface implementation for frequency response graphs. More...
struct  calf_plugins::preset_access_iface
 Implementation of table_metadata_iface providing metadata for mod matrices. More...
struct  calf_plugins::automation_range
struct  calf_plugins::automation_map

Namespaces

namespace  osctl
namespace  calf_plugins

Macros

#define FAKE_INFINITY   (65536.0 * 65536.0)
 A fake infinity value (because real infinity may break some hosts).
#define IS_FAKE_INFINITY(value)
 Check for infinity (with appropriate-ish tolerance).
#define CALF_PORT_NAMES(name)
#define CALF_PORT_PROPS(name)
#define CALF_PLUGIN_INFO(name)
#define PLUGIN_NAME_ID_LABEL(name, id, label)
#define FORWARD_DECLARE_METADATA(plugin)

Enumerations

enum  { calf_plugins::MAX_SAMPLE_RUN = 256 }
enum  calf_plugins::parameter_flags {
  calf_plugins::PF_TYPEMASK = 0x000F , calf_plugins::PF_FLOAT = 0x0000 , calf_plugins::PF_INT = 0x0001 , calf_plugins::PF_BOOL = 0x0002 ,
  calf_plugins::PF_ENUM = 0x0003 , calf_plugins::PF_ENUM_MULTI = 0x0004 , calf_plugins::PF_SCALEMASK = 0xF0 , calf_plugins::PF_SCALE_DEFAULT = 0x00 ,
  calf_plugins::PF_SCALE_LINEAR = 0x10 , calf_plugins::PF_SCALE_LOG = 0x20 , calf_plugins::PF_SCALE_GAIN = 0x30 , calf_plugins::PF_SCALE_PERC = 0x40 ,
  calf_plugins::PF_SCALE_QUAD = 0x50 , calf_plugins::PF_SCALE_LOG_INF = 0x60 , calf_plugins::PF_CTLMASK = 0x000F00 , calf_plugins::PF_CTL_DEFAULT = 0x000000 ,
  calf_plugins::PF_CTL_KNOB = 0x000100 , calf_plugins::PF_CTL_FADER = 0x000200 , calf_plugins::PF_CTL_TOGGLE = 0x000300 , calf_plugins::PF_CTL_COMBO = 0x000400 ,
  calf_plugins::PF_CTL_RADIO = 0x000500 , calf_plugins::PF_CTL_BUTTON = 0x000600 , calf_plugins::PF_CTL_METER = 0x000700 , calf_plugins::PF_CTL_LED = 0x000800 ,
  calf_plugins::PF_CTL_LABEL = 0x000900 , calf_plugins::PF_CTLOPTIONS = 0x00F000 , calf_plugins::PF_CTLO_HORIZ = 0x001000 , calf_plugins::PF_CTLO_VERT = 0x002000 ,
  calf_plugins::PF_CTLO_LABEL = 0x004000 , calf_plugins::PF_CTLO_REVERSE = 0x008000 , calf_plugins::PF_PROP_MASK = 0x3F0000 , calf_plugins::PF_PROP_NOBOUNDS = 0x010000 ,
  calf_plugins::PF_PROP_EXPENSIVE = 0x020000 , calf_plugins::PF_PROP_OUTPUT_GAIN =0x040000 , calf_plugins::PF_PROP_OPTIONAL = 0x080000 , calf_plugins::PF_PROP_GRAPH = 0x100000 ,
  calf_plugins::PF_PROP_OUTPUT = 0x200000 , calf_plugins::PF_UNITMASK = 0x0F000000 , calf_plugins::PF_UNIT_DB = 0x01000000 , calf_plugins::PF_UNIT_DBFS = 0x0E000000 ,
  calf_plugins::PF_UNIT_COEF = 0x02000000 , calf_plugins::PF_UNIT_HZ = 0x03000000 , calf_plugins::PF_UNIT_SEC = 0x04000000 , calf_plugins::PF_UNIT_MSEC = 0x05000000 ,
  calf_plugins::PF_UNIT_CENTS = 0x06000000 , calf_plugins::PF_UNIT_SEMITONES = 0x07000000 , calf_plugins::PF_UNIT_BPM = 0x08000000 , calf_plugins::PF_UNIT_DEG = 0x09000000 ,
  calf_plugins::PF_UNIT_NOTE = 0x0A000000 , calf_plugins::PF_UNIT_RPM = 0x0B000000 , calf_plugins::PF_UNIT_SAMPLES = 0x0C000000 , calf_plugins::PF_SYNC_BPM = 0x10000000 ,
  calf_plugins::PF_DIGITMASK = 0xE0000000 , calf_plugins::PF_DIGIT_0 = 0x20000000 , calf_plugins::PF_DIGIT_1 = 0x40000000 , calf_plugins::PF_DIGIT_2 = 0x60000000 ,
  calf_plugins::PF_DIGIT_3 = 0x80000000 , calf_plugins::PF_DIGIT_ALL = 0xA0000000
}
 Values ORed together for flags field in parameter_properties. More...
enum  calf_plugins::layers_flags {
  calf_plugins::LG_NONE = 0x000000 , calf_plugins::LG_CACHE_GRID = 0x000001 , calf_plugins::LG_REALTIME_GRID = 0x000002 , calf_plugins::LG_CACHE_GRAPH = 0x000004 ,
  calf_plugins::LG_REALTIME_GRAPH = 0x000008 , calf_plugins::LG_CACHE_DOT = 0x000010 , calf_plugins::LG_REALTIME_DOT = 0x000020 , calf_plugins::LG_CACHE_MOVING = 0x000040 ,
  calf_plugins::LG_REALTIME_MOVING = 0x000080
}
 possible bit masks for get_layers More...
enum  calf_plugins::moving_directions { calf_plugins::LG_MOVING_LEFT = 0x000000 , calf_plugins::LG_MOVING_RIGHT = 0x000001 , calf_plugins::LG_MOVING_UP = 0x000002 , calf_plugins::LG_MOVING_DOWN = 0x000004 }
 possible values for get_moving More...
enum  calf_plugins::table_column_type {
  calf_plugins::TCT_UNKNOWN , calf_plugins::TCT_FLOAT , calf_plugins::TCT_ENUM , calf_plugins::TCT_STRING ,
  calf_plugins::TCT_OBJECT , calf_plugins::TCT_LABEL
}

Functions

char * calf_plugins::load_gui_xml (const std::string &plugin_id)
 Load and strdup a text file with GUI definition.
bool calf_plugins::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)
static float calf_plugins::dB_grid (float amp, float res=256, float ofs=0.4)
 convert amplitude value to normalized grid-ish value
template<class Fx>
static bool calf_plugins::get_graph (Fx &fx, int subindex, float *data, int points, float res=256, float ofs=0.4)
static float calf_plugins::dB_grid_inv (float pos, float res=256, float ofs=0.4)
 convert normalized grid-ish value back to amplitude value
std::string calf_plugins::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)
void calf_plugins::set_channel_color (cairo_iface *context, int channel, float alpha=0.6)
 set drawing color based on channel index (0 or 1)
void calf_plugins::set_channel_dash (cairo_iface *context, int channel)
void calf_plugins::draw_cairo_label (cairo_iface *context, const char *label, float x, float y, int pos, float margin, float align)
bool calf_plugins::parse_table_key (const char *key, const char *prefix, bool &is_rows, int &row, int &column)
float calf_plugins::subindex_to_freq (int subindex)

Variables

const char * calf_plugins::calf_copyright_info = "(C) 2001-2017 Krzysztof Foltman, Thor Harald Johanssen, Markus Schmidt, Christian Holschuh and others; license: LGPL"

Macro Definition Documentation

◆ CALF_PLUGIN_INFO

#define CALF_PLUGIN_INFO ( name)
Value:
static ladspa_plugin_info plugin_info
Definition giface.h:709
General information about the plugin -.
Definition giface.h:315

◆ CALF_PORT_NAMES

#define CALF_PORT_NAMES ( name)
Value:
static const char * port_names[]
Definition giface.h:707

◆ CALF_PORT_PROPS

#define CALF_PORT_PROPS ( name)
Value:
template<> parameter_properties calf_plugins::plugin_metadata<name##_metadata>::param_props[name##_metadata::param_count + 1]
static parameter_properties param_props[]
Definition giface.h:708
static const char * name
Definition pugl.h:1582

◆ FAKE_INFINITY

#define FAKE_INFINITY   (65536.0 * 65536.0)

A fake infinity value (because real infinity may break some hosts).

◆ FORWARD_DECLARE_METADATA

◆ IS_FAKE_INFINITY

#define IS_FAKE_INFINITY ( value)
Value:
(fabs(value-FAKE_INFINITY) < 1.0)
#define FAKE_INFINITY
A fake infinity value (because real infinity may break some hosts).
Definition giface.h:114
static PuglViewHint int value
Definition pugl.h:1708

Check for infinity (with appropriate-ish tolerance).

◆ PLUGIN_NAME_ID_LABEL

#define PLUGIN_NAME_ID_LABEL ( name,
id,
label )
Value:
static const char *impl_get_name() { return name; } \
static const char *impl_get_id() { return id; } \
static const char *impl_get_label() { return label; } \
@ label
Definition juce_AccessibilityRole.h:44