Browse Source

Update 3bandsplitter and pingpongpan plugin UIs, now working

tags/1.9.4
falkTX 12 years ago
parent
commit
504fe95c49
13 changed files with 212 additions and 173 deletions
  1. +3
    -1
      source/backend/native/3bandeq/DistrhoUI3BandEQ.cpp
  2. +0
    -1
      source/backend/native/3bandeq/DistrhoUI3BandEQ.hpp
  3. +1
    -1
      source/backend/native/3bandsplitter/DistrhoPluginInfo.h
  4. +95
    -91
      source/backend/native/3bandsplitter/DistrhoUI3BandSplitter.cpp
  5. +29
    -14
      source/backend/native/3bandsplitter/DistrhoUI3BandSplitter.hpp
  6. +3
    -3
      source/backend/native/Makefile
  7. +3
    -3
      source/backend/native/distrho-3bandsplitter.cpp
  8. +3
    -3
      source/backend/native/distrho-pingpongpan.cpp
  9. +1
    -1
      source/backend/native/pingpongpan/DistrhoPluginInfo.h
  10. +47
    -42
      source/backend/native/pingpongpan/DistrhoUIPingPongPan.cpp
  11. +23
    -10
      source/backend/native/pingpongpan/DistrhoUIPingPongPan.hpp
  12. +0
    -2
      source/libs/distrho/dgl/src/Widget.cpp
  13. +4
    -1
      source/libs/distrho/src/DistrhoUIInternal.hpp

+ 3
- 1
source/backend/native/3bandeq/DistrhoUI3BandEQ.cpp View File

@@ -16,6 +16,8 @@


#include "DistrhoUI3BandEQ.hpp" #include "DistrhoUI3BandEQ.hpp"


#include "dgl/ImageAboutWindow.hpp"

START_NAMESPACE_DISTRHO START_NAMESPACE_DISTRHO


// ------------------------------------------------- // -------------------------------------------------
@@ -141,7 +143,7 @@ void DistrhoUI3BandEQ::d_programChanged(uint32_t index)
} }


// ------------------------------------------------- // -------------------------------------------------
// Extended Callbacks
// Widget Callbacks


void DistrhoUI3BandEQ::imageButtonClicked(ImageButton* button, int) void DistrhoUI3BandEQ::imageButtonClicked(ImageButton* button, int)
{ {


+ 0
- 1
source/backend/native/3bandeq/DistrhoUI3BandEQ.hpp View File

@@ -18,7 +18,6 @@
#define __DISTRHO_UI_3BANDEQ_HPP__ #define __DISTRHO_UI_3BANDEQ_HPP__


#include "DistrhoUIOpenGL.hpp" #include "DistrhoUIOpenGL.hpp"
#include "dgl/ImageAboutWindow.hpp"
#include "dgl/ImageButton.hpp" #include "dgl/ImageButton.hpp"
#include "dgl/ImageKnob.hpp" #include "dgl/ImageKnob.hpp"
#include "dgl/ImageSlider.hpp" #include "dgl/ImageSlider.hpp"


+ 1
- 1
source/backend/native/3bandsplitter/DistrhoPluginInfo.h View File

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


#define DISTRHO_PLUGIN_NAME "3 Band Splitter" #define DISTRHO_PLUGIN_NAME "3 Band Splitter"


#define DISTRHO_PLUGIN_HAS_UI 0
#define DISTRHO_PLUGIN_HAS_UI 1
#define DISTRHO_PLUGIN_IS_SYNTH 0 #define DISTRHO_PLUGIN_IS_SYNTH 0


#define DISTRHO_PLUGIN_NUM_INPUTS 2 #define DISTRHO_PLUGIN_NUM_INPUTS 2


+ 95
- 91
source/backend/native/3bandsplitter/DistrhoUI3BandSplitter.cpp View File

@@ -16,86 +16,88 @@


#include "DistrhoUI3BandSplitter.hpp" #include "DistrhoUI3BandSplitter.hpp"


#include "dgl/ImageAboutWindow.hpp"

START_NAMESPACE_DISTRHO START_NAMESPACE_DISTRHO


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


DistrhoUI3BandSplitter::DistrhoUI3BandSplitter() DistrhoUI3BandSplitter::DistrhoUI3BandSplitter()
: OpenGLExtUI()
: OpenGLUI()
{ {
Window* win = getParent();

// background // background
Image bgImage(DistrhoArtwork3BandSplitter::backgroundData, DistrhoArtwork3BandSplitter::backgroundWidth, DistrhoArtwork3BandSplitter::backgroundHeight, GL_BGR);
setBackgroundImage(bgImage);
fImgBackground = Image(DistrhoArtwork3BandSplitter::backgroundData, DistrhoArtwork3BandSplitter::backgroundWidth, DistrhoArtwork3BandSplitter::backgroundHeight, GL_BGR);


// sliders // sliders
Image sliderImage(DistrhoArtwork3BandSplitter::sliderData, DistrhoArtwork3BandSplitter::sliderWidth, DistrhoArtwork3BandSplitter::sliderHeight); Image sliderImage(DistrhoArtwork3BandSplitter::sliderData, DistrhoArtwork3BandSplitter::sliderWidth, DistrhoArtwork3BandSplitter::sliderHeight);
Point sliderPosStart(57, 43);
Point sliderPosEnd(57, 43 + 160);
Point<int> sliderPosStart(57, 43);
Point<int> sliderPosEnd(57, 43 + 160);


// slider Low // slider Low
sliderLow = new ImageSlider(sliderImage, sliderPosStart, sliderPosEnd);
sliderLow->setRange(-24.0f, 24.0f);
sliderLow->setValue(0.0f);
addImageSlider(sliderLow);
fSliderLow = new ImageSlider(win, sliderImage);
fSliderLow->setStartPos(sliderPosStart);
fSliderLow->setEndPos(sliderPosEnd);
fSliderLow->setRange(-24.0f, 24.0f);
fSliderLow->setValue(0.0f);
fSliderLow->setCallback(this);


// slider Mid // slider Mid
sliderPosStart.setX(120); sliderPosStart.setX(120);
sliderPosEnd.setX(120); sliderPosEnd.setX(120);
sliderMid = new ImageSlider(sliderImage, sliderPosStart, sliderPosEnd);
sliderMid->setRange(-24.0f, 24.0f);
sliderMid->setValue(0.0f);
addImageSlider(sliderMid);
fSliderMid = new ImageSlider(*fSliderLow);
fSliderMid->setStartPos(sliderPosStart);
fSliderMid->setEndPos(sliderPosEnd);


// slider High // slider High
sliderPosStart.setX(183); sliderPosStart.setX(183);
sliderPosEnd.setX(183); sliderPosEnd.setX(183);
sliderHigh = new ImageSlider(sliderImage, sliderPosStart, sliderPosEnd);
sliderHigh->setRange(-24.0f, 24.0f);
sliderHigh->setValue(0.0f);
addImageSlider(sliderHigh);
fSliderHigh = new ImageSlider(*fSliderLow);
fSliderHigh->setStartPos(sliderPosStart);
fSliderHigh->setEndPos(sliderPosEnd);


// slider Master // slider Master
sliderPosStart.setX(287); sliderPosStart.setX(287);
sliderPosEnd.setX(287); sliderPosEnd.setX(287);
sliderMaster = new ImageSlider(sliderImage, sliderPosStart, sliderPosEnd);
sliderMaster->setRange(-24.0f, 24.0f);
sliderMaster->setValue(0.0f);
addImageSlider(sliderMaster);
fSliderMaster = new ImageSlider(*fSliderLow);
fSliderMaster->setStartPos(sliderPosStart);
fSliderMaster->setEndPos(sliderPosEnd);


// knobs // knobs
Image knobImage(DistrhoArtwork3BandSplitter::knobData, DistrhoArtwork3BandSplitter::knobWidth, DistrhoArtwork3BandSplitter::knobHeight); Image knobImage(DistrhoArtwork3BandSplitter::knobData, DistrhoArtwork3BandSplitter::knobWidth, DistrhoArtwork3BandSplitter::knobHeight);
Point knobPos(66, 270);


// knob Low-Mid // knob Low-Mid
knobLowMid = new ImageKnob(knobImage, knobPos);
knobLowMid->setRange(0.0f, 1000.0f);
knobLowMid->setValue(220.0f);
addImageKnob(knobLowMid);
fKnobLowMid = new ImageKnob(win, knobImage);
fKnobLowMid->setPos(66, 270);
fKnobLowMid->setRange(0.0f, 1000.0f);
fKnobLowMid->setValue(220.0f);
fKnobLowMid->setCallback(this);


// knob Mid-High // knob Mid-High
knobPos.setX(160);
knobMidHigh = new ImageKnob(knobImage, knobPos);
knobMidHigh->setRange(1000.0f, 20000.0f);
knobMidHigh->setValue(2000.0f);
addImageKnob(knobMidHigh);
fKnobMidHigh = new ImageKnob(win, knobImage);
fKnobMidHigh->setPos(160, 270);
fKnobMidHigh->setRange(1000.0f, 20000.0f);
fKnobMidHigh->setValue(2000.0f);
fKnobMidHigh->setCallback(this);


// about button // about button
Image aboutImageNormal(DistrhoArtwork3BandSplitter::aboutButtonNormalData, DistrhoArtwork3BandSplitter::aboutButtonNormalWidth, DistrhoArtwork3BandSplitter::aboutButtonNormalHeight); Image aboutImageNormal(DistrhoArtwork3BandSplitter::aboutButtonNormalData, DistrhoArtwork3BandSplitter::aboutButtonNormalWidth, DistrhoArtwork3BandSplitter::aboutButtonNormalHeight);
Image aboutImageHover(DistrhoArtwork3BandSplitter::aboutButtonHoverData, DistrhoArtwork3BandSplitter::aboutButtonHoverWidth, DistrhoArtwork3BandSplitter::aboutButtonHoverHeight); Image aboutImageHover(DistrhoArtwork3BandSplitter::aboutButtonHoverData, DistrhoArtwork3BandSplitter::aboutButtonHoverWidth, DistrhoArtwork3BandSplitter::aboutButtonHoverHeight);
Point aboutPos(264, 300);
buttonAbout = new ImageButton(aboutImageNormal, aboutImageHover, aboutImageHover, aboutPos);
addImageButton(buttonAbout);
fButtonAbout = new ImageButton(win, aboutImageNormal, aboutImageHover, aboutImageHover);
fButtonAbout->setPos(264, 300);
fButtonAbout->setCallback(this);
} }


DistrhoUI3BandSplitter::~DistrhoUI3BandSplitter() DistrhoUI3BandSplitter::~DistrhoUI3BandSplitter()
{ {
delete sliderLow;
delete sliderMid;
delete sliderHigh;
delete sliderMaster;
delete knobLowMid;
delete knobMidHigh;
delete buttonAbout;
delete fSliderLow;
delete fSliderMid;
delete fSliderHigh;
delete fSliderMaster;
delete fKnobLowMid;
delete fKnobMidHigh;
delete fButtonAbout;
} }


// ------------------------------------------------- // -------------------------------------------------
@@ -106,26 +108,24 @@ void DistrhoUI3BandSplitter::d_parameterChanged(uint32_t index, float value)
switch (index) switch (index)
{ {
case DistrhoPlugin3BandSplitter::paramLow: case DistrhoPlugin3BandSplitter::paramLow:
sliderLow->setValue(value);
fSliderLow->setValue(value);
break; break;
case DistrhoPlugin3BandSplitter::paramMid: case DistrhoPlugin3BandSplitter::paramMid:
sliderMid->setValue(value);
fSliderMid->setValue(value);
break; break;
case DistrhoPlugin3BandSplitter::paramHigh: case DistrhoPlugin3BandSplitter::paramHigh:
sliderHigh->setValue(value);
fSliderHigh->setValue(value);
break; break;
case DistrhoPlugin3BandSplitter::paramMaster: case DistrhoPlugin3BandSplitter::paramMaster:
sliderMaster->setValue(value);
fSliderMaster->setValue(value);
break; break;
case DistrhoPlugin3BandSplitter::paramLowMidFreq: case DistrhoPlugin3BandSplitter::paramLowMidFreq:
knobLowMid->setValue(value);
fKnobLowMid->setValue(value);
break; break;
case DistrhoPlugin3BandSplitter::paramMidHighFreq: case DistrhoPlugin3BandSplitter::paramMidHighFreq:
knobMidHigh->setValue(value);
fKnobMidHigh->setValue(value);
break; break;
} }

d_uiRepaint();
} }


void DistrhoUI3BandSplitter::d_programChanged(uint32_t index) void DistrhoUI3BandSplitter::d_programChanged(uint32_t index)
@@ -134,89 +134,93 @@ void DistrhoUI3BandSplitter::d_programChanged(uint32_t index)
return; return;


// Default values // Default values
sliderLow->setValue(0.0f);
sliderMid->setValue(0.0f);
sliderHigh->setValue(0.0f);
sliderMaster->setValue(0.0f);
knobLowMid->setValue(220.0f);
knobMidHigh->setValue(2000.0f);

d_uiRepaint();
fSliderLow->setValue(0.0f);
fSliderMid->setValue(0.0f);
fSliderHigh->setValue(0.0f);
fSliderMaster->setValue(0.0f);
fKnobLowMid->setValue(220.0f);
fKnobMidHigh->setValue(2000.0f);
} }


// ------------------------------------------------- // -------------------------------------------------
// Extended Callbacks
// Widget Callbacks


void DistrhoUI3BandSplitter::imageButtonClicked(ImageButton* button)
void DistrhoUI3BandSplitter::imageButtonClicked(ImageButton* button, int)
{ {
if (button != buttonAbout)
if (button != fButtonAbout)
return; return;


Image imageAbout(DistrhoArtwork3BandSplitter::aboutData, DistrhoArtwork3BandSplitter::aboutWidth, DistrhoArtwork3BandSplitter::aboutHeight, GL_BGRA); Image imageAbout(DistrhoArtwork3BandSplitter::aboutData, DistrhoArtwork3BandSplitter::aboutWidth, DistrhoArtwork3BandSplitter::aboutHeight, GL_BGRA);
showImageModalDialog(imageAbout, "About");
ImageAboutWindow aboutWindow(getApp(), getParent(), imageAbout);
aboutWindow.exec();
} }


void DistrhoUI3BandSplitter::imageKnobDragStarted(ImageKnob* knob) void DistrhoUI3BandSplitter::imageKnobDragStarted(ImageKnob* knob)
{ {
if (knob == knobLowMid)
d_uiEditParameter(DistrhoPlugin3BandSplitter::paramLowMidFreq, true);
else if (knob == knobMidHigh)
d_uiEditParameter(DistrhoPlugin3BandSplitter::paramMidHighFreq, true);
if (knob == fKnobLowMid)
d_editParameter(DistrhoPlugin3BandSplitter::paramLowMidFreq, true);
else if (knob == fKnobMidHigh)
d_editParameter(DistrhoPlugin3BandSplitter::paramMidHighFreq, true);
} }


void DistrhoUI3BandSplitter::imageKnobDragFinished(ImageKnob* knob) void DistrhoUI3BandSplitter::imageKnobDragFinished(ImageKnob* knob)
{ {
if (knob == knobLowMid)
d_uiEditParameter(DistrhoPlugin3BandSplitter::paramLowMidFreq, false);
else if (knob == knobMidHigh)
d_uiEditParameter(DistrhoPlugin3BandSplitter::paramMidHighFreq, false);
if (knob == fKnobLowMid)
d_editParameter(DistrhoPlugin3BandSplitter::paramLowMidFreq, false);
else if (knob == fKnobMidHigh)
d_editParameter(DistrhoPlugin3BandSplitter::paramMidHighFreq, false);
} }




void DistrhoUI3BandSplitter::imageKnobValueChanged(ImageKnob* knob, float value) void DistrhoUI3BandSplitter::imageKnobValueChanged(ImageKnob* knob, float value)
{ {
if (knob == knobLowMid)
if (knob == fKnobLowMid)
d_setParameterValue(DistrhoPlugin3BandSplitter::paramLowMidFreq, value); d_setParameterValue(DistrhoPlugin3BandSplitter::paramLowMidFreq, value);
else if (knob == knobMidHigh)
else if (knob == fKnobMidHigh)
d_setParameterValue(DistrhoPlugin3BandSplitter::paramMidHighFreq, value); d_setParameterValue(DistrhoPlugin3BandSplitter::paramMidHighFreq, value);
} }


void DistrhoUI3BandSplitter::imageSliderDragStarted(ImageSlider* slider) void DistrhoUI3BandSplitter::imageSliderDragStarted(ImageSlider* slider)
{ {
if (slider == sliderLow)
d_uiEditParameter(DistrhoPlugin3BandSplitter::paramLow, true);
else if (slider == sliderMid)
d_uiEditParameter(DistrhoPlugin3BandSplitter::paramMid, true);
else if (slider == sliderHigh)
d_uiEditParameter(DistrhoPlugin3BandSplitter::paramHigh, true);
else if (slider == sliderMaster)
d_uiEditParameter(DistrhoPlugin3BandSplitter::paramMaster, true);
if (slider == fSliderLow)
d_editParameter(DistrhoPlugin3BandSplitter::paramLow, true);
else if (slider == fSliderMid)
d_editParameter(DistrhoPlugin3BandSplitter::paramMid, true);
else if (slider == fSliderHigh)
d_editParameter(DistrhoPlugin3BandSplitter::paramHigh, true);
else if (slider == fSliderMaster)
d_editParameter(DistrhoPlugin3BandSplitter::paramMaster, true);
} }


void DistrhoUI3BandSplitter::imageSliderDragFinished(ImageSlider* slider) void DistrhoUI3BandSplitter::imageSliderDragFinished(ImageSlider* slider)
{ {
if (slider == sliderLow)
d_uiEditParameter(DistrhoPlugin3BandSplitter::paramLow, false);
else if (slider == sliderMid)
d_uiEditParameter(DistrhoPlugin3BandSplitter::paramMid, false);
else if (slider == sliderHigh)
d_uiEditParameter(DistrhoPlugin3BandSplitter::paramHigh, false);
else if (slider == sliderMaster)
d_uiEditParameter(DistrhoPlugin3BandSplitter::paramMaster, false);
if (slider == fSliderLow)
d_editParameter(DistrhoPlugin3BandSplitter::paramLow, false);
else if (slider == fSliderMid)
d_editParameter(DistrhoPlugin3BandSplitter::paramMid, false);
else if (slider == fSliderHigh)
d_editParameter(DistrhoPlugin3BandSplitter::paramHigh, false);
else if (slider == fSliderMaster)
d_editParameter(DistrhoPlugin3BandSplitter::paramMaster, false);
} }


void DistrhoUI3BandSplitter::imageSliderValueChanged(ImageSlider* slider, float value) void DistrhoUI3BandSplitter::imageSliderValueChanged(ImageSlider* slider, float value)
{ {
if (slider == sliderLow)
if (slider == fSliderLow)
d_setParameterValue(DistrhoPlugin3BandSplitter::paramLow, value); d_setParameterValue(DistrhoPlugin3BandSplitter::paramLow, value);
else if (slider == sliderMid)
else if (slider == fSliderMid)
d_setParameterValue(DistrhoPlugin3BandSplitter::paramMid, value); d_setParameterValue(DistrhoPlugin3BandSplitter::paramMid, value);
else if (slider == sliderHigh)
else if (slider == fSliderHigh)
d_setParameterValue(DistrhoPlugin3BandSplitter::paramHigh, value); d_setParameterValue(DistrhoPlugin3BandSplitter::paramHigh, value);
else if (slider == sliderMaster)
else if (slider == fSliderMaster)
d_setParameterValue(DistrhoPlugin3BandSplitter::paramMaster, value); d_setParameterValue(DistrhoPlugin3BandSplitter::paramMaster, value);
} }


void DistrhoUI3BandSplitter::onDisplay()
{
fImgBackground.draw();
}

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


UI* createUI() UI* createUI()


+ 29
- 14
source/backend/native/3bandsplitter/DistrhoUI3BandSplitter.hpp View File

@@ -17,7 +17,10 @@
#ifndef __DISTRHO_UI_3BANDSPLITTER_HPP__ #ifndef __DISTRHO_UI_3BANDSPLITTER_HPP__
#define __DISTRHO_UI_3BANDSPLITTER_HPP__ #define __DISTRHO_UI_3BANDSPLITTER_HPP__


#include "DistrhoUIOpenGLExt.h"
#include "DistrhoUIOpenGL.hpp"
#include "dgl/ImageButton.hpp"
#include "dgl/ImageKnob.hpp"
#include "dgl/ImageSlider.hpp"


#include "DistrhoArtwork3BandSplitter.hpp" #include "DistrhoArtwork3BandSplitter.hpp"
#include "DistrhoPlugin3BandSplitter.hpp" #include "DistrhoPlugin3BandSplitter.hpp"
@@ -26,32 +29,40 @@ START_NAMESPACE_DISTRHO


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


class DistrhoUI3BandSplitter : public OpenGLExtUI
class DistrhoUI3BandSplitter : public OpenGLUI,
public ImageButton::Callback,
public ImageKnob::Callback,
public ImageSlider::Callback
{ {
public: public:
DistrhoUI3BandSplitter(); DistrhoUI3BandSplitter();
~DistrhoUI3BandSplitter(); ~DistrhoUI3BandSplitter();


// ---------------------------------------------
protected: protected:


// ---------------------------------------------
// Information // Information
int d_width()

unsigned int d_width() const
{ {
return DistrhoArtwork3BandSplitter::backgroundWidth; return DistrhoArtwork3BandSplitter::backgroundWidth;
} }


int d_height()
unsigned int d_height() const
{ {
return DistrhoArtwork3BandSplitter::backgroundHeight; return DistrhoArtwork3BandSplitter::backgroundHeight;
} }


// ---------------------------------------------
// DSP Callbacks // DSP Callbacks

void d_parameterChanged(uint32_t index, float value); void d_parameterChanged(uint32_t index, float value);
void d_programChanged(uint32_t index); void d_programChanged(uint32_t index);


// Extended Callbacks
void imageButtonClicked(ImageButton* button);
// ---------------------------------------------
// Widget Callbacks

void imageButtonClicked(ImageButton* button, int);
void imageKnobDragStarted(ImageKnob* knob); void imageKnobDragStarted(ImageKnob* knob);
void imageKnobDragFinished(ImageKnob* knob); void imageKnobDragFinished(ImageKnob* knob);
void imageKnobValueChanged(ImageKnob* knob, float value); void imageKnobValueChanged(ImageKnob* knob, float value);
@@ -59,14 +70,18 @@ protected:
void imageSliderDragFinished(ImageSlider* slider); void imageSliderDragFinished(ImageSlider* slider);
void imageSliderValueChanged(ImageSlider* slider, float value); void imageSliderValueChanged(ImageSlider* slider, float value);


void onDisplay();

private: private:
ImageSlider* sliderLow;
ImageSlider* sliderMid;
ImageSlider* sliderHigh;
ImageSlider* sliderMaster;
ImageKnob* knobLowMid;
ImageKnob* knobMidHigh;
ImageButton* buttonAbout;
Image fImgBackground;

ImageSlider* fSliderLow;
ImageSlider* fSliderMid;
ImageSlider* fSliderHigh;
ImageSlider* fSliderMaster;
ImageKnob* fKnobLowMid;
ImageKnob* fKnobMidHigh;
ImageButton* fButtonAbout;
}; };


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


+ 3
- 3
source/backend/native/Makefile View File

@@ -86,13 +86,13 @@ $(STATIC): $(OBJS)
distrho-3bandeq.cpp.o: distrho-3bandeq.cpp 3bandeq/DistrhoArtwork3BandEQ.cpp 3bandeq/DistrhoPlugin3BandEQ.cpp 3bandeq/DistrhoUI3BandEQ.cpp distrho/DistrhoPluginCarla.cpp distrho-3bandeq.cpp.o: distrho-3bandeq.cpp 3bandeq/DistrhoArtwork3BandEQ.cpp 3bandeq/DistrhoPlugin3BandEQ.cpp 3bandeq/DistrhoUI3BandEQ.cpp distrho/DistrhoPluginCarla.cpp
$(CXX) $< $(BUILD_CXX_FLAGS) -I3bandeq -DDISTRHO_NAMESPACE=DISTRHO_3BandEQ -c -o $@ $(CXX) $< $(BUILD_CXX_FLAGS) -I3bandeq -DDISTRHO_NAMESPACE=DISTRHO_3BandEQ -c -o $@


distrho-3bandsplitter.cpp.o: distrho-3bandsplitter.cpp distrho/DistrhoPluginCarla.cpp
distrho-3bandsplitter.cpp.o: distrho-3bandsplitter.cpp 3bandsplitter/DistrhoArtwork3BandSplitter.cpp 3bandsplitter/DistrhoPlugin3BandSplitter.cpp 3bandsplitter/DistrhoUI3BandSplitter.cpp distrho/DistrhoPluginCarla.cpp
$(CXX) $< $(BUILD_CXX_FLAGS) -I3bandsplitter -DDISTRHO_NAMESPACE=DISTRHO_3BandSplitter -c -o $@ $(CXX) $< $(BUILD_CXX_FLAGS) -I3bandsplitter -DDISTRHO_NAMESPACE=DISTRHO_3BandSplitter -c -o $@


distrho-pingpongpan.cpp.o: distrho-pingpongpan.cpp distrho/DistrhoPluginCarla.cpp
distrho-pingpongpan.cpp.o: distrho-pingpongpan.cpp pingpongpan/DistrhoArtworkPingPongPan.cpp pingpongpan/DistrhoPluginPingPongPan.cpp pingpongpan/DistrhoUIPingPongPan.cpp distrho/DistrhoPluginCarla.cpp
$(CXX) $< $(BUILD_CXX_FLAGS) -Ipingpongpan -DDISTRHO_NAMESPACE=DISTRHO_PingPongPan -c -o $@ $(CXX) $< $(BUILD_CXX_FLAGS) -Ipingpongpan -DDISTRHO_NAMESPACE=DISTRHO_PingPongPan -c -o $@


distrho-notes.cpp.o: distrho-notes.cpp distrho/DistrhoPluginCarla.cpp moc_DistrhoUINotes.cpp moc_ParamProgressBar.cpp
distrho-notes.cpp.o: distrho-notes.cpp notes/DistrhoPluginNotes.cpp notes/DistrhoUINotes.cpp distrho/DistrhoPluginCarla.cpp moc_DistrhoUINotes.cpp moc_ParamProgressBar.cpp
$(CXX) $< $(BUILD_CXX_FLAGS) -Inotes -DDISTRHO_NAMESPACE=DISTRHO_Notes -c -o $@ $(CXX) $< $(BUILD_CXX_FLAGS) -Inotes -DDISTRHO_NAMESPACE=DISTRHO_Notes -c -o $@


zynaddsubfx.cpp.o: zynaddsubfx.cpp zynaddsubfx.cpp.o: zynaddsubfx.cpp


+ 3
- 3
source/backend/native/distrho-3bandsplitter.cpp View File

@@ -18,9 +18,9 @@
#include "CarlaNative.hpp" #include "CarlaNative.hpp"


// Plugin Code // Plugin Code
//#include "3bandsplitter/DistrhoArtwork3BandSplitter.cpp"
#include "3bandsplitter/DistrhoArtwork3BandSplitter.cpp"
#include "3bandsplitter/DistrhoPlugin3BandSplitter.cpp" #include "3bandsplitter/DistrhoPlugin3BandSplitter.cpp"
//#include "3bandsplitter/DistrhoUI3BandSplitter.cpp"
#include "3bandsplitter/DistrhoUI3BandSplitter.cpp"


// Carla DISTRHO Plugin // Carla DISTRHO Plugin
#include "distrho/DistrhoPluginCarla.cpp" #include "distrho/DistrhoPluginCarla.cpp"
@@ -31,7 +31,7 @@ START_NAMESPACE_DISTRHO


static const PluginDescriptor tBandSplitterDesc = { static const PluginDescriptor tBandSplitterDesc = {
/* category */ ::PLUGIN_CATEGORY_EQ, /* category */ ::PLUGIN_CATEGORY_EQ,
/* hints */ static_cast<PluginHints>(::PLUGIN_IS_RTSAFE /*| ::PLUGIN_HAS_GUI*/),
/* hints */ static_cast<PluginHints>(::PLUGIN_IS_RTSAFE | ::PLUGIN_HAS_GUI),
/* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS,
/* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS,
/* midiIns */ 0, /* midiIns */ 0,


+ 3
- 3
source/backend/native/distrho-pingpongpan.cpp View File

@@ -18,9 +18,9 @@
#include "CarlaNative.hpp" #include "CarlaNative.hpp"


// Plugin Code // Plugin Code
//#include "pingpongpan/DistrhoArtworkPingPongPan.cpp"
#include "pingpongpan/DistrhoArtworkPingPongPan.cpp"
#include "pingpongpan/DistrhoPluginPingPongPan.cpp" #include "pingpongpan/DistrhoPluginPingPongPan.cpp"
//#include "pingpongpan/DistrhoUIPingPongPan.cpp"
#include "pingpongpan/DistrhoUIPingPongPan.cpp"


// Carla DISTRHO Plugin // Carla DISTRHO Plugin
#include "distrho/DistrhoPluginCarla.cpp" #include "distrho/DistrhoPluginCarla.cpp"
@@ -31,7 +31,7 @@ START_NAMESPACE_DISTRHO


static PluginDescriptor tBandEqDesc = { static PluginDescriptor tBandEqDesc = {
/* category */ ::PLUGIN_CATEGORY_UTILITY, /* category */ ::PLUGIN_CATEGORY_UTILITY,
/* hints */ static_cast<PluginHints>(::PLUGIN_IS_RTSAFE /*| ::PLUGIN_HAS_GUI*/),
/* hints */ static_cast<PluginHints>(::PLUGIN_IS_RTSAFE | ::PLUGIN_HAS_GUI),
/* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS, /* audioIns */ DISTRHO_PLUGIN_NUM_INPUTS,
/* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS, /* audioOuts */ DISTRHO_PLUGIN_NUM_OUTPUTS,
/* midiIns */ 0, /* midiIns */ 0,


+ 1
- 1
source/backend/native/pingpongpan/DistrhoPluginInfo.h View File

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


#define DISTRHO_PLUGIN_NAME "Ping Pong Pan" #define DISTRHO_PLUGIN_NAME "Ping Pong Pan"


#define DISTRHO_PLUGIN_HAS_UI 0
#define DISTRHO_PLUGIN_HAS_UI 1
#define DISTRHO_PLUGIN_IS_SYNTH 0 #define DISTRHO_PLUGIN_IS_SYNTH 0


#define DISTRHO_PLUGIN_NUM_INPUTS 2 #define DISTRHO_PLUGIN_NUM_INPUTS 2


+ 47
- 42
source/backend/native/pingpongpan/DistrhoUIPingPongPan.cpp View File

@@ -16,47 +16,50 @@


#include "DistrhoUIPingPongPan.hpp" #include "DistrhoUIPingPongPan.hpp"


#include "dgl/ImageAboutWindow.hpp"

START_NAMESPACE_DISTRHO START_NAMESPACE_DISTRHO


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


DistrhoUIPingPongPan::DistrhoUIPingPongPan() DistrhoUIPingPongPan::DistrhoUIPingPongPan()
: OpenGLExtUI()
: OpenGLUI()
{ {
Window* win = getParent();

// background // background
Image bgImage(DistrhoArtworkPingPongPan::backgroundData, DistrhoArtworkPingPongPan::backgroundWidth, DistrhoArtworkPingPongPan::backgroundHeight, GL_BGRA);
setBackgroundImage(bgImage);
fImgBackground = Image(DistrhoArtworkPingPongPan::backgroundData, DistrhoArtworkPingPongPan::backgroundWidth, DistrhoArtworkPingPongPan::backgroundHeight, GL_BGRA);


// knobs // knobs
Image knobImage(DistrhoArtworkPingPongPan::knobData, DistrhoArtworkPingPongPan::knobWidth, DistrhoArtworkPingPongPan::knobHeight); Image knobImage(DistrhoArtworkPingPongPan::knobData, DistrhoArtworkPingPongPan::knobWidth, DistrhoArtworkPingPongPan::knobHeight);
Point knobPos(136, 30);


// knob Low-Mid // knob Low-Mid
knobFreq = new ImageKnob(knobImage, knobPos);
knobFreq->setRange(0.0f, 100.0f);
knobFreq->setValue(50.0f);
addImageKnob(knobFreq);
fKnobFreq = new ImageKnob(win, knobImage);
fKnobFreq->setPos(136, 30);
fKnobFreq->setRange(0.0f, 100.0f);
fKnobFreq->setValue(50.0f);
fKnobFreq->setCallback(this);


// knob Mid-High // knob Mid-High
knobPos.setX(258);
knobWidth = new ImageKnob(knobImage, knobPos);
knobWidth->setRange(0.0f, 100.0f);
knobWidth->setValue(75.0f);
addImageKnob(knobWidth);
fKnobWidth = new ImageKnob(win, knobImage);
fKnobWidth->setPos(258, 30);
fKnobWidth->setRange(0.0f, 100.0f);
fKnobWidth->setValue(75.0f);
fKnobWidth->setCallback(this);


// about button // about button
Image aboutImageNormal(DistrhoArtworkPingPongPan::aboutButtonNormalData, DistrhoArtworkPingPongPan::aboutButtonNormalWidth, DistrhoArtworkPingPongPan::aboutButtonNormalHeight); Image aboutImageNormal(DistrhoArtworkPingPongPan::aboutButtonNormalData, DistrhoArtworkPingPongPan::aboutButtonNormalWidth, DistrhoArtworkPingPongPan::aboutButtonNormalHeight);
Image aboutImageHover(DistrhoArtworkPingPongPan::aboutButtonHoverData, DistrhoArtworkPingPongPan::aboutButtonHoverWidth, DistrhoArtworkPingPongPan::aboutButtonHoverHeight); Image aboutImageHover(DistrhoArtworkPingPongPan::aboutButtonHoverData, DistrhoArtworkPingPongPan::aboutButtonHoverWidth, DistrhoArtworkPingPongPan::aboutButtonHoverHeight);
Point aboutPos(25, 23);
buttonAbout = new ImageButton(aboutImageNormal, aboutImageHover, aboutImageHover, aboutPos);
addImageButton(buttonAbout);
fButtonAbout = new ImageButton(win, aboutImageNormal, aboutImageHover, aboutImageHover);
fButtonAbout->setPos(25, 23);
fButtonAbout->setCallback(this);
} }


DistrhoUIPingPongPan::~DistrhoUIPingPongPan() DistrhoUIPingPongPan::~DistrhoUIPingPongPan()
{ {
delete knobFreq;
delete knobWidth;
delete buttonAbout;
delete fKnobFreq;
delete fKnobWidth;
delete fButtonAbout;
} }


// ------------------------------------------------- // -------------------------------------------------
@@ -67,14 +70,12 @@ void DistrhoUIPingPongPan::d_parameterChanged(uint32_t index, float value)
switch (index) switch (index)
{ {
case DistrhoPluginPingPongPan::paramFreq: case DistrhoPluginPingPongPan::paramFreq:
knobFreq->setValue(value);
fKnobFreq->setValue(value);
break; break;
case DistrhoPluginPingPongPan::paramWidth: case DistrhoPluginPingPongPan::paramWidth:
knobWidth->setValue(value);
fKnobWidth->setValue(value);
break; break;
} }

d_uiRepaint();
} }


void DistrhoUIPingPongPan::d_programChanged(uint32_t index) void DistrhoUIPingPongPan::d_programChanged(uint32_t index)
@@ -83,54 +84,58 @@ void DistrhoUIPingPongPan::d_programChanged(uint32_t index)
return; return;


// Default values // Default values
knobFreq->setValue(50.0f);
knobWidth->setValue(75.0f);

d_uiRepaint();
fKnobFreq->setValue(50.0f);
fKnobWidth->setValue(75.0f);
} }


// ------------------------------------------------- // -------------------------------------------------
// Extended Callbacks
// Widget Callbacks


void DistrhoUIPingPongPan::imageButtonClicked(ImageButton* button)
void DistrhoUIPingPongPan::imageButtonClicked(ImageButton* button, int)
{ {
if (button != buttonAbout)
if (button != fButtonAbout)
return; return;


Image imageAbout(DistrhoArtworkPingPongPan::aboutData, DistrhoArtworkPingPongPan::aboutWidth, DistrhoArtworkPingPongPan::aboutHeight, GL_BGRA); Image imageAbout(DistrhoArtworkPingPongPan::aboutData, DistrhoArtworkPingPongPan::aboutWidth, DistrhoArtworkPingPongPan::aboutHeight, GL_BGRA);
showImageModalDialog(imageAbout, "About");
ImageAboutWindow aboutWindow(getApp(), getParent(), imageAbout);
aboutWindow.exec();
} }


void DistrhoUIPingPongPan::imageKnobDragStarted(ImageKnob* knob) void DistrhoUIPingPongPan::imageKnobDragStarted(ImageKnob* knob)
{ {
if (knob == knobFreq)
d_uiEditParameter(DistrhoPluginPingPongPan::paramFreq, true);
else if (knob == knobWidth)
d_uiEditParameter(DistrhoPluginPingPongPan::paramWidth, true);
if (knob == fKnobFreq)
d_editParameter(DistrhoPluginPingPongPan::paramFreq, true);
else if (knob == fKnobWidth)
d_editParameter(DistrhoPluginPingPongPan::paramWidth, true);
} }


void DistrhoUIPingPongPan::imageKnobDragFinished(ImageKnob* knob) void DistrhoUIPingPongPan::imageKnobDragFinished(ImageKnob* knob)
{ {
if (knob == knobFreq)
d_uiEditParameter(DistrhoPluginPingPongPan::paramFreq, false);
else if (knob == knobWidth)
d_uiEditParameter(DistrhoPluginPingPongPan::paramWidth, false);
if (knob == fKnobFreq)
d_editParameter(DistrhoPluginPingPongPan::paramFreq, false);
else if (knob == fKnobWidth)
d_editParameter(DistrhoPluginPingPongPan::paramWidth, false);
} }




void DistrhoUIPingPongPan::imageKnobValueChanged(ImageKnob* knob, float value) void DistrhoUIPingPongPan::imageKnobValueChanged(ImageKnob* knob, float value)
{ {
if (knob == knobFreq)
if (knob == fKnobFreq)
d_setParameterValue(DistrhoPluginPingPongPan::paramFreq, value); d_setParameterValue(DistrhoPluginPingPongPan::paramFreq, value);
else if (knob == knobWidth)
else if (knob == fKnobWidth)
d_setParameterValue(DistrhoPluginPingPongPan::paramWidth, value); d_setParameterValue(DistrhoPluginPingPongPan::paramWidth, value);
} }


void DistrhoUIPingPongPan::onDisplay()
{
fImgBackground.draw();
}

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


UI* createUI() UI* createUI()
{ {
return new DistrhoUIPingPongPan;
return new DistrhoUIPingPongPan();
} }


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


+ 23
- 10
source/backend/native/pingpongpan/DistrhoUIPingPongPan.hpp View File

@@ -17,7 +17,9 @@
#ifndef __DISTRHO_UI_PINGPONGPAN_HPP__ #ifndef __DISTRHO_UI_PINGPONGPAN_HPP__
#define __DISTRHO_UI_PINGPONGPAN_HPP__ #define __DISTRHO_UI_PINGPONGPAN_HPP__


#include "DistrhoUIOpenGLExt.h"
#include "DistrhoUIOpenGL.hpp"
#include "dgl/ImageButton.hpp"
#include "dgl/ImageKnob.hpp"


#include "DistrhoArtworkPingPongPan.hpp" #include "DistrhoArtworkPingPongPan.hpp"
#include "DistrhoPluginPingPongPan.hpp" #include "DistrhoPluginPingPongPan.hpp"
@@ -26,40 +28,51 @@ START_NAMESPACE_DISTRHO


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


class DistrhoUIPingPongPan : public OpenGLExtUI
class DistrhoUIPingPongPan : public OpenGLUI,
public ImageButton::Callback,
public ImageKnob::Callback
{ {
public: public:
DistrhoUIPingPongPan(); DistrhoUIPingPongPan();
~DistrhoUIPingPongPan(); ~DistrhoUIPingPongPan();


// ---------------------------------------------
protected: protected:


// ---------------------------------------------
// Information // Information
int d_width()

unsigned int d_width() const
{ {
return DistrhoArtworkPingPongPan::backgroundWidth; return DistrhoArtworkPingPongPan::backgroundWidth;
} }


int d_height()
unsigned int d_height() const
{ {
return DistrhoArtworkPingPongPan::backgroundHeight; return DistrhoArtworkPingPongPan::backgroundHeight;
} }


// ---------------------------------------------
// DSP Callbacks // DSP Callbacks

void d_parameterChanged(uint32_t index, float value); void d_parameterChanged(uint32_t index, float value);
void d_programChanged(uint32_t index); void d_programChanged(uint32_t index);


// Extended Callbacks
void imageButtonClicked(ImageButton* button);
// ---------------------------------------------
// Widget Callbacks

void imageButtonClicked(ImageButton* button, int);
void imageKnobDragStarted(ImageKnob* knob); void imageKnobDragStarted(ImageKnob* knob);
void imageKnobDragFinished(ImageKnob* knob); void imageKnobDragFinished(ImageKnob* knob);
void imageKnobValueChanged(ImageKnob* knob, float value); void imageKnobValueChanged(ImageKnob* knob, float value);


void onDisplay();

private: private:
ImageKnob* knobFreq;
ImageKnob* knobWidth;
ImageButton* buttonAbout;
Image fImgBackground;

ImageKnob* fKnobFreq;
ImageKnob* fKnobWidth;
ImageButton* fButtonAbout;
}; };


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


+ 0
- 2
source/libs/distrho/dgl/src/Widget.cpp View File

@@ -19,7 +19,6 @@
#include "../Window.hpp" #include "../Window.hpp"


#include <cassert> #include <cassert>
#include <cstdio>


START_NAMESPACE_DGL START_NAMESPACE_DGL


@@ -216,7 +215,6 @@ bool Widget::onSpecial(bool, Key)


void Widget::onReshape(int width, int height) void Widget::onReshape(int width, int height)
{ {
printf("Reshape(%i, %i)\n", width, height);
glEnable(GL_BLEND); glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glMatrixMode(GL_PROJECTION); glMatrixMode(GL_PROJECTION);


+ 4
- 1
source/libs/distrho/src/DistrhoUIInternal.hpp View File

@@ -243,7 +243,10 @@ public:
void idle() void idle()
{ {
#ifdef DISTRHO_UI_QT4 #ifdef DISTRHO_UI_QT4
kUi->d_uiIdle();
assert(kUi != nullptr);

if (kUi != nullptr)
kUi->d_uiIdle();
#else #else
glApp.idle(); glApp.idle();
#endif #endif


Loading…
Cancel
Save