File: arranger.h

package info (click to toggle)
muse 0.6.3-3
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 8,936 kB
  • ctags: 7,446
  • sloc: cpp: 66,262; sh: 8,355; makefile: 755; ansic: 172
file content (168 lines) | stat: -rw-r--r-- 4,292 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
//=========================================================
//  MusE
//  Linux Music Editor
//    $Id: arranger.h,v 1.1.1.1 2003/10/29 10:06:19 wschweer Exp $
//  (C) Copyright 1999 Werner Schweer (ws@seh.de)
//=========================================================

#ifndef __ARRANGER_H__
#define __ARRANGER_H__

#include <qwidget.h>
#include <qheader.h>
#include <qwhatsthis.h>

#include "midieditor.h"
#include "pcanvas.h"

class QMainWindow;
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 QSpinBox;
class MidiTrackInfoBase;
class WaveTrackInfoBase;

class TWhatsThis : public QWhatsThis {
      Header* header;
   protected:
      QString text(const QPoint&);
   public:
      TWhatsThis(QWidget* parent, Header* h) : QWhatsThis(parent) {
            header = h;
            }
      };

//---------------------------------------------------------
//   Arranger
//---------------------------------------------------------

class Arranger : public QWidget {
      int _quant, _raster;
      PartCanvas* canvas;
      ScrollScale* hscroll;
      QScrollBar* vscroll;
      TList* list;
      Header* header;
      MTScale* time;
      QSpinBox* lenEntry;
      bool showTrackinfo;

      MidiTrackInfoBase* midiTrackInfo;
      WaveTrackInfoBase* waveTrackInfo;
      QWidget* noTrackInfo;

      QCheckBox* midiThru;

      Track* selected;

      LabelCombo* typeBox;
      QToolButton* ib;
      int trackInfoType;
      Splitter* split;
      QPopupMenu* pop;
      int songType;
      QString _bgPixmap;
      PosLabel* cursorPos;
      QSpinBox* globalTempoSpinBox;

      int trackInfoSize;

      Q_OBJECT
      void genTrackInfo(QWidget* parent);
      void genMidiTrackInfo();
      void genWaveTrackInfo();
      void updateMidiTrackInfo();
      void updateWaveTrackInfo();
      void updateNoTrackInfo();

   private slots:
      void setOutputRoute(const QString& r);

      void _setRaster(int);
      void songlenChanged(int);
      void showInspector(bool);
      void trackSelectionChanged();

      void iNameChanged();
      void iwNameChanged();
      void nameChanged(const QString&);
      void iHBankChanged(int);
      void iLBankChanged(int);
      void iInputChannelChanged(const QString&);
      void iOutputChannelChanged(int);
      void iInputPortChanged(const QString&);
      void iOutputPortChanged(int);
      void iProgramChanged(int);
      void iLautstChanged(int);
      void iTranspChanged(int);
      void iAnschlChanged(int);
      void iVerzChanged(int);
      void iLenChanged(int);
      void iKomprChanged(int);
      void iPanChanged(int);
      void updateInspector();
      void songChanged(int);
      void modeChange(int);
      void instrPopup();
      void iChannelsChanged(int);
      void setTime(int);
      void midiThruChanged(bool);
      void headerMoved();
      void globalPitchChanged(int);
      void globalTempoChanged(int);
      void setTempo50();
      void setTempo100();
      void setTempo200();

   signals:
      void editPart(Track*);
      void selectionChanged();
      void dropFile(const QString&);
      void startEditor(PartList*, int);
      void toolChanged(int);

   public slots:
      void dclickPart(Track*);
      void setTool(int);
      void setActivityMode(int);
      void setActivityColor(QColor);

   public:
      enum { CMD_CUT_PART, CMD_COPY_PART, CMD_PASTE_PART };

      Arranger(QMainWindow* parent, const char* name = 0);
      void setBgPixmap(const QString&);
      const QString& bgPixmap() const { return _bgPixmap; }
      void setMode(int);
      void reset();
      int showPartType() const;
      int showPartEvent() const;
      void setShowPartType(int val);
      void setShowPartEvent(int val);

      void writeStatus(int level, Xml&);
      void readStatus(Xml&);

      Track* curTrack() const { return selected; }
      void cmd(int);
      bool isSingleSelection() { return canvas->isSingleSelection(); }
      int getActivityMode() const;
      QColor getActivityColor() const;
//      QColor getSelectedTrackColor() const;
      void setGrid(bool);
      bool hasGrid();
      void setGlobalTempo(int);
      };

#endif