Browse Source

Update DPF and Nekobi

tags/v1.0
falkTX 9 years ago
parent
commit
dfabbb87ce
8 changed files with 67 additions and 32 deletions
  1. +26
    -10
      dpf/dgl/src/Window.cpp
  2. +8
    -8
      dpf/dgl/src/nanovg/stb_image.h
  3. +4
    -2
      dpf/dgl/src/pugl/pugl.h
  4. +16
    -3
      dpf/dgl/src/pugl/pugl_x11.c
  5. +10
    -3
      dpf/distrho/src/DistrhoPluginJack.cpp
  6. +1
    -1
      get-plugins.sh
  7. +1
    -1
      plugins/Nekobi/DistrhoPluginNekobi.cpp
  8. +1
    -4
      plugins/Nekobi/DistrhoUINekobi.hpp

+ 26
- 10
dpf/dgl/src/Window.cpp View File

@@ -264,6 +264,12 @@ struct Window::PrivateData {
fView = nullptr;
}

if (fTitle != nullptr)
{
std::free(fTitle);
fTitle = nullptr;
}

#if defined(DISTRHO_OS_WINDOWS)
hwnd = 0;
#elif defined(DISTRHO_OS_MAC)
@@ -677,12 +683,15 @@ struct Window::PrivateData {
fSelf->onDisplayAfter();
}

void onPuglKeyboard(const bool press, const uint key)
int onPuglKeyboard(const bool press, const uint key)
{
DBGp("PUGL: onKeyboard : %i %i\n", press, key);

if (fModal.childFocus != nullptr)
return fModal.childFocus->focus();
{
fModal.childFocus->focus();
return 0;
}

Widget::KeyboardEvent ev;
ev.press = press;
@@ -695,16 +704,21 @@ struct Window::PrivateData {
Widget* const widget(*rit);

if (widget->isVisible() && widget->onKeyboard(ev))
break;
return 0;
}

return 1;
}

void onPuglSpecial(const bool press, const Key key)
int onPuglSpecial(const bool press, const Key key)
{
DBGp("PUGL: onSpecial : %i %i\n", press, key);

if (fModal.childFocus != nullptr)
return fModal.childFocus->focus();
{
fModal.childFocus->focus();
return 0;
}

Widget::SpecialEvent ev;
ev.press = press;
@@ -717,8 +731,10 @@ struct Window::PrivateData {
Widget* const widget(*rit);

if (widget->isVisible() && widget->onSpecial(ev))
break;
return 0;
}

return 1;
}

void onPuglMouse(const int button, const bool press, const int x, const int y)
@@ -889,14 +905,14 @@ struct Window::PrivateData {
handlePtr->onPuglDisplay();
}

static void onKeyboardCallback(PuglView* view, bool press, uint32_t key)
static int onKeyboardCallback(PuglView* view, bool press, uint32_t key)
{
handlePtr->onPuglKeyboard(press, key);
return handlePtr->onPuglKeyboard(press, key);
}

static void onSpecialCallback(PuglView* view, bool press, PuglKey key)
static int onSpecialCallback(PuglView* view, bool press, PuglKey key)
{
handlePtr->onPuglSpecial(press, static_cast<Key>(key));
return handlePtr->onPuglSpecial(press, static_cast<Key>(key));
}

static void onMouseCallback(PuglView* view, int button, bool press, int x, int y)


+ 8
- 8
dpf/dgl/src/nanovg/stb_image.h View File

@@ -2280,13 +2280,13 @@ static void stbi__init_zdefaults(void)

static int stbi__parse_zlib(stbi__zbuf *a, int parse_header)
{
int final, type;
int final_, type;
if (parse_header)
if (!stbi__parse_zlib_header(a)) return 0;
a->num_bits = 0;
a->code_buffer = 0;
do {
final = stbi__zreceive(a,1);
final_ = stbi__zreceive(a,1);
type = stbi__zreceive(a,2);
if (type == 0) {
if (!stbi__parse_uncomperssed_block(a)) return 0;
@@ -2303,7 +2303,7 @@ static int stbi__parse_zlib(stbi__zbuf *a, int parse_header)
}
if (!stbi__parse_huffman_block(a)) return 0;
}
} while (!final);
} while (!final_);
return 1;
}

@@ -2535,13 +2535,13 @@ static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 r

static int stbi__create_png_image(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_len, int out_n, int interlaced)
{
stbi_uc *final;
stbi_uc *final_;
int p;
if (!interlaced)
return stbi__create_png_image_raw(a, raw, raw_len, out_n, a->s->img_x, a->s->img_y);

// de-interlacing
final = (stbi_uc *) malloc(a->s->img_x * a->s->img_y * out_n);
final_ = (stbi_uc *) malloc(a->s->img_x * a->s->img_y * out_n);
for (p=0; p < 7; ++p) {
int xorig[] = { 0,4,0,2,0,1,0 };
int yorig[] = { 0,0,4,0,2,0,1 };
@@ -2553,19 +2553,19 @@ static int stbi__create_png_image(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_l
y = (a->s->img_y - yorig[p] + yspc[p]-1) / yspc[p];
if (x && y) {
if (!stbi__create_png_image_raw(a, raw, raw_len, out_n, x, y)) {
free(final);
free(final_);
return 0;
}
for (j=0; j < y; ++j)
for (i=0; i < x; ++i)
memcpy(final + (j*yspc[p]+yorig[p])*a->s->img_x*out_n + (i*xspc[p]+xorig[p])*out_n,
memcpy(final_ + (j*yspc[p]+yorig[p])*a->s->img_x*out_n + (i*xspc[p]+xorig[p])*out_n,
a->out + (j*x+i)*out_n, out_n);
free(a->out);
raw += (x*out_n+1)*y;
raw_len -= (x*out_n+1)*y;
}
}
a->out = final;
a->out = final_;

return 1;
}


+ 4
- 2
dpf/dgl/src/pugl/pugl.h View File

@@ -74,8 +74,9 @@ typedef void (*PuglDisplayFunc)(PuglView* view);
@param view The view the event occured in.
@param press True if the key was pressed, false if released.
@param key Unicode point of the key pressed.
@return 0 if event was handled, otherwise send event to parent window.
*/
typedef void (*PuglKeyboardFunc)(PuglView* view, bool press, uint32_t key);
typedef int (*PuglKeyboardFunc)(PuglView* view, bool press, uint32_t key);

/**
A function called when the pointer moves.
@@ -129,8 +130,9 @@ typedef void (*PuglScrollFunc)(PuglView* view, int x, int y, float dx, float dy)
@param view The view the event occured in.
@param press True if the key was pressed, false if released.
@param key The key pressed.
@return 0 if event was handled, otherwise send event to parent window.
*/
typedef void (*PuglSpecialFunc)(PuglView* view, bool press, PuglKey key);
typedef int (*PuglSpecialFunc)(PuglView* view, bool press, PuglKey key);

/**
A function called when a filename is selected via file-browser.


+ 16
- 3
dpf/dgl/src/pugl/pugl_x11.c View File

@@ -430,6 +430,7 @@ dispatchKey(PuglView* view, XEvent* event, bool press)
{
KeySym sym;
char str[5];
PuglKey special;
const int n = XLookupString(&event->xkey, str, 4, &sym, NULL);

if (sym == XK_Escape && view->closeFunc && !press && !view->parent) {
@@ -438,18 +439,30 @@ dispatchKey(PuglView* view, XEvent* event, bool press)
return;
}
if (n == 0) {
goto send_event;
return;
}
if (n > 1) {
fprintf(stderr, "warning: Unsupported multi-byte key %X\n", (int)sym);
goto send_event;
return;
}

const PuglKey special = keySymToSpecial(sym);
special = keySymToSpecial(sym);
if (special && view->specialFunc) {
view->specialFunc(view, press, special);
if (view->specialFunc(view, press, special) == 0) {
return;
}
} else if (!special && view->keyboardFunc) {
view->keyboardFunc(view, press, str[0]);
if (view->keyboardFunc(view, press, str[0]) == 0) {
return;
}
}

send_event:
if (view->parent) {
event->xany.window = view->parent;
XSendEvent(view->impl->display, view->parent, True, press ? KeyPressMask : KeyReleaseMask, event);
}
}



+ 10
- 3
dpf/distrho/src/DistrhoPluginJack.cpp View File

@@ -184,13 +184,20 @@ public:

~PluginJack()
{
if (fClient == nullptr)
return;
if (fClient != nullptr)
jack_deactivate(fClient);

jack_deactivate(fClient);
if (fLastOutputValues != nullptr)
{
delete[] fLastOutputValues;
fLastOutputValues = nullptr;
}

fPlugin.deactivate();

if (fClient == nullptr)
return;

#if DISTRHO_PLUGIN_IS_SYNTH
jack_port_unregister(fClient, fPortMidiIn);
fPortMidiIn = nullptr;


+ 1
- 1
get-plugins.sh View File

@@ -2,7 +2,7 @@

set -e

PLUGINS=("Mini-Series" "MVerb" "Nekobi" "ProM" "ndc-Plugs")
PLUGINS=("Kars" "Mini-Series" "MVerb" "Nekobi" "ProM" "ndc-Plugs")

if [ ! -f Makefile ]; then
echo "Makefile not found, please run this script from DPF-Plugins root source dir"


+ 1
- 1
plugins/Nekobi/DistrhoPluginNekobi.cpp View File

@@ -163,7 +163,7 @@ void DistrhoPluginNekobi::initParameter(uint32_t index, Parameter& parameter)
switch (index)
{
case paramWaveform:
parameter.hints = kParameterIsAutomable|kParameterIsBoolean;
parameter.hints = kParameterIsAutomable|kParameterIsInteger;
parameter.name = "Waveform";
parameter.symbol = "waveform";
parameter.ranges.def = 0.0f;


+ 1
- 4
plugins/Nekobi/DistrhoUINekobi.hpp View File

@@ -20,10 +20,7 @@

#include "DistrhoUI.hpp"

#include "ImageAboutWindow.hpp"
#include "ImageButton.hpp"
#include "ImageKnob.hpp"
#include "ImageSlider.hpp"
#include "ImageWidgets.hpp"

#include "DistrhoArtworkNekobi.hpp"
#include "NekoWidget.hpp"


Loading…
Cancel
Save