Copyright file added.
[jspeed] / src / poireader.cpp
1 /*
2  * This file is part of jSpeed.
3  *
4  * jSpeed is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * jSpeed is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with jSpeed.  If not, see <http://www.gnu.org/licenses/>.
16  *
17  */
18
19 #include "poireader.h"
20 #include "poiascreader.h"
21
22 namespace
23 {
24     QString const READER_FILETYPES[PoiReader::READER_COUNT] = {"asc"};
25 }
26
27 PoiReader::PoiReader()
28 {
29 }
30
31 PoiReader* PoiReader::getReader(QString const& filename)
32 {
33     QString lower = filename.toLower();
34     QString type;
35     Reader reader = READER_COUNT;
36
37     for(int i = 0; i < READER_COUNT; i++)
38     {
39         if(lower.right(READER_FILETYPES[i].size()) == READER_FILETYPES[i])
40         {
41             reader = static_cast<Reader>(i);
42             break;
43         }
44     }
45
46     switch(reader)
47     {
48     case ASCREADER:
49         return new PoiAscReader(filename);
50         break;
51     default:
52         return 0;
53     }
54 }
55
56 void PoiReader::setError(QString const& error)
57 {
58     error_ = error;
59 }
60
61 QString const& PoiReader::error()
62 {
63     return error_;
64 }
65
66 QString PoiReader::getFormatPattern()
67 {
68     QString data = "";
69
70     for(int i = 0; i < READER_COUNT; i++)
71     {
72         data += "*." + READER_FILETYPES[i] + " ";
73     }
74
75     return data.trimmed();
76 }
77
78 void PoiReader::getSupportedFormats(QList<QString>& formats)
79 {
80     formats.clear();
81
82     for(int i = 0; i < READER_COUNT; i++)
83     {
84         formats.push_back(READER_FILETYPES[i]);
85     }
86 }