diff options
author | Robert Jonsson <spamatica@gmail.com> | 2009-12-27 11:30:35 +0000 |
---|---|---|
committer | Robert Jonsson <spamatica@gmail.com> | 2009-12-27 11:30:35 +0000 |
commit | b703eab295330e6f81564fbb39a10a1a2fdd2f54 (patch) | |
tree | e46b5c9a6bc22fd661c15d1d2123f5bf631cef80 /muse_qt4_evolution/synti/libsynti/gui.h | |
parent | 5d5fa0fdf913907edbc3d2d29a7548f0cb658c94 (diff) |
moved old qt4 branch
Diffstat (limited to 'muse_qt4_evolution/synti/libsynti/gui.h')
-rw-r--r-- | muse_qt4_evolution/synti/libsynti/gui.h | 72 |
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 + |