00001 00008 #ifndef CANORUS_H_ 00009 #define CANORUS_H_ 00010 00011 // Python.h needs to be loaded first! 00012 #include "ui/mainwin.h" 00013 #include "ui/settingsdialog.h" 00014 #include "core/autorecovery.h" 00015 00016 #include <QString> 00017 #include <QList> 00018 #include <QUndoStack> 00019 #include <QHash> 00020 00021 class CASettings; 00022 class CAMidiDevice; 00023 class CADocument; 00024 class CAUndo; 00025 00026 class CACanorus { 00027 public: 00028 static void initMain( int argc=0, char *argv[]=0 ); 00029 static CASettingsDialog::CASettingsPage initSettings(); 00030 static void initCommonGUI(); 00031 static void initPlayback(); 00032 static bool parseSettingsArguments(int argc, char *argv[]); 00033 static void initScripting(); 00034 static void initAutoRecovery(); 00035 static void initUndo(); 00036 static void parseOpenFileArguments(int argc, char *argv[]); 00037 static void cleanUp(); 00038 00039 static QList<QString> locateResource(const QString fileName); 00040 static QList<QString> locateResourceDir(const QString fileName); 00041 00042 inline static QApplication *mainApp() { return _mainApp; } 00043 inline static int mainWinCount() { return _mainWinList.size(); } 00044 static int mainWinCount(CADocument *); 00045 static QList<CAMainWin*> findMainWin(CADocument* document); 00046 inline static CAMainWin* mainWinAt(int idx) { return _mainWinList[idx]; } 00047 inline static void removeMainWin(CAMainWin *w) { _mainWinList.removeAll(w); } 00048 inline static void removeViewPort(CAViewPort *v) { for (int i=0; i<mainWinCount(); i++) _mainWinList[i]->removeViewPort(v); } 00049 inline static void addMainWin( CAMainWin *w ) { _mainWinList << w; } 00050 inline static void restartTimeEditedTimes(CADocument *doc) { for (int i=0; i<mainWinCount(); i++) if (mainWinAt(i)->document()==doc) mainWinAt(i)->restartTimeEditedTime(); } 00051 00052 inline static CAUndo *undo() { return _undo; } 00053 00054 static void addRecentDocument( QString ); 00055 static void insertRecentDocument( QString ); 00056 static void removeRecentDocument( QString ); 00057 inline static QList<QString>& recentDocumentList() { return _recentDocumentList; } 00058 00059 inline static CASettings *settings() { return _settings; } 00060 inline static CAAutoRecovery *autoRecovery() { return _autoRecovery; } 00061 inline static QString settingsPath() { return _settingsPath; } 00062 inline static CAMidiDevice *midiDevice() { return _midiDevice; } 00063 inline static void setMidiDevice(CAMidiDevice *d) { _midiDevice = d; } 00064 00065 static void rebuildUI( CADocument *document, CASheet *sheet ); 00066 static void rebuildUI( CADocument *document=0 ); 00067 00068 private: 00069 static QList<CAMainWin*> _mainWinList; 00070 static CASettings *_settings; 00071 static QString _settingsPath; 00072 static CAUndo *_undo; 00073 static QApplication *_mainApp; 00074 static QList<QString> _recentDocumentList; 00075 00076 // Playback output 00077 static CAMidiDevice *_midiDevice; 00078 00079 // Auto recovery 00080 static CAAutoRecovery *_autoRecovery; 00081 }; 00082 #endif /* CANORUS_H_ */
1.5.3