/[svn]/qsampler/trunk/src/qsamplerMainForm.h
ViewVC logotype

Annotation of /qsampler/trunk/src/qsamplerMainForm.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1514 - (hide annotations) (download) (as text)
Fri Nov 23 10:51:37 2007 UTC (16 years, 5 months ago) by capela
File MIME type: text/x-c++hdr
File size: 4650 byte(s)
* The current selected/activated channel-strip is now visually
  evident while in the application workspace (highlighting).

1 capela 1464 // qsamplerMainForm.h
2     //
3     /****************************************************************************
4     Copyright (C) 2004-2007, rncbc aka Rui Nuno Capela. All rights reserved.
5     Copyright (C) 2007, Christian Schoenebeck
6 schoenebeck 1461
7 capela 1464 This program is free software; you can redistribute it and/or
8     modify it under the terms of the GNU General Public License
9     as published by the Free Software Foundation; either version 2
10     of the License, or (at your option) any later version.
11    
12     This program is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15     GNU General Public License for more details.
16    
17     You should have received a copy of the GNU General Public License along
18     with this program; if not, write to the Free Software Foundation, Inc.,
19     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20    
21     *****************************************************************************/
22    
23     #ifndef __qsamplerMainForm_h
24     #define __qsamplerMainForm_h
25    
26 schoenebeck 1461 #include "ui_qsamplerMainForm.h"
27    
28 capela 1513 #include <lscp/client.h>
29 schoenebeck 1461
30 capela 1513 class qsamplerOptions;
31     class qsamplerMessages;
32     class qsamplerChannel;
33    
34     class QProcess;
35 capela 1499 class QWorkspace;
36 capela 1513 class QSpinBox;
37     class QSlider;
38     class QLabel;
39 capela 1499
40    
41 schoenebeck 1461 namespace QSampler {
42    
43 capela 1513 class ChannelStrip;
44 schoenebeck 1461 class DeviceForm;
45 capela 1513 class InstrumentListForm;
46 schoenebeck 1461
47 capela 1513
48 capela 1509 class MainForm : public QMainWindow
49     {
50     Q_OBJECT
51    
52 schoenebeck 1461 public:
53    
54 capela 1509 MainForm(QWidget *pParent = NULL);
55     ~MainForm();
56    
57     void setup(qsamplerOptions* pOptions);
58    
59     qsamplerOptions* options() const;
60     lscp_client_t* client() const;
61    
62     QString sessionName(const QString& sFilename);
63    
64     void appendMessages(const QString& s);
65     void appendMessagesColor(const QString& s, const QString& c);
66     void appendMessagesText(const QString& s);
67     void appendMessagesError(const QString& s);
68     void appendMessagesClient(const QString& s);
69    
70     ChannelStrip* createChannelStrip(qsamplerChannel *pChannel);
71     ChannelStrip* activeChannelStrip();
72     ChannelStrip* channelStripAt(int iChannel);
73     ChannelStrip* channelStrip(int iChannelID);
74    
75     void contextMenuEvent(QContextMenuEvent *pEvent);
76    
77     static MainForm* getInstance();
78    
79 schoenebeck 1461 public slots:
80    
81 capela 1509 void fileNew();
82     void fileOpen();
83     void fileOpenRecent();
84     void fileSave();
85     void fileSaveAs();
86     void fileReset();
87     void fileRestart();
88     void fileExit();
89     void editAddChannel();
90     void editRemoveChannel();
91     void editSetupChannel();
92     void editEditChannel();
93     void editResetChannel();
94     void editResetAllChannels();
95     void viewMenubar(bool bOn);
96     void viewToolbar(bool bOn);
97     void viewStatusbar(bool bOn);
98     void viewMessages(bool bOn);
99     void viewInstruments();
100     void viewDevices();
101     void viewOptions();
102     void channelsArrange();
103     void channelsAutoArrange(bool bOn);
104     void helpAboutQt();
105     void helpAbout();
106     void volumeChanged(int iVolume);
107     void channelStripChanged(ChannelStrip *pChannelStrip);
108     void channelsMenuAboutToShow();
109     void channelsMenuActivated();
110     void timerSlot();
111     void readServerStdout();
112     void processServerExit();
113     void sessionDirty();
114     void stabilizeForm();
115    
116 capela 1499 protected slots:
117    
118 capela 1509 void updateRecentFilesMenu();
119 capela 1499
120 capela 1514 // Channel strip activation/selection.
121     void activateStrip(QWidget *pWidget);
122    
123 schoenebeck 1461 protected:
124    
125 capela 1509 bool queryClose();
126     void closeEvent(QCloseEvent* pCloseEvent);
127     void dragEnterEvent(QDragEnterEvent *pDragEnterEvent);
128     void dropEvent(QDropEvent *pDropEvent);
129     void customEvent(QEvent* pCustomEvent);
130     bool newSession();
131     bool openSession();
132     bool saveSession(bool bPrompt);
133     bool closeSession(bool bForce);
134     bool loadSessionFile(const QString& sFilename);
135     bool saveSessionFile(const QString& sFilename);
136     void updateSession();
137     void updateRecentFiles(const QString& sFilename);
138     void updateInstrumentNames();
139     void updateDisplayFont();
140     void updateDisplayEffect();
141     void updateMaxVolume();
142     void updateMessagesFont();
143     void updateMessagesLimit();
144     void updateMessagesCapture();
145     void startSchedule(int iStartDelay);
146     void stopSchedule();
147     void startServer();
148     void stopServer();
149     bool startClient();
150     void stopClient();
151    
152 schoenebeck 1461 private:
153    
154 capela 1509 Ui::qsamplerMainForm m_ui;
155 schoenebeck 1461
156 capela 1509 qsamplerOptions *m_pOptions;
157     qsamplerMessages *m_pMessages;
158     QWorkspace *m_pWorkspace;
159     QString m_sFilename;
160     int m_iUntitled;
161     int m_iDirtyCount;
162     lscp_client_t *m_pClient;
163     QProcess *m_pServer;
164     int m_iStartDelay;
165     int m_iTimerDelay;
166     int m_iTimerSlot;
167     QLabel *m_statusItem[5];
168     QList<ChannelStrip *> m_changedStrips;
169     InstrumentListForm *m_pInstrumentListForm;
170     DeviceForm *m_pDeviceForm;
171     static MainForm *g_pMainForm;
172     QSlider *m_pVolumeSlider;
173     QSpinBox *m_pVolumeSpinBox;
174     int m_iVolumeChanging;
175 schoenebeck 1461 };
176    
177     } // namespace QSampler
178    
179 capela 1464 #endif // __qsamplerMainForm_h
180    
181    
182 capela 1465 // end of qsamplerMainForm.h

  ViewVC Help
Powered by ViewVC