summaryrefslogtreecommitdiff
path: root/muse2/synti/libsynti/gui.h
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/synti/libsynti/gui.h')
-rw-r--r--muse2/synti/libsynti/gui.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/muse2/synti/libsynti/gui.h b/muse2/synti/libsynti/gui.h
new file mode 100644
index 00000000..54044243
--- /dev/null
+++ b/muse2/synti/libsynti/gui.h
@@ -0,0 +1,72 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// software synthesizer helper library
+// $Id: gui.h,v 1.4 2004/06/19 09:50:37 wschweer Exp $
+//
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SYNTH_GUI_H__
+#define __SYNTH_GUI_H__
+
+#include "mpevent.h"
+
+const int EVENT_FIFO_SIZE = 256;
+class QWidget;
+
+//---------------------------------------------------------
+// MessGui
+// manage IO from synti-GUI to Host
+//---------------------------------------------------------
+
+class MessGui {
+ int writeFd;
+
+ // Event Fifo synti -> GUI
+ MidiPlayEvent rFifo[EVENT_FIFO_SIZE];
+ volatile int rFifoSize;
+ int rFifoWindex;
+ int rFifoRindex;
+
+ // Event Fifo GUI -> synti
+ MidiPlayEvent wFifo[EVENT_FIFO_SIZE];
+ volatile int wFifoSize;
+ int wFifoWindex;
+ int wFifoRindex;
+
+ protected:
+ int readFd;
+ void readMessage();
+ void sendEvent(const MidiPlayEvent& ev);
+ void sendController(int,int,int);
+ void sendSysex(unsigned char*, int);
+
+ virtual void processEvent(const MidiPlayEvent&) {};
+
+ public:
+ MessGui();
+ virtual ~MessGui();
+
+ void writeEvent(const MidiPlayEvent&);
+ int fifoSize() const { return wFifoSize; }
+ MidiPlayEvent readEvent();
+ };
+
+//---------------------------------------------------------
+// SynthGuiCtrl
+//---------------------------------------------------------
+
+struct SynthGuiCtrl {
+ enum EditorType { SLIDER, SWITCH, COMBOBOX };
+ QWidget* editor;
+ QWidget* label;
+ EditorType type;
+
+ SynthGuiCtrl() {}
+ SynthGuiCtrl(QWidget* w, QWidget* l, const EditorType t)
+ : editor(w), label(l), type(t) {}
+ };
+
+#endif
+