@@ -0,0 +1,72 @@ | |||
/* | |||
* DISTRHO Plugin Toolkit (DPT) | |||
* Copyright (C) 2012-2013 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 LGPL.txt file | |||
*/ | |||
#ifndef __DISTRHO_UI_EXTERNAL_HPP__ | |||
#define __DISTRHO_UI_EXTERNAL_HPP__ | |||
#include "DistrhoUI.hpp" | |||
#include <lo/lo.h> | |||
START_NAMESPACE_DISTRHO | |||
// ------------------------------------------------- | |||
// External UI | |||
class ExternalUI : public UI | |||
{ | |||
public: | |||
ExternalUI(); | |||
virtual ~ExternalUI() override; | |||
protected: | |||
const char* d_externalFilename() const = 0; | |||
private: | |||
lo_server loServer; | |||
friend class UIInternal; | |||
// --------------------------------------------- | |||
// Information | |||
unsigned int d_width() const override { return 0; } | |||
unsigned int d_height() const override { return 0; } | |||
// --------------------------------------------- | |||
// DSP Callbacks | |||
void d_parameterChanged(uint32_t index, float value) override; | |||
#if DISTRHO_PLUGIN_WANT_PROGRAMS | |||
void d_programChanged(uint32_t index) override; | |||
#endif | |||
#if DISTRHO_PLUGIN_WANT_STATE | |||
void d_stateChanged(const char* key, const char* value) override; | |||
#endif | |||
#if DISTRHO_PLUGIN_IS_SYNTH | |||
void d_noteReceived(bool onOff, uint8_t channel, uint8_t note, uint8_t velocity) override; | |||
#endif | |||
// --------------------------------------------- | |||
// UI Callbacks | |||
void d_uiIdle() override; | |||
}; | |||
// ------------------------------------------------- | |||
END_NAMESPACE_DISTRHO | |||
#endif // __DISTRHO_UI_EXTERNAL_HPP__ |
@@ -0,0 +1,85 @@ | |||
/* | |||
* DISTRHO Plugin Toolkit (DPT) | |||
* Copyright (C) 2012-2013 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 LGPL.txt file | |||
*/ | |||
#include "DistrhoUIInternal.hpp" | |||
START_NAMESPACE_DISTRHO | |||
// ------------------------------------------------- | |||
// External UI | |||
ExternalUI::ExternalUI() | |||
: UI(), | |||
loServer(nullptr) | |||
{ | |||
//loServer = lo_server_new_with_proto(nullptr, LO_TCP, osc_error_handler); | |||
//if (loServer != nullptr) | |||
//lo_server_add_method(loServer, nullptr, nullptr, osc_message_handler, this); | |||
} | |||
ExternalUI::~ExternalUI() | |||
{ | |||
if (loServer == nullptr) | |||
return; | |||
lo_server_del_method(loServer, nullptr, nullptr); | |||
lo_server_free(loServer); | |||
} | |||
// ------------------------------------------------- | |||
// DSP Callbacks | |||
void ExternalUI::d_parameterChanged(uint32_t index, float value) override | |||
{ | |||
// TODO | |||
} | |||
#if DISTRHO_PLUGIN_WANT_PROGRAMS | |||
void ExternalUI::d_programChanged(uint32_t index) override | |||
{ | |||
// TODO | |||
} | |||
#endif | |||
#if DISTRHO_PLUGIN_WANT_STATE | |||
void ExternalUI::d_stateChanged(const char* key, const char* value) override | |||
{ | |||
// TODO | |||
} | |||
#endif | |||
#if DISTRHO_PLUGIN_IS_SYNTH | |||
void ExternalUI::d_noteReceived(bool onOff, uint8_t channel, uint8_t note, uint8_t velocity) override | |||
{ | |||
// TODO | |||
} | |||
#endif | |||
// ------------------------------------------------- | |||
// UI Callbacks | |||
void ExternalUI::d_uiIdle() override | |||
{ | |||
if (loServer == nullptr) | |||
return; | |||
while (lo_server_recv_noblock(loServer, 0) != 0) {} | |||
} | |||
// ------------------------------------------------- | |||
END_NAMESPACE_DISTRHO |