summaryrefslogtreecommitdiff
path: root/muse_qt4_evolution/muse/extmidieditor.h
diff options
context:
space:
mode:
Diffstat (limited to 'muse_qt4_evolution/muse/extmidieditor.h')
-rw-r--r--muse_qt4_evolution/muse/extmidieditor.h120
1 files changed, 120 insertions, 0 deletions
diff --git a/muse_qt4_evolution/muse/extmidieditor.h b/muse_qt4_evolution/muse/extmidieditor.h
new file mode 100644
index 00000000..b02ac730
--- /dev/null
+++ b/muse_qt4_evolution/muse/extmidieditor.h
@@ -0,0 +1,120 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2004 Mathias Lundgren <lunar_shuttle@users.sourceforge.net>
+//
+// 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 __EXTMIDIEDITOR_H__
+#define __EXTMIDIEDITOR_H__
+
+#include "midiedit/midieditor.h"
+#include "esettings.h"
+
+namespace AL {
+ class Pos;
+ };
+
+class EditToolBar;
+class NoteInfo;
+class PartList;
+class CtrlEdit;
+class Toolbar1;
+class Part;
+
+//---------------------------------------------------------
+// GraphMidiEditor
+//
+// Base class for graphical editors
+// Currently used by WaveEdit and MasterEdit
+//---------------------------------------------------------
+
+class GraphMidiEditor : public MidiEditor {
+ Q_OBJECT
+
+ protected:
+ virtual EditorSettings* newDefaultSettings(); //TODO: = 0
+ virtual void initSettings();
+ virtual void refreshSettings() const;
+ QAction* srec;
+ QAction* midiin;
+ bool _followSong;
+ EditToolBar* tools2;
+
+ protected slots:
+ void setRaster(int val);
+
+ public:
+ GraphMidiEditor(PartList*);
+ virtual ~GraphMidiEditor();
+ int rasterStep(unsigned tick) const;
+ unsigned rasterVal(unsigned v) const;
+ unsigned rasterVal1(unsigned v) const;
+ unsigned rasterVal2(unsigned v) const;
+ int raster() const;
+ bool followSong() const { return _followSong; }
+ };
+
+
+//---------------------------------------------------------
+// ExtMidiEditor
+//
+// Inherited by Drumeditor and Pianoroll
+// Not instantiated directly - virtual
+//---------------------------------------------------------
+
+class ExtMidiEditor : public GraphMidiEditor {
+ Q_OBJECT
+ int _curDrumInstrument; // currently selected instrument if drum
+ // editor
+
+ protected:
+ std::list<CtrlEdit*> ctrlEditList;
+ virtual EditorSettings* newDefaultSettings();
+ virtual void initSettings();
+ virtual void refreshSettings() const;
+ Toolbar1* toolbar;
+ Part* selPart;
+ NoteInfo* info;
+ QToolBar* tools;
+ EventCanvas* canvas;
+ WaveView* wview;
+
+ void updateCtrlEdits() const;
+
+ signals:
+ void curDrumInstrumentChanged(int); //hACK!
+
+ protected slots:
+ void setQuant(int val);
+ void follow(int pos);
+ void removeCtrl(CtrlEdit* ctrl);
+ virtual CtrlEdit* addCtrl();
+
+ public slots:
+ void setCurDrumInstrument(int instr); //hACK!
+
+ public:
+ ExtMidiEditor(PartList*);
+ virtual ~ExtMidiEditor();
+ int quantVal(int v) const;
+ int quant() const;
+
+ int curDrumInstrument() const { return _curDrumInstrument; }
+ };
+
+#endif
+