diff options
Diffstat (limited to 'attic/muse2-oom/muse2/muse/osc.h')
-rw-r--r-- | attic/muse2-oom/muse2/muse/osc.h | 213 |
1 files changed, 0 insertions, 213 deletions
diff --git a/attic/muse2-oom/muse2/muse/osc.h b/attic/muse2-oom/muse2/muse/osc.h deleted file mode 100644 index 8e093e2c..00000000 --- a/attic/muse2-oom/muse2/muse/osc.h +++ /dev/null @@ -1,213 +0,0 @@ -//============================================================================= -// MusE -// Linux Music Editor -// $Id: osc.h,v 1.0.0.0 2010/04/22 10:05:00 terminator356 Exp $ -// -// Copyright (C) 1999-2010 by Werner Schweer and others -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License version 2. -// -// 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. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -//============================================================================= - -#ifndef __OSC_H__ -#define __OSC_H__ - -#include <lo/lo.h> - -#include "config.h" - -#ifdef DSSI_SUPPORT -class DssiSynthIF; -#endif - -class QProcess; -class QString; -class PluginI; -class OscIF; - -// Keep the OSC fifo small. There may be thousands of controls, and each control needs a fifo. -// Oops, no, if the user keeps adjusting a slider without releasing the mouse button, then all of the -// events are sent at once upon releasing the button, meaning there might be thousands of events at once. -#define OSC_FIFO_SIZE 512 - -//--------------------------------------------------------- -// OscControlValue -// Item struct for OscGuiControlFifo. -//--------------------------------------------------------- - -struct OscControlValue -{ - //int idx; - float value; - // maybe timestamp, too ? -}; - -//--------------------------------------------------------- -// OscControlFifo -// A fifo for each of the OSC controls. -//--------------------------------------------------------- - -class OscControlFifo -{ - OscControlValue fifo[OSC_FIFO_SIZE]; - volatile int size; - int wIndex; - int rIndex; - - public: - OscControlFifo() { clear(); } - bool put(const OscControlValue& event); // returns true on fifo overflow - OscControlValue get(); - const OscControlValue& peek(int n = 0); - void remove(); - bool isEmpty() const { return size == 0; } - void clear() { size = 0, wIndex = 0, rIndex = 0; } - int getSize() const { return size; } -}; - -//--------------------------------------------------------- -// OscIF -// Open Sound Control Interface -//--------------------------------------------------------- - -/* -class OscIF -{ - private: - PluginI* _oscPluginI; - - #ifdef DSSI_SUPPORT - DssiSynthIF* _oscSynthIF; - #endif - - QProcess* _oscGuiQProc; - void* _uiOscTarget; - char* _uiOscShowPath; - char* _uiOscControlPath; - char* _uiOscConfigurePath; - char* _uiOscProgramPath; - char* _uiOscPath; - bool _oscGuiVisible; - - OscControlFifo* _oscControlFifos; - - public: - OscIF(); - ~OscIF(); - - void oscSetPluginI(PluginI*); - - #ifdef DSSI_SUPPORT - void oscSetSynthIF(DssiSynthIF*); - #endif - - int oscUpdate(lo_arg**); - int oscProgram(lo_arg**); - int oscControl(lo_arg**); - int oscExiting(lo_arg**); - int oscMidi(lo_arg**); - int oscConfigure(lo_arg**); - - bool oscInitGui(); - void oscShowGui(bool); - bool oscGuiVisible() const; - OscControlFifo* oscFifo(unsigned long) const; -}; -*/ - -class OscIF -{ - protected: - QProcess* _oscGuiQProc; - void* _uiOscTarget; - char* _uiOscPath; - char* _uiOscSampleRatePath; - char* _uiOscConfigurePath; - char* _uiOscProgramPath; - char* _uiOscControlPath; - char* _uiOscShowPath; - bool _oscGuiVisible; - - OscControlFifo* _oscControlFifos; - - virtual bool oscInitGui(const QString& /*typ*/, const QString& /*baseName*/, const QString& /*name*/, - const QString& /*label*/, const QString& /*filePath*/, const QString& /*dirPath*/); - - public: - OscIF(); - virtual ~OscIF(); - - OscControlFifo* oscFifo(unsigned long) const; - - virtual int oscUpdate(lo_arg**); - virtual int oscProgram(lo_arg**) { return 0; } - virtual int oscControl(lo_arg**) { return 0; } - virtual int oscExiting(lo_arg**); - virtual int oscMidi(lo_arg**) { return 0; } - virtual int oscConfigure(lo_arg**) { return 0; } - - virtual void oscSendProgram(unsigned long /*prog*/, unsigned long /*bank*/); - virtual void oscSendControl(unsigned long /*dssiPort*/, float /*val*/); - virtual void oscSendConfigure(const char */*key*/, const char */*val*/); - - virtual bool oscInitGui() { return false; } - virtual void oscShowGui(bool); - virtual bool oscGuiVisible() const; -}; - -class OscEffectIF : public OscIF -{ - protected: - PluginI* _oscPluginI; - - public: - OscEffectIF() {} - //~OscEffectIF(); - - void oscSetPluginI(PluginI*); - - virtual int oscUpdate(lo_arg**); - //virtual int oscProgram(lo_arg**); - virtual int oscControl(lo_arg**); - //virtual int oscExiting(lo_arg**); - //virtual int oscMidi(lo_arg**); - virtual int oscConfigure(lo_arg**); - - virtual bool oscInitGui(); -}; - -#ifdef DSSI_SUPPORT -class OscDssiIF : public OscIF -{ - protected: - DssiSynthIF* _oscSynthIF; - - public: - OscDssiIF() {} - //~OscDssiIF(); - - void oscSetSynthIF(DssiSynthIF*); - - virtual int oscUpdate(lo_arg**); - virtual int oscProgram(lo_arg**); - virtual int oscControl(lo_arg**); - //virtual int oscExiting(lo_arg**); - virtual int oscMidi(lo_arg**); - virtual int oscConfigure(lo_arg**); - - virtual bool oscInitGui(); -}; -#endif // DSSI_SUPPORT - -extern void initOSC(); - -#endif |