iVS3D v2.0.0
Loading...
Searching...
No Matches
metadatamanager.h
1#ifndef METADATAMANAGER_H
2#define METADATAMANAGER_H
3
4#include "metadata.h"
5#include "model/metaData/gpsreader.h"
6#include <QObject>
7#include <functional>
8
9
10typedef std::function<MetaDataReader *()> AbstractBuilder;
11
25{
26public:
27
28 static MetaDataManager &instance(){
29 static MetaDataManager INSTANCE;
30 return INSTANCE;
31 }
32
33 static const QStringList supportedFileExtensions(){
34 return {".srt", ".SRT", ".gpx", ".GPX", ".txt"};
35 }
36
42 void initMetaDataVideo(QStringList paths, uint picCount, double fps);
43
48 void initMetaDataImages(std::vector<std::string> fileVector);
49
54 QStringList availableMetaData() override;
55
60 QList<MetaDataReader*>loadAllMetaData() override;
61
67 MetaDataReader* loadMetaData(QString name) override;
68
73 QStringList getPaths() override;
74
75 void resetData();
76
77 bool reg(std::string name, AbstractBuilder builder);
78
83 void interpolateMissingMetaData(bool interpolate);
84
85private:
86 QStringList m_metaDataFiles;
87 QList<MetaDataReader*> m_parsedMetaReader;
88 std::map<std::string, AbstractBuilder> m_availablerReader;
90 bool m_interpolateMissingMetaData;
91};
92
93template<typename Implementation>
94MetaDataReader *builder(){
95 return new Implementation();
96}
97
98#define REGISTER_METAREADER(name, impl) const bool res = MetaDataManager::instance().reg(name, builder<impl>);
99
100#endif // METADATAMANAGER_H
Interface to give plugins access to all parsed and loaded meta data.
Definition metadata.h:20
Definition metadatamanager.h:25
MetaDataReader * loadMetaData(QString name) override
loadMetaData returns the speficied metaDataReader
Definition metadatamanager.cpp:53
QList< MetaDataReader * > loadAllMetaData() override
loadAllMetaData returns all loaded metaDataReader
Definition metadatamanager.cpp:48
void interpolateMissingMetaData(bool interpolate)
interpolateMissingMetaData is called when the option to interpoalte missing meta data is changed
Definition metadatamanager.cpp:82
void initMetaDataImages(std::vector< std::string > fileVector)
initMetaData tries to load all known MetaDataReader with the meta data given by the paths
Definition metadatamanager.cpp:27
QStringList getPaths() override
getPaths returns the paths to all parsed metaDataFiles
Definition metadatamanager.cpp:63
QStringList availableMetaData() override
availableMetaData returns a List of the names of all MetaDataReader whichs have loaded meta data
Definition metadatamanager.cpp:39
void initMetaDataVideo(QStringList paths, uint picCount, double fps)
initMetaData tries to load all known MetaDataReader for videos with the meta data given
Definition metadatamanager.cpp:10
Interface to load meta data.
Definition metadatareader.h:19