Browse Source

Continue last commit; Send sample-rate to bridge-uis and fix title

tags/1.9.6
falkTX 10 years ago
parent
commit
f8f8f6bb84
7 changed files with 34 additions and 8 deletions
  1. +1
    -0
      source/backend/plugin/CarlaPluginBridge.cpp
  2. +2
    -0
      source/backend/plugin/CarlaPluginInternal.cpp
  3. +2
    -0
      source/backend/plugin/CarlaPluginInternal.hpp
  4. +15
    -2
      source/backend/plugin/CarlaPluginLV2.cpp
  5. +5
    -1
      source/bridges-ui/CarlaBridgeUI-LV2.cpp
  6. +8
    -4
      source/bridges-ui/CarlaBridgeUI.cpp
  7. +1
    -1
      source/bridges-ui/CarlaBridgeUI.hpp

+ 1
- 0
source/backend/plugin/CarlaPluginBridge.cpp View File

@@ -2280,6 +2280,7 @@ public:
break;

case kPluginBridgeNonRtServerUiClosed:
pData->transientTryCounter = 0;
pData->engine->callback(ENGINE_CALLBACK_UI_STATE_CHANGED, pData->id, 0, 0, 0.0f, nullptr);
break;



+ 2
- 0
source/backend/plugin/CarlaPluginInternal.cpp View File

@@ -697,11 +697,13 @@ bool CarlaPlugin::ProtectedData::uiLibClose() noexcept

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

#ifndef BUILD_BRIDGE
void CarlaPlugin::ProtectedData::tryTransient() noexcept
{
if (engine->getOptions().frontendWinId != 0)
transientTryCounter = 1;
}
#endif

void CarlaPlugin::ProtectedData::updateParameterValues(CarlaPlugin* const plugin, const bool sendOsc, const bool sendCallback, const bool useDefault) noexcept
{


+ 2
- 0
source/backend/plugin/CarlaPluginInternal.hpp View File

@@ -341,7 +341,9 @@ struct CarlaPlugin::ProtectedData {
// -------------------------------------------------------------------
// Misc

#ifndef BUILD_BRIDGE
void tryTransient() noexcept;
#endif
void updateParameterValues(CarlaPlugin* const plugin, const bool sendOsc, const bool sendCallback, const bool useDefault) noexcept;

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


+ 15
- 2
source/backend/plugin/CarlaPluginLV2.cpp View File

@@ -425,16 +425,20 @@ public:
return CarlaPipeServer::startPipeServer(fFilename, fPluginURI, fUiURI);
}

void writeUiOptionsMessage(const bool useTheme, const bool useThemeColors, const char* const windowTitle, uintptr_t transientWindowId) const noexcept
void writeUiOptionsMessage(const double sampleRate, const bool useTheme, const bool useThemeColors, const char* const windowTitle, uintptr_t transientWindowId) const noexcept
{
char tmpBuf[0xff+1];
tmpBuf[0xff] = '\0';

const CarlaMutexLocker cml(getPipeLock());
const ScopedLocale csl;

_writeMsgBuffer("uiOptions\n", 10);

{
std::snprintf(tmpBuf, 0xff, "%g\n", sampleRate);
_writeMsgBuffer(tmpBuf, std::strlen(tmpBuf));

std::snprintf(tmpBuf, 0xff, "%s\n", bool2str(useTheme));
_writeMsgBuffer(tmpBuf, std::strlen(tmpBuf));

@@ -1089,6 +1093,9 @@ public:
if (fFeatures[kFeatureIdExternalUi] != nullptr && fFeatures[kFeatureIdExternalUi]->data != nullptr)
((LV2_External_UI_Host*)fFeatures[kFeatureIdExternalUi]->data)->plugin_human_id = fLv2Options.windowTitle;

if (fPipeServer.isPipeRunning())
fPipeServer.writeUiTitleMessage(fLv2Options.windowTitle);

#ifndef LV2_UIS_ONLY_BRIDGES
if (fUI.window != nullptr)
fUI.window->setTitle(fLv2Options.windowTitle);
@@ -1250,7 +1257,7 @@ public:
for (std::size_t i=CARLA_URI_MAP_ID_COUNT, count=fCustomURIDs.count(); i < count; ++i)
fPipeServer.writeLv2UridMessage(static_cast<uint32_t>(i), fCustomURIDs.getAt(i, nullptr));

fPipeServer.writeUiOptionsMessage(true, true, fLv2Options.windowTitle, frontendWinId);
fPipeServer.writeUiOptionsMessage(pData->engine->getSampleRate(), true, true, fLv2Options.windowTitle, frontendWinId);

fPipeServer.writeShowMessage();
}
@@ -5199,8 +5206,14 @@ public:
if (const char* const bridgeBinary = getUiBridgeBinary(uiType))
{
carla_stdout("Will use UI-Bridge, binary: \"%s\"", bridgeBinary);

CarlaString guiTitle(pData->name);
guiTitle += " (GUI)";
fLv2Options.windowTitle = guiTitle.dup();

fUI.type = UI::TYPE_BRIDGE;
fPipeServer.setData(bridgeBinary, fRdfDescriptor->URI, fUI.rdfDescriptor->URI);

delete[] bridgeBinary;
return;
}


+ 5
- 1
source/bridges-ui/CarlaBridgeUI-LV2.cpp View File

@@ -608,8 +608,12 @@ public:
fCustomURIDs.append(carla_strdup(uri));
}

void uiOptionsChanged(const bool useTheme, const bool useThemeColors, const char* const windowTitle, uintptr_t transientWindowId) override
void uiOptionsChanged(const double sampleRate, const bool useTheme, const bool useThemeColors, const char* const windowTitle, uintptr_t transientWindowId) override
{
carla_debug("CarlaLv2Client::uiOptionsChanged(%g, %s, %s, \"%s\", " P_UINTPTR ")", sampleRate, bool2str(useTheme), bool2str(useThemeColors), windowTitle, transientWindowId);

fLv2Options.sampleRate = gSampleRate = sampleRate;

fUiOptions.useTheme = useTheme;
fUiOptions.useThemeColors = useThemeColors;
fUiOptions.windowTitle = windowTitle;


+ 8
- 4
source/bridges-ui/CarlaBridgeUI.cpp View File

@@ -106,9 +106,11 @@ const char* CarlaBridgeUI::libError() const noexcept

bool CarlaBridgeUI::msgReceived(const char* const msg) noexcept
{
if (! fGotOptions) {
CARLA_SAFE_ASSERT_RETURN(std::strcmp(msg, "urid") == 0 || std::strcmp(msg, "uiOptions") == 0, true);
}
carla_debug("CarlaBridgeUI::msgReceived(\"%s\")", msg);

if (! fGotOptions) {
CARLA_SAFE_ASSERT_RETURN(std::strcmp(msg, "urid") == 0 || std::strcmp(msg, "uiOptions") == 0, true);
}

if (std::strcmp(msg, "control") == 0)
{
@@ -208,17 +210,19 @@ bool CarlaBridgeUI::msgReceived(const char* const msg) noexcept

if (std::strcmp(msg, "uiOptions") == 0)
{
double sampleRate;
bool useTheme, useThemeColors;
const char* windowTitle;
uint64_t transientWindowId;

CARLA_SAFE_ASSERT_RETURN(readNextLineAsDouble(sampleRate), true);
CARLA_SAFE_ASSERT_RETURN(readNextLineAsBool(useTheme), true);
CARLA_SAFE_ASSERT_RETURN(readNextLineAsBool(useThemeColors), true);
CARLA_SAFE_ASSERT_RETURN(readNextLineAsString(windowTitle), true);
CARLA_SAFE_ASSERT_RETURN(readNextLineAsULong(transientWindowId), true);

fGotOptions = true;
uiOptionsChanged(useTheme, useThemeColors, windowTitle, static_cast<uintptr_t>(transientWindowId));
uiOptionsChanged(sampleRate, useTheme, useThemeColors, windowTitle, static_cast<uintptr_t>(transientWindowId));

delete[] windowTitle;
return true;


+ 1
- 1
source/bridges-ui/CarlaBridgeUI.hpp View File

@@ -71,7 +71,7 @@ protected:
virtual void dspAtomReceived(const uint32_t index, const LV2_Atom* const atom) = 0;
virtual void dspURIDReceived(const LV2_URID urid, const char* const uri) = 0;

virtual void uiOptionsChanged(const bool useTheme, const bool useThemeColors, const char* const windowTitle, uintptr_t transientWindowId) = 0;
virtual void uiOptionsChanged(const double sampleRate, const bool useTheme, const bool useThemeColors, const char* const windowTitle, uintptr_t transientWindowId) = 0;

public:
// ---------------------------------------------------------------------


Loading…
Cancel
Save