00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef TRACK_PANEL_VIEW_H
00024 #define TRACK_PANEL_VIEW_H
00025
00026 #include "ViewItem.h"
00027
00028 class Track;
00029 class TrackView;
00030 class TrackPanelViewPort;
00031 class PanelLed;
00032 class TrackPanelView;
00033
00034 class TrackPanelGain : public ViewItem
00035 {
00036 Q_OBJECT
00037
00038 public:
00039 TrackPanelGain(TrackPanelView* parent, Track* track);
00040 TrackPanelGain(){}
00041
00042 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
00043 void set_width(int width);
00044
00045 public slots:
00046 Command* gain_increment();
00047 Command* gain_decrement();
00048
00049 private:
00050 Track* m_track;
00051 };
00052
00053 class TrackPanelPan : public ViewItem
00054 {
00055 Q_OBJECT
00056
00057 public:
00058 TrackPanelPan(TrackPanelView* parent, Track* track);
00059 TrackPanelPan(){}
00060
00061
00062 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
00063 void set_width(int width);
00064
00065 public slots:
00066 Command* pan_left();
00067 Command* pan_right();
00068
00069 private:
00070 Track* m_track;
00071 };
00072
00073
00074
00075 class TrackPanelLed : public ViewItem
00076 {
00077 Q_OBJECT
00078 public:
00079 TrackPanelLed(TrackPanelView* view, const QString& name, const QString& toggleslot);
00080
00081 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
00082 void set_bounding_rect(QRectF rect);
00083
00084 private:
00085 Track* m_track;
00086 QString m_name;
00087 QString m_toggleslot;
00088 bool m_isOn;
00089
00090 public slots:
00091 void ison_changed(bool isOn);
00092
00093 Command* toggle();
00094 };
00095
00096 class TrackPanelBus : public ViewItem
00097 {
00098 Q_OBJECT
00099 public:
00100 TrackPanelBus(TrackPanelView* view, Track* track, int busType);
00101 TrackPanelBus(){}
00102
00103 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
00104
00105 enum { BUSIN, BUSOUT };
00106
00107 private:
00108 Track* m_track;
00109 int m_type;
00110 QString m_busName;
00111 QPixmap m_pix;
00112
00113 public slots:
00114 void bus_changed();
00115 };
00116
00117
00118 class TrackPanelView : public ViewItem
00119 {
00120 Q_OBJECT
00121
00122 public:
00123 TrackPanelView(TrackView* trackView);
00124 ~TrackPanelView();
00125
00126 void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
00127 void calculate_bounding_rect();
00128
00129 Track* get_track() const {return m_track;}
00130
00131 private:
00132 Track* m_track;
00133 TrackView* m_tv;
00134 TrackPanelViewPort* m_viewPort;
00135 TrackPanelGain* m_gainView;
00136 TrackPanelPan* m_panView;
00137
00138 TrackPanelLed* muteLed;
00139 TrackPanelLed* soloLed;
00140 TrackPanelLed* recLed;
00141
00142 TrackPanelBus* inBus;
00143 TrackPanelBus* outBus;
00144
00145 void draw_panel_track_name(QPainter* painter);
00146 void layout_panel_items();
00147
00148 private slots:
00149 void update_gain();
00150 void update_pan();
00151 void update_track_name();
00152 };
00153
00154
00155 #endif
00156
00157
00158