summaryrefslogtreecommitdiff
path: root/muse2/muse/arranger/arranger.h
diff options
context:
space:
mode:
authorRobert Jonsson <spamatica@gmail.com>2010-10-13 19:34:22 +0000
committerRobert Jonsson <spamatica@gmail.com>2010-10-13 19:34:22 +0000
commit8a2c2824a59d7644e13bc52c9a0ecbd641f21f95 (patch)
tree064ad3f2bf8daab0ad27b128abd86a9bbdb1e496 /muse2/muse/arranger/arranger.h
parenta27706d9629e8b592cca4659f865b70adef24e6d (diff)
new branch muse2, first checkin
Diffstat (limited to 'muse2/muse/arranger/arranger.h')
-rw-r--r--muse2/muse/arranger/arranger.h227
1 files changed, 227 insertions, 0 deletions
diff --git a/muse2/muse/arranger/arranger.h b/muse2/muse/arranger/arranger.h
new file mode 100644
index 00000000..b96a5602
--- /dev/null
+++ b/muse2/muse/arranger/arranger.h
@@ -0,0 +1,227 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: arranger.h,v 1.17.2.15 2009/11/14 03:37:48 terminator356 Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __ARRANGER_H__
+#define __ARRANGER_H__
+
+#include <vector>
+
+#include <qwidget.h>
+#include <q3header.h>
+#include <q3whatsthis.h>
+//Added by qt3to4:
+#include <QWheelEvent>
+#include <Q3PopupMenu>
+
+#include "midieditor.h"
+#include "pcanvas.h"
+#include "mtrackinfobase.h"
+#include "trackautomationview.h"
+
+class Q3MainWindow;
+class QToolButton;
+class Header;
+class TList;
+class ScrollScale;
+class QScrollBar;
+class MTScale;
+class Track;
+class Xml;
+class Splitter;
+class LabelCombo;
+class PosLabel;
+class QCheckBox;
+class MidiTrackInfoBase;
+class WaveTrackInfoBase;
+class TLLayout;
+class WidgetStack;
+class AudioStrip;
+class SpinBox;
+//---------------------------------------------------------
+// TWhatsThis
+//---------------------------------------------------------
+
+class TWhatsThis : public Q3WhatsThis {
+ Header* header;
+ protected:
+ QString text(const QPoint&);
+ public:
+ TWhatsThis(QWidget* parent, Header* h) : Q3WhatsThis(parent) {
+ header = h;
+ }
+ };
+
+//---------------------------------------------------------
+// WidgetStack
+//---------------------------------------------------------
+
+class WidgetStack : public QWidget {
+ Q_OBJECT
+ std::vector<QWidget*> stack;
+ int top;
+
+ public:
+ WidgetStack(QWidget* parent, const char* name = 0);
+ void raiseWidget(int idx);
+ void addWidget(QWidget* w, unsigned int idx);
+ QWidget* getWidget(unsigned int idx);
+ QWidget* visibleWidget() const;
+ int curIdx() const { return top; }
+ QSize minimumSizeHint() const;
+ };
+
+//---------------------------------------------------------
+// MidiTrackInfo
+//---------------------------------------------------------
+
+class MidiTrackInfo : public MidiTrackInfoBase {
+ public:
+ bool _midiDetect;
+ MidiTrackInfo(QWidget* parent) : MidiTrackInfoBase(parent) { _midiDetect = false; }
+ };
+
+//---------------------------------------------------------
+// Arranger
+//---------------------------------------------------------
+
+class Arranger : public QWidget {
+ Q_OBJECT
+
+ int _quant, _raster;
+ PartCanvas* canvas;
+ ScrollScale* hscroll;
+ QScrollBar* vscroll;
+ TList* list;
+ Header* header;
+ MTScale* time;
+ SpinBox* lenEntry;
+ bool showTrackinfoFlag;
+ WidgetStack* trackInfo;
+ QScrollBar* infoScroll;
+ //MidiTrackInfoBase* midiTrackInfo;
+ MidiTrackInfo* midiTrackInfo;
+ AudioStrip* waveTrackInfo;
+ QWidget* noTrackInfo;
+ TLLayout* tgrid;
+
+ Track* selected;
+
+ LabelCombo* typeBox;
+ QToolButton* ib;
+ int trackInfoType;
+ Splitter* split;
+ Q3PopupMenu* pop;
+ int songType;
+ PosLabel* cursorPos;
+ SpinBox* globalTempoSpinBox;
+ SpinBox* globalPitchSpinBox;
+ int program, pan, volume;
+
+ unsigned cursVal;
+ void genTrackInfo(QWidget* parent);
+ void genMidiTrackInfo();
+ void genWaveTrackInfo();
+ void updateMidiTrackInfo(int flags);
+ void switchInfo(int);
+
+ private slots:
+ void _setRaster(int);
+ void songlenChanged(int);
+ void showTrackInfo(bool);
+ void trackSelectionChanged();
+ void trackInfoScroll(int);
+
+ //void iNameChanged();
+ ///void iInputChannelChanged(const QString&);
+ void iOutputChannelChanged(int);
+ ///void iInputPortChanged(const QString&);
+ void iOutputPortChanged(int);
+ void iProgHBankChanged();
+ void iProgLBankChanged();
+ void iProgramChanged();
+ void iProgramDoubleClicked();
+ void iLautstChanged(int);
+ void iLautstDoubleClicked();
+ void iTranspChanged(int);
+ void iAnschlChanged(int);
+ void iVerzChanged(int);
+ void iLenChanged(int);
+ void iKomprChanged(int);
+ void iPanChanged(int);
+ void iPanDoubleClicked();
+ void songChanged(int);
+ void modeChange(int);
+ void instrPopup();
+ void setTime(unsigned);
+ void headerMoved();
+ void globalPitchChanged(int);
+ void globalTempoChanged(int);
+ void setTempo50();
+ void setTempo100();
+ void setTempo200();
+ //void seek();
+ void recordClicked();
+ void progRecClicked();
+ void volRecClicked();
+ void panRecClicked();
+ void recEchoToggled(bool);
+ void verticalScrollSetYpos(unsigned);
+ void inRoutesPressed();
+ void outRoutesPressed();
+ void routingPopupMenuActivated(int /*id*/);
+
+ signals:
+ void redirectWheelEvent(QWheelEvent*);
+ void editPart(Track*);
+ void selectionChanged();
+ void dropSongFile(const QString&);
+ void dropMidiFile(const QString&);
+ void startEditor(PartList*, int);
+ void toolChanged(int);
+ //void addMarker(int);
+ void setUsedTool(int);
+
+
+ protected:
+
+ virtual void wheelEvent(QWheelEvent* e);
+
+ protected slots:
+ virtual void midiTrackInfoHeartBeat();
+
+ public slots:
+ void dclickPart(Track*);
+ void setTool(int);
+ void updateTrackInfo(int flags);
+ void configChanged();
+ void controllerChanged(Track *t);
+
+ public:
+ enum { CMD_CUT_PART, CMD_COPY_PART, CMD_PASTE_PART, CMD_PASTE_CLONE_PART, CMD_PASTE_PART_TO_TRACK, CMD_PASTE_CLONE_PART_TO_TRACK,
+ CMD_INSERT_PART, CMD_INSERT_EMPTYMEAS };
+
+ Arranger(Q3MainWindow* parent, const char* name = 0);
+ void setMode(int);
+ void reset();
+
+ void setTrackInfoLabelText();
+ void setTrackInfoLabelFont();
+
+ void writeStatus(int level, Xml&);
+ void readStatus(Xml&);
+
+ Track* curTrack() const { return selected; }
+ void cmd(int);
+ bool isSingleSelection() { return canvas->isSingleSelection(); }
+ void setGlobalTempo(int);
+ void clear();
+
+ unsigned cursorValue() { return cursVal; }
+ };
+
+#endif
+