Browse Source

Implement clipboard; Cleanup

Closes #59
tags/22.02
falkTX 3 years ago
parent
commit
0b25db0937
7 changed files with 43 additions and 15 deletions
  1. +1
    -1
      dpf
  2. +1
    -1
      plugins/Cardinal/src/Carla.cpp
  3. +3
    -3
      plugins/Cardinal/src/HostCV.cpp
  4. +5
    -5
      plugins/Cardinal/src/HostParameters.cpp
  5. +2
    -2
      plugins/Cardinal/src/HostTime.cpp
  6. +1
    -1
      plugins/Cardinal/src/Ildaeil.cpp
  7. +30
    -2
      src/CardinalUI.cpp

+ 1
- 1
dpf

@@ -1 +1 @@
Subproject commit c6c6900b8743550da7eb4f0f61a28ee85ac80966
Subproject commit 83e8afdb77695686a6b61dda2a5013d991232ddb

+ 1
- 1
plugins/Cardinal/src/Carla.cpp View File

@@ -97,7 +97,7 @@ struct CarlaModule : Module {
std::string patchStorage;

CarlaModule()
: pcontext(reinterpret_cast<CardinalPluginContext*>(APP))
: pcontext(static_cast<CardinalPluginContext*>(APP))
{
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS);
configParam<SwitchQuantity>(BIPOLAR_INPUTS, 0.f, 1.f, 1.f, "Bipolar CV Inputs")->randomizeEnabled = false;


+ 3
- 3
plugins/Cardinal/src/HostCV.cpp View File

@@ -47,7 +47,7 @@ struct HostCV : Module {
configParam<SwitchQuantity>(BIPOLAR_OUTPUTS_1_5, 0.f, 1.f, 0.f, "Bipolar Outputs 1-5")->randomizeEnabled = false;
configParam<SwitchQuantity>(BIPOLAR_OUTPUTS_6_10, 0.f, 1.f, 0.f, "Bipolar Outputs 6-10")->randomizeEnabled = false;

CardinalPluginContext* const pcontext = reinterpret_cast<CardinalPluginContext*>(APP);
CardinalPluginContext* const pcontext = static_cast<CardinalPluginContext*>(APP);

if (pcontext == nullptr)
throw rack::Exception("Plugin context is null.");
@@ -60,7 +60,7 @@ struct HostCV : Module {

~HostCV() override
{
CardinalPluginContext* const pcontext = reinterpret_cast<CardinalPluginContext*>(APP);
CardinalPluginContext* const pcontext = static_cast<CardinalPluginContext*>(APP);
DISTRHO_SAFE_ASSERT_RETURN(pcontext != nullptr,);

pcontext->loadedHostCV = false;
@@ -68,7 +68,7 @@ struct HostCV : Module {

void process(const ProcessArgs&) override
{
if (CardinalPluginContext* const pcontext = reinterpret_cast<CardinalPluginContext*>(APP))
if (CardinalPluginContext* const pcontext = static_cast<CardinalPluginContext*>(APP))
{
const float** dataIns = pcontext->dataIns;
float** dataOuts = pcontext->dataOuts;


+ 5
- 5
plugins/Cardinal/src/HostParameters.cpp View File

@@ -42,7 +42,7 @@ struct HostParameters : Module {
{
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS);

CardinalPluginContext* const pcontext = reinterpret_cast<CardinalPluginContext*>(APP);
CardinalPluginContext* const pcontext = static_cast<CardinalPluginContext*>(APP);

if (pcontext == nullptr)
throw rack::Exception("Plugin context is null.");
@@ -57,7 +57,7 @@ struct HostParameters : Module {

void process(const ProcessArgs&) override
{
if (CardinalPluginContext* const pcontext = reinterpret_cast<CardinalPluginContext*>(APP))
if (CardinalPluginContext* const pcontext = static_cast<CardinalPluginContext*>(APP))
{
for (uint32_t i=0; i<kModuleParameters; ++i)
outputs[i].setVoltage(parameters[i].process(sampleTime, pcontext->parameters[i]));
@@ -66,7 +66,7 @@ struct HostParameters : Module {

void onSampleRateChange(const SampleRateChangeEvent& e) override
{
if (CardinalPluginContext* const pcontext = reinterpret_cast<CardinalPluginContext*>(APP))
if (CardinalPluginContext* const pcontext = static_cast<CardinalPluginContext*>(APP))
{
const double fall = 1.0 / (double(pcontext->bufferSize) / e.sampleRate);

@@ -84,12 +84,12 @@ struct HostParameters : Module {
#ifndef HEADLESS
struct CardinalParameterPJ301MPort : PJ301MPort {
void onDragStart(const DragStartEvent& e) override {
if (CardinalPluginContext* const pcontext = reinterpret_cast<CardinalPluginContext*>(APP))
if (CardinalPluginContext* const pcontext = static_cast<CardinalPluginContext*>(APP))
handleHostParameterDrag(pcontext, portId, true);
PJ301MPort::onDragStart(e);
}
void onDragEnd(const DragEndEvent& e) override {
if (CardinalPluginContext* const pcontext = reinterpret_cast<CardinalPluginContext*>(APP))
if (CardinalPluginContext* const pcontext = static_cast<CardinalPluginContext*>(APP))
handleHostParameterDrag(pcontext, portId, false);
PJ301MPort::onDragEnd(e);
}


+ 2
- 2
plugins/Cardinal/src/HostTime.cpp View File

@@ -42,7 +42,7 @@ struct HostTime : Module {
{
config(NUM_PARAMS, NUM_INPUTS, kHostTimeCount, kHostTimeCount);

CardinalPluginContext* const pcontext = reinterpret_cast<CardinalPluginContext*>(APP);
CardinalPluginContext* const pcontext = static_cast<CardinalPluginContext*>(APP);

if (pcontext == nullptr)
throw rack::Exception("Plugin context is null.");
@@ -50,7 +50,7 @@ struct HostTime : Module {

void process(const ProcessArgs& args) override
{
if (CardinalPluginContext* const pcontext = reinterpret_cast<CardinalPluginContext*>(APP))
if (CardinalPluginContext* const pcontext = static_cast<CardinalPluginContext*>(APP))
{
const bool playing = pcontext->playing;
const bool playingWithBBT = playing && pcontext->bbtValid;


+ 1
- 1
plugins/Cardinal/src/Ildaeil.cpp View File

@@ -270,7 +270,7 @@ struct IldaeilModule : Module {
IldaeilMidiGenerator midiGenerator;

IldaeilModule()
: pcontext(reinterpret_cast<CardinalPluginContext*>(APP))
: pcontext(static_cast<CardinalPluginContext*>(APP))
{
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS);
for (uint i=0; i<2; ++i)


+ 30
- 2
src/CardinalUI.cpp View File

@@ -37,10 +37,38 @@
#include "WindowParameters.hpp"
#include "ResizeHandle.hpp"

GLFWAPI const char* glfwGetClipboardString(GLFWwindow*) { return nullptr; }
GLFWAPI void glfwSetClipboardString(GLFWwindow*, const char*) {}
GLFWAPI int glfwGetKeyScancode(int) { return 0; }

GLFWAPI const char* glfwGetClipboardString(GLFWwindow*)
{
CardinalPluginContext* const context = static_cast<CardinalPluginContext*>(APP);
DISTRHO_SAFE_ASSERT_RETURN(context != nullptr, nullptr);
DISTRHO_SAFE_ASSERT_RETURN(context->ui != nullptr, nullptr);

const char* mimeType = nullptr;
size_t dataSize = 0;

if (const void* const clipboard = context->ui->getClipboard(mimeType, dataSize))
{
if (mimeType == nullptr || std::strcmp(mimeType, "text/plain") != 0)
return nullptr;
return static_cast<const char*>(clipboard);
}

return nullptr;
}

GLFWAPI void glfwSetClipboardString(GLFWwindow*, const char* const text)
{
DISTRHO_SAFE_ASSERT_RETURN(text != nullptr,);

CardinalPluginContext* const context = static_cast<CardinalPluginContext*>(APP);
DISTRHO_SAFE_ASSERT_RETURN(context != nullptr,);
DISTRHO_SAFE_ASSERT_RETURN(context->ui != nullptr,);

context->ui->setClipboard(nullptr, text, std::strlen(text)+1);
}

GLFWAPI double glfwGetTime(void)
{
CardinalPluginContext* const context = static_cast<CardinalPluginContext*>(APP);


Loading…
Cancel
Save