LMMS
Loading...
Searching...
No Matches
CarlaEngineJack Class Reference
Inheritance diagram for CarlaEngineJack:

Classes

struct  LastPatchbaySetGroupPos
struct  GroupToIdData
struct  PortToIdData
struct  ConnectionToIdData
struct  PostPonedJackEvent

Public Member Functions

 CarlaEngineJack ()
 ~CarlaEngineJack () noexcept override
uint getMaxClientNameSize () const noexcept override
uint getMaxPortNameSize () const noexcept override
bool init (const char *const clientName) override
bool initInternal (jack_client_t *const client)
bool close () override
bool hasIdleOnMainThread () const noexcept override
bool isRunning () const noexcept override
bool isOffline () const noexcept override
EngineType getType () const noexcept override
const char * getCurrentDriverName () const noexcept override
float getDSPLoad () const noexcept override
void callback (const bool sendHost, const bool sendOsc, const EngineCallbackOpcode action, const uint pluginId, const int value1, const int value2, const int value3, const float valuef, const char *const valueStr) noexcept override
void idle () noexcept override
bool setBufferSizeAndSampleRate (const uint bufferSize, const double sampleRate) override
EngineTimeInfo getTimeInfo () const noexcept override
void setOption (const EngineOption option, const int value, const char *const valueStr) noexcept override
CarlaEngineClient * addClient (CarlaPluginPtr plugin) override
bool removePlugin (const uint id) override
bool switchPlugins (const uint idA, const uint idB) noexcept override
bool renamePlugin (const uint id, const char *const newName) override
bool patchbayConnect (const bool external, const uint groupA, const uint portA, const uint groupB, const uint portB) override
bool patchbayDisconnect (const bool external, const uint connectionId) override
bool patchbaySetGroupPos (const bool sendHost, const bool sendOSC, const bool external, const uint groupId, const int x1, const int y1, const int x2, const int y2) override
bool patchbayRefresh (const bool sendHost, const bool sendOSC, const bool external) override
void transportPlay () noexcept override
void transportPause () noexcept override
void transportBPM (const double bpm) noexcept override
void transportRelocate (const uint64_t frame) noexcept override
const char *constgetPatchbayConnections (const bool external) const override
const PatchbayPosition * getPatchbayPositions (const bool external, uint &count) const override
void restorePatchbayConnection (const bool external, const char *const connSource, const char *const connTarget) override
bool restorePatchbayGroupPosition (const bool external, PatchbayPosition &ppos) override

Protected Member Functions

void handleJackBufferSizeCallback (const uint32_t newBufferSize)
void handleJackSampleRateCallback (const double newSampleRate)
void handleJackFreewheelCallback (const bool isFreewheel)
void handleJackProcessCallback (const uint32_t nframes)
void handleJackLatencyCallback (const jack_latency_callback_mode_t)
void handleJackTimebaseCallback (jack_nframes_t nframes, jack_position_t *const pos, const int new_pos)
void handleJackClientUnregistrationCallback (const char *const name)
void handleJackClientPositionChangeCallback (const jack_uuid_t uuid)
void handleJackPortRegistrationCallback (const char *const portName, const char *const shortPortName, const CarlaJackPortHints &jackPortHints)
void handleJackPortUnregistrationCallback (const char *const portName)
void handleJackPortConnectCallback (const char *const portNameA, const char *const portNameB)
void handleJackPortDisconnectCallback (const char *const portNameA, const char *const portNameB)
void handleJackPortRenameCallback (const char *const oldFullName, const char *const newFullName, const char *const newShortName)
void handleJackShutdownCallback ()
void handlePluginJackShutdownCallback (const CarlaPluginPtr plugin)

Private Types

enum  RackPorts {
  kRackPortAudioIn1 = 0 , kRackPortAudioIn2 = 1 , kRackPortAudioOut1 = 2 , kRackPortAudioOut2 = 3 ,
  kRackPortEventIn = 4 , kRackPortEventOut = 5 , kRackPortCount = 6
}

Private Member Functions

void findPluginIdAndIcon (const char *const clientName, int &pluginId, PatchbayIcon &icon) const noexcept
void initJackPatchbay (const bool sendHost, const bool sendOSC, const char *const ourName, const bool groupsOnly)
void processPlugin (CarlaPluginPtr &plugin, const uint32_t nframes)
void postponeJackCallback (PostPonedJackEvent &ev)
void run () override

Static Private Member Functions

static void JACKBRIDGE_API carla_jack_thread_init_callback (void *)
static int JACKBRIDGE_API carla_jack_bufsize_callback (jack_nframes_t newBufferSize, void *arg)
static int JACKBRIDGE_API carla_jack_srate_callback (jack_nframes_t newSampleRate, void *arg)
static void JACKBRIDGE_API carla_jack_freewheel_callback (int starting, void *arg)
static void JACKBRIDGE_API carla_jack_latency_callback (jack_latency_callback_mode_t mode, void *arg)
static int JACKBRIDGE_API carla_jack_process_callback (jack_nframes_t nframes, void *arg) __attribute__((annotate("realtime")))
static void JACKBRIDGE_API carla_jack_timebase_callback (jack_transport_state_t, jack_nframes_t nframes, jack_position_t *pos, int new_pos, void *arg) __attribute__((annotate("realtime")))
static void JACKBRIDGE_API carla_jack_client_registration_callback (const char *name, int reg, void *arg)
static void JACKBRIDGE_API carla_jack_port_registration_callback (jack_port_id_t port_id, int reg, void *arg)
static void JACKBRIDGE_API carla_jack_port_connect_callback (jack_port_id_t a, jack_port_id_t b, int connect, void *arg)
static void JACKBRIDGE_API carla_jack_port_rename_callback (jack_port_id_t port_id, const char *oldName, const char *newName, void *arg)
static void carla_jack_property_change_callback (jack_uuid_t subject, const char *key, jack_property_change_t change, void *arg)
static int JACKBRIDGE_API carla_jack_xrun_callback (void *arg)
static void JACKBRIDGE_API carla_jack_shutdown_callback (void *arg)
static int JACKBRIDGE_API carla_jack_process_callback_plugin (jack_nframes_t nframes, void *arg) __attribute__((annotate("realtime")))
static void JACKBRIDGE_API carla_jack_latency_callback_plugin (jack_latency_callback_mode_t, void *)
static void JACKBRIDGE_API carla_jack_shutdown_callback_plugin (void *arg)

Private Attributes

jack_client_tfClient
bool fExternalPatchbayHost
bool fExternalPatchbayOsc
bool fFreewheel
CarlaString fClientName
CarlaRecursiveMutex fThreadSafeMetadataMutex
CarlaString fClientNamePrefix
jack_port_t * fRackPorts [kRackPortCount]
bool fTimebaseMaster
bool fTimebaseRolling
uint64_t fTimebaseUsecs
PatchbayGroupList fUsedGroups
PatchbayPortList fUsedPorts
PatchbayConnectionList fUsedConnections
CarlaMutex fPatchbayProcThreadProtectionMutex
CharStringListPtr fRetConns
struct CarlaEngineJack::LastPatchbaySetGroupPos fLastPatchbaySetGroupPos
LinkedList< PostPonedJackEventfPostPonedEvents
CarlaMutex fPostPonedEventsMutex
bool fIsInternalClient

Member Enumeration Documentation

◆ RackPorts

Enumerator
kRackPortAudioIn1 
kRackPortAudioIn2 
kRackPortAudioOut1 
kRackPortAudioOut2 
kRackPortEventIn 
kRackPortEventOut 
kRackPortCount 

Constructor & Destructor Documentation

◆ CarlaEngineJack()

CarlaEngineJack::CarlaEngineJack ( )
inline

◆ ~CarlaEngineJack()

CarlaEngineJack::~CarlaEngineJack ( )
inlineoverridenoexcept

Member Function Documentation

◆ addClient()

CarlaEngineClient * CarlaEngineJack::addClient ( CarlaPluginPtr plugin)
inlineoverride

◆ callback()

void CarlaEngineJack::callback ( const bool sendHost,
const bool sendOsc,
const EngineCallbackOpcode action,
const uint pluginId,
const int value1,
const int value2,
const int value3,
const float valuef,
const char *const valueStr )
inlineoverridenoexcept

◆ carla_jack_bufsize_callback()

int JACKBRIDGE_API CarlaEngineJack::carla_jack_bufsize_callback ( jack_nframes_t newBufferSize,
void * arg )
inlinestaticprivate

◆ carla_jack_client_registration_callback()

void JACKBRIDGE_API CarlaEngineJack::carla_jack_client_registration_callback ( const char * name,
int reg,
void * arg )
inlinestaticprivate

◆ carla_jack_freewheel_callback()

void JACKBRIDGE_API CarlaEngineJack::carla_jack_freewheel_callback ( int starting,
void * arg )
inlinestaticprivate

◆ carla_jack_latency_callback()

void JACKBRIDGE_API CarlaEngineJack::carla_jack_latency_callback ( jack_latency_callback_mode_t mode,
void * arg )
inlinestaticprivate

◆ carla_jack_latency_callback_plugin()

void JACKBRIDGE_API CarlaEngineJack::carla_jack_latency_callback_plugin ( jack_latency_callback_mode_t ,
void *  )
inlinestaticprivate

◆ carla_jack_port_connect_callback()

void JACKBRIDGE_API CarlaEngineJack::carla_jack_port_connect_callback ( jack_port_id_t a,
jack_port_id_t b,
int connect,
void * arg )
inlinestaticprivate

◆ carla_jack_port_registration_callback()

void JACKBRIDGE_API CarlaEngineJack::carla_jack_port_registration_callback ( jack_port_id_t port_id,
int reg,
void * arg )
inlinestaticprivate

◆ carla_jack_port_rename_callback()

void JACKBRIDGE_API CarlaEngineJack::carla_jack_port_rename_callback ( jack_port_id_t port_id,
const char * oldName,
const char * newName,
void * arg )
inlinestaticprivate

◆ carla_jack_process_callback()

int JACKBRIDGE_API CarlaEngineJack::carla_jack_process_callback ( jack_nframes_t nframes,
void * arg )
inlinestaticprivate

◆ carla_jack_process_callback_plugin()

int JACKBRIDGE_API CarlaEngineJack::carla_jack_process_callback_plugin ( jack_nframes_t nframes,
void * arg )
inlinestaticprivate

◆ carla_jack_property_change_callback()

void CarlaEngineJack::carla_jack_property_change_callback ( jack_uuid_t subject,
const char * key,
jack_property_change_t change,
void * arg )
inlinestaticprivate

◆ carla_jack_shutdown_callback()

void JACKBRIDGE_API CarlaEngineJack::carla_jack_shutdown_callback ( void * arg)
inlinestaticprivate

◆ carla_jack_shutdown_callback_plugin()

void JACKBRIDGE_API CarlaEngineJack::carla_jack_shutdown_callback_plugin ( void * arg)
inlinestaticprivate

◆ carla_jack_srate_callback()

int JACKBRIDGE_API CarlaEngineJack::carla_jack_srate_callback ( jack_nframes_t newSampleRate,
void * arg )
inlinestaticprivate

◆ carla_jack_thread_init_callback()

void JACKBRIDGE_API CarlaEngineJack::carla_jack_thread_init_callback ( void * )
inlinestaticprivate

◆ carla_jack_timebase_callback()

void JACKBRIDGE_API CarlaEngineJack::carla_jack_timebase_callback ( jack_transport_state_t ,
jack_nframes_t nframes,
jack_position_t * pos,
int new_pos,
void * arg )
inlinestaticprivate

◆ carla_jack_xrun_callback()

int JACKBRIDGE_API CarlaEngineJack::carla_jack_xrun_callback ( void * arg)
inlinestaticprivate

◆ close()

bool CarlaEngineJack::close ( )
inlineoverride

◆ findPluginIdAndIcon()

void CarlaEngineJack::findPluginIdAndIcon ( const char *const clientName,
int & pluginId,
PatchbayIcon & icon ) const
inlineprivatenoexcept

◆ getCurrentDriverName()

const char * CarlaEngineJack::getCurrentDriverName ( ) const
inlineoverridenoexcept

◆ getDSPLoad()

float CarlaEngineJack::getDSPLoad ( ) const
inlineoverridenoexcept

◆ getMaxClientNameSize()

uint CarlaEngineJack::getMaxClientNameSize ( ) const
inlineoverridenoexcept

◆ getMaxPortNameSize()

uint CarlaEngineJack::getMaxPortNameSize ( ) const
inlineoverridenoexcept

◆ getPatchbayConnections()

const char *const * CarlaEngineJack::getPatchbayConnections ( const bool external) const
inlineoverride

◆ getPatchbayPositions()

const PatchbayPosition * CarlaEngineJack::getPatchbayPositions ( const bool external,
uint & count ) const
inlineoverride

◆ getTimeInfo()

EngineTimeInfo CarlaEngineJack::getTimeInfo ( ) const
inlineoverridenoexcept

◆ getType()

EngineType CarlaEngineJack::getType ( ) const
inlineoverridenoexcept

◆ handleJackBufferSizeCallback()

void CarlaEngineJack::handleJackBufferSizeCallback ( const uint32_t newBufferSize)
inlineprotected

◆ handleJackClientPositionChangeCallback()

void CarlaEngineJack::handleJackClientPositionChangeCallback ( const jack_uuid_t uuid)
inlineprotected

◆ handleJackClientUnregistrationCallback()

void CarlaEngineJack::handleJackClientUnregistrationCallback ( const char *const name)
inlineprotected

◆ handleJackFreewheelCallback()

void CarlaEngineJack::handleJackFreewheelCallback ( const bool isFreewheel)
inlineprotected

◆ handleJackLatencyCallback()

void CarlaEngineJack::handleJackLatencyCallback ( const jack_latency_callback_mode_t )
inlineprotected

◆ handleJackPortConnectCallback()

void CarlaEngineJack::handleJackPortConnectCallback ( const char *const portNameA,
const char *const portNameB )
inlineprotected

◆ handleJackPortDisconnectCallback()

void CarlaEngineJack::handleJackPortDisconnectCallback ( const char *const portNameA,
const char *const portNameB )
inlineprotected

◆ handleJackPortRegistrationCallback()

void CarlaEngineJack::handleJackPortRegistrationCallback ( const char *const portName,
const char *const shortPortName,
const CarlaJackPortHints & jackPortHints )
inlineprotected

◆ handleJackPortRenameCallback()

void CarlaEngineJack::handleJackPortRenameCallback ( const char *const oldFullName,
const char *const newFullName,
const char *const newShortName )
inlineprotected

◆ handleJackPortUnregistrationCallback()

void CarlaEngineJack::handleJackPortUnregistrationCallback ( const char *const portName)
inlineprotected

◆ handleJackProcessCallback()

void CarlaEngineJack::handleJackProcessCallback ( const uint32_t nframes)
inlineprotected

◆ handleJackSampleRateCallback()

void CarlaEngineJack::handleJackSampleRateCallback ( const double newSampleRate)
inlineprotected

◆ handleJackShutdownCallback()

void CarlaEngineJack::handleJackShutdownCallback ( )
inlineprotected

◆ handleJackTimebaseCallback()

void CarlaEngineJack::handleJackTimebaseCallback ( jack_nframes_t nframes,
jack_position_t *const pos,
const int new_pos )
inlineprotected

◆ handlePluginJackShutdownCallback()

void CarlaEngineJack::handlePluginJackShutdownCallback ( const CarlaPluginPtr plugin)
inlineprotected

◆ hasIdleOnMainThread()

bool CarlaEngineJack::hasIdleOnMainThread ( ) const
inlineoverridenoexcept

◆ idle()

void CarlaEngineJack::idle ( )
inlineoverridenoexcept

◆ init()

bool CarlaEngineJack::init ( const char *const clientName)
inlineoverride

◆ initInternal()

bool CarlaEngineJack::initInternal ( jack_client_t *const client)
inline

◆ initJackPatchbay()

void CarlaEngineJack::initJackPatchbay ( const bool sendHost,
const bool sendOSC,
const char *const ourName,
const bool groupsOnly )
inlineprivate

◆ isOffline()

bool CarlaEngineJack::isOffline ( ) const
inlineoverridenoexcept

◆ isRunning()

bool CarlaEngineJack::isRunning ( ) const
inlineoverridenoexcept

◆ patchbayConnect()

bool CarlaEngineJack::patchbayConnect ( const bool external,
const uint groupA,
const uint portA,
const uint groupB,
const uint portB )
inlineoverride

◆ patchbayDisconnect()

bool CarlaEngineJack::patchbayDisconnect ( const bool external,
const uint connectionId )
inlineoverride

◆ patchbayRefresh()

bool CarlaEngineJack::patchbayRefresh ( const bool sendHost,
const bool sendOSC,
const bool external )
inlineoverride

◆ patchbaySetGroupPos()

bool CarlaEngineJack::patchbaySetGroupPos ( const bool sendHost,
const bool sendOSC,
const bool external,
const uint groupId,
const int x1,
const int y1,
const int x2,
const int y2 )
inlineoverride

◆ postponeJackCallback()

void CarlaEngineJack::postponeJackCallback ( PostPonedJackEvent & ev)
inlineprivate

◆ processPlugin()

void CarlaEngineJack::processPlugin ( CarlaPluginPtr & plugin,
const uint32_t nframes )
inlineprivate

◆ removePlugin()

bool CarlaEngineJack::removePlugin ( const uint id)
inlineoverride

◆ renamePlugin()

bool CarlaEngineJack::renamePlugin ( const uint id,
const char *const newName )
inlineoverride

◆ restorePatchbayConnection()

void CarlaEngineJack::restorePatchbayConnection ( const bool external,
const char *const connSource,
const char *const connTarget )
inlineoverride

◆ restorePatchbayGroupPosition()

bool CarlaEngineJack::restorePatchbayGroupPosition ( const bool external,
PatchbayPosition & ppos )
inlineoverride

◆ run()

void CarlaEngineJack::run ( )
inlineoverrideprivate

◆ setBufferSizeAndSampleRate()

bool CarlaEngineJack::setBufferSizeAndSampleRate ( const uint bufferSize,
const double sampleRate )
inlineoverride

◆ setOption()

void CarlaEngineJack::setOption ( const EngineOption option,
const int value,
const char *const valueStr )
inlineoverridenoexcept

◆ switchPlugins()

bool CarlaEngineJack::switchPlugins ( const uint idA,
const uint idB )
inlineoverridenoexcept

◆ transportBPM()

void CarlaEngineJack::transportBPM ( const double bpm)
inlineoverridenoexcept

◆ transportPause()

void CarlaEngineJack::transportPause ( )
inlineoverridenoexcept

◆ transportPlay()

void CarlaEngineJack::transportPlay ( )
inlineoverridenoexcept

◆ transportRelocate()

void CarlaEngineJack::transportRelocate ( const uint64_t frame)
inlineoverridenoexcept

Member Data Documentation

◆ fClient

jack_client_t* CarlaEngineJack::fClient
private

◆ fClientName

CarlaString CarlaEngineJack::fClientName
private

◆ fClientNamePrefix

CarlaString CarlaEngineJack::fClientNamePrefix
private

◆ fExternalPatchbayHost

bool CarlaEngineJack::fExternalPatchbayHost
private

◆ fExternalPatchbayOsc

bool CarlaEngineJack::fExternalPatchbayOsc
private

◆ fFreewheel

bool CarlaEngineJack::fFreewheel
private

◆ fIsInternalClient

bool CarlaEngineJack::fIsInternalClient
private

◆ fLastPatchbaySetGroupPos

struct CarlaEngineJack::LastPatchbaySetGroupPos CarlaEngineJack::fLastPatchbaySetGroupPos
private

◆ fPatchbayProcThreadProtectionMutex

CarlaMutex CarlaEngineJack::fPatchbayProcThreadProtectionMutex
private

◆ fPostPonedEvents

LinkedList<PostPonedJackEvent> CarlaEngineJack::fPostPonedEvents
private

◆ fPostPonedEventsMutex

CarlaMutex CarlaEngineJack::fPostPonedEventsMutex
private

◆ fRackPorts

jack_port_t* CarlaEngineJack::fRackPorts[kRackPortCount]
private

◆ fRetConns

CharStringListPtr CarlaEngineJack::fRetConns
mutableprivate

◆ fThreadSafeMetadataMutex

CarlaRecursiveMutex CarlaEngineJack::fThreadSafeMetadataMutex
private

◆ fTimebaseMaster

bool CarlaEngineJack::fTimebaseMaster
private

◆ fTimebaseRolling

bool CarlaEngineJack::fTimebaseRolling
private

◆ fTimebaseUsecs

uint64_t CarlaEngineJack::fTimebaseUsecs
private

◆ fUsedConnections

PatchbayConnectionList CarlaEngineJack::fUsedConnections
private

◆ fUsedGroups

PatchbayGroupList CarlaEngineJack::fUsedGroups
private

◆ fUsedPorts

PatchbayPortList CarlaEngineJack::fUsedPorts
private

The documentation for this class was generated from the following file: