@@ -21,6 +21,11 @@ ifeq ($(HAVE_DGL),true) | |||||
endif | endif | ||||
plugins: libs | plugins: libs | ||||
# glBars (needs OpenGL) | |||||
ifeq ($(HAVE_DGL),true) | |||||
$(MAKE) all -C plugins/glBars | |||||
endif | |||||
# Kars | # Kars | ||||
$(MAKE) all -C plugins/Kars | $(MAKE) all -C plugins/Kars | ||||
@@ -40,7 +45,7 @@ plugins: libs | |||||
# Nekobi | # Nekobi | ||||
$(MAKE) all -C plugins/Nekobi | $(MAKE) all -C plugins/Nekobi | ||||
# ProM (needs DGL + ProjectM) | |||||
# ProM (needs OpenGL + ProjectM) | |||||
ifeq ($(HAVE_DGL),true) | ifeq ($(HAVE_DGL),true) | ||||
ifeq ($(HAVE_PROJM),true) | ifeq ($(HAVE_PROJM),true) | ||||
$(MAKE) all -C plugins/ProM | $(MAKE) all -C plugins/ProM | ||||
@@ -70,6 +75,9 @@ ifeq ($(HAVE_DGL),true) | |||||
endif | endif | ||||
$(MAKE) clean -C dpf/utils/lv2-ttl-generator | $(MAKE) clean -C dpf/utils/lv2-ttl-generator | ||||
# glBars | |||||
$(MAKE) clean -C plugins/glBars | |||||
# Kars | # Kars | ||||
$(MAKE) clean -C plugins/Kars | $(MAKE) clean -C plugins/Kars | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,23 +0,0 @@ | |||||
/* | |||||
* DISTRHO Plugin Framework (DPF) | |||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* 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. | |||||
* | |||||
* THE 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. | |||||
*/ | |||||
#ifndef DGL_IMAGE_ABOUT_WINDOW_HPP_INCLUDED | |||||
#define DGL_IMAGE_ABOUT_WINDOW_HPP_INCLUDED | |||||
#warning This is a deprecated file, please include ImageWidgets.hpp instead. | |||||
#include "ImageWidgets.hpp" | |||||
#endif // DGL_IMAGE_ABOUT_WINDOW_HPP_INCLUDED |
@@ -1,23 +0,0 @@ | |||||
/* | |||||
* DISTRHO Plugin Framework (DPF) | |||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* 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. | |||||
* | |||||
* THE 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. | |||||
*/ | |||||
#ifndef DGL_IMAGE_BUTTON_HPP_INCLUDED | |||||
#define DGL_IMAGE_BUTTON_HPP_INCLUDED | |||||
#warning This is a deprecated file, please include ImageWidgets.hpp instead. | |||||
#include "ImageWidgets.hpp" | |||||
#endif // DGL_IMAGE_BUTTON_HPP_INCLUDED |
@@ -1,23 +0,0 @@ | |||||
/* | |||||
* DISTRHO Plugin Framework (DPF) | |||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* 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. | |||||
* | |||||
* THE 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. | |||||
*/ | |||||
#ifndef DGL_IMAGE_KNOB_HPP_INCLUDED | |||||
#define DGL_IMAGE_KNOB_HPP_INCLUDED | |||||
#warning This is a deprecated file, please include ImageWidgets.hpp instead. | |||||
#include "ImageWidgets.hpp" | |||||
#endif // DGL_IMAGE_KNOB_HPP_INCLUDED |
@@ -1,23 +0,0 @@ | |||||
/* | |||||
* DISTRHO Plugin Framework (DPF) | |||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* 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. | |||||
* | |||||
* THE 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. | |||||
*/ | |||||
#ifndef DGL_IMAGE_SLIDER_HPP_INCLUDED | |||||
#define DGL_IMAGE_SLIDER_HPP_INCLUDED | |||||
#warning This is a deprecated file, please include ImageWidgets.hpp instead. | |||||
#include "ImageWidgets.hpp" | |||||
#endif // DGL_IMAGE_SLIDER_HPP_INCLUDED |
@@ -1,23 +0,0 @@ | |||||
/* | |||||
* DISTRHO Plugin Framework (DPF) | |||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* 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. | |||||
* | |||||
* THE 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. | |||||
*/ | |||||
#ifndef DGL_IMAGE_SWITCH_HPP_INCLUDED | |||||
#define DGL_IMAGE_SWITCH_HPP_INCLUDED | |||||
#warning This is a deprecated file, please include ImageWidgets.hpp instead. | |||||
#include "ImageWidgets.hpp" | |||||
#endif // DGL_IMAGE_SWITCH_HPP_INCLUDED |
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -12,9 +12,6 @@ BUILD_C_FLAGS += $(DGL_FLAGS) -I. -Isrc | |||||
BUILD_CXX_FLAGS += $(DGL_FLAGS) -I. -Isrc | BUILD_CXX_FLAGS += $(DGL_FLAGS) -I. -Isrc | ||||
LINK_FLAGS += $(DGL_LIBS) | LINK_FLAGS += $(DGL_LIBS) | ||||
# needed by oui-blendish | |||||
BUILD_CXX_FLAGS += -Wno-unused-parameter | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
OBJS = \ | OBJS = \ | ||||
@@ -24,7 +21,6 @@ OBJS = \ | |||||
src/Image.cpp.o \ | src/Image.cpp.o \ | ||||
src/ImageWidgets.cpp.o \ | src/ImageWidgets.cpp.o \ | ||||
src/NanoVG.cpp.o \ | src/NanoVG.cpp.o \ | ||||
src/NanoWidgets.cpp.o \ | |||||
src/Resources.cpp.o \ | src/Resources.cpp.o \ | ||||
src/Widget.cpp.o | src/Widget.cpp.o | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,77 +0,0 @@ | |||||
/* | |||||
* DISTRHO Plugin Framework (DPF) | |||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* 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. | |||||
* | |||||
* THE 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. | |||||
*/ | |||||
#ifndef DGL_NANO_WIDGETS_HPP_INCLUDED | |||||
#define DGL_NANO_WIDGETS_HPP_INCLUDED | |||||
#include "NanoVG.hpp" | |||||
START_NAMESPACE_DGL | |||||
// ----------------------------------------------------------------------- | |||||
class BlendishWidget : public NanoWidget | |||||
{ | |||||
public: | |||||
explicit BlendishWidget(Window& parent); | |||||
explicit BlendishWidget(NanoWidget* widget); | |||||
void loadSharedResources() override; | |||||
}; | |||||
// ----------------------------------------------------------------------- | |||||
class BlendishButton : public BlendishWidget | |||||
{ | |||||
public: | |||||
class Callback | |||||
{ | |||||
public: | |||||
virtual ~Callback() {} | |||||
virtual void blendishButtonClicked(BlendishButton* blendishButton, int button) = 0; | |||||
}; | |||||
explicit BlendishButton(Window& parent, const char* text = "", int iconId = -1); | |||||
explicit BlendishButton(NanoWidget* widget, const char* text = "", int iconId = -1); | |||||
~BlendishButton() override; | |||||
int getIconId() const noexcept; | |||||
void setIconId(int iconId) noexcept; | |||||
const char* getText() const noexcept; | |||||
void setText(const char* text) noexcept; | |||||
void setCallback(Callback* callback) noexcept; | |||||
protected: | |||||
void onNanoDisplay() override; | |||||
bool onMouse(const MouseEvent&) override; | |||||
bool onMotion(const MotionEvent&) override; | |||||
private: | |||||
struct PrivateData; | |||||
PrivateData* const pData; | |||||
void _updateBounds(); | |||||
DISTRHO_LEAK_DETECTOR(BlendishButton) | |||||
}; | |||||
// ----------------------------------------------------------------------- | |||||
END_NAMESPACE_DGL | |||||
#endif // DGL_NANO_WIDGETS_HPP_INCLUDED |
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -18,7 +18,6 @@ | |||||
#define DGL_COMMON_HPP_INCLUDED | #define DGL_COMMON_HPP_INCLUDED | ||||
#include "../ImageWidgets.hpp" | #include "../ImageWidgets.hpp" | ||||
#include "../NanoWidgets.hpp" | |||||
START_NAMESPACE_DGL | START_NAMESPACE_DGL | ||||
@@ -35,15 +34,13 @@ struct ButtonImpl { | |||||
int state; | int state; | ||||
Widget* self; | Widget* self; | ||||
BlendishButton::Callback* callback_b; | |||||
ImageButton::Callback* callback_i; | |||||
ImageButton::Callback* callback_img; | |||||
ButtonImpl(Widget* const s) noexcept | ButtonImpl(Widget* const s) noexcept | ||||
: button(-1), | : button(-1), | ||||
state(kStateNormal), | state(kStateNormal), | ||||
self(s), | self(s), | ||||
callback_b(nullptr), | |||||
callback_i(nullptr) {} | |||||
callback_img(nullptr) {} | |||||
bool onMouse(const Widget::MouseEvent& ev) | bool onMouse(const Widget::MouseEvent& ev) | ||||
{ | { | ||||
@@ -68,10 +65,8 @@ struct ButtonImpl { | |||||
state = kStateHover; | state = kStateHover; | ||||
self->repaint(); | self->repaint(); | ||||
if (callback_b != nullptr) | |||||
callback_b->blendishButtonClicked((BlendishButton*)self, button2); | |||||
if (callback_i != nullptr) | |||||
callback_i->imageButtonClicked((ImageButton*)self, button2); | |||||
if (callback_img != nullptr) | |||||
callback_img->imageButtonClicked((ImageButton*)self, button2); | |||||
return true; | return true; | ||||
} | } | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -159,7 +159,7 @@ ImageButton::~ImageButton() | |||||
void ImageButton::setCallback(Callback* callback) noexcept | void ImageButton::setCallback(Callback* callback) noexcept | ||||
{ | { | ||||
pData->impl.callback_i = callback; | |||||
pData->impl.callback_img = callback; | |||||
} | } | ||||
void ImageButton::onDisplay() | void ImageButton::onDisplay() | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,152 +0,0 @@ | |||||
/* | |||||
* DISTRHO Plugin Framework (DPF) | |||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* 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. | |||||
* | |||||
* THE 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. | |||||
*/ | |||||
#include "Common.hpp" | |||||
#include "Resources.hpp" | |||||
#define BLENDISH_IMPLEMENTATION | |||||
#include "nanovg/nanovg.h" | |||||
#include "oui-blendish/blendish.h" | |||||
#include "../distrho/extra/String.hpp" | |||||
START_NAMESPACE_DGL | |||||
// ----------------------------------------------------------------------- | |||||
BlendishWidget::BlendishWidget(Window& parent) | |||||
: NanoWidget(parent) | |||||
{ | |||||
loadSharedResources(); | |||||
} | |||||
BlendishWidget::BlendishWidget(NanoWidget* widget) | |||||
: NanoWidget(widget) | |||||
{ | |||||
loadSharedResources(); | |||||
} | |||||
void BlendishWidget::loadSharedResources() | |||||
{ | |||||
if (nvgFindFont(fContext, NANOVG_DEJAVU_SANS_TTF) >= 0) | |||||
return; | |||||
using namespace dpf_resources; | |||||
bndSetFont(nvgCreateFontMem(fContext, NANOVG_DEJAVU_SANS_TTF, (const uchar*)dejavusans_ttf, dejavusans_ttf_size, 0)); | |||||
bndSetIconImage(nvgCreateImageMem(fContext, 0, (const uchar*)blender_icons16_png, blender_icons16_png_size)); | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
struct BlendishButton::PrivateData { | |||||
ButtonImpl impl; | |||||
int iconId; | |||||
DISTRHO_NAMESPACE::String text; | |||||
PrivateData(Widget* const s, const char* const t, const int i) noexcept | |||||
: impl(s), | |||||
iconId(i), | |||||
text(t) {} | |||||
DISTRHO_DECLARE_NON_COPY_STRUCT(PrivateData) | |||||
}; | |||||
// ----------------------------------------------------------------------- | |||||
BlendishButton::BlendishButton(Window& parent, const char* text, int iconId) | |||||
: BlendishWidget(parent), | |||||
pData(new PrivateData(this, text, iconId)) | |||||
{ | |||||
_updateBounds(); | |||||
} | |||||
BlendishButton::BlendishButton(NanoWidget* widget, const char* text, int iconId) | |||||
: BlendishWidget(widget), | |||||
pData(new PrivateData(this, text, iconId)) | |||||
{ | |||||
_updateBounds(); | |||||
} | |||||
BlendishButton::~BlendishButton() | |||||
{ | |||||
delete pData; | |||||
} | |||||
int BlendishButton::getIconId() const noexcept | |||||
{ | |||||
return pData->iconId; | |||||
} | |||||
void BlendishButton::setIconId(int iconId) noexcept | |||||
{ | |||||
if (pData->iconId == iconId) | |||||
return; | |||||
pData->iconId = iconId; | |||||
_updateBounds(); | |||||
repaint(); | |||||
} | |||||
const char* BlendishButton::getText() const noexcept | |||||
{ | |||||
return pData->text; | |||||
} | |||||
void BlendishButton::setText(const char* text) noexcept | |||||
{ | |||||
if (pData->text == text) | |||||
return; | |||||
pData->text = text; | |||||
_updateBounds(); | |||||
repaint(); | |||||
} | |||||
void BlendishButton::setCallback(Callback* callback) noexcept | |||||
{ | |||||
pData->impl.callback_b = callback; | |||||
} | |||||
void BlendishButton::onNanoDisplay() | |||||
{ | |||||
bndToolButton(getContext(), | |||||
getAbsoluteX(), getAbsoluteY(), getWidth(), getHeight(), | |||||
0, static_cast<BNDwidgetState>(pData->impl.state), pData->iconId, pData->text); | |||||
} | |||||
bool BlendishButton::onMouse(const MouseEvent& ev) | |||||
{ | |||||
return pData->impl.onMouse(ev); | |||||
} | |||||
bool BlendishButton::onMotion(const MotionEvent& ev) | |||||
{ | |||||
return pData->impl.onMotion(ev); | |||||
} | |||||
void BlendishButton::_updateBounds() | |||||
{ | |||||
const float width = bndLabelWidth (getContext(), pData->iconId, pData->text); | |||||
const float height = bndLabelHeight(getContext(), pData->iconId, pData->text, width); | |||||
setSize(width, height); | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
END_NAMESPACE_DGL | |||||
// ----------------------------------------------------------------------- |
@@ -5,11 +5,8 @@ | |||||
namespace dpf_resources | namespace dpf_resources | ||||
{ | { | ||||
extern const char* blender_icons16_png; | |||||
const unsigned int blender_icons16_png_size = 250706; | |||||
extern const char* dejavusans_ttf; | |||||
const unsigned int dejavusans_ttf_size = 741536; | |||||
extern const char* dejavusans_ttf; | |||||
const unsigned int dejavusans_ttf_size = 741536; | |||||
}; | }; | ||||
#endif | #endif |
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,21 +0,0 @@ | |||||
Blendish - Blender 2.5 UI based theming functions for NanoVG | |||||
Copyright (c) 2014 Leonard Ritter <leonard.ritter@duangle.com> | |||||
Permission is hereby granted, free of charge, to any person obtaining a copy | |||||
of this software and associated documentation files (the "Software"), to deal | |||||
in the Software without restriction, including without limitation the rights | |||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||||
copies of the Software, and to permit persons to whom the Software is | |||||
furnished to do so, subject to the following conditions: | |||||
The above copyright notice and this permission notice shall be included in | |||||
all copies or substantial portions of the Software. | |||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |||||
THE SOFTWARE. |
@@ -1,280 +0,0 @@ | |||||
GNU GENERAL PUBLIC LICENSE | |||||
Version 2, June 1991 | |||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc. | |||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||||
Everyone is permitted to copy and distribute verbatim copies | |||||
of this license document, but changing it is not allowed. | |||||
Preamble | |||||
The licenses for most software are designed to take away your | |||||
freedom to share and change it. By contrast, the GNU General Public | |||||
License is intended to guarantee your freedom to share and change free | |||||
software--to make sure the software is free for all its users. This | |||||
General Public License applies to most of the Free Software | |||||
Foundation's software and to any other program whose authors commit to | |||||
using it. (Some other Free Software Foundation software is covered by | |||||
the GNU Library General Public License instead.) You can apply it to | |||||
your programs, too. | |||||
When we speak of free software, we are referring to freedom, not | |||||
price. Our General Public Licenses are designed to make sure that you | |||||
have the freedom to distribute copies of free software (and charge for | |||||
this service if you wish), that you receive source code or can get it | |||||
if you want it, that you can change the software or use pieces of it | |||||
in new free programs; and that you know you can do these things. | |||||
To protect your rights, we need to make restrictions that forbid | |||||
anyone to deny you these rights or to ask you to surrender the rights. | |||||
These restrictions translate to certain responsibilities for you if you | |||||
distribute copies of the software, or if you modify it. | |||||
For example, if you distribute copies of such a program, whether | |||||
gratis or for a fee, you must give the recipients all the rights that | |||||
you have. You must make sure that they, too, receive or can get the | |||||
source code. And you must show them these terms so they know their | |||||
rights. | |||||
We protect your rights with two steps: (1) copyright the software, and | |||||
(2) offer you this license which gives you legal permission to copy, | |||||
distribute and/or modify the software. | |||||
Also, for each author's protection and ours, we want to make certain | |||||
that everyone understands that there is no warranty for this free | |||||
software. If the software is modified by someone else and passed on, we | |||||
want its recipients to know that what they have is not the original, so | |||||
that any problems introduced by others will not reflect on the original | |||||
authors' reputations. | |||||
Finally, any free program is threatened constantly by software | |||||
patents. We wish to avoid the danger that redistributors of a free | |||||
program will individually obtain patent licenses, in effect making the | |||||
program proprietary. To prevent this, we have made it clear that any | |||||
patent must be licensed for everyone's free use or not licensed at all. | |||||
The precise terms and conditions for copying, distribution and | |||||
modification follow. | |||||
GNU GENERAL PUBLIC LICENSE | |||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | |||||
0. This License applies to any program or other work which contains | |||||
a notice placed by the copyright holder saying it may be distributed | |||||
under the terms of this General Public License. The "Program", below, | |||||
refers to any such program or work, and a "work based on the Program" | |||||
means either the Program or any derivative work under copyright law: | |||||
that is to say, a work containing the Program or a portion of it, | |||||
either verbatim or with modifications and/or translated into another | |||||
language. (Hereinafter, translation is included without limitation in | |||||
the term "modification".) Each licensee is addressed as "you". | |||||
Activities other than copying, distribution and modification are not | |||||
covered by this License; they are outside its scope. The act of | |||||
running the Program is not restricted, and the output from the Program | |||||
is covered only if its contents constitute a work based on the | |||||
Program (independent of having been made by running the Program). | |||||
Whether that is true depends on what the Program does. | |||||
1. You may copy and distribute verbatim copies of the Program's | |||||
source code as you receive it, in any medium, provided that you | |||||
conspicuously and appropriately publish on each copy an appropriate | |||||
copyright notice and disclaimer of warranty; keep intact all the | |||||
notices that refer to this License and to the absence of any warranty; | |||||
and give any other recipients of the Program a copy of this License | |||||
along with the Program. | |||||
You may charge a fee for the physical act of transferring a copy, and | |||||
you may at your option offer warranty protection in exchange for a fee. | |||||
2. You may modify your copy or copies of the Program or any portion | |||||
of it, thus forming a work based on the Program, and copy and | |||||
distribute such modifications or work under the terms of Section 1 | |||||
above, provided that you also meet all of these conditions: | |||||
a) You must cause the modified files to carry prominent notices | |||||
stating that you changed the files and the date of any change. | |||||
b) You must cause any work that you distribute or publish, that in | |||||
whole or in part contains or is derived from the Program or any | |||||
part thereof, to be licensed as a whole at no charge to all third | |||||
parties under the terms of this License. | |||||
c) If the modified program normally reads commands interactively | |||||
when run, you must cause it, when started running for such | |||||
interactive use in the most ordinary way, to print or display an | |||||
announcement including an appropriate copyright notice and a | |||||
notice that there is no warranty (or else, saying that you provide | |||||
a warranty) and that users may redistribute the program under | |||||
these conditions, and telling the user how to view a copy of this | |||||
License. (Exception: if the Program itself is interactive but | |||||
does not normally print such an announcement, your work based on | |||||
the Program is not required to print an announcement.) | |||||
These requirements apply to the modified work as a whole. If | |||||
identifiable sections of that work are not derived from the Program, | |||||
and can be reasonably considered independent and separate works in | |||||
themselves, then this License, and its terms, do not apply to those | |||||
sections when you distribute them as separate works. But when you | |||||
distribute the same sections as part of a whole which is a work based | |||||
on the Program, the distribution of the whole must be on the terms of | |||||
this License, whose permissions for other licensees extend to the | |||||
entire whole, and thus to each and every part regardless of who wrote it. | |||||
Thus, it is not the intent of this section to claim rights or contest | |||||
your rights to work written entirely by you; rather, the intent is to | |||||
exercise the right to control the distribution of derivative or | |||||
collective works based on the Program. | |||||
In addition, mere aggregation of another work not based on the Program | |||||
with the Program (or with a work based on the Program) on a volume of | |||||
a storage or distribution medium does not bring the other work under | |||||
the scope of this License. | |||||
3. You may copy and distribute the Program (or a work based on it, | |||||
under Section 2) in object code or executable form under the terms of | |||||
Sections 1 and 2 above provided that you also do one of the following: | |||||
a) Accompany it with the complete corresponding machine-readable | |||||
source code, which must be distributed under the terms of Sections | |||||
1 and 2 above on a medium customarily used for software interchange; or, | |||||
b) Accompany it with a written offer, valid for at least three | |||||
years, to give any third party, for a charge no more than your | |||||
cost of physically performing source distribution, a complete | |||||
machine-readable copy of the corresponding source code, to be | |||||
distributed under the terms of Sections 1 and 2 above on a medium | |||||
customarily used for software interchange; or, | |||||
c) Accompany it with the information you received as to the offer | |||||
to distribute corresponding source code. (This alternative is | |||||
allowed only for noncommercial distribution and only if you | |||||
received the program in object code or executable form with such | |||||
an offer, in accord with Subsection b above.) | |||||
The source code for a work means the preferred form of the work for | |||||
making modifications to it. For an executable work, complete source | |||||
code means all the source code for all modules it contains, plus any | |||||
associated interface definition files, plus the scripts used to | |||||
control compilation and installation of the executable. However, as a | |||||
special exception, the source code distributed need not include | |||||
anything that is normally distributed (in either source or binary | |||||
form) with the major components (compiler, kernel, and so on) of the | |||||
operating system on which the executable runs, unless that component | |||||
itself accompanies the executable. | |||||
If distribution of executable or object code is made by offering | |||||
access to copy from a designated place, then offering equivalent | |||||
access to copy the source code from the same place counts as | |||||
distribution of the source code, even though third parties are not | |||||
compelled to copy the source along with the object code. | |||||
4. You may not copy, modify, sublicense, or distribute the Program | |||||
except as expressly provided under this License. Any attempt | |||||
otherwise to copy, modify, sublicense or distribute the Program is | |||||
void, and will automatically terminate your rights under this License. | |||||
However, parties who have received copies, or rights, from you under | |||||
this License will not have their licenses terminated so long as such | |||||
parties remain in full compliance. | |||||
5. You are not required to accept this License, since you have not | |||||
signed it. However, nothing else grants you permission to modify or | |||||
distribute the Program or its derivative works. These actions are | |||||
prohibited by law if you do not accept this License. Therefore, by | |||||
modifying or distributing the Program (or any work based on the | |||||
Program), you indicate your acceptance of this License to do so, and | |||||
all its terms and conditions for copying, distributing or modifying | |||||
the Program or works based on it. | |||||
6. Each time you redistribute the Program (or any work based on the | |||||
Program), the recipient automatically receives a license from the | |||||
original licensor to copy, distribute or modify the Program subject to | |||||
these terms and conditions. You may not impose any further | |||||
restrictions on the recipients' exercise of the rights granted herein. | |||||
You are not responsible for enforcing compliance by third parties to | |||||
this License. | |||||
7. If, as a consequence of a court judgment or allegation of patent | |||||
infringement or for any other reason (not limited to patent issues), | |||||
conditions are imposed on you (whether by court order, agreement or | |||||
otherwise) that contradict the conditions of this License, they do not | |||||
excuse you from the conditions of this License. If you cannot | |||||
distribute so as to satisfy simultaneously your obligations under this | |||||
License and any other pertinent obligations, then as a consequence you | |||||
may not distribute the Program at all. For example, if a patent | |||||
license would not permit royalty-free redistribution of the Program by | |||||
all those who receive copies directly or indirectly through you, then | |||||
the only way you could satisfy both it and this License would be to | |||||
refrain entirely from distribution of the Program. | |||||
If any portion of this section is held invalid or unenforceable under | |||||
any particular circumstance, the balance of the section is intended to | |||||
apply and the section as a whole is intended to apply in other | |||||
circumstances. | |||||
It is not the purpose of this section to induce you to infringe any | |||||
patents or other property right claims or to contest validity of any | |||||
such claims; this section has the sole purpose of protecting the | |||||
integrity of the free software distribution system, which is | |||||
implemented by public license practices. Many people have made | |||||
generous contributions to the wide range of software distributed | |||||
through that system in reliance on consistent application of that | |||||
system; it is up to the author/donor to decide if he or she is willing | |||||
to distribute software through any other system and a licensee cannot | |||||
impose that choice. | |||||
This section is intended to make thoroughly clear what is believed to | |||||
be a consequence of the rest of this License. | |||||
8. If the distribution and/or use of the Program is restricted in | |||||
certain countries either by patents or by copyrighted interfaces, the | |||||
original copyright holder who places the Program under this License | |||||
may add an explicit geographical distribution limitation excluding | |||||
those countries, so that distribution is permitted only in or among | |||||
countries not thus excluded. In such case, this License incorporates | |||||
the limitation as if written in the body of this License. | |||||
9. The Free Software Foundation may publish revised and/or new versions | |||||
of the General Public License from time to time. Such new versions will | |||||
be similar in spirit to the present version, but may differ in detail to | |||||
address new problems or concerns. | |||||
Each version is given a distinguishing version number. If the Program | |||||
specifies a version number of this License which applies to it and "any | |||||
later version", you have the option of following the terms and conditions | |||||
either of that version or of any later version published by the Free | |||||
Software Foundation. If the Program does not specify a version number of | |||||
this License, you may choose any version ever published by the Free Software | |||||
Foundation. | |||||
10. If you wish to incorporate parts of the Program into other free | |||||
programs whose distribution conditions are different, write to the author | |||||
to ask for permission. For software which is copyrighted by the Free | |||||
Software Foundation, write to the Free Software Foundation; we sometimes | |||||
make exceptions for this. Our decision will be guided by the two goals | |||||
of preserving the free status of all derivatives of our free software and | |||||
of promoting the sharing and reuse of software generally. | |||||
NO WARRANTY | |||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | |||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN | |||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | |||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | |||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS | |||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE | |||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | |||||
REPAIR OR CORRECTION. | |||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | |||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | |||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | |||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | |||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | |||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | |||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | |||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | |||||
POSSIBILITY OF SUCH DAMAGES. | |||||
END OF TERMS AND CONDITIONS |
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* This program is free software; you can redistribute it and/or | * This program is free software; you can redistribute it and/or | ||||
* modify it under the terms of the GNU Lesser General Public | * modify it under the terms of the GNU Lesser General Public | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* This program is free software; you can redistribute it and/or | * This program is free software; you can redistribute it and/or | ||||
* modify it under the terms of the GNU Lesser General Public | * modify it under the terms of the GNU Lesser General Public | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -1,6 +1,6 @@ | |||||
/* | /* | ||||
* DISTRHO Plugin Framework (DPF) | * DISTRHO Plugin Framework (DPF) | ||||
* Copyright (C) 2012-2015 Filipe Coelho <falktx@falktx.com> | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | * | ||||
* Permission to use, copy, modify, and/or distribute this software for any purpose with | * 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 | * or without fee is hereby granted, provided that the above copyright notice and this | ||||
@@ -242,11 +242,14 @@ SEARCH_INCLUDES = YES | |||||
INCLUDE_PATH = | INCLUDE_PATH = | ||||
INCLUDE_FILE_PATTERNS = | INCLUDE_FILE_PATTERNS = | ||||
PREDEFINED = DOXYGEN \ | PREDEFINED = DOXYGEN \ | ||||
HAVE_DGL=1 \ | |||||
DISTRHO_PLUGIN_NAME="Plugin Name" \ | DISTRHO_PLUGIN_NAME="Plugin Name" \ | ||||
DISTRHO_PLUGIN_NUM_INPUTS=2 \ | DISTRHO_PLUGIN_NUM_INPUTS=2 \ | ||||
DISTRHO_PLUGIN_NUM_OUTPUTS=2 \ | DISTRHO_PLUGIN_NUM_OUTPUTS=2 \ | ||||
DISTRHO_PLUGIN_URI="urn:distrho:name" \ | DISTRHO_PLUGIN_URI="urn:distrho:name" \ | ||||
DISTRHO_PLUGIN_HAS_UI=1 \ | DISTRHO_PLUGIN_HAS_UI=1 \ | ||||
DISTRHO_PLUGIN_HAS_EMBED_UI=1 \ | |||||
DISTRHO_PLUGIN_HAS_EXTERNAL_UI=1 \ | |||||
DISTRHO_PLUGIN_IS_RT_SAFE=1 \ | DISTRHO_PLUGIN_IS_RT_SAFE=1 \ | ||||
DISTRHO_PLUGIN_IS_SYNTH=1 \ | DISTRHO_PLUGIN_IS_SYNTH=1 \ | ||||
DISTRHO_PLUGIN_WANT_DIRECT_ACCESS=1 \ | DISTRHO_PLUGIN_WANT_DIRECT_ACCESS=1 \ | ||||
@@ -256,6 +259,7 @@ PREDEFINED = DOXYGEN \ | |||||
DISTRHO_PLUGIN_WANT_PROGRAMS=1 \ | DISTRHO_PLUGIN_WANT_PROGRAMS=1 \ | ||||
DISTRHO_PLUGIN_WANT_STATE=1 \ | DISTRHO_PLUGIN_WANT_STATE=1 \ | ||||
DISTRHO_PLUGIN_WANT_TIMEPOS=1 \ | DISTRHO_PLUGIN_WANT_TIMEPOS=1 \ | ||||
DISTRHO_PLUGIN_WANT_FULL_STATE=1 \ | |||||
DISTRHO_UI_USE_NANOVG=1 | DISTRHO_UI_USE_NANOVG=1 | ||||
EXPAND_AS_DEFINED = YES | EXPAND_AS_DEFINED = YES | ||||
SKIP_FUNCTION_MACROS = YES | SKIP_FUNCTION_MACROS = YES | ||||
@@ -1,5 +1,17 @@ | |||||
/* | /* | ||||
* DPF LV2 *.ttl generator | |||||
* DISTRHO Plugin Framework (DPF) | |||||
* Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* 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. | |||||
* | |||||
* THE 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. | |||||
*/ | */ | ||||
#include <stdio.h> | #include <stdio.h> | ||||
@@ -1,4 +1,19 @@ | |||||
#!/usr/bin/env python | #!/usr/bin/env python | ||||
# -*- coding: utf-8 -*- | |||||
# DISTRHO Plugin Framework (DPF) | |||||
# Copyright (C) 2012-2016 Filipe Coelho <falktx@falktx.com> | |||||
# | |||||
# 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. | |||||
# | |||||
# THE 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. | |||||
import os, numpy, sys | import os, numpy, sys | ||||
import Image | import Image | ||||
@@ -2,7 +2,7 @@ | |||||
set -e | set -e | ||||
PLUGINS=("Kars" "Mini-Series" "MVerb" "Nekobi" "ProM" "ndc-Plugs" "DPF-Max-Gen") | |||||
PLUGINS=("glBars" "Kars" "Mini-Series" "MVerb" "Nekobi" "ProM" "ndc-Plugs" "DPF-Max-Gen") | |||||
if [ ! -f Makefile ]; then | if [ ! -f Makefile ]; then | ||||
echo "Makefile not found, please run this script from DPF-Plugins root source dir" | echo "Makefile not found, please run this script from DPF-Plugins root source dir" | ||||
@@ -0,0 +1,88 @@ | |||||
#!/usr/bin/make -f | |||||
# Makefile for DISTRHO Plugins # | |||||
# ---------------------------- # | |||||
# Created by falkTX | |||||
# | |||||
# NAME, OBJS_DSP and OBJS_UI have been defined before | |||||
include ../../Makefile.mk | |||||
# -------------------------------------------------------------- | |||||
# Basic setup | |||||
TARGET_DIR = ../../bin | |||||
BUILD_C_FLAGS += -I. | |||||
BUILD_CXX_FLAGS += -I. -I../../dpf/distrho -I../../dpf/dgl | |||||
BASE_FLAGS += -DHAVE_DGL | |||||
ifeq ($(HAVE_JACK),true) | |||||
BASE_FLAGS += -DHAVE_JACK | |||||
endif | |||||
# -------------------------------------------------------------- | |||||
# Set plugin binary file targets | |||||
jack = $(TARGET_DIR)/$(NAME)$(APP_EXT) | |||||
lv2 = $(TARGET_DIR)/$(NAME).lv2/$(NAME)$(LIB_EXT) | |||||
vst = $(TARGET_DIR)/$(NAME)-vst$(LIB_EXT) | |||||
# -------------------------------------------------------------- | |||||
# Set distrho code files | |||||
DISTRHO_PLUGIN_FILES = ../../dpf/distrho/DistrhoPluginMain.cpp | |||||
DISTRHO_UI_FILES = ../../dpf/distrho/DistrhoUIMain.cpp ../../dpf/libdgl.a | |||||
# -------------------------------------------------------------- | |||||
# all needs to be first | |||||
all: | |||||
# -------------------------------------------------------------- | |||||
# Common | |||||
%.c.o: %.c | |||||
$(CC) $< $(BUILD_C_FLAGS) -MD -MP -c -o $@ | |||||
%.cpp.o: %.cpp | |||||
$(CXX) $< $(BUILD_CXX_FLAGS) -MD -MP -c -o $@ | |||||
clean: | |||||
rm -f *.d *.o | |||||
rm -rf $(TARGET_DIR)/$(NAME) $(TARGET_DIR)/$(NAME)-* $(TARGET_DIR)/$(NAME).lv2/ | |||||
# -------------------------------------------------------------- | |||||
# JACK | |||||
jack: $(jack) | |||||
$(jack): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --cflags --libs jack) -lpthread -DDISTRHO_PLUGIN_TARGET_JACK -o $@ | |||||
# -------------------------------------------------------------- | |||||
# LV2 | |||||
lv2: $(lv2) | |||||
$(lv2): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) -lpthread $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@ | |||||
# -------------------------------------------------------------- | |||||
# VST | |||||
vst: $(vst) | |||||
$(vst): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES) | |||||
mkdir -p $(shell dirname $@) | |||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) -lpthread $(SHARED) -DDISTRHO_PLUGIN_TARGET_VST -o $@ | |||||
# -------------------------------------------------------------- | |||||
-include $(OBJS_DSP:%.o=%.d) | |||||
-include $(OBJS_UI:%.o=%.d) | |||||
# -------------------------------------------------------------- |
@@ -14,8 +14,8 @@ | |||||
* For a full copy of the license see the LICENSE file. | * For a full copy of the license see the LICENSE file. | ||||
*/ | */ | ||||
#ifndef DISTRHO_PLUGIN_3BANDEQ_HPP_INCLUDED | |||||
#define DISTRHO_PLUGIN_3BANDEQ_HPP_INCLUDED | |||||
#ifndef DISTRHO_PLUGIN_PROM_HPP_INCLUDED | |||||
#define DISTRHO_PLUGIN_PROM_HPP_INCLUDED | |||||
#include "DistrhoPlugin.hpp" | #include "DistrhoPlugin.hpp" | ||||
@@ -103,4 +103,4 @@ private: | |||||
END_NAMESPACE_DISTRHO | END_NAMESPACE_DISTRHO | ||||
#endif // DISTRHO_PLUGIN_3BANDEQ_HPP_INCLUDED | |||||
#endif // DISTRHO_PLUGIN_PROM_HPP_INCLUDED |
@@ -14,8 +14,8 @@ | |||||
* For a full copy of the license see the LICENSE file. | * For a full copy of the license see the LICENSE file. | ||||
*/ | */ | ||||
#ifndef DISTRHO_UI_3BANDEQ_HPP_INCLUDED | |||||
#define DISTRHO_UI_3BANDEQ_HPP_INCLUDED | |||||
#ifndef DISTRHO_UI_PROM_HPP_INCLUDED | |||||
#define DISTRHO_UI_PROM_HPP_INCLUDED | |||||
#include "DistrhoUI.hpp" | #include "DistrhoUI.hpp" | ||||
@@ -60,4 +60,4 @@ private: | |||||
END_NAMESPACE_DISTRHO | END_NAMESPACE_DISTRHO | ||||
#endif // DISTRHO_UI_3BANDEQ_HPP_INCLUDED | |||||
#endif // DISTRHO_UI_PROM_HPP_INCLUDED |
@@ -0,0 +1,149 @@ | |||||
/* | |||||
* DISTRHO glBars Plugin based on XMMS/XBMC "GL Bars" | |||||
* Copyright (C) 1998-2000 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front Technologies | |||||
* Copyright (C) 2000 Christian Zander <phoenix@minion.de> | |||||
* Copyright (C) 2015 Nedko Arnaudov | |||||
* Copyright (C) 2016 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* This program is free software; you can redistribute it and/or | |||||
* modify it under the terms of the GNU General Public License as | |||||
* published by the Free Software Foundation; either version 2 of | |||||
* the License, or any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* For a full copy of the license see the LICENSE file. | |||||
*/ | |||||
#include "DistrhoPluginGLBars.hpp" | |||||
#include "glBars.hpp" | |||||
START_NAMESPACE_DISTRHO | |||||
// ----------------------------------------------------------------------- | |||||
DistrhoPluginGLBars::DistrhoPluginGLBars() | |||||
: Plugin(kParameterCount, 0, 0), | |||||
fState(nullptr) | |||||
{ | |||||
fParameters[kParameterScale] = 1.f / log(256.f); | |||||
fParameters[kParameterSpeed] = 0.025f; | |||||
fParameters[kParameterX] = 0.0f; | |||||
fParameters[kParameterY] = 0.5f; | |||||
fParameters[kParameterZ] = 0.0f; | |||||
} | |||||
DistrhoPluginGLBars::~DistrhoPluginGLBars() | |||||
{ | |||||
DISTRHO_SAFE_ASSERT(fState == nullptr); | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
// Init | |||||
void DistrhoPluginGLBars::initParameter(uint32_t index, Parameter& parameter) | |||||
{ | |||||
switch (index) | |||||
{ | |||||
case kParameterScale: | |||||
parameter.hints = kParameterIsAutomable|kParameterIsLogarithmic; | |||||
parameter.name = "Scale"; | |||||
parameter.symbol = "scale"; | |||||
parameter.unit = ""; | |||||
parameter.ranges.def = 1.0f / log(256.f); | |||||
parameter.ranges.min = 0.5f / log(256.f); | |||||
parameter.ranges.max = 3.0f / log(256.f); | |||||
break; | |||||
case kParameterSpeed: | |||||
parameter.hints = kParameterIsAutomable|kParameterIsLogarithmic; | |||||
parameter.name = "Speed"; | |||||
parameter.symbol = "speed"; | |||||
parameter.unit = ""; | |||||
parameter.ranges.def = 0.025f; | |||||
parameter.ranges.min = 0.0125f; | |||||
parameter.ranges.max = 0.1f; | |||||
break; | |||||
case kParameterX: | |||||
parameter.hints = kParameterIsAutomable; | |||||
parameter.name = "X"; | |||||
parameter.symbol = "x"; | |||||
parameter.unit = ""; | |||||
parameter.ranges.def = -4.0f; | |||||
parameter.ranges.min = 0.0f; | |||||
parameter.ranges.max = 4.0f; | |||||
break; | |||||
case kParameterY: | |||||
parameter.hints = kParameterIsAutomable; | |||||
parameter.name = "Y"; | |||||
parameter.symbol = "y"; | |||||
parameter.unit = ""; | |||||
parameter.ranges.def = 0.5f; | |||||
parameter.ranges.min = -4.0f; | |||||
parameter.ranges.max = 4.0f; | |||||
break; | |||||
case kParameterZ: | |||||
parameter.hints = kParameterIsAutomable; | |||||
parameter.name = "Z"; | |||||
parameter.symbol = "z"; | |||||
parameter.unit = ""; | |||||
parameter.ranges.def = 0.0f; | |||||
parameter.ranges.min = -4.0f; | |||||
parameter.ranges.max = 4.0f; | |||||
break; | |||||
} | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
// Internal data | |||||
float DistrhoPluginGLBars::getParameterValue(uint32_t index) const | |||||
{ | |||||
if (index >= kParameterCount) | |||||
return 0.0f; | |||||
return fParameters[index]; | |||||
} | |||||
void DistrhoPluginGLBars::setParameterValue(uint32_t index, float value) | |||||
{ | |||||
if (index >= kParameterCount) | |||||
return; | |||||
fParameters[index] = value; | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
// Process | |||||
void DistrhoPluginGLBars::run(const float** inputs, float** outputs, uint32_t frames) | |||||
{ | |||||
const float* in = inputs[0]; | |||||
float* out = outputs[0]; | |||||
if (out != in) | |||||
std::memcpy(out, in, sizeof(float)*frames); | |||||
const MutexLocker csm(fMutex); | |||||
if (fState != nullptr) | |||||
fState->AudioData(in, frames); | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
Plugin* createPlugin() | |||||
{ | |||||
return new DistrhoPluginGLBars(); | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
END_NAMESPACE_DISTRHO |
@@ -0,0 +1,110 @@ | |||||
/* | |||||
* DISTRHO glBars Plugin based on XMMS/XBMC "GL Bars" | |||||
* Copyright (C) 1998-2000 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front Technologies | |||||
* Copyright (C) 2000 Christian Zander <phoenix@minion.de> | |||||
* Copyright (C) 2015 Nedko Arnaudov | |||||
* Copyright (C) 2016 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* This program is free software; you can redistribute it and/or | |||||
* modify it under the terms of the GNU General Public License as | |||||
* published by the Free Software Foundation; either version 2 of | |||||
* the License, or any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* For a full copy of the license see the LICENSE file. | |||||
*/ | |||||
#ifndef DISTRHO_PLUGIN_GLBARS_HPP_INCLUDED | |||||
#define DISTRHO_PLUGIN_GLBARS_HPP_INCLUDED | |||||
#include "DistrhoPlugin.hpp" | |||||
#include "extra/Mutex.hpp" | |||||
class DistrhoUIGLBars; | |||||
struct glBarsState; | |||||
START_NAMESPACE_DISTRHO | |||||
// ----------------------------------------------------------------------- | |||||
class DistrhoPluginGLBars : public Plugin | |||||
{ | |||||
public: | |||||
DistrhoPluginGLBars(); | |||||
~DistrhoPluginGLBars() override; | |||||
protected: | |||||
// ------------------------------------------------------------------- | |||||
// Information | |||||
const char* getLabel() const noexcept override | |||||
{ | |||||
return "glBars"; | |||||
} | |||||
const char* getDescription() const override | |||||
{ | |||||
return "OpenGL Bars"; | |||||
} | |||||
const char* getMaker() const noexcept override | |||||
{ | |||||
return "DISTRHO"; | |||||
} | |||||
const char* getHomePage() const override | |||||
{ | |||||
return "https://github.com/DISTRHO/GLBars"; | |||||
} | |||||
const char* getLicense() const noexcept override | |||||
{ | |||||
return "LGPL"; | |||||
} | |||||
uint32_t getVersion() const noexcept override | |||||
{ | |||||
return d_version(1, 0, 0); | |||||
} | |||||
int64_t getUniqueId() const noexcept override | |||||
{ | |||||
return d_cconst('D', 'g', 'l', 'B'); | |||||
} | |||||
// ------------------------------------------------------------------- | |||||
// Init | |||||
void initParameter(uint32_t, Parameter&) override; | |||||
// ------------------------------------------------------------------- | |||||
// Internal data | |||||
float getParameterValue(uint32_t) const override; | |||||
void setParameterValue(uint32_t, float) override; | |||||
// ------------------------------------------------------------------- | |||||
// Process | |||||
void run(const float** inputs, float** outputs, uint32_t frames) override; | |||||
// ------------------------------------------------------------------- | |||||
private: | |||||
Mutex fMutex; | |||||
glBarsState* fState; | |||||
float fParameters[kParameterCount]; | |||||
friend class DistrhoUIGLBars; | |||||
DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(DistrhoPluginGLBars) | |||||
}; | |||||
// ----------------------------------------------------------------------- | |||||
END_NAMESPACE_DISTRHO | |||||
#endif // DISTRHO_PLUGIN_GLBARS_HPP_INCLUDED |
@@ -0,0 +1,43 @@ | |||||
/* | |||||
* DISTRHO glBars Plugin based on XMMS/XBMC "GL Bars" | |||||
* Copyright (C) 1998-2000 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front Technologies | |||||
* Copyright (C) 2000 Christian Zander <phoenix@minion.de> | |||||
* Copyright (C) 2015 Nedko Arnaudov | |||||
* Copyright (C) 2016 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* This program is free software; you can redistribute it and/or | |||||
* modify it under the terms of the GNU General Public License as | |||||
* published by the Free Software Foundation; either version 2 of | |||||
* the License, or any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* For a full copy of the license see the LICENSE file. | |||||
*/ | |||||
#ifndef DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
#define DISTRHO_PLUGIN_INFO_H_INCLUDED | |||||
#define DISTRHO_PLUGIN_BRAND "DISTRHO" | |||||
#define DISTRHO_PLUGIN_NAME "glBars" | |||||
#define DISTRHO_PLUGIN_URI "http://distrho.sf.net/plugins/glBars" | |||||
#define DISTRHO_PLUGIN_HAS_UI 1 | |||||
#define DISTRHO_PLUGIN_NUM_INPUTS 1 | |||||
#define DISTRHO_PLUGIN_NUM_OUTPUTS 1 | |||||
#define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 1 | |||||
#define DISTRHO_PLUGIN_LV2_CATEGORY "lv2:AnalyserPlugin" | |||||
enum Parameters { | |||||
kParameterScale = 0, | |||||
kParameterSpeed, | |||||
kParameterX, | |||||
kParameterY, | |||||
kParameterZ, | |||||
kParameterCount | |||||
}; | |||||
#endif // DISTRHO_PLUGIN_INFO_H_INCLUDED |
@@ -0,0 +1,133 @@ | |||||
/* | |||||
* DISTRHO glBars Plugin based on XMMS/XBMC "GL Bars" | |||||
* Copyright (C) 1998-2000 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front Technologies | |||||
* Copyright (C) 2000 Christian Zander <phoenix@minion.de> | |||||
* Copyright (C) 2015 Nedko Arnaudov | |||||
* Copyright (C) 2016 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* This program is free software; you can redistribute it and/or | |||||
* modify it under the terms of the GNU General Public License as | |||||
* published by the Free Software Foundation; either version 2 of | |||||
* the License, or any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* For a full copy of the license see the LICENSE file. | |||||
*/ | |||||
#include "DistrhoPluginGLBars.hpp" | |||||
#include "DistrhoUIGLBars.hpp" | |||||
START_NAMESPACE_DISTRHO | |||||
// ----------------------------------------------------------------------- | |||||
DistrhoUIGLBars::DistrhoUIGLBars() | |||||
: UI(512, 512) {} | |||||
DistrhoUIGLBars::~DistrhoUIGLBars() | |||||
{ | |||||
if (DistrhoPluginGLBars* const dspPtr = (DistrhoPluginGLBars*)getPluginInstancePointer()) | |||||
{ | |||||
const MutexLocker csm(dspPtr->fMutex); | |||||
dspPtr->fState = nullptr; | |||||
} | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
// DSP Callbacks | |||||
void DistrhoUIGLBars::parameterChanged(uint32_t index, float value) | |||||
{ | |||||
switch (index) | |||||
{ | |||||
case kParameterScale: | |||||
fState.scale = value; | |||||
break; | |||||
case kParameterSpeed: | |||||
fState.hSpeed = value; | |||||
break; | |||||
case kParameterX: | |||||
fState.x_speed = value; | |||||
break; | |||||
case kParameterY: | |||||
fState.y_speed = value; | |||||
break; | |||||
case kParameterZ: | |||||
fState.z_speed = value; | |||||
break; | |||||
} | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
// UI Callbacks | |||||
void DistrhoUIGLBars::uiIdle() | |||||
{ | |||||
repaint(); | |||||
if (DistrhoPluginGLBars* const dspPtr = (DistrhoPluginGLBars*)getPluginInstancePointer()) | |||||
{ | |||||
if (dspPtr->fState != nullptr) | |||||
return; | |||||
const MutexLocker csm(dspPtr->fMutex); | |||||
dspPtr->fState = &fState; | |||||
} | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
// Widget Callbacks | |||||
void DistrhoUIGLBars::onDisplay() | |||||
{ | |||||
fState.Render(); | |||||
} | |||||
bool DistrhoUIGLBars::onKeyboard(const KeyboardEvent& ev) | |||||
{ | |||||
if (ev.press && (ev.key == '1' || ev.key == '+' || ev.key == '-')) | |||||
{ | |||||
if (ev.key == '1') | |||||
{ | |||||
if (getWidth() != 512 || getHeight() != 512) | |||||
setSize(512, 512); | |||||
} | |||||
else if (ev.key == '+') | |||||
{ | |||||
/**/ if (getWidth() < 1100 && getHeight() < 1100) | |||||
setSize(getWidth()+100, getHeight()+100); | |||||
else if (getWidth() != 1100 || getHeight() != 1100) | |||||
setSize(1100, 1100); | |||||
} | |||||
else if (ev.key == '-') | |||||
{ | |||||
/**/ if (getWidth() >= 200 && getHeight() >= 200) | |||||
setSize(getWidth()-100, getHeight()-100); | |||||
else if (getWidth() != 100 || getHeight() != 100) | |||||
setSize(100, 100); | |||||
} | |||||
return true; | |||||
} | |||||
return true; | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
UI* createUI() | |||||
{ | |||||
return new DistrhoUIGLBars(); | |||||
} | |||||
// ----------------------------------------------------------------------- | |||||
END_NAMESPACE_DISTRHO |
@@ -0,0 +1,66 @@ | |||||
/* | |||||
* DISTRHO glBars Plugin based on XMMS/XBMC "GL Bars" | |||||
* Copyright (C) 1998-2000 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front Technologies | |||||
* Copyright (C) 2000 Christian Zander <phoenix@minion.de> | |||||
* Copyright (C) 2015 Nedko Arnaudov | |||||
* Copyright (C) 2016 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* This program is free software; you can redistribute it and/or | |||||
* modify it under the terms of the GNU General Public License as | |||||
* published by the Free Software Foundation; either version 2 of | |||||
* the License, or any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* For a full copy of the license see the LICENSE file. | |||||
*/ | |||||
#ifndef DISTRHO_UI_GLBARS_HPP_INCLUDED | |||||
#define DISTRHO_UI_GLBARS_HPP_INCLUDED | |||||
#include "DistrhoUI.hpp" | |||||
#include "glBars.hpp" | |||||
START_NAMESPACE_DISTRHO | |||||
// ----------------------------------------------------------------------- | |||||
class DistrhoUIGLBars : public UI | |||||
{ | |||||
public: | |||||
DistrhoUIGLBars(); | |||||
~DistrhoUIGLBars() override; | |||||
protected: | |||||
// ------------------------------------------------------------------- | |||||
// DSP Callbacks | |||||
void parameterChanged(uint32_t, float) override; | |||||
// ------------------------------------------------------------------- | |||||
// UI Callbacks | |||||
void uiIdle() override; | |||||
// void uiReshape(uint width, uint height) override; | |||||
// ------------------------------------------------------------------- | |||||
// Widget Callbacks | |||||
void onDisplay() override; | |||||
bool onKeyboard(const KeyboardEvent&) override; | |||||
private: | |||||
glBarsState fState; | |||||
DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(DistrhoUIGLBars) | |||||
}; | |||||
// ----------------------------------------------------------------------- | |||||
END_NAMESPACE_DISTRHO | |||||
#endif // DISTRHO_UI_GLBARS_HPP_INCLUDED |
@@ -0,0 +1,37 @@ | |||||
#!/usr/bin/make -f | |||||
# Makefile for DISTRHO Plugins # | |||||
# ---------------------------- # | |||||
# Created by falkTX | |||||
# | |||||
# -------------------------------------------------------------- | |||||
# Project name, used for binaries | |||||
NAME = glBars | |||||
# -------------------------------------------------------------- | |||||
# Files to build | |||||
OBJS_DSP = \ | |||||
DistrhoPluginGLBars.cpp.o | |||||
OBJS_UI = \ | |||||
DistrhoUIGLBars.cpp.o | |||||
# -------------------------------------------------------------- | |||||
# Do some magic | |||||
include ../Makefile.glBars.mk | |||||
# -------------------------------------------------------------- | |||||
# Enable all possible plugin types | |||||
ifeq ($(HAVE_JACK),true) | |||||
TARGETS += jack | |||||
endif | |||||
TARGETS += lv2 | |||||
TARGETS += vst | |||||
all: $(TARGETS) | |||||
# -------------------------------------------------------------- |
@@ -0,0 +1,234 @@ | |||||
/* | |||||
* DISTRHO glBars Plugin based on XMMS/XBMC "GL Bars" | |||||
* Copyright (C) 1998-2000 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front Technologies | |||||
* Copyright (C) 2000 Christian Zander <phoenix@minion.de> | |||||
* Copyright (C) 2015 Nedko Arnaudov | |||||
* Copyright (C) 2016 Filipe Coelho <falktx@falktx.com> | |||||
* | |||||
* This program is free software; you can redistribute it and/or | |||||
* modify it under the terms of the GNU Lesser General Public | |||||
* License as published by the Free Software Foundation. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU Lesser General Public License for more details. | |||||
* | |||||
* For a full copy of the license see the LICENSE file. | |||||
*/ | |||||
#ifndef GLBARS_STATE_HPP_INCLUDED | |||||
#define GLBARS_STATE_HPP_INCLUDED | |||||
#include "Base.hpp" | |||||
static inline | |||||
void draw_rectangle(GLfloat x1, GLfloat y1, GLfloat z1, GLfloat x2, GLfloat y2, GLfloat z2) | |||||
{ | |||||
if (y1 == y2) | |||||
{ | |||||
glVertex3f(x1, y1, z1); | |||||
glVertex3f(x2, y1, z1); | |||||
glVertex3f(x2, y2, z2); | |||||
glVertex3f(x2, y2, z2); | |||||
glVertex3f(x1, y2, z2); | |||||
glVertex3f(x1, y1, z1); | |||||
} | |||||
else | |||||
{ | |||||
glVertex3f(x1, y1, z1); | |||||
glVertex3f(x2, y1, z2); | |||||
glVertex3f(x2, y2, z2); | |||||
glVertex3f(x2, y2, z2); | |||||
glVertex3f(x1, y2, z1); | |||||
glVertex3f(x1, y1, z1); | |||||
} | |||||
} | |||||
static inline | |||||
void draw_bar(GLenum mode, GLfloat x_offset, GLfloat z_offset, GLfloat height, GLfloat red, GLfloat green, GLfloat blue) | |||||
{ | |||||
const GLfloat width = 0.1; | |||||
if (mode == GL_POINT) | |||||
glColor3f(0.2, 1.0, 0.2); | |||||
if (mode != GL_POINT) | |||||
{ | |||||
glColor3f(red,green,blue); | |||||
draw_rectangle(x_offset, height, z_offset, x_offset + width, height, z_offset + 0.1); | |||||
} | |||||
draw_rectangle(x_offset, 0, z_offset, x_offset + width, 0, z_offset + 0.1); | |||||
if (mode != GL_POINT) | |||||
{ | |||||
glColor3f(0.5 * red, 0.5 * green, 0.5 * blue); | |||||
draw_rectangle(x_offset, 0.0, z_offset + 0.1, x_offset + width, height, z_offset + 0.1); | |||||
} | |||||
draw_rectangle(x_offset, 0.0, z_offset, x_offset + width, height, z_offset ); | |||||
if (mode != GL_POINT) | |||||
{ | |||||
glColor3f(0.25 * red, 0.25 * green, 0.25 * blue); | |||||
draw_rectangle(x_offset, 0.0, z_offset , x_offset, height, z_offset + 0.1); | |||||
} | |||||
draw_rectangle(x_offset + width, 0.0, z_offset , x_offset + width, height, z_offset + 0.1); | |||||
} | |||||
struct glBarsState { | |||||
GLenum g_mode; | |||||
GLfloat x_angle, x_speed; | |||||
GLfloat y_angle, y_speed; | |||||
GLfloat z_angle, z_speed; | |||||
GLfloat heights[16][16], cHeights[16][16], scale; | |||||
GLfloat hSpeed; | |||||
glBarsState() | |||||
{ | |||||
g_mode = GL_FILL; | |||||
x_angle = 20.0; | |||||
x_speed = 0.0; | |||||
y_angle = 15.0; // was 45 | |||||
y_speed = 0.5; | |||||
z_angle = 0.0; | |||||
z_speed = 0.0; | |||||
// Set "Bar Height" | |||||
scale = 1.f / log(256.f); // "Default" / standard | |||||
//scale = 2.f / log(256.f); // "Big" | |||||
//scale = 3.f / log(256.f); // "Very Big" / real big | |||||
//scale = 0.33f / log(256.f); // unused | |||||
//scale = 0.5f / log(256.f); // "Small" | |||||
// Set "Speed" | |||||
//hSpeed = 0.025f; // "Slow" | |||||
hSpeed = 0.0125f; // "Default" | |||||
//hSpeed = 0.1f; // "Fast" | |||||
//hSpeed = 0.2f; // "Very Fast" | |||||
//hSpeed = 0.05f; // "Very Slow" | |||||
for (int x = 0; x < 16; x++) | |||||
{ | |||||
for (int y = 0; y < 16; y++) | |||||
cHeights[y][x] = heights[y][x] = 0; | |||||
} | |||||
} | |||||
void drawBars() | |||||
{ | |||||
GLfloat x_offset, z_offset, r_base, b_base; | |||||
glClear(GL_DEPTH_BUFFER_BIT); | |||||
glPushMatrix(); | |||||
glTranslatef(0.0,-0.5,-5.0); | |||||
glRotatef(x_angle,1.0,0.0,0.0); | |||||
glRotatef(y_angle,0.0,1.0,0.0); | |||||
glRotatef(z_angle,0.0,0.0,1.0); | |||||
glPolygonMode(GL_FRONT_AND_BACK, g_mode); | |||||
glBegin(GL_TRIANGLES); | |||||
for (int y = 0; y < 16; y++) | |||||
{ | |||||
z_offset = -1.6 + ((15 - y) * 0.2); | |||||
b_base = y * (1.0 / 15); | |||||
r_base = 1.0 - b_base; | |||||
for (int x = 0; x < 16; x++) | |||||
{ | |||||
x_offset = -1.6 + ((float)x * 0.2); | |||||
if (::fabs(cHeights[y][x]-heights[y][x])>hSpeed) | |||||
{ | |||||
if (cHeights[y][x]<heights[y][x]) | |||||
cHeights[y][x] += hSpeed; | |||||
else | |||||
cHeights[y][x] -= hSpeed; | |||||
} | |||||
draw_bar(g_mode, x_offset, z_offset, | |||||
cHeights[y][x], r_base - (float(x) * (r_base / 15.0)), | |||||
(float)x * (1.0 / 15), b_base /*, 16*y+x*/); | |||||
} | |||||
} | |||||
glEnd(); | |||||
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); | |||||
glPopMatrix(); | |||||
} | |||||
void Render() | |||||
{ | |||||
glDisable(GL_BLEND); | |||||
glMatrixMode(GL_PROJECTION); | |||||
glPushMatrix(); | |||||
glLoadIdentity(); | |||||
glFrustum(-1, 1, -1, 1, 1.5, 10); | |||||
glMatrixMode(GL_MODELVIEW); | |||||
glPushMatrix(); | |||||
glLoadIdentity(); | |||||
glEnable(GL_DEPTH_TEST); | |||||
glDepthFunc(GL_LESS); | |||||
glPolygonMode(GL_FRONT, GL_FILL); | |||||
//glPolygonMode(GL_BACK, GL_FILL); | |||||
x_angle += x_speed; | |||||
if (x_angle >= 360.0) | |||||
x_angle -= 360.0; | |||||
y_angle += y_speed; | |||||
if (y_angle >= 360.0) | |||||
y_angle -= 360.0; | |||||
z_angle += z_speed; | |||||
if (z_angle >= 360.0) | |||||
z_angle -= 360.0; | |||||
drawBars(); | |||||
glPopMatrix(); | |||||
glMatrixMode(GL_PROJECTION); | |||||
glPopMatrix(); | |||||
glDisable(GL_DEPTH_TEST); | |||||
glEnable(GL_BLEND); | |||||
} | |||||
void AudioData(const float* pAudioData, int iAudioDataLength) | |||||
{ | |||||
const int xscale[] = {0, 1, 2, 3, 5, 7, 10, 14, 20, 28, 40, 54, 74, 101, 137, 187, 255}; | |||||
GLfloat val; | |||||
for (int y = 15; y > 0; y--) | |||||
{ | |||||
for (int i = 0; i < 16; i++) | |||||
heights[y][i] = heights[y - 1][i]; | |||||
} | |||||
for (int i = 0; i < 16; i++) | |||||
{ | |||||
int y = 0; | |||||
for (int c = xscale[i]; c < xscale[i + 1]; c++) | |||||
{ | |||||
if (c<iAudioDataLength) | |||||
{ | |||||
if ((int)(pAudioData[c] * (INT16_MAX)) > y) | |||||
y = (int)(pAudioData[c] * (INT16_MAX)); | |||||
} | |||||
else | |||||
{ | |||||
continue; | |||||
} | |||||
} | |||||
y >>= 7; | |||||
if (y > 0) | |||||
val = (logf(y) * scale); | |||||
else | |||||
val = 0; | |||||
heights[0][i] = val; | |||||
} | |||||
} | |||||
}; | |||||
#endif // GLBARS_STATE_HPP_INCLUDED |