Browse Source

More DISTRHO plugins work

tags/1.9.4
falkTX 11 years ago
parent
commit
2d6aac1d20
35 changed files with 19741 additions and 18253 deletions
  1. +18
    -2
      data/png2rgba.py
  2. +8
    -8
      source/backend/native/3bandeq/DistrhoUI3BandEQ.cpp
  3. +14
    -13
      source/backend/native/3bandeq/DistrhoUI3BandEQ.hpp
  4. +11
    -13
      source/backend/native/3bandsplitter/DistrhoUI3BandSplitter.cpp
  5. +16
    -14
      source/backend/native/3bandsplitter/DistrhoUI3BandSplitter.hpp
  6. +8541
    -7127
      source/backend/native/nekobi/DistrhoArtworkNekobi.cpp
  7. +16
    -6
      source/backend/native/nekobi/DistrhoArtworkNekobi.hpp
  8. +37
    -22
      source/backend/native/nekobi/DistrhoUINekobi.cpp
  9. +4
    -0
      source/backend/native/nekobi/DistrhoUINekobi.hpp
  10. BIN
      source/backend/native/nekobi/artwork/aboutButtonHover.png
  11. BIN
      source/backend/native/nekobi/artwork/aboutButtonNormal.png
  12. BIN
      source/backend/native/nekobi/artwork/background.png
  13. BIN
      source/backend/native/nekobi/artwork/knob.png
  14. BIN
      source/backend/native/nekobi/artwork/slider.png
  15. +8
    -8
      source/backend/native/notes/DistrhoUINotes.hpp
  16. +10822
    -10969
      source/backend/native/pingpongpan/DistrhoArtworkPingPongPan.cpp
  17. +6
    -6
      source/backend/native/pingpongpan/DistrhoArtworkPingPongPan.hpp
  18. +13
    -12
      source/backend/native/pingpongpan/DistrhoUIPingPongPan.cpp
  19. +13
    -10
      source/backend/native/pingpongpan/DistrhoUIPingPongPan.hpp
  20. BIN
      source/backend/native/pingpongpan/artwork/background.png
  21. BIN
      source/backend/native/pingpongpan/artwork/knob.png
  22. +11
    -11
      source/backend/native/stereoenhancer/DistrhoUIStereoEnhancer.cpp
  23. +13
    -10
      source/backend/native/stereoenhancer/DistrhoUIStereoEnhancer.hpp
  24. +3
    -3
      source/libs/distrho/DistrhoUIQt.hpp
  25. +3
    -3
      source/libs/distrho/dgl/ImageAboutWindow.hpp
  26. +5
    -3
      source/libs/distrho/dgl/ImageButton.hpp
  27. +4
    -3
      source/libs/distrho/dgl/ImageKnob.hpp
  28. +4
    -3
      source/libs/distrho/dgl/ImageSlider.hpp
  29. +8
    -6
      source/libs/distrho/dgl/Makefile
  30. +25
    -0
      source/libs/distrho/dgl/src/ImageButton.cpp
  31. +19
    -0
      source/libs/distrho/dgl/src/ImageKnob.cpp
  32. +14
    -0
      source/libs/distrho/dgl/src/ImageSlider.cpp
  33. +11
    -1
      source/libs/distrho/dgl/src/Window.cpp
  34. +29
    -0
      source/libs/distrho/dgl/src/pugl/pugl_osx_extended.h
  35. +65
    -0
      source/libs/distrho/dgl/src/pugl/pugl_osx_extended.m

+ 18
- 2
data/png2rgba.py View File

@@ -74,8 +74,24 @@ def png2rgba(namespace, filenames):
fdC.write(" %3u, %3u, %3u," % (b, g, r))
else:
r, g, b, a = data
#a -= 100
#if a < 0: a = 0

if filename in ("artwork/claw1.png",
"artwork/claw2.png",
"artwork/run1.png",
"artwork/run2.png",
"artwork/run3.png",
"artwork/run4.png",
"artwork/scratch1.png",
"artwork/scratch2.png",
"artwork/sit.png",
"artwork/tail.png"):
if r == 255:
a -= 38
if a < 0: a = 0
#a = 0
#else:
#r = g = b = 255

fdC.write(" %3u, %3u, %3u, %3u," % (b, g, r, a))

if curColumn > 20:


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

@@ -24,18 +24,20 @@ DistrhoUI3BandEQ::DistrhoUI3BandEQ()
: OpenGLUI(),
fAboutWindow(this)
{
Window* win = getParent();

// background
fImgBackground = Image(DistrhoArtwork3BandEQ::backgroundData, DistrhoArtwork3BandEQ::backgroundWidth, DistrhoArtwork3BandEQ::backgroundHeight, GL_BGR);

// about
Image imageAbout(DistrhoArtwork3BandEQ::aboutData, DistrhoArtwork3BandEQ::aboutWidth, DistrhoArtwork3BandEQ::aboutHeight, GL_BGR);
fAboutWindow.setImage(imageAbout);

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

// slider Low
fSliderLow = new ImageSlider(win, sliderImage);
fSliderLow = new ImageSlider(this, sliderImage);
fSliderLow->setStartPos(sliderPosStart);
fSliderLow->setEndPos(sliderPosEnd);
fSliderLow->setRange(-24.0f, 24.0f);
@@ -67,14 +69,14 @@ DistrhoUI3BandEQ::DistrhoUI3BandEQ()
Image knobImage(DistrhoArtwork3BandEQ::knobData, DistrhoArtwork3BandEQ::knobWidth, DistrhoArtwork3BandEQ::knobHeight);

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

// knob Mid-High
fKnobMidHigh = new ImageKnob(win, knobImage);
fKnobMidHigh = new ImageKnob(this, knobImage);
fKnobMidHigh->setPos(160, 270);
fKnobMidHigh->setRange(1000.0f, 20000.0f);
fKnobMidHigh->setValue(2000.0f);
@@ -83,7 +85,7 @@ DistrhoUI3BandEQ::DistrhoUI3BandEQ()
// about button
Image aboutImageNormal(DistrhoArtwork3BandEQ::aboutButtonNormalData, DistrhoArtwork3BandEQ::aboutButtonNormalWidth, DistrhoArtwork3BandEQ::aboutButtonNormalHeight);
Image aboutImageHover(DistrhoArtwork3BandEQ::aboutButtonHoverData, DistrhoArtwork3BandEQ::aboutButtonHoverWidth, DistrhoArtwork3BandEQ::aboutButtonHoverHeight);
fButtonAbout = new ImageButton(win, aboutImageNormal, aboutImageHover, aboutImageHover);
fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover);
fButtonAbout->setPos(264, 300);
fButtonAbout->setCallback(this);
}
@@ -149,8 +151,6 @@ void DistrhoUI3BandEQ::imageButtonClicked(ImageButton* button, int)
if (button != fButtonAbout)
return;

Image imageAbout(DistrhoArtwork3BandEQ::aboutData, DistrhoArtwork3BandEQ::aboutWidth, DistrhoArtwork3BandEQ::aboutHeight, GL_BGR);
fAboutWindow.setImage(imageAbout);
fAboutWindow.exec();
}



+ 14
- 13
source/backend/native/3bandeq/DistrhoUI3BandEQ.hpp View File

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

#include "DistrhoUIOpenGL.hpp"

#include "dgl/ImageAboutWindow.hpp"
#include "dgl/ImageButton.hpp"
#include "dgl/ImageKnob.hpp"
@@ -37,18 +38,18 @@ class DistrhoUI3BandEQ : public OpenGLUI,
{
public:
DistrhoUI3BandEQ();
~DistrhoUI3BandEQ();
~DistrhoUI3BandEQ() override;

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

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

unsigned int d_height() const
unsigned int d_height() const override
{
return DistrhoArtwork3BandEQ::backgroundHeight;
}
@@ -56,21 +57,21 @@ protected:
// ---------------------------------------------
// DSP Callbacks

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

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

void imageButtonClicked(ImageButton* button, int);
void imageKnobDragStarted(ImageKnob* knob);
void imageKnobDragFinished(ImageKnob* knob);
void imageKnobValueChanged(ImageKnob* knob, float value);
void imageSliderDragStarted(ImageSlider* slider);
void imageSliderDragFinished(ImageSlider* slider);
void imageSliderValueChanged(ImageSlider* slider, float value);
void imageButtonClicked(ImageButton* button, int) override;
void imageKnobDragStarted(ImageKnob* knob) override;
void imageKnobDragFinished(ImageKnob* knob) override;
void imageKnobValueChanged(ImageKnob* knob, float value) override;
void imageSliderDragStarted(ImageSlider* slider) override;
void imageSliderDragFinished(ImageSlider* slider) override;
void imageSliderValueChanged(ImageSlider* slider, float value) override;

void onDisplay();
void onDisplay() override;

private:
Image fImgBackground;


+ 11
- 13
source/backend/native/3bandsplitter/DistrhoUI3BandSplitter.cpp View File

@@ -16,27 +16,28 @@

#include "DistrhoUI3BandSplitter.hpp"

#include "dgl/ImageAboutWindow.hpp"

START_NAMESPACE_DISTRHO

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

DistrhoUI3BandSplitter::DistrhoUI3BandSplitter()
: OpenGLUI()
: OpenGLUI(),
fAboutWindow(this)
{
Window* win = getParent();

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

// about
Image imageAbout(DistrhoArtwork3BandSplitter::aboutData, DistrhoArtwork3BandSplitter::aboutWidth, DistrhoArtwork3BandSplitter::aboutHeight, GL_BGR);
fAboutWindow.setImage(imageAbout);

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

// slider Low
fSliderLow = new ImageSlider(win, sliderImage);
fSliderLow = new ImageSlider(this, sliderImage);
fSliderLow->setStartPos(sliderPosStart);
fSliderLow->setEndPos(sliderPosEnd);
fSliderLow->setRange(-24.0f, 24.0f);
@@ -68,14 +69,14 @@ DistrhoUI3BandSplitter::DistrhoUI3BandSplitter()
Image knobImage(DistrhoArtwork3BandSplitter::knobData, DistrhoArtwork3BandSplitter::knobWidth, DistrhoArtwork3BandSplitter::knobHeight);

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

// knob Mid-High
fKnobMidHigh = new ImageKnob(win, knobImage);
fKnobMidHigh = new ImageKnob(this, knobImage);
fKnobMidHigh->setPos(160, 270);
fKnobMidHigh->setRange(1000.0f, 20000.0f);
fKnobMidHigh->setValue(2000.0f);
@@ -84,7 +85,7 @@ DistrhoUI3BandSplitter::DistrhoUI3BandSplitter()
// about button
Image aboutImageNormal(DistrhoArtwork3BandSplitter::aboutButtonNormalData, DistrhoArtwork3BandSplitter::aboutButtonNormalWidth, DistrhoArtwork3BandSplitter::aboutButtonNormalHeight);
Image aboutImageHover(DistrhoArtwork3BandSplitter::aboutButtonHoverData, DistrhoArtwork3BandSplitter::aboutButtonHoverWidth, DistrhoArtwork3BandSplitter::aboutButtonHoverHeight);
fButtonAbout = new ImageButton(win, aboutImageNormal, aboutImageHover, aboutImageHover);
fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover);
fButtonAbout->setPos(264, 300);
fButtonAbout->setCallback(this);
}
@@ -150,9 +151,7 @@ void DistrhoUI3BandSplitter::imageButtonClicked(ImageButton* button, int)
if (button != fButtonAbout)
return;

Image imageAbout(DistrhoArtwork3BandSplitter::aboutData, DistrhoArtwork3BandSplitter::aboutWidth, DistrhoArtwork3BandSplitter::aboutHeight, GL_BGR);
ImageAboutWindow aboutWindow(getApp(), getParent(), imageAbout);
aboutWindow.exec();
fAboutWindow.exec();
}

void DistrhoUI3BandSplitter::imageKnobDragStarted(ImageKnob* knob)
@@ -171,7 +170,6 @@ void DistrhoUI3BandSplitter::imageKnobDragFinished(ImageKnob* knob)
d_editParameter(DistrhoPlugin3BandSplitter::paramMidHighFreq, false);
}


void DistrhoUI3BandSplitter::imageKnobValueChanged(ImageKnob* knob, float value)
{
if (knob == fKnobLowMid)


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

@@ -18,6 +18,8 @@
#define __DISTRHO_UI_3BANDSPLITTER_HPP__

#include "DistrhoUIOpenGL.hpp"

#include "dgl/ImageAboutWindow.hpp"
#include "dgl/ImageButton.hpp"
#include "dgl/ImageKnob.hpp"
#include "dgl/ImageSlider.hpp"
@@ -36,19 +38,18 @@ class DistrhoUI3BandSplitter : public OpenGLUI,
{
public:
DistrhoUI3BandSplitter();
~DistrhoUI3BandSplitter();
~DistrhoUI3BandSplitter() override;

protected:

// ---------------------------------------------
// Information

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

unsigned int d_height() const
unsigned int d_height() const override
{
return DistrhoArtwork3BandSplitter::backgroundHeight;
}
@@ -56,24 +57,25 @@ protected:
// ---------------------------------------------
// DSP Callbacks

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

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

void imageButtonClicked(ImageButton* button, int);
void imageKnobDragStarted(ImageKnob* knob);
void imageKnobDragFinished(ImageKnob* knob);
void imageKnobValueChanged(ImageKnob* knob, float value);
void imageSliderDragStarted(ImageSlider* slider);
void imageSliderDragFinished(ImageSlider* slider);
void imageSliderValueChanged(ImageSlider* slider, float value);
void imageButtonClicked(ImageButton* button, int) override;
void imageKnobDragStarted(ImageKnob* knob) override;
void imageKnobDragFinished(ImageKnob* knob) override;
void imageKnobValueChanged(ImageKnob* knob, float value) override;
void imageSliderDragStarted(ImageSlider* slider) override;
void imageSliderDragFinished(ImageSlider* slider) override;
void imageSliderValueChanged(ImageSlider* slider, float value) override;

void onDisplay();
void onDisplay() override;

private:
Image fImgBackground;
ImageAboutWindow fAboutWindow;

ImageSlider* fSliderLow;
ImageSlider* fSliderMid;


+ 8541
- 7127
source/backend/native/nekobi/DistrhoArtworkNekobi.cpp
File diff suppressed because it is too large
View File


+ 16
- 6
source/backend/native/nekobi/DistrhoArtworkNekobi.hpp View File

@@ -5,6 +5,16 @@

namespace DistrhoArtworkNekobi
{
extern const char* aboutButtonHoverData;
const unsigned int aboutButtonHoverDataSize = 7600;
const unsigned int aboutButtonHoverWidth = 95;
const unsigned int aboutButtonHoverHeight = 20;

extern const char* aboutButtonNormalData;
const unsigned int aboutButtonNormalDataSize = 7600;
const unsigned int aboutButtonNormalWidth = 95;
const unsigned int aboutButtonNormalHeight = 20;

extern const char* backgroundData;
const unsigned int backgroundDataSize = 206064;
const unsigned int backgroundWidth = 636;
@@ -21,9 +31,9 @@ namespace DistrhoArtworkNekobi
const unsigned int claw2Height = 32;

extern const char* knobData;
const unsigned int knobDataSize = 288444;
const unsigned int knobWidth = 43;
const unsigned int knobHeight = 1677;
const unsigned int knobDataSize = 390000;
const unsigned int knobWidth = 50;
const unsigned int knobHeight = 1950;

extern const char* run1Data;
const unsigned int run1DataSize = 4096;
@@ -61,9 +71,9 @@ namespace DistrhoArtworkNekobi
const unsigned int sitHeight = 32;

extern const char* sliderData;
const unsigned int sliderDataSize = 4624;
const unsigned int sliderWidth = 34;
const unsigned int sliderHeight = 34;
const unsigned int sliderDataSize = 6084;
const unsigned int sliderWidth = 39;
const unsigned int sliderHeight = 39;

extern const char* tailData;
const unsigned int tailDataSize = 4096;


+ 37
- 22
source/backend/native/nekobi/DistrhoUINekobi.cpp View File

@@ -24,21 +24,25 @@ START_NAMESPACE_DISTRHO
// -------------------------------------------------

DistrhoUINekobi::DistrhoUINekobi()
: OpenGLUI()
: OpenGLUI(),
fAboutWindow(this)
{
Window* win = getParent();

// FIXME
fNeko.setTimerSpeed(4);

// background
fImgBackground = Image(DistrhoArtworkNekobi::backgroundData, DistrhoArtworkNekobi::backgroundWidth, DistrhoArtworkNekobi::backgroundHeight, GL_BGR);

// TODO - about png
Image imageAbout(DistrhoArtworkNekobi::aboutButtonHoverData, DistrhoArtworkNekobi::aboutButtonHoverWidth, DistrhoArtworkNekobi::aboutButtonHoverHeight, GL_BGRA);
fAboutWindow.setImage(imageAbout);

// slider
Image sliderImage(DistrhoArtworkNekobi::sliderData, DistrhoArtworkNekobi::sliderWidth, DistrhoArtworkNekobi::sliderHeight);

fSliderWaveform = new ImageSlider(win, sliderImage);
fSliderWaveform->setStartPos(135, 39);
fSliderWaveform->setEndPos(135, 65);
fSliderWaveform = new ImageSlider(this, sliderImage);
fSliderWaveform->setStartPos(133, 38);
fSliderWaveform->setEndPos(133, 64);
fSliderWaveform->setRange(0.0f, 1.0f);
fSliderWaveform->setValue(0.0f);
fSliderWaveform->setCallback(this);
@@ -47,53 +51,60 @@ DistrhoUINekobi::DistrhoUINekobi()
Image knobImage(DistrhoArtworkNekobi::knobData, DistrhoArtworkNekobi::knobWidth, DistrhoArtworkNekobi::knobHeight);

// knob Tuning
fKnobTuning = new ImageKnob(win, knobImage);
fKnobTuning->setPos(44, 46);
fKnobTuning = new ImageKnob(this, knobImage);
fKnobTuning->setPos(42, 45);
fKnobTuning->setRange(-12.0f, 12.0f);
fKnobTuning->setValue(0.0f);
fKnobTuning->setCallback(this);

// knob Cutoff
fKnobCutoff = new ImageKnob(win, knobImage);
fKnobCutoff->setPos(187, 46);
fKnobCutoff = new ImageKnob(this, knobImage);
fKnobCutoff->setPos(185, 45);
fKnobCutoff->setRange(0.0f, 100.0f);
fKnobCutoff->setValue(25.0f);
fKnobCutoff->setCallback(this);

// knob Resonance
fKnobResonance = new ImageKnob(win, knobImage);
fKnobResonance->setPos(260, 46);
fKnobResonance = new ImageKnob(this, knobImage);
fKnobResonance->setPos(258, 45);
fKnobResonance->setRange(0.0f, 95.0f);
fKnobResonance->setValue(25.0f);
fKnobResonance->setCallback(this);

// knob Env Mod
fKnobEnvMod = new ImageKnob(win, knobImage);
fKnobEnvMod->setPos(332, 46);
fKnobEnvMod = new ImageKnob(this, knobImage);
fKnobEnvMod->setPos(330, 45);
fKnobEnvMod->setRange(0.0f, 100.0f);
fKnobEnvMod->setValue(50.0f);
fKnobEnvMod->setCallback(this);

// knob Decay
fKnobDecay = new ImageKnob(win, knobImage);
fKnobDecay->setPos(404, 46);
fKnobDecay = new ImageKnob(this, knobImage);
fKnobDecay->setPos(402, 45);
fKnobDecay->setRange(0.0f, 100.0f);
fKnobDecay->setValue(75.0f);
fKnobDecay->setCallback(this);

// knob Accent
fKnobAccent = new ImageKnob(win, knobImage);
fKnobAccent->setPos(476, 46);
fKnobAccent = new ImageKnob(this, knobImage);
fKnobAccent->setPos(474, 45);
fKnobAccent->setRange(0.0f, 100.0f);
fKnobAccent->setValue(25.0f);
fKnobAccent->setCallback(this);

// knob Volume
fKnobVolume = new ImageKnob(win, knobImage);
fKnobVolume->setPos(548, 46);
fKnobVolume = new ImageKnob(this, knobImage);
fKnobVolume->setPos(546, 45);
fKnobVolume->setRange(0.0f, 100.0f);
fKnobVolume->setValue(75.0f);
fKnobVolume->setCallback(this);

// about button
Image aboutImageNormal(DistrhoArtworkNekobi::aboutButtonNormalData, DistrhoArtworkNekobi::aboutButtonNormalWidth, DistrhoArtworkNekobi::aboutButtonNormalHeight);
Image aboutImageHover(DistrhoArtworkNekobi::aboutButtonHoverData, DistrhoArtworkNekobi::aboutButtonHoverWidth, DistrhoArtworkNekobi::aboutButtonHoverHeight);
fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover);
fButtonAbout->setPos(500, 5);
fButtonAbout->setCallback(this);
}

DistrhoUINekobi::~DistrhoUINekobi()
@@ -106,6 +117,7 @@ DistrhoUINekobi::~DistrhoUINekobi()
delete fKnobDecay;
delete fKnobAccent;
delete fKnobVolume;
delete fButtonAbout;
}

// -------------------------------------------------
@@ -155,7 +167,7 @@ void DistrhoUINekobi::d_programChanged(uint32_t index)
fKnobEnvMod->setValue(50.0f);
fKnobDecay->setValue(75.0f);
fKnobAccent->setValue(25.0f);
fKnobVolume->setValue(50.0f);
fKnobVolume->setValue(75.0f);
}

void DistrhoUINekobi::d_noteReceived(bool onOff, uint8_t, uint8_t note, uint8_t)
@@ -180,7 +192,10 @@ void DistrhoUINekobi::d_uiIdle()

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

fAboutWindow.exec();
}

void DistrhoUINekobi::imageKnobDragStarted(ImageKnob* knob)


+ 4
- 0
source/backend/native/nekobi/DistrhoUINekobi.hpp View File

@@ -19,6 +19,8 @@
#define __DISTRHO_UI_3BANDEQ_HPP__

#include "DistrhoUIOpenGL.hpp"

#include "dgl/ImageAboutWindow.hpp"
#include "dgl/ImageButton.hpp"
#include "dgl/ImageKnob.hpp"
#include "dgl/ImageSlider.hpp"
@@ -91,7 +93,9 @@ private:
ImageKnob* fKnobAccent;
ImageKnob* fKnobVolume;

ImageButton* fButtonAbout;
ImageSlider* fSliderWaveform;
ImageAboutWindow fAboutWindow;
};

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


BIN
source/backend/native/nekobi/artwork/aboutButtonHover.png View File

Before After
Width: 95  |  Height: 20  |  Size: 6.3KB

BIN
source/backend/native/nekobi/artwork/aboutButtonNormal.png View File

Before After
Width: 95  |  Height: 20  |  Size: 6.3KB

BIN
source/backend/native/nekobi/artwork/background.png View File

Before After
Width: 636  |  Height: 108  |  Size: 42KB Width: 636  |  Height: 108  |  Size: 41KB

BIN
source/backend/native/nekobi/artwork/knob.png View File

Before After
Width: 43  |  Height: 1677  |  Size: 21KB Width: 50  |  Height: 1950  |  Size: 21KB

BIN
source/backend/native/nekobi/artwork/slider.png View File

Before After
Width: 34  |  Height: 34  |  Size: 3.8KB Width: 39  |  Height: 39  |  Size: 4.1KB

+ 8
- 8
source/backend/native/notes/DistrhoUINotes.hpp View File

@@ -46,23 +46,23 @@ class DistrhoUINotes : public QtUI

public:
DistrhoUINotes();
~DistrhoUINotes();
~DistrhoUINotes() override;

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

bool d_resizable()
bool d_resizable() const override
{
return true;
}

uint d_minimumWidth()
uint d_minimumWidth() const override
{
return 180;
}

uint d_minimumHeight()
uint d_minimumHeight() const override
{
return 150;
}
@@ -70,18 +70,18 @@ protected:
// ---------------------------------------------
// DSP Callbacks

void d_parameterChanged(uint32_t index, float value);
void d_stateChanged(const char* key, const char* value);
void d_parameterChanged(uint32_t index, float value) override;
void d_stateChanged(const char* key, const char* value) override;

// ---------------------------------------------
// UI Callbacks

void d_uiIdle();
void d_uiIdle() override;

// ---------------------------------------------
// listen for resize events

void resizeEvent(QResizeEvent*);
void resizeEvent(QResizeEvent*) override;

private slots:
void buttonClicked(bool click);


+ 10822
- 10969
source/backend/native/pingpongpan/DistrhoArtworkPingPongPan.cpp
File diff suppressed because it is too large
View File


+ 6
- 6
source/backend/native/pingpongpan/DistrhoArtworkPingPongPan.hpp View File

@@ -21,14 +21,14 @@ namespace DistrhoArtworkPingPongPan
const unsigned int aboutButtonNormalHeight = 20;

extern const char* backgroundData;
const unsigned int backgroundDataSize = 150552;
const unsigned int backgroundWidth = 369;
const unsigned int backgroundHeight = 136;
const unsigned int backgroundDataSize = 157080;
const unsigned int backgroundWidth = 308;
const unsigned int backgroundHeight = 170;

extern const char* knobData;
const unsigned int knobDataSize = 721344;
const unsigned int knobWidth = 68;
const unsigned int knobHeight = 2652;
const unsigned int knobDataSize = 700284;
const unsigned int knobWidth = 67;
const unsigned int knobHeight = 2613;
}

#endif // BINARY_DISTRHOARTWORKPINGPONGPAN_HPP


+ 13
- 12
source/backend/native/pingpongpan/DistrhoUIPingPongPan.cpp View File

@@ -23,26 +23,29 @@ START_NAMESPACE_DISTRHO
// -------------------------------------------------

DistrhoUIPingPongPan::DistrhoUIPingPongPan()
: OpenGLUI()
: OpenGLUI(),
fAboutWindow(this)
{
Window* win = getParent();

// background
fImgBackground = Image(DistrhoArtworkPingPongPan::backgroundData, DistrhoArtworkPingPongPan::backgroundWidth, DistrhoArtworkPingPongPan::backgroundHeight, GL_BGR);

// TODO - about png
Image imageAbout(DistrhoArtworkPingPongPan::aboutButtonHoverData, DistrhoArtworkPingPongPan::aboutButtonHoverWidth, DistrhoArtworkPingPongPan::aboutButtonHoverHeight, GL_BGRA);
fAboutWindow.setImage(imageAbout);

// knobs
Image knobImage(DistrhoArtworkPingPongPan::knobData, DistrhoArtworkPingPongPan::knobWidth, DistrhoArtworkPingPongPan::knobHeight);

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

// knob Mid-High
fKnobWidth = new ImageKnob(win, knobImage);
fKnobWidth->setPos(258, 30);
fKnobWidth = new ImageKnob(this, knobImage);
fKnobWidth->setPos(183, 59);
fKnobWidth->setRange(0.0f, 100.0f);
fKnobWidth->setValue(75.0f);
fKnobWidth->setCallback(this);
@@ -50,8 +53,8 @@ DistrhoUIPingPongPan::DistrhoUIPingPongPan()
// about button
Image aboutImageNormal(DistrhoArtworkPingPongPan::aboutButtonNormalData, DistrhoArtworkPingPongPan::aboutButtonNormalWidth, DistrhoArtworkPingPongPan::aboutButtonNormalHeight);
Image aboutImageHover(DistrhoArtworkPingPongPan::aboutButtonHoverData, DistrhoArtworkPingPongPan::aboutButtonHoverWidth, DistrhoArtworkPingPongPan::aboutButtonHoverHeight);
fButtonAbout = new ImageButton(win, aboutImageNormal, aboutImageHover, aboutImageHover);
fButtonAbout->setPos(25, 23);
fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover);
fButtonAbout->setPos(183, 8);
fButtonAbout->setCallback(this);
}

@@ -96,9 +99,7 @@ void DistrhoUIPingPongPan::imageButtonClicked(ImageButton* button, int)
if (button != fButtonAbout)
return;

Image imageAbout(DistrhoArtworkPingPongPan::aboutData, DistrhoArtworkPingPongPan::aboutWidth, DistrhoArtworkPingPongPan::aboutHeight, GL_BGR);
ImageAboutWindow aboutWindow(getApp(), getParent(), imageAbout);
aboutWindow.exec();
fAboutWindow.exec();
}

void DistrhoUIPingPongPan::imageKnobDragStarted(ImageKnob* knob)


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

@@ -18,6 +18,8 @@
#define __DISTRHO_UI_PINGPONGPAN_HPP__

#include "DistrhoUIOpenGL.hpp"

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

@@ -34,19 +36,19 @@ class DistrhoUIPingPongPan : public OpenGLUI,
{
public:
DistrhoUIPingPongPan();
~DistrhoUIPingPongPan();
~DistrhoUIPingPongPan() override;

protected:

// ---------------------------------------------
// Information

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

unsigned int d_height() const
unsigned int d_height() const override
{
return DistrhoArtworkPingPongPan::backgroundHeight;
}
@@ -54,21 +56,22 @@ protected:
// ---------------------------------------------
// DSP Callbacks

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

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

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

void onDisplay();
void onDisplay() override;

private:
Image fImgBackground;
ImageAboutWindow fAboutWindow;

ImageKnob* fKnobFreq;
ImageKnob* fKnobWidth;


BIN
source/backend/native/pingpongpan/artwork/background.png View File

Before After
Width: 369  |  Height: 136  |  Size: 48KB Width: 308  |  Height: 170  |  Size: 69KB

BIN
source/backend/native/pingpongpan/artwork/knob.png View File

Before After
Width: 68  |  Height: 2652  |  Size: 170KB Width: 67  |  Height: 2613  |  Size: 172KB

+ 11
- 11
source/backend/native/stereoenhancer/DistrhoUIStereoEnhancer.cpp View File

@@ -23,29 +23,32 @@ START_NAMESPACE_DISTRHO
// -------------------------------------------------

DistrhoUIStereoEnhancer::DistrhoUIStereoEnhancer()
: OpenGLUI()
: OpenGLUI(),
fAboutWindow(this)
{
Window* win = getParent();

// background
fImgBackground = Image(DistrhoArtworkStereoEnhancer::backgroundData, DistrhoArtworkStereoEnhancer::backgroundWidth, DistrhoArtworkStereoEnhancer::backgroundHeight, GL_BGR);

// TODO - about png
Image imageAbout(DistrhoArtworkStereoEnhancer::aboutButtonHoverData, DistrhoArtworkStereoEnhancer::aboutButtonHoverWidth, DistrhoArtworkStereoEnhancer::aboutButtonHoverHeight, GL_BGRA);
fAboutWindow.setImage(imageAbout);

// knobs
Image knobImage(DistrhoArtworkStereoEnhancer::knobData, DistrhoArtworkStereoEnhancer::knobWidth, DistrhoArtworkStereoEnhancer::knobHeight);

fKnobWidthLows = new ImageKnob(win, knobImage);
fKnobWidthLows = new ImageKnob(this, knobImage);
fKnobWidthLows->setPos(140, 35);
fKnobWidthLows->setRange(0.0f, 200.0f);
fKnobWidthLows->setValue(100.0f);
fKnobWidthLows->setCallback(this);

fKnobWidthHighs = new ImageKnob(win, knobImage);
fKnobWidthHighs = new ImageKnob(this, knobImage);
fKnobWidthHighs->setPos(362, 35);
fKnobWidthHighs->setRange(0.0f, 200.0f);
fKnobWidthHighs->setValue(100.0f);
fKnobWidthHighs->setCallback(this);

fKnobCrossover = new ImageKnob(win, knobImage);
fKnobCrossover = new ImageKnob(this, knobImage);
fKnobCrossover->setPos(253, 35);
fKnobCrossover->setRange(0.0f, 100.0f);
fKnobCrossover->setValue(27.51604f);
@@ -54,7 +57,7 @@ DistrhoUIStereoEnhancer::DistrhoUIStereoEnhancer()
// about button
Image aboutImageNormal(DistrhoArtworkStereoEnhancer::aboutButtonNormalData, DistrhoArtworkStereoEnhancer::aboutButtonNormalWidth, DistrhoArtworkStereoEnhancer::aboutButtonNormalHeight);
Image aboutImageHover(DistrhoArtworkStereoEnhancer::aboutButtonHoverData, DistrhoArtworkStereoEnhancer::aboutButtonHoverWidth, DistrhoArtworkStereoEnhancer::aboutButtonHoverHeight);
fButtonAbout = new ImageButton(win, aboutImageNormal, aboutImageHover, aboutImageHover);
fButtonAbout = new ImageButton(this, aboutImageNormal, aboutImageHover, aboutImageHover);
fButtonAbout->setPos(346, 3);
fButtonAbout->setCallback(this);
}
@@ -105,10 +108,7 @@ void DistrhoUIStereoEnhancer::imageButtonClicked(ImageButton* button, int)
if (button != fButtonAbout)
return;

// TODO
//Image imageAbout(DistrhoArtworkStereoEnhancer::aboutData, DistrhoArtworkStereoEnhancer::aboutWidth, DistrhoArtworkStereoEnhancer::aboutHeight, GL_BGR);
//ImageAboutWindow aboutWindow(getApp(), getParent(), imageAbout);
//aboutWindow.exec();
fAboutWindow.exec();
}

void DistrhoUIStereoEnhancer::imageKnobDragStarted(ImageKnob* knob)


+ 13
- 10
source/backend/native/stereoenhancer/DistrhoUIStereoEnhancer.hpp View File

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

#include "DistrhoUIOpenGL.hpp"

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

@@ -34,18 +36,18 @@ class DistrhoUIStereoEnhancer : public OpenGLUI,
{
public:
DistrhoUIStereoEnhancer();
~DistrhoUIStereoEnhancer();
~DistrhoUIStereoEnhancer() override;

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

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

unsigned int d_height() const
unsigned int d_height() const override
{
return DistrhoArtworkStereoEnhancer::backgroundHeight;
}
@@ -53,21 +55,22 @@ protected:
// ---------------------------------------------
// DSP Callbacks

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

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

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

void onDisplay();
void onDisplay() override;

private:
Image fImgBackground;
ImageAboutWindow fAboutWindow;

ImageKnob* fKnobWidthLows;
ImageKnob* fKnobWidthHighs;


+ 3
- 3
source/libs/distrho/DistrhoUIQt.hpp View File

@@ -48,9 +48,9 @@ protected:
// ---------------------------------------------
// Information

virtual bool d_resizable() { return false; }
virtual uint d_minimumWidth() { return 100; }
virtual uint d_minimumHeight() { return 100; }
virtual bool d_resizable() const { return false; }
virtual uint d_minimumWidth() const { return 100; }
virtual uint d_minimumHeight() const { return 100; }

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


+ 3
- 3
source/libs/distrho/dgl/ImageAboutWindow.hpp View File

@@ -41,9 +41,9 @@ public:
void setImage(const Image& image);

protected:
void onDisplay();
bool onMouse(int button, bool press, int x, int y);
bool onKeyboard(bool press, uint32_t key);
void onDisplay() override;
bool onMouse(int button, bool press, int x, int y) override;
bool onKeyboard(bool press, uint32_t key) override;

private:
Image fImgBackground;


+ 5
- 3
source/libs/distrho/dgl/ImageButton.hpp View File

@@ -35,15 +35,17 @@ public:
};

ImageButton(Window* parent, const Image& image);
ImageButton(Widget* widget, const Image& image);
ImageButton(Window* parent, const Image& imageNormal, const Image& imageHover, const Image& imageDown);
ImageButton(Widget* widget, const Image& imageNormal, const Image& imageHover, const Image& imageDown);
ImageButton(const ImageButton& imageButton);

void setCallback(Callback* callback);

protected:
void onDisplay();
bool onMouse(int button, bool press, int x, int y);
bool onMotion(int x, int y);
void onDisplay() override;
bool onMouse(int button, bool press, int x, int y) override;
bool onMotion(int x, int y) override;

private:
Image fImageNormal;


+ 4
- 3
source/libs/distrho/dgl/ImageKnob.hpp View File

@@ -42,6 +42,7 @@ public:
};

ImageKnob(Window* parent, const Image& image, Orientation orientation = Vertical);
ImageKnob(Widget* widget, const Image& image, Orientation orientation = Vertical);
ImageKnob(const ImageKnob& imageKnob);

float getValue() const;
@@ -53,9 +54,9 @@ public:
void setCallback(Callback* callback);

protected:
void onDisplay();
bool onMouse(int button, bool press, int x, int y);
bool onMotion(int x, int y);
void onDisplay() override;
bool onMouse(int button, bool press, int x, int y) override;
bool onMotion(int x, int y) override;

private:
Image fImage;


+ 4
- 3
source/libs/distrho/dgl/ImageSlider.hpp View File

@@ -37,6 +37,7 @@ public:
};

ImageSlider(Window* parent, const Image& image);
ImageSlider(Widget* widget, const Image& image);
ImageSlider(const ImageSlider& imageSlider);

float getValue() const;
@@ -52,9 +53,9 @@ public:
void setCallback(Callback* callback);

protected:
void onDisplay();
bool onMouse(int button, bool press, int x, int y);
bool onMotion(int x, int y);
void onDisplay() override;
bool onMouse(int button, bool press, int x, int y) override;
bool onMotion(int x, int y) override;

private:
Image fImage;


+ 8
- 6
source/libs/distrho/dgl/Makefile View File

@@ -22,10 +22,6 @@ OBJS = \
src/Widget.cpp.o \
src/Window.cpp.o

ifeq ($(MACOS),true)
OBJS += src/pugl/pugl_osx.m.o
endif

OBJS_posix32 = \
src/App.cpp.posix32.o \
src/Image.cpp.posix32.o \
@@ -70,6 +66,12 @@ OBJS_win64 = \
src/Widget.cpp.win64.o \
src/Window.cpp.win64.o

ifeq ($(MACOS),true)
OBJS += src/pugl/pugl_osx_extended.m.o
OBJS_posix32 += src/pugl/pugl_osx_extended.m.posix32.o
OBJS_posix64 += src/pugl/pugl_osx_extended.m.posix64.o
endif

# --------------------------------------------------------------

all: ../../dgl.a
@@ -100,10 +102,10 @@ win64: ../../dgl.win64.a
$(CXX) $^ -shared $(LINK_FLAGS) -lopengl32 -lgdi32 -o $@

../../dgl.dylib: $(OBJS)
$(CXX) $^ -shared $(LINK_FLAGS) -framework Cocoa -framework OpenGL -o $@
$(CXX) $^ -shared $(LINK_FLAGS) -framework OpenGL -framework Cocoa -o $@

../../dgl.so: $(OBJS)
$(CXX) $^ -shared $(LINK_FLAGS) -lX11 -lGL -lGLU -o $@
$(CXX) $^ -shared $(LINK_FLAGS) -lGL -lX11 -o $@

# --------------------------------------------------------------



+ 25
- 0
source/libs/distrho/dgl/src/ImageButton.cpp View File

@@ -33,6 +33,17 @@ ImageButton::ImageButton(Window* parent, const Image& image)
{
}

ImageButton::ImageButton(Widget* widget, const Image& image)
: Widget(widget->getParent()),
fImageNormal(image),
fImageHover(image),
fImageDown(image),
fCurImage(&fImageNormal),
fCurButton(-1),
fCallback(nullptr)
{
}

ImageButton::ImageButton(Window* parent, const Image& imageNormal, const Image& imageHover, const Image& imageDown)
: Widget(parent),
fImageNormal(imageNormal),
@@ -47,6 +58,20 @@ ImageButton::ImageButton(Window* parent, const Image& imageNormal, const Image&
setSize(fCurImage->getSize());
}

ImageButton::ImageButton(Widget* widget, const Image& imageNormal, const Image& imageHover, const Image& imageDown)
: Widget(widget->getParent()),
fImageNormal(imageNormal),
fImageHover(imageHover),
fImageDown(imageDown),
fCurImage(&fImageNormal),
fCurButton(-1),
fCallback(nullptr)
{
assert(fImageNormal.getSize() == fImageHover.getSize() && fImageHover.getSize() == fImageDown.getSize());

setSize(fCurImage->getSize());
}

ImageButton::ImageButton(const ImageButton& imageButton)
: Widget(imageButton.getParent()),
fImageNormal(imageButton.fImageNormal),


+ 19
- 0
source/libs/distrho/dgl/src/ImageKnob.cpp View File

@@ -39,6 +39,25 @@ ImageKnob::ImageKnob(Window* parent, const Image& image, Orientation orientation
setSize(fImgLayerSize, fImgLayerSize);
}

ImageKnob::ImageKnob(Widget* widget, const Image& image, Orientation orientation)
: Widget(widget->getParent()),
fImage(image),
fMinimum(0.0f),
fMaximum(1.0f),
fValue(0.5f),
fOrientation(orientation),
fDragging(false),
fLastX(0),
fLastY(0),
fCallback(nullptr),
fIsImgVertical(image.getHeight() > image.getWidth()),
fImgLayerSize(fIsImgVertical ? image.getWidth() : image.getHeight()),
fImgLayerCount(fIsImgVertical ? image.getHeight()/fImgLayerSize : image.getWidth()/fImgLayerSize),
fKnobArea(0, 0, fImgLayerSize, fImgLayerSize)
{
setSize(fImgLayerSize, fImgLayerSize);
}

ImageKnob::ImageKnob(const ImageKnob& imageKnob)
: Widget(imageKnob.getParent()),
fImage(imageKnob.fImage),


+ 14
- 0
source/libs/distrho/dgl/src/ImageSlider.cpp View File

@@ -34,6 +34,20 @@ ImageSlider::ImageSlider(Window* parent, const Image& image)
setSize(fImage.getSize());
}

ImageSlider::ImageSlider(Widget* widget, const Image& image)
: Widget(widget->getParent()),
fImage(image),
fMinimum(0.0f),
fMaximum(1.0f),
fValue(0.5f),
fDragging(false),
fStartedX(0),
fStartedY(0),
fCallback(nullptr)
{
setSize(fImage.getSize());
}

ImageSlider::ImageSlider(const ImageSlider& imageSlider)
: Widget(imageSlider.getParent()),
fImage(imageSlider.fImage),


+ 11
- 1
source/libs/distrho/dgl/src/Window.cpp View File

@@ -24,7 +24,9 @@
#if DGL_OS_WINDOWS
# include "pugl/pugl_win.cpp"
#elif DGL_OS_MAC
// compiled separately
extern "C" {
# include "pugl/pugl_osx_extended.h"
}
#elif DGL_OS_LINUX
extern "C" {
# include "pugl/pugl_x11.c"
@@ -191,6 +193,8 @@ public:
SetForegroundWindow(hwnd);
SetActiveWindow(hwnd);
SetFocus(hwnd);
#elif DGL_OS_MAC
puglImplFocus(kView);
#elif DGL_OS_LINUX
XRaiseWindow(xDisplay, xWindow);
XSetInputFocus(xDisplay, xWindow, RevertToPointerRoot, CurrentTime);
@@ -261,6 +265,8 @@ public:
}

UpdateWindow(hwnd);
#elif DGL_OS_MAC
puglImplSetVisible(kView, yesNo);
#elif DGL_OS_LINUX
if (yesNo)
XMapRaised(xDisplay, xWindow);
@@ -297,6 +303,8 @@ public:

SetWindowPos(hwnd, 0, 0, 0, wr.right-wr.left, wr.bottom-wr.top, SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOOWNERZORDER|SWP_NOZORDER);
UpdateWindow(hwnd);
#elif DGL_OS_MAC
puglImplSetSize(kView, width, height);
#elif DGL_OS_LINUX
// TODO - handle fResizable
XSizeHints sizeHints;
@@ -318,6 +326,8 @@ public:
{
#if DGL_OS_WINDOWS
SetWindowTextA(hwnd, title);
#elif DGL_OS_MAC
puglImplSetTitle(kView, title);
#elif DGL_OS_LINUX
XStoreName(xDisplay, xWindow, title);
XFlush(xDisplay);


+ 29
- 0
source/libs/distrho/dgl/src/pugl/pugl_osx_extended.h View File

@@ -0,0 +1,29 @@
/*
Copyright 2012 David Robillard <http://drobilla.net>
Copyright 2013 Fil...

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

/**
@file pugl_osx_extended.h Extended OSX/Cocoa Pugl Implementation.
*/

#include <stdbool.h>

#include "pugl.h"

void puglImplFocus(PuglView* view);
void puglImplSetSize(PuglView* view, unsigned int width, unsigned int height);
void puglImplSetTitle(PuglView* view, const char* title);
void puglImplSetVisible(PuglView* view, bool yesNo);

+ 65
- 0
source/libs/distrho/dgl/src/pugl/pugl_osx_extended.m View File

@@ -0,0 +1,65 @@
/*
Copyright 2012 David Robillard <http://drobilla.net>
Copyright 2013 Fil...

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/

/**
@file pugl_osx_extended.m Extended OSX/Cocoa Pugl Implementation.
*/

#import "pugl_osx.m"

#include "pugl_osx_extended.h"

void puglImplFocus(PuglView* view)
{
// TODO
}

void puglImplSetSize(PuglView* view, unsigned int width, unsigned int height)
{
id window = view->impl->window;

// TODO
// NSRect frame = [window frame];
// frame.size.width = width;
// frame.size.height = height;

// display:NO ?
// [window setFrame:frame display:YES animate:NO];
}

void puglImplSetTitle(PuglView* view, const char* title)
{
id window = view->impl->window;
NSString* titleString = [[NSString alloc]
initWithBytes:title
length:strlen(title)
encoding:NSUTF8StringEncoding];

[window setTitle:titleString];
}

void puglImplSetVisible(PuglView* view, bool yesNo)
{
id window = view->impl->window;

if (yesNo) {
[window setIsVisible:YES];
} else {
[window setIsVisible:NO];
}
}

Loading…
Cancel
Save