Browse Source

Continue API changes, document everything

tags/1.9.4
falkTX 11 years ago
parent
commit
91057d696a
7 changed files with 1180 additions and 434 deletions
  1. +1
    -1
      source/backend/CarlaBackend.doxygen
  2. +646
    -272
      source/backend/CarlaBackend.hpp
  3. +2
    -2
      source/backend/CarlaHost.hpp
  4. +7
    -7
      source/backend/CarlaPlugin.hpp
  5. +5
    -3
      source/backend/plugin/CarlaPluginInternal.hpp
  6. +519
    -139
      source/carla_backend.py
  7. +0
    -10
      source/carla_shared.py

+ 1
- 1
source/backend/CarlaBackend.doxygen View File

@@ -244,7 +244,7 @@ INCLUDE_FILE_PATTERNS =
PREDEFINED = DOXYGEN \
WANT_NATIVE WANT_LADSPA WANT_DSSI WANT_LV2 WANT_VST WANT_AU WANT_CSDOUND WANT_FLUIDSYNTH WANT_LINUXSAMPLER \
WANT_OPENGL WANT_AUDIOFILE WANT_MIDIFILE WANT_ZYNADDSUBFX WANT_ZYNADDSUBFX_UI \
CARLA_EXPORT
CARLA_EXPORT SIZE_INT
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------


+ 646
- 272
source/backend/CarlaBackend.hpp
File diff suppressed because it is too large
View File


+ 2
- 2
source/backend/CarlaHost.hpp View File

@@ -691,9 +691,9 @@ CARLA_EXPORT void carla_send_midi_note(unsigned int pluginId, uint8_t channel, u

/*!
* Tell a plugin to show its own custom UI.
* \see PLUGIN_HAS_GUI
* \see PLUGIN_HAS_CUSTOM_UI
*/
CARLA_EXPORT void carla_show_gui(unsigned int pluginId, bool yesNo);
CARLA_EXPORT void carla_show_custom_ui(unsigned int pluginId, bool yesNo);

/*!
* Get the current engine buffer size.


+ 7
- 7
source/backend/CarlaPlugin.hpp View File

@@ -119,7 +119,7 @@ public:
*
* \see PluginOptions, getAvailableOptions() and setOption()
*/
unsigned int getOptions() const noexcept
unsigned int getOptionsEnabled() const noexcept
{
return fOptions;
}
@@ -299,7 +299,7 @@ public:
*
* \see PluginOptions, getOptions() and setOption()
*/
virtual unsigned int getAvailableOptions() const;
virtual unsigned int getOptionsAvailable() const;

/*!
* Get the current parameter value of \a parameterId.
@@ -620,18 +620,18 @@ public:
// Set gui stuff

/*!
* Show (or hide) the plugin's custom GUI according to \a yesNo.
* Idle function.
*
* \note This function must be always called from the main thread.
*/
virtual void showGui(const bool yesNo);
virtual void idle();

/*!
* Idle the plugin's custom GUI.
* Show (or hide) the plugin's custom UI according to \a yesNo.
*
* \note This function must be always called from the main thread.
*/
virtual void idleGui();
virtual void showCustomUI(const bool yesNo);

// -------------------------------------------------------------------
// Plugin state
@@ -874,7 +874,7 @@ protected:

/*!
* Defined and currently in-use options, returned in getOptions().
* \see PluginOptions, getOptions(), getAvailableOptions() and setOption()
* \see PluginOptions, getOptionsAvailable(), getOptionsEnabled(), setOption()
*/
unsigned int fOptions;



+ 5
- 3
source/backend/plugin/CarlaPluginInternal.hpp View File

@@ -48,9 +48,11 @@ CARLA_BACKEND_START_NAMESPACE

const unsigned short kPluginMaxMidiEvents = 512;

const unsigned int PLUGIN_EXTRA_HINT_HAS_MIDI_IN = 0x1;
const unsigned int PLUGIN_EXTRA_HINT_HAS_MIDI_OUT = 0x2;
const unsigned int PLUGIN_EXTRA_HINT_CAN_RUN_RACK = 0x4;
const unsigned int PLUGIN_EXTRA_HINT_HAS_MIDI_IN = 0x01;
const unsigned int PLUGIN_EXTRA_HINT_HAS_MIDI_OUT = 0x02;
const unsigned int PLUGIN_EXTRA_HINT_CAN_RUN_RACK = 0x04;
const unsigned int PLUGIN_EXTRA_HINT_FIXED_BUFFERS = 0x10;
const unsigned int PLUGIN_EXTRA_HINT_SINGLE_THREAD = 0x20;

// -----------------------------------------------------------------------



+ 519
- 139
source/carla_backend.py View File

@@ -58,25 +58,52 @@ else:
WINDOWS = False

# ------------------------------------------------------------------------------------------------------------
# Convert a ctypes char** into a python string list
# Convert a ctypes c_char_p into a python string

def charStringList(charPtrPtr):
def charPtrToString(value):
if not value:
return ""
if isinstance(value, str):
return value
return value.decode("utf-8", errors="ignore")

# ------------------------------------------------------------------------------------------------------------
# Convert a ctypes POINTER(c_char_p) into a python string list

def charPtrPtrToStringList(charPtrPtr):
if not charPtrPtr:
return []

i = 0
i = 0
charPtr = charPtrPtr[0]
strList = []

while True:
while charPtr:
strList.append(charPtr.decode("utf-8", errors="ignore"))

i += 1
charPtr = charPtrPtr[i]

if not charPtr:
break
return strList

# ------------------------------------------------------------------------------------------------------------
# Convert a ctypes POINTER(c_<num>) into a python number list

def numPtrToList(numPtr):
if not numPtr:
return []

i = 0
num = numPtr[0].value
numList = []

while num not in (0, 0.0):
numList.append(num)

strList.append(charPtr.decode("utf-8", errors="ignore"))
i += 1
num = numPtr[i].value

return strList
return numList

# ------------------------------------------------------------------------------------------------------------
# Convert a ctypes struct into a python dict
@@ -85,135 +112,508 @@ def structToDict(struct):
return dict((attr, getattr(struct, attr)) for attr, value in struct._fields_)

# ------------------------------------------------------------------------------------------------------------
# Backend defines
# Carla Backend API

MAX_DEFAULT_PLUGINS = 99
MAX_RACK_PLUGINS = 16
MAX_PATCHBAY_PLUGINS = 255
# Maximum default number of loadable plugins.
MAX_DEFAULT_PLUGINS = 99

# Maximum number of loadable plugins in rack mode.
MAX_RACK_PLUGINS = 16

# Maximum number of loadable plugins in patchbay mode.
MAX_PATCHBAY_PLUGINS = 255

# Maximum default number of parameters allowed.
# @see ENGINE_OPTION_MAX_PARAMETERS
MAX_DEFAULT_PARAMETERS = 200

# Engine Driver Hints
ENGINE_DRIVER_HAS_CONTROL_PANEL = 0x1
ENGINE_DRIVER_VARIABLE_BUFFER_SIZE = 0x2
ENGINE_DRIVER_VARIABLE_SAMPLE_RATE = 0x4
# ------------------------------------------------------------------------------------------------------------
# Engine Driver Device Hints

# Engine driver device has custom control-panel.
# @see ENGINE_OPTION_AUDIO_SHOW_CTRL_PANEL
ENGINE_DRIVER_DEVICE_HAS_CONTROL_PANEL = 0x1

# Engine driver device can change buffer-size on the fly.
ENGINE_DRIVER_DEVICE_VARIABLE_BUFFER_SIZE = 0x2

# Engine driver device can change sample-rate on the fly.
ENGINE_DRIVER_DEVICE_VARIABLE_SAMPLE_RATE = 0x4

# ------------------------------------------------------------------------------------------------------------
# Plugin Hints
PLUGIN_IS_BRIDGE = 0x001
PLUGIN_IS_RTSAFE = 0x002
PLUGIN_IS_SYNTH = 0x004
PLUGIN_HAS_GUI = 0x008
PLUGIN_CAN_DRYWET = 0x010
PLUGIN_CAN_VOLUME = 0x020
PLUGIN_CAN_BALANCE = 0x040
PLUGIN_CAN_PANNING = 0x080
PLUGIN_NEEDS_FIXED_BUFFERS = 0x100
PLUGIN_NEEDS_SINGLE_THREAD = 0x200

# Plugin is a bridge.
# This hint is required because "bridge" itself is not a plugin type.
PLUGIN_IS_BRIDGE = 0x01

# Plugin is hard real-time safe.
PLUGIN_IS_RTSAFE = 0x02

# Plugin is a synth (produces sound).
PLUGIN_IS_SYNTH = 0x04

# Plugin has its own custom UI.
# @see carla_show_custom_ui()
PLUGIN_HAS_CUSTOM_UI = 0x08

# Plugin can use internal Dry/Wet control.
PLUGIN_CAN_DRYWET = 0x10

# Plugin can use internal Volume control.
PLUGIN_CAN_VOLUME = 0x20

# Plugin can use internal (Stereo) Balance controls.
PLUGIN_CAN_BALANCE = 0x40

# Plugin can use internal (Mono) Panning control.
PLUGIN_CAN_PANNING = 0x80

# ------------------------------------------------------------------------------------------------------------
# Plugin Options
PLUGIN_OPTION_FIXED_BUFFERS = 0x001
PLUGIN_OPTION_FORCE_STEREO = 0x002
PLUGIN_OPTION_MAP_PROGRAM_CHANGES = 0x004
PLUGIN_OPTION_USE_CHUNKS = 0x008
PLUGIN_OPTION_SEND_CONTROL_CHANGES = 0x010

# Use constant/fixed-size audio buffers.
PLUGIN_OPTION_FIXED_BUFFERS = 0x001

# Force mono plugin as stereo.
PLUGIN_OPTION_FORCE_STEREO = 0x002

# Map MIDI programs to plugin programs.
PLUGIN_OPTION_MAP_PROGRAM_CHANGES = 0x004

# Use chunks to save and restore data.
PLUGIN_OPTION_USE_CHUNKS = 0x008

# Send MIDI control change events.
PLUGIN_OPTION_SEND_CONTROL_CHANGES = 0x010

# Send MIDI channel pressure events.
PLUGIN_OPTION_SEND_CHANNEL_PRESSURE = 0x020
PLUGIN_OPTION_SEND_NOTE_AFTERTOUCH = 0x040
PLUGIN_OPTION_SEND_PITCHBEND = 0x080
PLUGIN_OPTION_SEND_ALL_SOUND_OFF = 0x100

# Send MIDI note after-touch events.
PLUGIN_OPTION_SEND_NOTE_AFTERTOUCH = 0x040

# Send MIDI pitch-bend events.
PLUGIN_OPTION_SEND_PITCHBEND = 0x080

# Send MIDI all-sounds/notes-off events, single note-offs otherwise.
PLUGIN_OPTION_SEND_ALL_SOUND_OFF = 0x100

# ------------------------------------------------------------------------------------------------------------
# Parameter Hints
PARAMETER_IS_BOOLEAN = 0x001
PARAMETER_IS_INTEGER = 0x002
PARAMETER_IS_LOGARITHMIC = 0x004
PARAMETER_IS_ENABLED = 0x010
PARAMETER_IS_AUTOMABLE = 0x020
PARAMETER_IS_READ_ONLY = 0x040
PARAMETER_USES_SAMPLERATE = 0x100

# Parameter value is boolean.
PARAMETER_IS_BOOLEAN = 0x001

# Parameter value is integer.
PARAMETER_IS_INTEGER = 0x002

# Parameter value is logarithmic.
PARAMETER_IS_LOGARITHMIC = 0x004

# Parameter is enabled.
# It can be viewed, changed and stored.
PARAMETER_IS_ENABLED = 0x010

# Parameter is automable (real-time safe).
PARAMETER_IS_AUTOMABLE = 0x020

# Parameter is read-only.
# It cannot be changed.
PARAMETER_IS_READ_ONLY = 0x040

# Parameter needs sample rate to work.
# Value and ranges are multiplied by sample rate on usage and divided by sample rate on save.
PARAMETER_USES_SAMPLERATE = 0x100

# Parameter uses scale points to define internal values in a meaningful way.
PARAMETER_USES_SCALEPOINTS = 0x200

# Parameter uses custom text for displaying its value.
# @see carla_get_parameter_text()
PARAMETER_USES_CUSTOM_TEXT = 0x400

# ------------------------------------------------------------------------------------------------------------
# Patchbay Port Hints

# Patchbay port is input.
# When this hint is not set, port is assumed to be output.
PATCHBAY_PORT_IS_INPUT = 0x1

# Patchbay port is of Audio type.
PATCHBAY_PORT_TYPE_AUDIO = 0x2

# Patchbay port is of CV type (Control Voltage).
PATCHBAY_PORT_TYPE_CV = 0x4

# Patchbay port is of MIDI type.
PATCHBAY_PORT_TYPE_MIDI = 0x8

# ------------------------------------------------------------------------------------------------------------
# Custom Data Types
CUSTOM_DATA_TYPE_CHUNK = "http://kxstudio.sf.net/ns/carla/chunk"
CUSTOM_DATA_TYPE_STRING = "http://kxstudio.sf.net/ns/carla/string"

# Boolean string type URI.
# Only "true" and "false" are valid values.
CUSTOM_DATA_TYPE_BOOLEAN = "http://kxstudio.sf.net/ns/carla/boolean"

# Chunk type URI.
CUSTOM_DATA_TYPE_CHUNK = "http://kxstudio.sf.net/ns/carla/chunk"

# String type URI.
CUSTOM_DATA_TYPE_STRING = "http://kxstudio.sf.net/ns/carla/string"

# ------------------------------------------------------------------------------------------------------------
# Custom Data Keys
CUSTOM_DATA_KEY_OPTIONS = "CarlaOptions"
CUSTOM_DATA_KEY_UI_X = "CarlaUI:X"
CUSTOM_DATA_KEY_UI_Y = "CarlaUI:Y"
CUSTOM_DATA_KEY_UI_WIDTH = "CarlaUI:Width"
CUSTOM_DATA_KEY_UI_HEIGHT = "CarlaUI:Height"
CUSTOM_DATA_KEY_UI_VISIBLE = "CarlaUI:Visible"

# Patchbay Port Hints
PATCHBAY_PORT_IS_INPUT = 0x01
PATCHBAY_PORT_IS_OUTPUT = 0x02
PATCHBAY_PORT_IS_AUDIO = 0x10
PATCHBAY_PORT_IS_CV = 0x20
PATCHBAY_PORT_IS_MIDI = 0x40
# Plugin options key.
CUSTOM_DATA_KEY_PLUGIN_OPTIONS = "CarlaPluginOptions"

# UI position key.
CUSTOM_DATA_KEY_UI_POSITION = "CarlaUiPosition"

# UI size key.
CUSTOM_DATA_KEY_UI_SIZE = "CarlaUiSize"

# UI visible key.
CUSTOM_DATA_KEY_UI_VISIBLE = "CarlaUiVisible"

# ------------------------------------------------------------------------------------------------------------
# Binary Type
BINARY_NONE = 0

# Null binary type.
BINARY_NONE = 0

# POSIX 32bit binary.
BINARY_POSIX32 = 1

# POSIX 64bit binary.
BINARY_POSIX64 = 2
BINARY_WIN32 = 3
BINARY_WIN64 = 4
BINARY_OTHER = 5

# Windows 32bit binary.
BINARY_WIN32 = 3

# Windows 64bit binary.
BINARY_WIN64 = 4

# Other binary type.
BINARY_OTHER = 5

# ------------------------------------------------------------------------------------------------------------
# Plugin Type
PLUGIN_NONE = 0

# Null plugin type.
PLUGIN_NONE = 0

# Internal plugin.
PLUGIN_INTERNAL = 1
PLUGIN_LADSPA = 2
PLUGIN_DSSI = 3
PLUGIN_LV2 = 4
PLUGIN_VST = 5
PLUGIN_AU = 6
PLUGIN_CSOUND = 7
PLUGIN_GIG = 8
PLUGIN_SF2 = 9
PLUGIN_SFZ = 10

# LADSPA plugin.
PLUGIN_LADSPA = 2

# DSSI plugin.
PLUGIN_DSSI = 3

# LV2 plugin.
PLUGIN_LV2 = 4

# VST plugin.
PLUGIN_VST = 5

# AU plugin.
# @note MacOS only
PLUGIN_AU = 6

# Csound file.
PLUGIN_CSOUND = 7

# GIG file.
PLUGIN_GIG = 8

# SF2 file (also known as SoundFont).
PLUGIN_SF2 = 9

# SFZ file.
PLUGIN_SFZ = 10

# ------------------------------------------------------------------------------------------------------------
# Plugin Category
PLUGIN_CATEGORY_NONE = 0
PLUGIN_CATEGORY_SYNTH = 1
PLUGIN_CATEGORY_DELAY = 2
PLUGIN_CATEGORY_EQ = 3
PLUGIN_CATEGORY_FILTER = 4

# Null plugin category.
PLUGIN_CATEGORY_NONE = 0

# A synthesizer or generator.
PLUGIN_CATEGORY_SYNTH = 1

# A delay or reverb.
PLUGIN_CATEGORY_DELAY = 2

# An equalizer.
PLUGIN_CATEGORY_EQ = 3

# A filter.
PLUGIN_CATEGORY_FILTER = 4

# A distortion plugin.
PLUGIN_CATEGORY_DISTORTION = 5
PLUGIN_CATEGORY_DYNAMICS = 6
PLUGIN_CATEGORY_MODULATOR = 7
PLUGIN_CATEGORY_UTILITY = 8
PLUGIN_CATEGORY_OTHER = 9

# A 'dynamic' plugin (amplifier, compressor, gate, etc).
PLUGIN_CATEGORY_DYNAMICS = 6

# A 'modulator' plugin (chorus, flanger, phaser, etc).
PLUGIN_CATEGORY_MODULATOR = 7

# An 'utility' plugin (analyzer, converter, mixer, etc).
PLUGIN_CATEGORY_UTILITY = 8

# Miscellaneous plugin (used to check if the plugin has a category).
PLUGIN_CATEGORY_OTHER = 9

# ------------------------------------------------------------------------------------------------------------
# Parameter Type

# Unknown parameter type.
PARAMETER_UNKNOWN = 0
PARAMETER_INPUT = 1
PARAMETER_OUTPUT = 2

# Input parameter.
PARAMETER_INPUT = 1

# Output parameter.
PARAMETER_OUTPUT = 2

# Special parameter.
# Used to report specific information to plugins.
PARAMETER_SPECIAL = 3

# ------------------------------------------------------------------------------------------------------------
# Internal Parameters Index
PARAMETER_NULL = -1
PARAMETER_ACTIVE = -2
PARAMETER_DRYWET = -3
PARAMETER_VOLUME = -4
PARAMETER_BALANCE_LEFT = -5

# Null parameter.
PARAMETER_NULL = -1

# Active parameter, boolean type.
# Default is 'false'.
PARAMETER_ACTIVE = -2

# Dry/Wet parameter.
# Range 0.0...1.0; default is 1.0.
PARAMETER_DRYWET = -3

# Volume parameter.
# Range 0.0...1.27; default is 1.0.
PARAMETER_VOLUME = -4

# Stereo Balance-Left parameter.
# Range -1.0...1.0; default is -1.0.
PARAMETER_BALANCE_LEFT = -5

# Stereo Balance-Right parameter.
# Range -1.0...1.0; default is 1.0.
PARAMETER_BALANCE_RIGHT = -6
PARAMETER_PANNING = -7
PARAMETER_CTRL_CHANNEL = -8
PARAMETER_MAX = -9

# Process Mode
PROCESS_MODE_SINGLE_CLIENT = 0
PROCESS_MODE_MULTIPLE_CLIENTS = 1
PROCESS_MODE_CONTINUOUS_RACK = 2
PROCESS_MODE_PATCHBAY = 3
PROCESS_MODE_BRIDGE = 4
# Mono Panning parameter.
# Range -1.0...1.0; default is 0.0.
PARAMETER_PANNING = -7

# Transport Mode
TRANSPORT_MODE_INTERNAL = 0
TRANSPORT_MODE_JACK = 1
TRANSPORT_MODE_PLUGIN = 2
TRANSPORT_MODE_BRIDGE = 3
# MIDI Control channel, integer type.
# Range -1...15 (-1 = off).
PARAMETER_CTRL_CHANNEL = -8

# Max value, defined only for convenience.
PARAMETER_MAX = -9

# ------------------------------------------------------------------------------------------------------------
# Engine Callback Opcode

# Debug.
# This opcode is undefined and used only for testing purposes.
ENGINE_CALLBACK_DEBUG = 0

# A plugin has been added.
# @param pluginId Plugin Id
# @param valueStr Plugin name
ENGINE_CALLBACK_PLUGIN_ADDED = 1

# A plugin has been removed.
# @param pluginId Plugin Id
ENGINE_CALLBACK_PLUGIN_REMOVED = 2

# A plugin has been renamed.
# @param pluginId Plugin Id
# @param valueStr New plugin name
ENGINE_CALLBACK_PLUGIN_RENAMED = 3

# A plugin has become unavailable.
# @param pluginId Plugin Id
# @param valueStr Related error string
ENGINE_CALLBACK_PLUGIN_UNAVAILABLE = 4

# A parameter value has changed.
# @param pluginId Plugin Id
# @param value1 Parameter index
# @param value3 New parameter value
ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED = 5

# A parameter default has changed.
# @param pluginId Plugin Id
# @param value1 Parameter index
# @param value3 New default value
ENGINE_CALLBACK_PARAMETER_DEFAULT_CHANGED = 6

# A parameter's MIDI CC has changed.
# @param pluginId Plugin Id
# @param value1 Parameter index
# @param value2 New MIDI CC
ENGINE_CALLBACK_PARAMETER_MIDI_CC_CHANGED = 7

# A parameter's MIDI channel has changed.
# @param pluginId Plugin Id
# @param value1 Parameter index
# @param value2 New MIDI channel
ENGINE_CALLBACK_PARAMETER_MIDI_CHANNEL_CHANGED = 8

# The current program of a plugin has changed.
# @param pluginId Plugin Id
# @param value1 New program index
ENGINE_CALLBACK_PROGRAM_CHANGED = 9

# The current MIDI program of a plugin has changed.
# @param pluginId Plugin Id
# @param value1 New MIDI bank
# @param value2 New MIDI program
ENGINE_CALLBACK_MIDI_PROGRAM_CHANGED = 10

# A plugin's custom UI state has changed.
# @param pluginId Plugin Id
# @param value1 New state, as follows:\n
# 0: UI is now hidden\n
# 1: UI is now visible\n
# -1: UI has crashed and should not be shown again
ENGINE_CALLBACK_UI_STATE_CHANGED = 11

# A note has been pressed.
# @param pluginId Plugin Id
# @param value1 Channel
# @param value2 Note
# @param value3 Velocity
ENGINE_CALLBACK_NOTE_ON = 12

# A note has been released.
# @param pluginId Plugin Id
# @param value1 Channel
# @param value2 Note
ENGINE_CALLBACK_NOTE_OFF = 13

# A plugin needs update.
# @param pluginId Plugin Id
ENGINE_CALLBACK_UPDATE = 14

# A plugin's data/information has changed.
# @param pluginId Plugin Id
ENGINE_CALLBACK_RELOAD_INFO = 15

# A plugin's parameters have changed.
# @param pluginId Plugin Id
ENGINE_CALLBACK_RELOAD_PARAMETERS = 16

# A plugin's programs have changed.
# @param pluginId Plugin Id
ENGINE_CALLBACK_RELOAD_PROGRAMS = 17

# A plugin state has changed.
# @param pluginId Plugin Id
ENGINE_CALLBACK_RELOAD_ALL = 18

# A patchbay client has been added.
# @param pluginId Client Id
# @param valueStr Client name and icon, as "name:icon"
ENGINE_CALLBACK_PATCHBAY_CLIENT_ADDED = 19

# A patchbay client has been removed.
# @param pluginId Client Id
ENGINE_CALLBACK_PATCHBAY_CLIENT_REMOVED = 20

# A patchbay client has been renamed.
# @param pluginId Client Id
# @param valueStr New client name
ENGINE_CALLBACK_PATCHBAY_CLIENT_RENAMED = 21

# A patchbay client icon has changed.
# @param pluginId Client Id
# @param valueStr New icon name
ENGINE_CALLBACK_PATCHBAY_CLIENT_ICON_CHANGED = 22

# A patchbay port has been added.
# @param pluginId Client Id
# @param value1 Port Id
# @param value2 Port hints
# @param valueStr Port name
# @see PatchbayPortHints
ENGINE_CALLBACK_PATCHBAY_PORT_ADDED = 23

# A patchbay port has been removed.
# @param pluginId Client Id
# @param value1 Port Id
ENGINE_CALLBACK_PATCHBAY_PORT_REMOVED = 24

# A patchbay port has been renamed.
# @param pluginId Client Id
# @param value1 Port Id
# @param valueStr New port name
ENGINE_CALLBACK_PATCHBAY_PORT_RENAMED = 25

# A patchbay connection has been added.
# @param value1 Output port Id
# @param value2 Input port Id
ENGINE_CALLBACK_PATCHBAY_CONNECTION_ADDED = 26

# A patchbay connection has been removed.
# @param value1 Output port Id
# @param value2 Input port Id
ENGINE_CALLBACK_PATCHBAY_CONNECTION_REMOVED = 27

# Engine started.
# @param value1 Process mode
# @param value2 Transport mode
# @param valuestr Engine driver
# @see EngineProcessMode
# @see EngineTransportMode
ENGINE_CALLBACK_ENGINE_STARTED = 28

# Engine stopped.
ENGINE_CALLBACK_ENGINE_STOPPED = 29

# Engine process mode has changed.
# @param value1 New process mode
# @see EngineProcessMode
ENGINE_CALLBACK_PROCESS_MODE_CHANGED = 30

# Engine transport mode has changed.
# @param value1 New transport mode
# @see EngineTransportMode
ENGINE_CALLBACK_TRANSPORT_MODE_CHANGED = 31

# Engine buffer-size changed.
# @param value1 New buffer size
ENGINE_CALLBACK_BUFFER_SIZE_CHANGED = 32

# Engine sample-rate changed.
# @param value3 New sample rate
ENGINE_CALLBACK_SAMPLE_RATE_CHANGED = 33

# Show a message as information.
# @param valueStr The message
ENGINE_CALLBACK_INFO = 34

# Show a message as an error.
# @param valueStr The message
ENGINE_CALLBACK_ERROR = 35

# The engine has crashed or malfunctioned and will no longer work.
ENGINE_CALLBACK_QUIT = 36

# ------------------------------------------------------------------------------------------------------------
# Engine Options Type

ENGINE_OPTION_PROCESS_NAME = 0
ENGINE_OPTION_PROCESS_MODE = 1
ENGINE_OPTION_TRANSPORT_MODE = 2
@@ -246,53 +646,33 @@ ENGINE_OPTION_PATH_BRIDGE_VST_MAC = 28
ENGINE_OPTION_PATH_BRIDGE_VST_HWND = 29
ENGINE_OPTION_PATH_BRIDGE_VST_X11 = 30

# Engine Callback Type
ENGINE_CALLBACK_DEBUG = 0
ENGINE_CALLBACK_PLUGIN_ADDED = 1
ENGINE_CALLBACK_PLUGIN_REMOVED = 2
ENGINE_CALLBACK_PLUGIN_RENAMED = 3
ENGINE_CALLBACK_PLUGIN_DISABLED = 4
ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED = 5
ENGINE_CALLBACK_PARAMETER_DEFAULT_CHANGED = 6
ENGINE_CALLBACK_PARAMETER_MIDI_CHANNEL_CHANGED = 7
ENGINE_CALLBACK_PARAMETER_MIDI_CC_CHANGED = 8
ENGINE_CALLBACK_PROGRAM_CHANGED = 9
ENGINE_CALLBACK_MIDI_PROGRAM_CHANGED = 10
ENGINE_CALLBACK_UI_STATE_CHANGED = 11
ENGINE_CALLBACK_NOTE_ON = 12
ENGINE_CALLBACK_NOTE_OFF = 13
ENGINE_CALLBACK_UPDATE = 14
ENGINE_CALLBACK_RELOAD_INFO = 15
ENGINE_CALLBACK_RELOAD_PARAMETERS = 16
ENGINE_CALLBACK_RELOAD_PROGRAMS = 17
ENGINE_CALLBACK_RELOAD_ALL = 18
ENGINE_CALLBACK_PATCHBAY_CLIENT_ADDED = 19
ENGINE_CALLBACK_PATCHBAY_CLIENT_REMOVED = 20
ENGINE_CALLBACK_PATCHBAY_CLIENT_RENAMED = 21
ENGINE_CALLBACK_PATCHBAY_PORT_ADDED = 22
ENGINE_CALLBACK_PATCHBAY_PORT_REMOVED = 23
ENGINE_CALLBACK_PATCHBAY_PORT_RENAMED = 24
ENGINE_CALLBACK_PATCHBAY_CONNECTION_ADDED = 25
ENGINE_CALLBACK_PATCHBAY_CONNECTION_REMOVED = 26
ENGINE_CALLBACK_PATCHBAY_ICON_CHANGED = 27
ENGINE_CALLBACK_BUFFER_SIZE_CHANGED = 28
ENGINE_CALLBACK_SAMPLE_RATE_CHANGED = 29
ENGINE_CALLBACK_PROCESS_MODE_CHANGED = 30
ENGINE_CALLBACK_ENGINE_STARTED = 31
ENGINE_CALLBACK_ENGINE_STOPPED = 32
ENGINE_CALLBACK_NSM_ANNOUNCE = 33
ENGINE_CALLBACK_NSM_OPEN = 34
ENGINE_CALLBACK_NSM_SAVE = 35
ENGINE_CALLBACK_INFO = 36
ENGINE_CALLBACK_ERROR = 37
ENGINE_CALLBACK_QUIT = 38
# ------------------------------------------------------------------------------------------------------------
# Process Mode

PROCESS_MODE_SINGLE_CLIENT = 0
PROCESS_MODE_MULTIPLE_CLIENTS = 1
PROCESS_MODE_CONTINUOUS_RACK = 2
PROCESS_MODE_PATCHBAY = 3
PROCESS_MODE_BRIDGE = 4

# ------------------------------------------------------------------------------------------------------------
# Transport Mode

TRANSPORT_MODE_INTERNAL = 0
TRANSPORT_MODE_JACK = 1
TRANSPORT_MODE_PLUGIN = 2
TRANSPORT_MODE_BRIDGE = 3

# ------------------------------------------------------------------------------------------------------------
# File Callback Type

FILE_CALLBACK_DEBUG = 0
FILE_CALLBACK_OPEN = 1
FILE_CALLBACK_SAVE = 2

# ------------------------------------------------------------------------------------------------------------
# Set BINARY_NATIVE

if HAIKU or LINUX or MACOS:
BINARY_NATIVE = BINARY_POSIX64 if kIs64bit else BINARY_POSIX32
elif WINDOWS:


+ 0
- 10
source/carla_shared.py View File

@@ -658,16 +658,6 @@ def initHost(appName, libPrefix = None, failError = True):
if carla_bridge_vst_x11:
Carla.host.set_engine_option(OPTION_PATH_BRIDGE_VST_X11, 0, carla_bridge_vst_x11)

# ------------------------------------------------------------------------------------------------------------
# Convert a ctypes c_char_p into a python string

def cString(value):
if not value:
return ""
if isinstance(value, str):
return value
return value.decode("utf-8", errors="ignore")

# ------------------------------------------------------------------------------------------------------------
# Check if a value is a number (float support)



Loading…
Cancel
Save