Browse Source

Carla: Minor engine rework for future as-plugin support

tags/v0.9.0
falkTX 12 years ago
parent
commit
4ff293669a
5 changed files with 24 additions and 20 deletions
  1. +10
    -11
      c++/carla-backend/carla_engine.cpp
  2. +8
    -6
      c++/carla-backend/carla_engine.h
  3. +2
    -1
      c++/carla-backend/carla_engine_jack.cpp
  4. +2
    -1
      c++/carla-backend/carla_engine_rtaudio.cpp
  5. +2
    -1
      c++/carla-backend/qtcreator/carla-backend.pro

+ 10
- 11
c++/carla-backend/carla_engine.cpp View File

@@ -569,7 +569,7 @@ void CarlaEngine::setOscBridgeData(const CarlaOscData* const oscData)
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------
// protected calls // protected calls


void CarlaEngine::bufferSizeChanged(uint32_t newBufferSize)
void CarlaEngine::bufferSizeChanged(const uint32_t newBufferSize)
{ {
qDebug("CarlaEngine::bufferSizeChanged(%i)", newBufferSize); qDebug("CarlaEngine::bufferSizeChanged(%i)", newBufferSize);


@@ -585,12 +585,11 @@ void CarlaEngine::bufferSizeChanged(uint32_t newBufferSize)
// ------------------------------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------------------------------
// Carla Engine Client // Carla Engine Client


CarlaEngineClient::CarlaEngineClient(const CarlaEngineType& type_, const CarlaEngineClientNativeHandle& handle_)
: type(type_),
handle(handle_)
CarlaEngineClient::CarlaEngineClient(const CarlaEngineClientNativeHandle& handle_)
: handle(handle_)
{ {
qDebug("CarlaEngineClient::CarlaEngineClient()"); qDebug("CarlaEngineClient::CarlaEngineClient()");
CARLA_ASSERT(type != CarlaEngineTypeNull);
CARLA_ASSERT(handle.type != CarlaEngineTypeNull);


m_active = false; m_active = false;
} }
@@ -681,11 +680,11 @@ bool CarlaEngineClient::isOk() const
#endif #endif
{ {
#ifdef CARLA_ENGINE_JACK #ifdef CARLA_ENGINE_JACK
if (type == CarlaEngineTypeJack)
if (handle.type == CarlaEngineTypeJack)
return bool(handle.jackClient); return bool(handle.jackClient);
#endif #endif
#ifdef CARLA_ENGINE_RTAUDIO #ifdef CARLA_ENGINE_RTAUDIO
if (type == CarlaEngineTypeRtAudio)
if (handle.type == CarlaEngineTypeRtAudio)
return bool(handle.rtAudioPtr); return bool(handle.rtAudioPtr);
#endif #endif
} }
@@ -695,7 +694,7 @@ bool CarlaEngineClient::isOk() const


const CarlaEngineBasePort* CarlaEngineClient::addPort(const CarlaEnginePortType portType, const char* const name, const bool isInput) const CarlaEngineBasePort* CarlaEngineClient::addPort(const CarlaEnginePortType portType, const char* const name, const bool isInput)
{ {
qDebug("CarlaEngineClient::addPort(%i, \"%s\", %s)", type, name, bool2str(isInput));
qDebug("CarlaEngineClient::addPort(%i, \"%s\", %s)", portType, name, bool2str(isInput));


CarlaEnginePortNativeHandle portHandle; CarlaEnginePortNativeHandle portHandle;
#ifdef CARLA_ENGINE_JACK #ifdef CARLA_ENGINE_JACK
@@ -707,7 +706,7 @@ const CarlaEngineBasePort* CarlaEngineClient::addPort(const CarlaEnginePortType
#endif #endif
{ {
#ifdef CARLA_ENGINE_JACK #ifdef CARLA_ENGINE_JACK
if (type == CarlaEngineTypeJack)
if (handle.type == CarlaEngineTypeJack)
{ {
switch (portType) switch (portType)
{ {
@@ -723,7 +722,7 @@ const CarlaEngineBasePort* CarlaEngineClient::addPort(const CarlaEnginePortType
#endif #endif


#ifdef CARLA_ENGINE_RTAUDIO #ifdef CARLA_ENGINE_RTAUDIO
if (type == CarlaEngineTypeRtAudio)
if (handle.type == CarlaEngineTypeRtAudio)
{ {
// TODO // TODO
} }
@@ -740,7 +739,7 @@ const CarlaEngineBasePort* CarlaEngineClient::addPort(const CarlaEnginePortType
return new CarlaEngineMidiPort(portHandle, isInput); return new CarlaEngineMidiPort(portHandle, isInput);
} }


qCritical("CarlaEngineClient::addPort(%i, \"%s\", %s) - invalid type", type, name, bool2str(isInput));
qCritical("CarlaEngineClient::addPort(%i, \"%s\", %s) - invalid type", portType, name, bool2str(isInput));
return nullptr; return nullptr;
} }




+ 8
- 6
c++/carla-backend/carla_engine.h View File

@@ -52,7 +52,9 @@ const uint32_t CarlaEngineTimeBBT = 0x1;
enum CarlaEngineType { enum CarlaEngineType {
CarlaEngineTypeNull, CarlaEngineTypeNull,
CarlaEngineTypeJack, CarlaEngineTypeJack,
CarlaEngineTypeRtAudio
CarlaEngineTypeRtAudio,
CarlaEngineTypePluginLv2,
CarlaEngineTypePluginVst
}; };


enum CarlaEnginePortType { enum CarlaEnginePortType {
@@ -96,7 +98,7 @@ struct CarlaEngineMidiEvent {
size(0), size(0),
data{0} {} data{0} {}
#else #else
size(0) { memset(data, 0, sizeof(uint8_t)*4); }
size(0) { data[0] = data[1] = data[2] = data[3] = 0; }
#endif #endif
}; };


@@ -136,6 +138,7 @@ struct CarlaTimeInfo {
}; };


struct CarlaEngineClientNativeHandle { struct CarlaEngineClientNativeHandle {
CarlaEngineType type;
#ifdef CARLA_ENGINE_JACK #ifdef CARLA_ENGINE_JACK
jack_client_t* jackClient; jack_client_t* jackClient;
#endif #endif
@@ -145,6 +148,7 @@ struct CarlaEngineClientNativeHandle {


CarlaEngineClientNativeHandle() CarlaEngineClientNativeHandle()
{ {
type = CarlaEngineTypeNull;
#ifdef CARLA_ENGINE_JACK #ifdef CARLA_ENGINE_JACK
jackClient = nullptr; jackClient = nullptr;
#endif #endif
@@ -374,7 +378,7 @@ protected:
double sampleRate; double sampleRate;
CarlaTimeInfo timeInfo; CarlaTimeInfo timeInfo;


void bufferSizeChanged(uint32_t newBufferSize);
void bufferSizeChanged(const uint32_t newBufferSize);


private: private:
CarlaCheckThread m_checkThread; CarlaCheckThread m_checkThread;
@@ -404,7 +408,7 @@ private:
class CarlaEngineClient class CarlaEngineClient
{ {
public: public:
CarlaEngineClient(const CarlaEngineType& type, const CarlaEngineClientNativeHandle& handle);
CarlaEngineClient(const CarlaEngineClientNativeHandle& handle);
~CarlaEngineClient(); ~CarlaEngineClient();


void activate(); void activate();
@@ -417,7 +421,6 @@ public:


private: private:
bool m_active; bool m_active;
const CarlaEngineType type;
const CarlaEngineClientNativeHandle handle; const CarlaEngineClientNativeHandle handle;
}; };


@@ -489,7 +492,6 @@ public:
bool init(const char* const clientName); bool init(const char* const clientName);
bool close(); bool close();


bool isOnAudioThread();
bool isOffline(); bool isOffline();
bool isRunning(); bool isRunning();




+ 2
- 1
c++/carla-backend/carla_engine_jack.cpp View File

@@ -227,6 +227,7 @@ bool CarlaEngineJack::isRunning()
CarlaEngineClient* CarlaEngineJack::addClient(CarlaPlugin* const plugin) CarlaEngineClient* CarlaEngineJack::addClient(CarlaPlugin* const plugin)
{ {
CarlaEngineClientNativeHandle handle; CarlaEngineClientNativeHandle handle;
handle.type = type;


#ifndef BUILD_BRIDGE #ifndef BUILD_BRIDGE
if (carlaOptions.processMode == PROCESS_MODE_SINGLE_CLIENT) if (carlaOptions.processMode == PROCESS_MODE_SINGLE_CLIENT)
@@ -243,7 +244,7 @@ CarlaEngineClient* CarlaEngineJack::addClient(CarlaPlugin* const plugin)
//{ //{
//} //}


return new CarlaEngineClient(CarlaEngineTypeJack, handle);
return new CarlaEngineClient(handle);
} }


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


+ 2
- 1
c++/carla-backend/carla_engine_rtaudio.cpp View File

@@ -143,6 +143,7 @@ bool CarlaEngineRtAudio::isRunning()
CarlaEngineClient* CarlaEngineRtAudio::addClient(CarlaPlugin* const plugin) CarlaEngineClient* CarlaEngineRtAudio::addClient(CarlaPlugin* const plugin)
{ {
CarlaEngineClientNativeHandle handle; CarlaEngineClientNativeHandle handle;
handle.type = type;


// unsigned int rtBufferFrames = getBufferSize(); // unsigned int rtBufferFrames = getBufferSize();


@@ -163,7 +164,7 @@ CarlaEngineClient* CarlaEngineRtAudio::addClient(CarlaPlugin* const plugin)
// return false; // return false;
// } // }


return new CarlaEngineClient(CarlaEngineTypeRtAudio, handle);
return new CarlaEngineClient(handle);
Q_UNUSED(plugin); Q_UNUSED(plugin);
} }




+ 2
- 1
c++/carla-backend/qtcreator/carla-backend.pro View File

@@ -15,7 +15,7 @@ VERSION = 0.5.0


SOURCES = \ SOURCES = \
../carla_backend_standalone.cpp \ ../carla_backend_standalone.cpp \
# ../carla_backend_lv2.cpp \
../carla_backend_vst.cpp \
../carla_bridge.cpp \ ../carla_bridge.cpp \
../carla_engine.cpp \ ../carla_engine.cpp \
../carla_engine_jack.cpp \ ../carla_engine_jack.cpp \
@@ -73,6 +73,7 @@ DEFINES += DEBUG NDEBUG
DEFINES += CARLA_ENGINE_JACK DEFINES += CARLA_ENGINE_JACK
DEFINES += CARLA_ENGINE_RTAUDIO HAVE_GETTIMEOFDAY __LINUX_ALSA__ __LINUX_ALSASEQ__ __LINUX_PULSE__ __RTAUDIO_DEBUG__ __RTMIDI_DEBUG__ DEFINES += CARLA_ENGINE_RTAUDIO HAVE_GETTIMEOFDAY __LINUX_ALSA__ __LINUX_ALSASEQ__ __LINUX_PULSE__ __RTAUDIO_DEBUG__ __RTMIDI_DEBUG__
DEFINES += CARLA_ENGINE_LV2 DEFINES += CARLA_ENGINE_LV2
DEFINES += CARLA_ENGINE_VST
DEFINES += HAVE_SUIL DEFINES += HAVE_SUIL
DEFINES += WANT_LADSPA WANT_DSSI WANT_LV2 WANT_VST DEFINES += WANT_LADSPA WANT_DSSI WANT_LV2 WANT_VST
DEFINES += WANT_FLUIDSYNTH WANT_LINUXSAMPLER DEFINES += WANT_FLUIDSYNTH WANT_LINUXSAMPLER


Loading…
Cancel
Save