DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

commit 08043aa9d89693168a359cfecff657f9757a54d6
parent 4344309ed034689f9b74e78741a90286701c07f7
Author: falkTX <falktx@gmail.com>
Date:   Fri, 25 Apr 2014 20:33:04 +0100

Cleanup

Diffstat:
Mdistrho/DistrhoUI.hpp | 2+-
Mdistrho/src/DistrhoPluginInternal.hpp | 5++++-
Mdistrho/src/DistrhoUI.cpp | 6+++---
Mdistrho/src/DistrhoUIInternal.hpp | 54+++++++++++++++++++++++++++++++++++-------------------
4 files changed, 43 insertions(+), 24 deletions(-)

diff --git a/distrho/DistrhoUI.hpp b/distrho/DistrhoUI.hpp @@ -79,7 +79,7 @@ protected: // ------------------------------------------------------------------- // Direct DSP access - DO NOT USE THIS UNLESS STRICTLY NECESSARY!! - void* d_getPluginInstancePointer(); + void* d_getPluginInstancePointer() const noexcept; #endif // ------------------------------------------------------------------- diff --git a/distrho/src/DistrhoPluginInternal.hpp b/distrho/src/DistrhoPluginInternal.hpp @@ -407,7 +407,7 @@ public: private: // ------------------------------------------------------------------- - // private members accessed by DistrhoPlugin class + // private members accessed by DistrhoPlugin classes Plugin* const fPlugin; Plugin::PrivateData* const fData; @@ -417,6 +417,9 @@ private: static const d_string sFallbackString; static const ParameterRanges sFallbackRanges; + + DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(PluginExporter) + DISTRHO_PREVENT_HEAP_ALLOCATION }; // ----------------------------------------------------------------------- diff --git a/distrho/src/DistrhoUI.cpp b/distrho/src/DistrhoUI.cpp @@ -23,7 +23,7 @@ END_NAMESPACE_DGL START_NAMESPACE_DISTRHO // ----------------------------------------------------------------------- -// Static data +// Static data, see DistrhoUIInternal.hpp double d_lastUiSampleRate = 0.0; @@ -34,7 +34,7 @@ UI::UI() : DGL::Widget(*DGL::dgl_lastUiParent), pData(new PrivateData()) { - assert(DGL::dgl_lastUiParent != nullptr); + DISTRHO_SAFE_ASSERT(DGL::dgl_lastUiParent != nullptr); DGL::dgl_lastUiParent = nullptr; } @@ -88,7 +88,7 @@ void UI::d_uiResize(unsigned int width, unsigned int height) // ----------------------------------------------------------------------- // Direct DSP access -void* UI::d_getPluginInstancePointer() +void* UI::d_getPluginInstancePointer() const noexcept { return pData->dspPtr; } diff --git a/distrho/src/DistrhoUIInternal.hpp b/distrho/src/DistrhoUIInternal.hpp @@ -70,7 +70,7 @@ struct UI::PrivateData { uiResizeCallbackFunc(nullptr), ptr(nullptr) { - assert(sampleRate != 0.0); + DISTRHO_SAFE_ASSERT(sampleRate != 0.0); #if defined(DISTRHO_PLUGIN_TARGET_DSSI) || defined(DISTRHO_PLUGIN_TARGET_LV2) parameterOffset += DISTRHO_PLUGIN_NUM_INPUTS + DISTRHO_PLUGIN_NUM_OUTPUTS; @@ -78,6 +78,7 @@ struct UI::PrivateData { parameterOffset += 1; # endif #endif + #ifdef DISTRHO_PLUGIN_TARGET_LV2 # if (DISTRHO_PLUGIN_IS_SYNTH || DISTRHO_PLUGIN_WANT_TIMEPOS || DISTRHO_PLUGIN_WANT_STATE) parameterOffset += 1; @@ -126,16 +127,15 @@ class UIExporter { public: UIExporter(void* const ptr, const intptr_t winId, - const editParamFunc editParamCall, const setParamFunc setParamCall, const setStateFunc setStateCall, const sendNoteFunc sendNoteCall, const uiResizeFunc uiResizeCall, void* const dspPtr = nullptr) + const editParamFunc editParamCall, const setParamFunc setParamCall, const setStateFunc setStateCall, const sendNoteFunc sendNoteCall, const uiResizeFunc uiResizeCall, + void* const dspPtr = nullptr) : glApp(), glWindow(glApp, winId), fUi(createUI()), fData((fUi != nullptr) ? fUi->pData : nullptr) { - assert(fUi != nullptr); - - if (fUi == nullptr) - return; + DISTRHO_SAFE_ASSERT_RETURN(fUi != nullptr,); + DISTRHO_SAFE_ASSERT_RETURN(fData != nullptr,); fData->ptr = ptr; fData->editParamCallbackFunc = editParamCall; @@ -164,47 +164,60 @@ public: const char* getName() const noexcept { - return (fUi != nullptr) ? fUi->d_getName() : ""; + DISTRHO_SAFE_ASSERT_RETURN(fUi != nullptr, ""); + + return fUi->d_getName(); } unsigned int getWidth() const noexcept { - return (fUi != nullptr) ? fUi->d_getWidth() : 0; + DISTRHO_SAFE_ASSERT_RETURN(fUi != nullptr, 0); + + return fUi->d_getWidth(); } unsigned int getHeight() const noexcept { - return (fUi != nullptr) ? fUi->d_getHeight() : 0; + DISTRHO_SAFE_ASSERT_RETURN(fUi != nullptr, 0); + + return fUi->d_getHeight(); } // ------------------------------------------------------------------- uint32_t getParameterOffset() const noexcept { - return (fData != nullptr) ? fData->parameterOffset : 0; + DISTRHO_SAFE_ASSERT_RETURN(fData != nullptr, 0); + + return fData->parameterOffset; } // ------------------------------------------------------------------- void parameterChanged(const uint32_t index, const float value) { - if (fUi != nullptr) - fUi->d_parameterChanged(index, value); + DISTRHO_SAFE_ASSERT_RETURN(fUi != nullptr,); + + fUi->d_parameterChanged(index, value); } #if DISTRHO_PLUGIN_WANT_PROGRAMS void programChanged(const uint32_t index) { - if (fUi != nullptr) - fUi->d_programChanged(index); + DISTRHO_SAFE_ASSERT_RETURN(fUi != nullptr,); + + fUi->d_programChanged(index); } #endif #if DISTRHO_PLUGIN_WANT_STATE void stateChanged(const char* const key, const char* const value) { - if (fUi != nullptr) - fUi->d_stateChanged(key, value); + DISTRHO_SAFE_ASSERT_RETURN(fUi != nullptr,); + DISTRHO_SAFE_ASSERT_RETURN(key != nullptr && key[0] != '\0',); + DISTRHO_SAFE_ASSERT_RETURN(value != nullptr,); + + fUi->d_stateChanged(key, value); } #endif @@ -212,9 +225,9 @@ public: bool idle() { - if (fUi != nullptr) - fUi->d_uiIdle(); + DISTRHO_SAFE_ASSERT_RETURN(fUi != nullptr, false); + fUi->d_uiIdle(); glApp.idle(); return ! glApp.isQuiting(); @@ -254,10 +267,13 @@ private: DGL::Window glWindow; // ------------------------------------------------------------------- - // private members accessed by DistrhoPlugin class + // private members accessed by DistrhoUI classes UI* const fUi; UI::PrivateData* const fData; + + DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(UIExporter) + DISTRHO_PREVENT_HEAP_ALLOCATION }; // -----------------------------------------------------------------------