annotate sv/main/EasaierSessionManager.h @ 262:3f41cb822166

first code for the speech recognition
author benoitrigolleau
date Fri, 20 Jun 2008 12:33:08 +0000
parents 057856cf81a2
children
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
benoitrigolleau@262 50 RELATED_MEDIA = 7, // related media
benoitrigolleau@262 51 VOCAL_QUERY = 8 // related media
lbajardsilogic@21 52 };
lbajardsilogic@21 53
lbajardsilogic@21 54 inline FileType getFileType() const {return m_type;}
lbajardsilogic@21 55 inline void setFileType(const FileType type) {m_type = type;}
lbajardsilogic@21 56
lbajardsilogic@21 57 inline QString getUri() const {return m_uri;}
lbajardsilogic@21 58 inline void setUri(const QString& uri) {m_uri = uri;}
lbajardsilogic@21 59
lbajardsilogic@21 60 protected:
lbajardsilogic@21 61 FileType m_type;
lbajardsilogic@21 62
lbajardsilogic@21 63 QString m_uri;
lbajardsilogic@21 64
lbajardsilogic@21 65 };
lbajardsilogic@21 66
lbajardsilogic@21 67 public:
lbajardsilogic@21 68
lbajardsilogic@21 69 inline void setHttpClient(HttpClient* httpClient) {m_httpClient = httpClient;}
lbajardsilogic@21 70
lbarthelemy@247 71 void loadFile(const QString& query, const QString& filename, LoadedFile::FileType type, const QString& postPath="");
lbarthelemy@247 72
lbarthelemy@247 73 void loadFile(const QByteArray& payload, const QString& filename, LoadedFile::FileType type, const QString& postPath="");
lbajardsilogic@21 74
lbajardsilogic@21 75 bool newSession();
lbajardsilogic@21 76 void closeSession();
lbajardsilogic@21 77 void closeFile();
lbajardsilogic@21 78
lbajardsilogic@21 79 /* open a existing session file:
lbajardsilogic@21 80 - open the audio source info file
lbajardsilogic@21 81 - load the appropriate metadata (needed by opened layers)
lbajardsilogic@21 82 */
lbajardsilogic@21 83 bool openSession(Document *document);
lbajardsilogic@21 84
lbajardsilogic@21 85 /* open an audio source info file
lbajardsilogic@21 86 */
lbajardsilogic@21 87 bool openAudioInfoFile(Document *document);
lbajardsilogic@21 88
lbajardsilogic@21 89 /*import metadata info in a new layer*/
lbajardsilogic@21 90 void importMetadata(const QString& filename, Pane* pane);
lbajardsilogic@21 91
lbajardsilogic@143 92 /*load all the related media from the list*/
lbajardsilogic@257 93 void importRelatedMedia(std::map<QString, QString> *relMediaList);
lbajardsilogic@143 94
lbajardsilogic@21 95 /* load the appropriate metadata (needed by opened layers)
lbajardsilogic@21 96 of an audio file
lbajardsilogic@21 97 */
lbajardsilogic@21 98 void loadRelatedModel();
lbajardsilogic@21 99
lbajardsilogic@21 100 /* add the metadata to the corresponding layers */
lbajardsilogic@21 101 bool addModelToLayers(const QString& name, const QString& filename);
lbajardsilogic@21 102
lbajardsilogic@21 103 /*query the database*/
lbajardsilogic@21 104 void queryDatabase(const QString& themeName);
lbajardsilogic@21 105
benoitrigolleau@262 106 /*speech recognition*/
benoitrigolleau@262 107 void speechRecognition(const QString& themeName);
benoitrigolleau@262 108
lbajardsilogic@21 109 public slots:
lbajardsilogic@21 110 void fileLoaded(int, bool);
lbajardsilogic@21 111
lbajardsilogic@21 112 signals:
lbajardsilogic@21 113 void queryModelLoaded(QueryModel* queryModel);
lbajardsilogic@214 114 void audioFileLoaded();
lbajardsilogic@214 115
lbajardsilogic@21 116
lbajardsilogic@21 117 private:
lbajardsilogic@21 118
lbajardsilogic@21 119
lbajardsilogic@21 120 QString m_fileName;
lbajardsilogic@21 121
lbajardsilogic@21 122 HttpClient *m_httpClient;
lbajardsilogic@92 123
lbajardsilogic@21 124 Document *m_document;
lbajardsilogic@21 125
lbajardsilogic@21 126 std::map<int , LoadedFile*> m_loadFile;
lbajardsilogic@21 127
lbajardsilogic@21 128 AudioSourceInfoModel *m_audioSourceInfoModel;
lbajardsilogic@21 129
lbajardsilogic@21 130 std::set<QString> m_modelLoaded;
lbajardsilogic@21 131
lbajardsilogic@21 132 Pane *m_currentPane;
lbajardsilogic@21 133
lbajardsilogic@21 134 QueryModel *m_queryModel;
lbajardsilogic@257 135
lbajardsilogic@257 136 std::map<QString, QString> m_relMediaList;
lbajardsilogic@257 137
lbajardsilogic@21 138 };
lbajardsilogic@21 139
lbajardsilogic@21 140 #endif