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

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

@@ -585,12 +585,11 @@ void CarlaEngine::bufferSizeChanged(uint32_t newBufferSize)
// -------------------------------------------------------------------------------------------------------------------
// 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()");
CARLA_ASSERT(type != CarlaEngineTypeNull);
CARLA_ASSERT(handle.type != CarlaEngineTypeNull);

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

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

#ifdef CARLA_ENGINE_RTAUDIO
if (type == CarlaEngineTypeRtAudio)
if (handle.type == CarlaEngineTypeRtAudio)
{
// TODO
}
@@ -740,7 +739,7 @@ const CarlaEngineBasePort* CarlaEngineClient::addPort(const CarlaEnginePortType
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;
}



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

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

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

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

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

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

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

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

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

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

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

bool isOnAudioThread();
bool isOffline();
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)
{
CarlaEngineClientNativeHandle handle;
handle.type = type;

#ifndef BUILD_BRIDGE
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)
{
CarlaEngineClientNativeHandle handle;
handle.type = type;

// unsigned int rtBufferFrames = getBufferSize();

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

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



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

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

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


Loading…
Cancel
Save