annotate sv/main/EasaierSessionManager.h @ 257:057856cf81a2

reformat the InfoWidget and integrate the related media query
author lbajardsilogic
date Wed, 18 Jun 2008 10:38:39 +0000
parents bf7e98ee11f4
children 3f41cb822166
rev   line source
lbarthelemy@247 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbarthelemy@247 2
lbarthelemy@247 3 /* Sound Access
lbarthelemy@247 4 EASAIER client application.
lbarthelemy@247 5 Silogic 2007. Laure Bajard.
lbarthelemy@247 6
lbarthelemy@247 7 This program is free software; you can redistribute it and/or
lbarthelemy@247 8 modify it under the terms of the GNU General Public License as
lbarthelemy@247 9 published by the Free Software Foundation; either version 2 of the
lbarthelemy@247 10 License, or (at your option) any later version. See the file
lbarthelemy@247 11 COPYING included with this distribution for more information.
lbarthelemy@247 12 */
lbarthelemy@247 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@143 48 QUERY_RESULTS = 5, // query results
lbajardsilogic@143 49 RELATED_MEDIA_LIST = 6, // related media list
lbajardsilogic@143 50 RELATED_MEDIA = 7 // related media
lbajardsilogic@21 51 };
lbajardsilogic@21 52
lbajardsilogic@21 53 inline FileType getFileType() const {return m_type;}
lbajardsilogic@21 54 inline void setFileType(const FileType type) {m_type = type;}
lbajardsilogic@21 55
lbajardsilogic@21 56 inline QString getUri() const {return m_uri;}
lbajardsilogic@21 57 inline void setUri(const QString& uri) {m_uri = uri;}
lbajardsilogic@21 58
lbajardsilogic@21 59 protected:
lbajardsilogic@21 60 FileType m_type;
lbajardsilogic@21 61
lbajardsilogic@21 62 QString m_uri;
lbajardsilogic@21 63
lbajardsilogic@21 64 };
lbajardsilogic@21 65
lbajardsilogic@21 66 public:
lbajardsilogic@21 67
lbajardsilogic@21 68 inline void setHttpClient(HttpClient* httpClient) {m_httpClient = httpClient;}
lbajardsilogic@21 69
lbarthelemy@247 70 void loadFile(const QString& query, const QString& filename, LoadedFile::FileType type, const QString& postPath="");
lbarthelemy@247 71
lbarthelemy@247 72 void loadFile(const QByteArray& payload, const QString& filename, LoadedFile::FileType type, const QString& postPath="");
lbajardsilogic@21 73
lbajardsilogic@21 74 bool newSession();
lbajardsilogic@21 75 void closeSession();
lbajardsilogic@21 76 void closeFile();
lbajardsilogic@21 77
lbajardsilogic@21 78 /* open a existing session file:
lbajardsilogic@21 79 - open the audio source info file
lbajardsilogic@21 80 - load the appropriate metadata (needed by opened layers)
lbajardsilogic@21 81 */
lbajardsilogic@21 82 bool openSession(Document *document);
lbajardsilogic@21 83
lbajardsilogic@21 84 /* open an audio source info file
lbajardsilogic@21 85 */
lbajardsilogic@21 86 bool openAudioInfoFile(Document *document);
lbajardsilogic@21 87
lbajardsilogic@21 88 /*import metadata info in a new layer*/
lbajardsilogic@21 89 void importMetadata(const QString& filename, Pane* pane);
lbajardsilogic@21 90
lbajardsilogic@143 91 /*load all the related media from the list*/
lbajardsilogic@257 92 void importRelatedMedia(std::map<QString, QString> *relMediaList);
lbajardsilogic@143 93
lbajardsilogic@21 94 /* load the appropriate metadata (needed by opened layers)
lbajardsilogic@21 95 of an audio file
lbajardsilogic@21 96 */
lbajardsilogic@21 97 void loadRelatedModel();
lbajardsilogic@21 98
lbajardsilogic@21 99 /* add the metadata to the corresponding layers */
lbajardsilogic@21 100 bool addModelToLayers(const QString& name, const QString& filename);
lbajardsilogic@21 101
lbajardsilogic@21 102 /*query the database*/
lbajardsilogic@21 103 void queryDatabase(const QString& themeName);
lbajardsilogic@21 104
lbajardsilogic@21 105 public slots:
lbajardsilogic@21 106 void fileLoaded(int, bool);
lbajardsilogic@21 107
lbajardsilogic@21 108 signals:
lbajardsilogic@21 109 void queryModelLoaded(QueryModel* queryModel);
lbajardsilogic@214 110 void audioFileLoaded();
lbajardsilogic@214 111
lbajardsilogic@21 112
lbajardsilogic@21 113 private:
lbajardsilogic@21 114
lbajardsilogic@21 115
lbajardsilogic@21 116 QString m_fileName;
lbajardsilogic@21 117
lbajardsilogic@21 118 HttpClient *m_httpClient;
lbajardsilogic@92 119
lbajardsilogic@21 120 Document *m_document;
lbajardsilogic@21 121
lbajardsilogic@21 122 std::map<int , LoadedFile*> m_loadFile;
lbajardsilogic@21 123
lbajardsilogic@21 124 AudioSourceInfoModel *m_audioSourceInfoModel;
lbajardsilogic@21 125
lbajardsilogic@21 126 std::set<QString> m_modelLoaded;
lbajardsilogic@21 127
lbajardsilogic@21 128 Pane *m_currentPane;
lbajardsilogic@21 129
lbajardsilogic@21 130 QueryModel *m_queryModel;
lbajardsilogic@257 131
lbajardsilogic@257 132 std::map<QString, QString> m_relMediaList;
lbajardsilogic@257 133
lbajardsilogic@21 134 };
lbajardsilogic@21 135
lbajardsilogic@21 136 #endif