Browse Source

Setup the mutex and flag project loaded from dsp side

Signed-off-by: falkTX <falktx@falktx.com>
tags/v1.0
falkTX 3 years ago
parent
commit
a271001b1f
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
4 changed files with 40 additions and 25 deletions
  1. +6
    -0
      .github/workflows/build.yml
  2. +9
    -6
      plugins/Common/IldaeilBasePlugin.hpp
  3. +7
    -8
      plugins/Common/IldaeilPlugin.cpp
  4. +18
    -11
      plugins/Common/IldaeilUI.cpp

+ 6
- 0
.github/workflows/build.yml View File

@@ -88,6 +88,7 @@ jobs:
env: env:
PKG_CONFIG_PATH: /usr/lib/arm-linux-gnueabihf/pkgconfig PKG_CONFIG_PATH: /usr/lib/arm-linux-gnueabihf/pkgconfig
run: | run: |
git clone --depth=1 https://github.com/DISTRHO/PawPaw.git
./PawPaw/bootstrap-cardinal.sh linux-armhf ./PawPaw/bootstrap-cardinal.sh linux-armhf
- name: Build linux armhf cross-compiled - name: Build linux armhf cross-compiled
run: | run: |
@@ -129,6 +130,7 @@ jobs:
env: env:
PKG_CONFIG_PATH: /usr/lib/i386-linux-gnu/pkgconfig PKG_CONFIG_PATH: /usr/lib/i386-linux-gnu/pkgconfig
run: | run: |
git clone --depth=1 https://github.com/DISTRHO/PawPaw.git
./PawPaw/bootstrap-cardinal.sh linux-i686 ./PawPaw/bootstrap-cardinal.sh linux-i686
- name: Build linux i686 - name: Build linux i686
run: | run: |
@@ -162,6 +164,7 @@ jobs:
sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev libglib2.0-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
- name: Build extra dependencies - name: Build extra dependencies
run: | run: |
git clone --depth=1 https://github.com/DISTRHO/PawPaw.git
./PawPaw/bootstrap-cardinal.sh linux ./PawPaw/bootstrap-cardinal.sh linux
- name: Build linux x86_64 - name: Build linux x86_64
run: | run: |
@@ -195,6 +198,7 @@ jobs:
sudo xcode-select -s "/Applications/Xcode_12.3.app" sudo xcode-select -s "/Applications/Xcode_12.3.app"
- name: Build extra dependencies - name: Build extra dependencies
run: | run: |
git clone --depth=1 https://github.com/DISTRHO/PawPaw.git
./PawPaw/bootstrap-cardinal.sh macos-universal ./PawPaw/bootstrap-cardinal.sh macos-universal
- name: Build macOS universal - name: Build macOS universal
run: | run: |
@@ -241,6 +245,7 @@ jobs:
sudo apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable:i386 sudo apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable:i386
- name: Build extra dependencies - name: Build extra dependencies
run: | run: |
git clone --depth=1 https://github.com/DISTRHO/PawPaw.git
./PawPaw/bootstrap-cardinal.sh win32 ./PawPaw/bootstrap-cardinal.sh win32
- name: Build win32 cross-compiled - name: Build win32 cross-compiled
run: | run: |
@@ -281,6 +286,7 @@ jobs:
sudo apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 wine-stable sudo apt-get install -yqq binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 wine-stable
- name: Build extra dependencies - name: Build extra dependencies
run: | run: |
git clone --depth=1 https://github.com/DISTRHO/PawPaw.git
./PawPaw/bootstrap-cardinal.sh win64 ./PawPaw/bootstrap-cardinal.sh win64
- name: Build win64 cross-compiled - name: Build win64 cross-compiled
run: | run: |


+ 9
- 6
plugins/Common/IldaeilBasePlugin.hpp View File

@@ -19,6 +19,7 @@


#include "CarlaNativePlugin.h" #include "CarlaNativePlugin.h"
#include "DistrhoPlugin.hpp" #include "DistrhoPlugin.hpp"
#include "extra/Mutex.hpp"


// generates a warning if this is defined as anything else // generates a warning if this is defined as anything else
#define CARLA_API #define CARLA_API
@@ -27,15 +28,11 @@ START_NAMESPACE_DISTRHO


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


// static Mutex sPluginInfoLoadMutex;

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

class IldaeilBasePlugin : public Plugin class IldaeilBasePlugin : public Plugin
{ {
// SharedResourcePointer<JuceInitializer> juceInitializer;

public: public:
static Mutex sPluginInfoLoadMutex;

const NativePluginDescriptor* fCarlaPluginDescriptor; const NativePluginDescriptor* fCarlaPluginDescriptor;
NativePluginHandle fCarlaPluginHandle; NativePluginHandle fCarlaPluginHandle;


@@ -57,4 +54,10 @@ public:


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


void ildaeilProjectLoadedFromDSP(void* ui);
void ildaeilParameterChangeForUI(void* ui, uint32_t index, float value);
const char* ildaeilOpenFileForUI(void* ui, bool isDir, const char* title, const char* filter);

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

END_NAMESPACE_DISTRHO END_NAMESPACE_DISTRHO

+ 7
- 8
plugins/Common/IldaeilPlugin.cpp View File

@@ -25,7 +25,9 @@ START_NAMESPACE_DISTRHO
// -------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------
using namespace CarlaBackend;
Mutex IldaeilBasePlugin::sPluginInfoLoadMutex;
// --------------------------------------------------------------------------------------------------------------------
static uint32_t host_get_buffer_size(NativeHostHandle); static uint32_t host_get_buffer_size(NativeHostHandle);
static double host_get_sample_rate(NativeHostHandle); static double host_get_sample_rate(NativeHostHandle);
@@ -42,10 +44,7 @@ static intptr_t host_dispatcher(NativeHostHandle handle, NativeHostDispatcherOpc
// -------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------
void ildaeilParameterChangeForUI(void* ui, uint32_t index, float value);
const char* ildaeilOpenFileForUI(void* ui, bool isDir, const char* title, const char* filter);
// --------------------------------------------------------------------------------------------------------------------
using namespace CarlaBackend;
class IldaeilPlugin : public IldaeilBasePlugin class IldaeilPlugin : public IldaeilBasePlugin
{ {
@@ -321,12 +320,12 @@ protected:
water::XmlDocument xml(value); water::XmlDocument xml(value);
{ {
// const MutexLocker cml(sPluginInfoLoadMutex);
const MutexLocker cml(sPluginInfoLoadMutex);
engine->loadProjectInternal(xml, true); engine->loadProjectInternal(xml, true);
} }
// xx cardinal
// projectLoadedFromDSP(fUI);
if (fUI != nullptr)
ildaeilProjectLoadedFromDSP(fUI);
} }
} }


+ 18
- 11
plugins/Common/IldaeilUI.cpp View File

@@ -47,10 +47,6 @@ START_NAMESPACE_DISTRHO


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


void ildaeilParameterChangeForUI(void* ui, uint32_t index, float value);
const char* ildaeilOpenFileForUI(void* ui, bool isDir, const char* title, const char* filter);

// --------------------------------------------------------------------------------------------------------------------
using namespace CarlaBackend; using namespace CarlaBackend;


class IldaeilUI : public UI, class IldaeilUI : public UI,
@@ -455,8 +451,7 @@ public:


carla_set_engine_option(handle, ENGINE_OPTION_PREFER_PLUGIN_BRIDGES, fPluginWillRunInBridgeMode, nullptr); carla_set_engine_option(handle, ENGINE_OPTION_PREFER_PLUGIN_BRIDGES, fPluginWillRunInBridgeMode, nullptr);


// xx cardinal
// const MutexLocker cml(sPluginInfoLoadMutex);
const MutexLocker cml(fPlugin->sPluginInfoLoadMutex);


if (carla_add_plugin(handle, BINARY_NATIVE, fPluginType, nullptr, nullptr, if (carla_add_plugin(handle, BINARY_NATIVE, fPluginType, nullptr, nullptr,
label, 0, 0x0, PLUGIN_OPTIONS_NULL)) label, 0, 0x0, PLUGIN_OPTIONS_NULL))
@@ -622,12 +617,15 @@ protected:
fPluginCount = 0; fPluginCount = 0;
delete[] fPlugins; delete[] fPlugins;


// xx cardinal
// const MutexLocker cml(sPluginInfoLoadMutex);
uint count;

{
const MutexLocker cml(fPlugin->sPluginInfoLoadMutex);


d_stdout("Will scan plugins now...");
const uint count = carla_get_cached_plugin_count(fPluginType, path);
d_stdout("Scanning found %u plugins", count);
d_stdout("Will scan plugins now...");
count = carla_get_cached_plugin_count(fPluginType, path);
d_stdout("Scanning found %u plugins", count);
}


if (fDrawingState == kDrawingLoading) if (fDrawingState == kDrawingLoading)
{ {
@@ -641,6 +639,8 @@ protected:


for (uint i=0, j; i < count && ! shouldThreadExit(); ++i) for (uint i=0, j; i < count && ! shouldThreadExit(); ++i)
{ {
const MutexLocker cml(fPlugin->sPluginInfoLoadMutex);

const CarlaCachedPluginInfo* const info = carla_get_cached_plugin_info(fPluginType, i); const CarlaCachedPluginInfo* const info = carla_get_cached_plugin_info(fPluginType, i);
DISTRHO_SAFE_ASSERT_CONTINUE(info != nullptr); DISTRHO_SAFE_ASSERT_CONTINUE(info != nullptr);


@@ -1102,6 +1102,13 @@ private:


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


void ildaeilProjectLoadedFromDSP(void* const ui)
{
DISTRHO_SAFE_ASSERT_RETURN(ui != nullptr,);

static_cast<IldaeilUI*>(ui)->projectLoadedFromDSP();
}

void ildaeilParameterChangeForUI(void* const ui, const uint32_t index, const float value) void ildaeilParameterChangeForUI(void* const ui, const uint32_t index, const float value)
{ {
DISTRHO_SAFE_ASSERT_RETURN(ui != nullptr,); DISTRHO_SAFE_ASSERT_RETURN(ui != nullptr,);


Loading…
Cancel
Save