LMMS
Loading...
Searching...
No Matches
Carla Native API

Classes

struct  NativeParameterScalePoint
struct  NativeParameterRanges
struct  NativeParameter
struct  NativeMidiEvent
struct  NativeMidiProgram
struct  NativeTimeInfoBBT
struct  NativeTimeInfo
struct  NativeInlineDisplayImageSurface
struct  NativePortRange
struct  NativeHostDescriptor
struct  _NativePluginDescriptor

Macros

#define PARAMETER_RANGES_DEFAULT_STEP   0.01f
#define PARAMETER_RANGES_DEFAULT_STEP_SMALL   0.0001f
#define PARAMETER_RANGES_DEFAULT_STEP_LARGE   0.1f

Typedefs

typedef voidNativeHostHandle
typedef voidNativePluginHandle
typedef struct _NativePluginDescriptor NativePluginDescriptor

Enumerations

enum  NativePluginCategory {
  NATIVE_PLUGIN_CATEGORY_NONE = 0 , NATIVE_PLUGIN_CATEGORY_SYNTH = 1 , NATIVE_PLUGIN_CATEGORY_DELAY = 2 , NATIVE_PLUGIN_CATEGORY_EQ = 3 ,
  NATIVE_PLUGIN_CATEGORY_FILTER = 4 , NATIVE_PLUGIN_CATEGORY_DISTORTION = 5 , NATIVE_PLUGIN_CATEGORY_DYNAMICS = 6 , NATIVE_PLUGIN_CATEGORY_MODULATOR = 7 ,
  NATIVE_PLUGIN_CATEGORY_UTILITY = 8 , NATIVE_PLUGIN_CATEGORY_OTHER = 9
}
enum  NativePluginHints {
  NATIVE_PLUGIN_IS_RTSAFE = 1 << 0 , NATIVE_PLUGIN_IS_SYNTH = 1 << 1 , NATIVE_PLUGIN_HAS_UI = 1 << 2 , NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS = 1 << 3 ,
  NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD = 1 << 4 , NATIVE_PLUGIN_NEEDS_UI_OPEN_SAVE = 1 << 6 , NATIVE_PLUGIN_USES_MULTI_PROGS = 1 << 7 , NATIVE_PLUGIN_USES_PANNING = 1 << 8 ,
  NATIVE_PLUGIN_USES_STATE = 1 << 9 , NATIVE_PLUGIN_USES_TIME = 1 << 10 , NATIVE_PLUGIN_USES_PARENT_ID = 1 << 11 , NATIVE_PLUGIN_HAS_INLINE_DISPLAY = 1 << 12 ,
  NATIVE_PLUGIN_USES_CONTROL_VOLTAGE = 1 << 13 , NATIVE_PLUGIN_REQUESTS_IDLE = 1 << 15 , NATIVE_PLUGIN_USES_UI_SIZE = 1 << 16
}
enum  NativePluginSupports {
  NATIVE_PLUGIN_SUPPORTS_NOTHING = 0 , NATIVE_PLUGIN_SUPPORTS_PROGRAM_CHANGES = 1 << 0 , NATIVE_PLUGIN_SUPPORTS_CONTROL_CHANGES = 1 << 1 , NATIVE_PLUGIN_SUPPORTS_CHANNEL_PRESSURE = 1 << 2 ,
  NATIVE_PLUGIN_SUPPORTS_NOTE_AFTERTOUCH = 1 << 3 , NATIVE_PLUGIN_SUPPORTS_PITCHBEND = 1 << 4 , NATIVE_PLUGIN_SUPPORTS_ALL_SOUND_OFF = 1 << 5 , NATIVE_PLUGIN_SUPPORTS_EVERYTHING = (1 << 6)-1
}
enum  NativeParameterDesignations { NATIVE_PARAMETER_DESIGNATION_NONE = 0 , NATIVE_PARAMETER_DESIGNATION_ENABLED }
enum  NativeParameterHints {
  NATIVE_PARAMETER_IS_OUTPUT = 1 << 0 , NATIVE_PARAMETER_IS_ENABLED = 1 << 1 , NATIVE_PARAMETER_IS_AUTOMATABLE = 1 << 2 , NATIVE_PARAMETER_IS_AUTOMABLE = NATIVE_PARAMETER_IS_AUTOMATABLE ,
  NATIVE_PARAMETER_IS_BOOLEAN = 1 << 3 , NATIVE_PARAMETER_IS_INTEGER = 1 << 4 , NATIVE_PARAMETER_IS_LOGARITHMIC = 1 << 5 , NATIVE_PARAMETER_USES_SAMPLE_RATE = 1 << 6 ,
  NATIVE_PARAMETER_USES_SCALEPOINTS = 1 << 7 , NATIVE_PARAMETER_USES_DESIGNATION = 1 << 8
}
enum  NativePluginDispatcherOpcode {
  NATIVE_PLUGIN_OPCODE_NULL = 0 , NATIVE_PLUGIN_OPCODE_BUFFER_SIZE_CHANGED = 1 , NATIVE_PLUGIN_OPCODE_SAMPLE_RATE_CHANGED = 2 , NATIVE_PLUGIN_OPCODE_OFFLINE_CHANGED = 3 ,
  NATIVE_PLUGIN_OPCODE_UI_NAME_CHANGED = 4 , NATIVE_PLUGIN_OPCODE_GET_INTERNAL_HANDLE = 5 , NATIVE_PLUGIN_OPCODE_IDLE = 6 , NATIVE_PLUGIN_OPCODE_UI_MIDI_EVENT = 7 ,
  NATIVE_PLUGIN_OPCODE_HOST_USES_EMBED = 8 , NATIVE_PLUGIN_OPCODE_HOST_OPTION = 9
}
enum  NativeHostDispatcherOpcode {
  NATIVE_HOST_OPCODE_NULL = 0 , NATIVE_HOST_OPCODE_UPDATE_PARAMETER = 1 , NATIVE_HOST_OPCODE_UPDATE_MIDI_PROGRAM = 2 , NATIVE_HOST_OPCODE_RELOAD_PARAMETERS = 3 ,
  NATIVE_HOST_OPCODE_RELOAD_MIDI_PROGRAMS = 4 , NATIVE_HOST_OPCODE_RELOAD_ALL = 5 , NATIVE_HOST_OPCODE_UI_UNAVAILABLE = 6 , NATIVE_HOST_OPCODE_HOST_IDLE = 7 ,
  NATIVE_HOST_OPCODE_INTERNAL_PLUGIN = 8 , NATIVE_HOST_OPCODE_QUEUE_INLINE_DISPLAY = 9 , NATIVE_HOST_OPCODE_UI_TOUCH_PARAMETER = 10 , NATIVE_HOST_OPCODE_REQUEST_IDLE = 11 ,
  NATIVE_HOST_OPCODE_GET_FILE_PATH = 12 , NATIVE_HOST_OPCODE_UI_RESIZE = 13 , NATIVE_HOST_OPCODE_PREVIEW_BUFFER_DATA = 14
}

Functions

void carla_register_native_plugin (const NativePluginDescriptor *desc)
void carla_register_all_native_plugins (void)
CARLA_API_EXPORT const NativePluginDescriptorcarla_get_native_plugins_data (uint32_t *count)

Detailed Description

The Carla Native API

Macro Definition Documentation

◆ PARAMETER_RANGES_DEFAULT_STEP

#define PARAMETER_RANGES_DEFAULT_STEP   0.01f

◆ PARAMETER_RANGES_DEFAULT_STEP_LARGE

#define PARAMETER_RANGES_DEFAULT_STEP_LARGE   0.1f

◆ PARAMETER_RANGES_DEFAULT_STEP_SMALL

#define PARAMETER_RANGES_DEFAULT_STEP_SMALL   0.0001f

Typedef Documentation

◆ NativeHostHandle

◆ NativePluginDescriptor

◆ NativePluginHandle

Enumeration Type Documentation

◆ NativeHostDispatcherOpcode

Enumerator
NATIVE_HOST_OPCODE_NULL 
NATIVE_HOST_OPCODE_UPDATE_PARAMETER 

nothing

NATIVE_HOST_OPCODE_UPDATE_MIDI_PROGRAM 

uses index, -1 for all

NATIVE_HOST_OPCODE_RELOAD_PARAMETERS 

uses index, -1 for all; may use value for channel

NATIVE_HOST_OPCODE_RELOAD_MIDI_PROGRAMS 

nothing

NATIVE_HOST_OPCODE_RELOAD_ALL 

nothing

NATIVE_HOST_OPCODE_UI_UNAVAILABLE 

nothing

NATIVE_HOST_OPCODE_HOST_IDLE 

nothing

NATIVE_HOST_OPCODE_INTERNAL_PLUGIN 

nothing

NATIVE_HOST_OPCODE_QUEUE_INLINE_DISPLAY 

nothing

NATIVE_HOST_OPCODE_UI_TOUCH_PARAMETER 

nothing

NATIVE_HOST_OPCODE_REQUEST_IDLE 

uses index, value as bool

NATIVE_HOST_OPCODE_GET_FILE_PATH 

nothing

NATIVE_HOST_OPCODE_UI_RESIZE 

uses ptr as string for file type

NATIVE_HOST_OPCODE_PREVIEW_BUFFER_DATA 

uses index and value

◆ NativeParameterDesignations

Enumerator
NATIVE_PARAMETER_DESIGNATION_NONE 
NATIVE_PARAMETER_DESIGNATION_ENABLED 

◆ NativeParameterHints

Enumerator
NATIVE_PARAMETER_IS_OUTPUT 
NATIVE_PARAMETER_IS_ENABLED 
NATIVE_PARAMETER_IS_AUTOMATABLE 
NATIVE_PARAMETER_IS_AUTOMABLE 
NATIVE_PARAMETER_IS_BOOLEAN 
NATIVE_PARAMETER_IS_INTEGER 
NATIVE_PARAMETER_IS_LOGARITHMIC 
NATIVE_PARAMETER_USES_SAMPLE_RATE 
NATIVE_PARAMETER_USES_SCALEPOINTS 
NATIVE_PARAMETER_USES_DESIGNATION 

◆ NativePluginCategory

Enumerator
NATIVE_PLUGIN_CATEGORY_NONE 
NATIVE_PLUGIN_CATEGORY_SYNTH 

Null plugin category.

NATIVE_PLUGIN_CATEGORY_DELAY 

A synthesizer or generator.

NATIVE_PLUGIN_CATEGORY_EQ 

A delay or reverberator.

NATIVE_PLUGIN_CATEGORY_FILTER 

An equalizer.

NATIVE_PLUGIN_CATEGORY_DISTORTION 

A filter.

NATIVE_PLUGIN_CATEGORY_DYNAMICS 

A distortion plugin.

NATIVE_PLUGIN_CATEGORY_MODULATOR 

A 'dynamic' plugin (amplifier, compressor, gate, etc).

NATIVE_PLUGIN_CATEGORY_UTILITY 

A 'modulator' plugin (chorus, flanger, phaser, etc).

NATIVE_PLUGIN_CATEGORY_OTHER 

An 'utility' plugin (analyzer, converter, mixer, etc).

◆ NativePluginDispatcherOpcode

Enumerator
NATIVE_PLUGIN_OPCODE_NULL 
NATIVE_PLUGIN_OPCODE_BUFFER_SIZE_CHANGED 

nothing

NATIVE_PLUGIN_OPCODE_SAMPLE_RATE_CHANGED 

uses value

NATIVE_PLUGIN_OPCODE_OFFLINE_CHANGED 

uses opt

NATIVE_PLUGIN_OPCODE_UI_NAME_CHANGED 

uses value (0=off, 1=on)

NATIVE_PLUGIN_OPCODE_GET_INTERNAL_HANDLE 

uses ptr

NATIVE_PLUGIN_OPCODE_IDLE 

nothing

NATIVE_PLUGIN_OPCODE_UI_MIDI_EVENT 

nothing

NATIVE_PLUGIN_OPCODE_HOST_USES_EMBED 

uses ptr

NATIVE_PLUGIN_OPCODE_HOST_OPTION 

nothing

◆ NativePluginHints

Enumerator
NATIVE_PLUGIN_IS_RTSAFE 
NATIVE_PLUGIN_IS_SYNTH 
NATIVE_PLUGIN_HAS_UI 
NATIVE_PLUGIN_NEEDS_FIXED_BUFFERS 
NATIVE_PLUGIN_NEEDS_UI_MAIN_THREAD 
NATIVE_PLUGIN_NEEDS_UI_OPEN_SAVE 
NATIVE_PLUGIN_USES_MULTI_PROGS 
NATIVE_PLUGIN_USES_PANNING 

has 1 program per midi channel

NATIVE_PLUGIN_USES_STATE 

uses stereo balance if unset (default)

NATIVE_PLUGIN_USES_TIME 
NATIVE_PLUGIN_USES_PARENT_ID 
NATIVE_PLUGIN_HAS_INLINE_DISPLAY 

can set transient hint to parent

NATIVE_PLUGIN_USES_CONTROL_VOLTAGE 
NATIVE_PLUGIN_REQUESTS_IDLE 
NATIVE_PLUGIN_USES_UI_SIZE 

◆ NativePluginSupports

Enumerator
NATIVE_PLUGIN_SUPPORTS_NOTHING 
NATIVE_PLUGIN_SUPPORTS_PROGRAM_CHANGES 
NATIVE_PLUGIN_SUPPORTS_CONTROL_CHANGES 

handles MIDI programs internally instead of host-exposed/exported

NATIVE_PLUGIN_SUPPORTS_CHANNEL_PRESSURE 
NATIVE_PLUGIN_SUPPORTS_NOTE_AFTERTOUCH 
NATIVE_PLUGIN_SUPPORTS_PITCHBEND 
NATIVE_PLUGIN_SUPPORTS_ALL_SOUND_OFF 
NATIVE_PLUGIN_SUPPORTS_EVERYTHING 

Function Documentation

◆ carla_get_native_plugins_data()

CARLA_API_EXPORT const NativePluginDescriptor * carla_get_native_plugins_data ( uint32_t * count)

Get meta-data only

◆ carla_register_all_native_plugins()

void carla_register_all_native_plugins ( void )

Called once on host init

◆ carla_register_native_plugin()

void carla_register_native_plugin ( const NativePluginDescriptor * desc)
extern

Implemented by host