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:
PKG_CONFIG_PATH: /usr/lib/arm-linux-gnueabihf/pkgconfig
run: |
git clone --depth=1 https://github.com/DISTRHO/PawPaw.git
./PawPaw/bootstrap-cardinal.sh linux-armhf
- name: Build linux armhf cross-compiled
run: |
@@ -129,6 +130,7 @@ jobs:
env:
PKG_CONFIG_PATH: /usr/lib/i386-linux-gnu/pkgconfig
run: |
git clone --depth=1 https://github.com/DISTRHO/PawPaw.git
./PawPaw/bootstrap-cardinal.sh linux-i686
- name: Build linux i686
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
- name: Build extra dependencies
run: |
git clone --depth=1 https://github.com/DISTRHO/PawPaw.git
./PawPaw/bootstrap-cardinal.sh linux
- name: Build linux x86_64
run: |
@@ -195,6 +198,7 @@ jobs:
sudo xcode-select -s "/Applications/Xcode_12.3.app"
- name: Build extra dependencies
run: |
git clone --depth=1 https://github.com/DISTRHO/PawPaw.git
./PawPaw/bootstrap-cardinal.sh macos-universal
- name: Build macOS universal
run: |
@@ -241,6 +245,7 @@ jobs:
sudo apt-get install -yqq binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable:i386
- name: Build extra dependencies
run: |
git clone --depth=1 https://github.com/DISTRHO/PawPaw.git
./PawPaw/bootstrap-cardinal.sh win32
- name: Build win32 cross-compiled
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
- name: Build extra dependencies
run: |
git clone --depth=1 https://github.com/DISTRHO/PawPaw.git
./PawPaw/bootstrap-cardinal.sh win64
- name: Build win64 cross-compiled
run: |


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

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

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

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

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

// static Mutex sPluginInfoLoadMutex;

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

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

public:
static Mutex sPluginInfoLoadMutex;

const NativePluginDescriptor* fCarlaPluginDescriptor;
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

+ 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 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
{
@@ -321,12 +320,12 @@ protected:
water::XmlDocument xml(value);
{
// const MutexLocker cml(sPluginInfoLoadMutex);
const MutexLocker cml(sPluginInfoLoadMutex);
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;

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

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,
label, 0, 0x0, PLUGIN_OPTIONS_NULL))
@@ -622,12 +617,15 @@ protected:
fPluginCount = 0;
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)
{
@@ -641,6 +639,8 @@ protected:

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);
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)
{
DISTRHO_SAFE_ASSERT_RETURN(ui != nullptr,);


Loading…
Cancel
Save