lbajardsilogic@19
|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
|
lbajardsilogic@19
|
2
|
lbajardsilogic@19
|
3 /* Sound Access
|
lbajardsilogic@19
|
4 EASAIER client application.
|
lbajardsilogic@19
|
5 Silogic 2007. Laure Bajard.
|
lbajardsilogic@19
|
6
|
lbajardsilogic@19
|
7 This program is free software; you can redistribute it and/or
|
lbajardsilogic@19
|
8 modify it under the terms of the GNU General Public License as
|
lbajardsilogic@19
|
9 published by the Free Software Foundation; either version 2 of the
|
lbajardsilogic@19
|
10 License, or (at your option) any later version. See the file
|
lbajardsilogic@19
|
11 COPYING included with this distribution for more information.
|
lbajardsilogic@19
|
12 */
|
lbajardsilogic@19
|
13
|
lbajardsilogic@19
|
14 #ifndef _ES_FILE_READER_H_
|
lbajardsilogic@19
|
15 #define _ES_FILE_READER_H_
|
lbajardsilogic@19
|
16
|
lbajardsilogic@19
|
17 #include "layer/LayerFactory.h"
|
lbajardsilogic@19
|
18 #include "transform/Transform.h"
|
lbajardsilogic@19
|
19 #include "data/model/AudioSourceInfoModel.h"
|
lbajardsilogic@19
|
20 #include "data/fileio/HttpClient.h"
|
lbajardsilogic@19
|
21
|
lbajardsilogic@19
|
22 #include <QXmlDefaultHandler>
|
lbajardsilogic@19
|
23
|
lbajardsilogic@19
|
24 #include <map>
|
lbajardsilogic@19
|
25
|
lbajardsilogic@19
|
26 class Pane;
|
lbajardsilogic@19
|
27 class Model;
|
lbajardsilogic@19
|
28 class Document;
|
lbajardsilogic@19
|
29 class PlayParameters;
|
lbajardsilogic@19
|
30
|
lbajardsilogic@19
|
31 class ESFileReaderPaneCallback
|
lbajardsilogic@19
|
32 {
|
lbajardsilogic@19
|
33 public:
|
lbajardsilogic@19
|
34 virtual ~ESFileReaderPaneCallback(){}
|
lbajardsilogic@19
|
35 virtual Pane *addPane() = 0;
|
lbajardsilogic@19
|
36 virtual void setWindowSize(int width, int height) = 0;
|
lbajardsilogic@19
|
37 virtual void addSelection(int start, int end) = 0;
|
lbajardsilogic@19
|
38 };
|
lbajardsilogic@19
|
39
|
lbajardsilogic@19
|
40 class ESFileReader : public QXmlDefaultHandler
|
lbajardsilogic@19
|
41 {
|
lbajardsilogic@19
|
42 public:
|
lbajardsilogic@19
|
43 ESFileReader(Document *document,
|
lbajardsilogic@19
|
44 ESFileReaderPaneCallback &callback);
|
lbajardsilogic@19
|
45 virtual ~ESFileReader();
|
lbajardsilogic@19
|
46
|
lbajardsilogic@19
|
47 void parse(const QString &xmlData);
|
lbajardsilogic@19
|
48 void parse(QXmlInputSource &source);
|
lbajardsilogic@19
|
49
|
lbajardsilogic@19
|
50 bool isOK();
|
lbajardsilogic@19
|
51 QString getErrorString() const { return m_errorString; }
|
lbajardsilogic@19
|
52
|
lbajardsilogic@19
|
53 // For loading a single layer onto an existing pane
|
lbajardsilogic@19
|
54 void setCurrentPane(Pane *pane) { m_currentPane = pane; }
|
lbajardsilogic@19
|
55
|
lbajardsilogic@19
|
56 virtual bool startElement(const QString &namespaceURI,
|
lbajardsilogic@19
|
57 const QString &localName,
|
lbajardsilogic@19
|
58 const QString &qName,
|
lbajardsilogic@19
|
59 const QXmlAttributes& atts);
|
lbajardsilogic@19
|
60
|
lbajardsilogic@19
|
61 virtual bool characters(const QString &);
|
lbajardsilogic@19
|
62
|
lbajardsilogic@19
|
63 virtual bool endElement(const QString &namespaceURI,
|
lbajardsilogic@19
|
64 const QString &localName,
|
lbajardsilogic@19
|
65 const QString &qName);
|
lbajardsilogic@19
|
66
|
lbajardsilogic@19
|
67 bool error(const QXmlParseException &exception);
|
lbajardsilogic@19
|
68 bool fatalError(const QXmlParseException &exception);
|
lbajardsilogic@19
|
69
|
lbajardsilogic@19
|
70 protected:
|
lbajardsilogic@19
|
71 bool readWindow(const QXmlAttributes &);
|
lbajardsilogic@19
|
72 bool readView(const QXmlAttributes &);
|
lbajardsilogic@19
|
73 bool readLayer(const QXmlAttributes &);
|
lbajardsilogic@203
|
74 bool readFilter(const QXmlAttributes &);
|
lbajardsilogic@19
|
75
|
lbajardsilogic@19
|
76 Document *m_document;
|
lbajardsilogic@19
|
77 ESFileReaderPaneCallback &m_paneCallback;
|
lbajardsilogic@19
|
78 Pane *m_currentPane;
|
lbajardsilogic@19
|
79 std::map<int, Layer *> m_layers;
|
lbajardsilogic@19
|
80
|
lbajardsilogic@19
|
81 bool m_inView;
|
lbajardsilogic@19
|
82 bool m_inData;
|
lbajardsilogic@19
|
83
|
lbajardsilogic@19
|
84 QString m_errorString;
|
lbajardsilogic@19
|
85 bool m_ok;
|
lbajardsilogic@19
|
86
|
lbajardsilogic@19
|
87 };
|
lbajardsilogic@19
|
88
|
lbajardsilogic@19
|
89
|
lbajardsilogic@19
|
90
|
lbajardsilogic@19
|
91 #endif
|