summaryrefslogtreecommitdiff
path: root/muse_qt4_evolution/synti/libsynti/gui.h
diff options
context:
space:
mode:
Diffstat (limited to 'muse_qt4_evolution/synti/libsynti/gui.h')
-rw-r--r--muse_qt4_evolution/synti/libsynti/gui.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/muse_qt4_evolution/synti/libsynti/gui.h b/muse_qt4_evolution/synti/libsynti/gui.h
new file mode 100644
index 00000000..27bebe3f
--- /dev/null
+++ b/muse_qt4_evolution/synti/libsynti/gui.h
@@ -0,0 +1,72 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// software synthesizer helper library
+// $Id: gui.h,v 1.5 2005/05/11 14:18:48 wschweer Exp $
+//
+// (C) Copyright 2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __SYNTH_GUI_H__
+#define __SYNTH_GUI_H__
+
+#include "midievent.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
+ MidiEvent rFifo[EVENT_FIFO_SIZE];
+ volatile int rFifoSize;
+ int rFifoWindex;
+ int rFifoRindex;
+
+ // Event Fifo GUI -> synti
+ MidiEvent wFifo[EVENT_FIFO_SIZE];
+ volatile int wFifoSize;
+ int wFifoWindex;
+ int wFifoRindex;
+
+ protected:
+ int readFd;
+ void readMessage();
+ void sendEvent(const MidiEvent& ev);
+ void sendController(int ch, int idx, int val);
+ void sendSysex(unsigned char*, int);
+
+ virtual void processEvent(const MidiEvent&) {};
+
+ public:
+ MessGui();
+ virtual ~MessGui();
+
+ void writeEvent(const MidiEvent&);
+ int fifoSize() const { return wFifoSize; }
+ MidiEvent 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
+