svcore  1.9
PluginRDFDescription.h
Go to the documentation of this file.
00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
00002 
00003 /*
00004     Sonic Visualiser
00005     An audio file viewer and annotation editor.
00006     Centre for Digital Music, Queen Mary, University of London.
00007     This file copyright 2008 QMUL.
00008    
00009     This program is free software; you can redistribute it and/or
00010     modify it under the terms of the GNU General Public License as
00011     published by the Free Software Foundation; either version 2 of the
00012     License, or (at your option) any later version.  See the file
00013     COPYING included with this distribution for more information.
00014 */
00015 
00016 #ifndef _PLUGIN_RDF_DESCRIPTION_H_
00017 #define _PLUGIN_RDF_DESCRIPTION_H_
00018 
00019 #include <QString>
00020 #include <QStringList>
00021 #include <map>
00022 
00023 #include "base/Debug.h"
00024 
00025 class PluginRDFDescription
00026 {
00027 public:
00028     PluginRDFDescription() : m_haveDescription(false) { }
00029     PluginRDFDescription(QString pluginId);
00030     ~PluginRDFDescription();
00031 
00032     enum OutputDisposition
00033     {
00034         OutputDispositionUnknown,
00035         OutputSparse,
00036         OutputDense,
00037         OutputTrackLevel
00038     };
00039 
00040     bool haveDescription() const;
00041 
00042     QString getPluginName() const;
00043     QString getPluginDescription() const;
00044     QString getPluginMaker() const;
00045     QString getPluginInfoURL() const;
00046 
00047     QStringList getOutputIds() const;
00048     QString getOutputName(QString outputId) const;
00049     OutputDisposition getOutputDisposition(QString outputId) const;
00050     QString getOutputEventTypeURI(QString outputId) const;
00051     QString getOutputFeatureAttributeURI(QString outputId) const;
00052     QString getOutputSignalTypeURI(QString outputId) const;
00053     QString getOutputUnit(QString outputId) const;
00054     QString getOutputUri(QString outputId) const;
00055 
00056 protected:    
00057     typedef std::map<QString, OutputDisposition> OutputDispositionMap;
00058     typedef std::map<QString, QString> OutputStringMap;
00059 
00060     QString m_pluginId;
00061     QString m_pluginUri;
00062     bool m_haveDescription;
00063     QString m_pluginName;
00064     QString m_pluginDescription;
00065     QString m_pluginMaker;
00066     QString m_pluginInfoURL;
00067     OutputStringMap m_outputNames;
00068     OutputDispositionMap m_outputDispositions;
00069     OutputStringMap m_outputEventTypeURIMap;
00070     OutputStringMap m_outputFeatureAttributeURIMap;
00071     OutputStringMap m_outputSignalTypeURIMap;
00072     OutputStringMap m_outputUnitMap;
00073     OutputStringMap m_outputUriMap;
00074     bool index();
00075     bool indexMetadata();
00076     bool indexOutputs();
00077 };
00078 
00079 #endif
00080