diff options
Diffstat (limited to 'muse/synti/simpledrums/simpledrumsgui.h')
-rw-r--r-- | muse/synti/simpledrums/simpledrumsgui.h | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/muse/synti/simpledrums/simpledrumsgui.h b/muse/synti/simpledrums/simpledrumsgui.h new file mode 100644 index 00000000..4ae7e87b --- /dev/null +++ b/muse/synti/simpledrums/simpledrumsgui.h @@ -0,0 +1,209 @@ +// +// C++ Interface: testogui +// +// Description: +// +// +// Author: Mathias Lundgren <lunar_shuttle@users.sf.net>, (C) 2004 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef __MUSE_TESTOGUI_H__ +#define __MUSE_TESTOGUI_H__ + +#include <qslider.h> +#include <qcheckbox.h> +#include <qpushbutton.h> +#include <qdial.h> + +#include "libsynti/gui.h" +#include "simpledrumsguibase.h" +#include "common.h" + + + +class QButtonGroup; +class QLabel; +class SS_PluginGui; + +//-------------------------------------- +// QChannelSlider +//-------------------------------------- +class QChannelSlider: public QSlider + { + Q_OBJECT + + public: + QChannelSlider(Qt::Orientation, int ch, QWidget* paren, const char* name = 0); + int getChannel(); + void setChannel(int ch); + + public slots: + virtual void setValue(int val); + + signals: + void valueChanged(int channel, int value); + + protected: + int channel; + }; + +//-------------------------------------- +// QInvertedSlider +//-------------------------------------- +class QInvertedSlider : public QSlider + { + Q_OBJECT + public: + QInvertedSlider(Qt::Orientation o, QWidget* parent, const char* name = 0) + : QSlider(o, parent, name) {} + + public slots: + virtual void setValue(int val); + + signals: + void invertedValueChanged(int value); + }; + +//-------------------------------------- +// QInvertedChannelSlider +//-------------------------------------- +class QInvertedChannelSlider : public QChannelSlider + { + Q_OBJECT + public: + QInvertedChannelSlider(Qt::Orientation o, int channel, QWidget* parent, const char* name = 0) + : QChannelSlider(o, channel, parent, name) {}; + + public slots: + virtual void setValue(int val); + }; + + +//-------------------------------------- +// QChannelOnOff +//-------------------------------------- + +class QChannelCheckbox : public QCheckBox + { + Q_OBJECT + public: + QChannelCheckbox(QWidget* parent, int channel, const char* name = 0); + + private: + int channel; + + private slots: + void isClicked(); + + signals: + void channelState(int channel, bool state); + }; + +//-------------------------------------- +// QChannelButton +//-------------------------------------- +class QChannelButton : public QPushButton + { + Q_OBJECT + + private: + int channel; + + public: + QChannelButton(QWidget* parent, const char* text, int ch, const char* name = 0); + + private slots: + void isClicked(); + + signals: + void channelState(int channel, bool state); + + }; + +//-------------------------------------- +// QChannelDial +//-------------------------------------- +class QChannelDial : public QDial + { + Q_OBJECT + + public: + QChannelDial(QWidget* parent, int ch, int fxid, const char* name = 0); + + signals: + void valueChanged(int channel, int fxid, int val); + + public slots: + virtual void setValue(int val); + + protected: + int channel; + int sendfxid; + }; + +//-------------------------------------- +// SimpleSynthGui - the Gui +//-------------------------------------- +class SimpleSynthGui : public SimpleDrumsGuiBase, public MessGui + { + Q_OBJECT + private: + // MESS interface: + virtual void processEvent(const MidiPlayEvent& ev); + void setChannelVolume(int channel, int volume); + void displayPluginGui(); + QGroupBox* channelButtonGroups[SS_NR_OF_CHANNELS]; + QButtonGroup* masterButtonGroup; + QGroupBox* mainGroupBox; + QInvertedChannelSlider* volumeSliders[SS_NR_OF_CHANNELS]; + QChannelSlider* panSliders[SS_NR_OF_CHANNELS]; + QChannelCheckbox* onOff[SS_NR_OF_CHANNELS]; + QChannelCheckbox* nOffIgnore[SS_NR_OF_CHANNELS]; + QChannelButton* loadSampleButton[SS_NR_OF_CHANNELS]; + QChannelButton* clearSampleButton[SS_NR_OF_CHANNELS]; + QLabel* nOffLabel[SS_NR_OF_CHANNELS]; + QLineEdit* sampleNameLineEdit[SS_NR_OF_CHANNELS]; + QInvertedSlider* masterSlider; + QChannelDial* sendFxDial[SS_NR_OF_CHANNELS][SS_NR_OF_SENDEFFECTS]; + + QPushButton* openPluginsButton; + QPushButton* aboutButton; + + QString lastDir; + QString lastSavedProject; + QString lastProjectDir; + SS_PluginGui* pluginGui; + + public: + SimpleSynthGui(); + virtual ~SimpleSynthGui(); + + public slots: + void loadEffectInvoked(int fxid, QString lib, QString label); + void returnLevelChanged(int fxid, int val); + void toggleEffectOnOff(int fxid, int state); + void clearPlugin(int fxid); + void effectParameterChanged(int fxid, int parameter, int val); + + private slots: + void volumeChanged(int channel, int val); + void panChanged(int channel, int value); + void channelOnOff(int channel, bool state); + void channelNoteOffIgnore(int channel, bool state); + void masterVolChanged(int val); + void loadSampleDialogue(int channel); + void readMessage(int); + void clearSample(int ch); + void sendFxChanged(int ch, int fxid, int val); + void openPluginButtonClicked(); + void aboutButtonClicked(); + void loadSetup(); + void saveSetup(); + + }; + +extern SimpleSynthGui* simplesynthgui_ptr; + +#endif |