annotate sv/main/EasaierSessionManager.h @ 21:ac5491829e61

add - EasaierSessionManager - Easaier menus - Interval model
author lbajardsilogic
date Mon, 14 May 2007 13:15:26 +0000
parents
children 87495ac7710a
rev   line source
lbajardsilogic@21 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@21 2
lbajardsilogic@21 3 /* Sound Access
lbajardsilogic@21 4 EASAIER client application.
lbajardsilogic@21 5 Silogic 2007. Laure Bajard.
lbajardsilogic@21 6
lbajardsilogic@21 7 This program is free software; you can redistribute it and/or
lbajardsilogic@21 8 modify it under the terms of the GNU General Public License as
lbajardsilogic@21 9 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@21 10 License, or (at your option) any later version. See the file
lbajardsilogic@21 11 COPYING included with this distribution for more information.
lbajardsilogic@21 12 */
lbajardsilogic@21 13
lbajardsilogic@21 14 #ifndef _EASAIER_SESSION_MANAGER_H_
lbajardsilogic@21 15 #define _EASAIER_SESSION_MANAGER_H_
lbajardsilogic@21 16
lbajardsilogic@21 17 #include <QObject>
lbajardsilogic@21 18 #include <QFile>
lbajardsilogic@21 19
lbajardsilogic@21 20 #include <map>
lbajardsilogic@21 21 #include <set>
lbajardsilogic@21 22
lbajardsilogic@21 23 #include "data/fileio/HttpClient.h"
lbajardsilogic@21 24 #include "document/Document.h"
lbajardsilogic@21 25 #include "view/Pane.h"
lbajardsilogic@21 26 #include "data/model/QueryModel.h"
lbajardsilogic@21 27
lbajardsilogic@21 28 class EasaierSessionManager : public QObject
lbajardsilogic@21 29 {
lbajardsilogic@21 30 Q_OBJECT
lbajardsilogic@21 31 public:
lbajardsilogic@21 32 EasaierSessionManager(HttpClient* httpClient);
lbajardsilogic@21 33 virtual ~EasaierSessionManager();
lbajardsilogic@21 34
lbajardsilogic@21 35 class LoadedFile : public QFile
lbajardsilogic@21 36 {
lbajardsilogic@21 37 public:
lbajardsilogic@21 38 LoadedFile() : QFile(){}
lbajardsilogic@21 39 LoadedFile(const QString & name ) : QFile(name ){}
lbajardsilogic@21 40 virtual ~LoadedFile(){}
lbajardsilogic@21 41
lbajardsilogic@21 42 enum FileType {
lbajardsilogic@21 43 UNKNOWN = 0,
lbajardsilogic@21 44 AUDIO_SOURCE_INFO = 1, // information (metadata) about an audio file
lbajardsilogic@21 45 MODEL = 2, // load a model in a existing layer
lbajardsilogic@21 46 METADATA = 3, // load the model and create an associated layer
lbajardsilogic@21 47 QUERY_CONFIG = 4, // config of the queries
lbajardsilogic@21 48 QUERY_RESULTS = 5 // query results
lbajardsilogic@21 49 };
lbajardsilogic@21 50
lbajardsilogic@21 51 inline FileType getFileType() const {return m_type;}
lbajardsilogic@21 52 inline void setFileType(const FileType type) {m_type = type;}
lbajardsilogic@21 53
lbajardsilogic@21 54 inline QString getUri() const {return m_uri;}
lbajardsilogic@21 55 inline void setUri(const QString& uri) {m_uri = uri;}
lbajardsilogic@21 56
lbajardsilogic@21 57 protected:
lbajardsilogic@21 58 FileType m_type;
lbajardsilogic@21 59
lbajardsilogic@21 60 QString m_uri;
lbajardsilogic@21 61
lbajardsilogic@21 62 };
lbajardsilogic@21 63
lbajardsilogic@21 64 public:
lbajardsilogic@21 65
lbajardsilogic@21 66 inline void setHttpClient(HttpClient* httpClient) {m_httpClient = httpClient;}
lbajardsilogic@21 67
lbajardsilogic@21 68 void loadFile(const QString& uri, LoadedFile::FileType type);
lbajardsilogic@21 69
lbajardsilogic@21 70 bool newSession();
lbajardsilogic@21 71 void closeSession();
lbajardsilogic@21 72 void closeFile();
lbajardsilogic@21 73
lbajardsilogic@21 74 /* open a existing session file:
lbajardsilogic@21 75 - open the audio source info file
lbajardsilogic@21 76 - load the appropriate metadata (needed by opened layers)
lbajardsilogic@21 77 */
lbajardsilogic@21 78 bool openSession(Document *document);
lbajardsilogic@21 79
lbajardsilogic@21 80 /* open an audio source info file
lbajardsilogic@21 81 */
lbajardsilogic@21 82 bool openAudioInfoFile(Document *document);
lbajardsilogic@21 83
lbajardsilogic@21 84 /*import metadata info in a new layer*/
lbajardsilogic@21 85 void importMetadata(const QString& filename, Pane* pane);
lbajardsilogic@21 86
lbajardsilogic@21 87 /* load the appropriate metadata (needed by opened layers)
lbajardsilogic@21 88 of an audio file
lbajardsilogic@21 89 */
lbajardsilogic@21 90 void loadRelatedModel();
lbajardsilogic@21 91
lbajardsilogic@21 92 /* add the metadata to the corresponding layers */
lbajardsilogic@21 93 bool addModelToLayers(const QString& name, const QString& filename);
lbajardsilogic@21 94
lbajardsilogic@21 95 /*query the database*/
lbajardsilogic@21 96 void queryDatabase(const QString& themeName);
lbajardsilogic@21 97
lbajardsilogic@21 98 public slots:
lbajardsilogic@21 99 void fileLoaded(int, bool);
lbajardsilogic@21 100
lbajardsilogic@21 101 signals:
lbajardsilogic@21 102 void queryModelLoaded(QueryModel* queryModel);
lbajardsilogic@21 103
lbajardsilogic@21 104 private:
lbajardsilogic@21 105
lbajardsilogic@21 106
lbajardsilogic@21 107 QString m_fileName;
lbajardsilogic@21 108
lbajardsilogic@21 109 HttpClient *m_httpClient;
lbajardsilogic@21 110
lbajardsilogic@21 111 Document *m_document;
lbajardsilogic@21 112
lbajardsilogic@21 113 std::map<int , LoadedFile*> m_loadFile;
lbajardsilogic@21 114
lbajardsilogic@21 115 AudioSourceInfoModel *m_audioSourceInfoModel;
lbajardsilogic@21 116
lbajardsilogic@21 117 std::set<QString> m_modelLoaded;
lbajardsilogic@21 118
lbajardsilogic@21 119 Pane *m_currentPane;
lbajardsilogic@21 120
lbajardsilogic@21 121 QueryModel *m_queryModel;
lbajardsilogic@21 122 };
lbajardsilogic@21 123
lbajardsilogic@21 124 #endif