/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /*************************************************************************** * pluginlv2test.h * * Mon Feb 8 07:21:09 CET 2016 * Copyright 2016 Bent Bisballe Nyeng * deva@aasimon.org ****************************************************************************/ /* * This file is part of PluginGizmo. * * PluginGizmo 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; either version 3 of the License, or * (at your option) any later version. * * PluginGizmo 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. * * You should have received a copy of the GNU Lesser General Public License * along with PluginGizmo; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #pragma once #if defined(X11) #include #endif // defined(X11) #if defined(WIN32) #define WIN32_LEAN_AND_MEAN #include #endif // defined(WIN32) #ifdef LV2 #include #endif #ifdef VST #include #endif class PluginTest #ifdef LV2 : public PluginLV2 #endif #ifdef VST : public PluginVST #endif { public: #ifdef VST PluginTest(audioMasterCallback audioMaster); #endif void onFreeWheelChange(bool freewheel) override; void onFramesizeChange(size_t framesize) override; void onSamplerateChange(float samplerate) override; void onActiveChange(bool active) override; std::string onStateSave() override; void onStateRestore(const std::string& config) override; size_t getNumberOfMidiInputs() override; size_t getNumberOfMidiOutputs() override; size_t getNumberOfAudioInputs() override; size_t getNumberOfAudioOutputs() override; std::string getId() override; std::string getEffectName() override; std::string getURI() override; std::string getVendorString() override; std::string getProductString() override; std::string getHomepage() override; PluginCategory getPluginCategory() override; void process(size_t pos, const std::vector& input_events, std::vector& output_events, const std::vector& input_samples, const std::vector& output_samples, size_t count) override; // // Inline GUI // bool hasInlineGUI() override; void onInlineRedraw(std::size_t width, std::size_t max_height, InlineDrawContext& context) override; // // GUI // bool hasGUI() override; void* createWindow(void *parent) override; void onDestroyWindow() override; void onShowWindow() override; void onHideWindow() override; void onIdle() override; void resizeWindow(size_t width, size_t height) override; void closeWindow() override; private: #if defined(X11) Display* xDisplay{nullptr}; Window xWindow{0}; int xScreen{0}; #endif // defined(X11) #if defined(WIN32) HWND hwnd{0}; HMODULE hInstance{0}; static LRESULT CALLBACK wndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam); #endif // defined(WIN32) unsigned int inlineDisplayBuffer[1024 * 1024]; int mouseX{0}; int mouseY{0}; };