Mercurial > hg > vamp-plugin-load-checker
annotate knownplugins.h @ 4:6f891a9c6434
Make checker with hard-coded knowledge about various plugin types and paths; fix some process management problems
author | Chris Cannam |
---|---|
date | Wed, 13 Apr 2016 12:00:07 +0100 |
parents | |
children | 74064d6f5e07 |
rev | line source |
---|---|
Chris@4 | 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ |
Chris@4 | 2 |
Chris@4 | 3 #ifndef KNOWN_PLUGINS_H |
Chris@4 | 4 #define KNOWN_PLUGINS_H |
Chris@4 | 5 |
Chris@4 | 6 #include "plugincandidates.h" |
Chris@4 | 7 |
Chris@4 | 8 #include <string> |
Chris@4 | 9 #include <map> |
Chris@4 | 10 #include <vector> |
Chris@4 | 11 |
Chris@4 | 12 class KnownPlugins |
Chris@4 | 13 { |
Chris@4 | 14 typedef std::vector<std::string> stringlist; |
Chris@4 | 15 |
Chris@4 | 16 public: |
Chris@4 | 17 enum PluginType { |
Chris@4 | 18 VampPlugin, |
Chris@4 | 19 LADSPAPlugin, |
Chris@4 | 20 DSSIPlugin |
Chris@4 | 21 }; |
Chris@4 | 22 |
Chris@4 | 23 KnownPlugins(); |
Chris@4 | 24 |
Chris@4 | 25 std::vector<PluginType> getKnownPluginTypes() const { |
Chris@4 | 26 return { VampPlugin, LADSPAPlugin, DSSIPlugin }; |
Chris@4 | 27 }; |
Chris@4 | 28 |
Chris@4 | 29 std::string getTagFor(PluginType type) const { |
Chris@4 | 30 return m_known.at(type).tag; |
Chris@4 | 31 } |
Chris@4 | 32 |
Chris@4 | 33 stringlist getCandidateLibrariesFor(PluginType type) const { |
Chris@4 | 34 return m_candidates.getCandidateLibrariesFor(getTagFor(type)); |
Chris@4 | 35 } |
Chris@4 | 36 |
Chris@4 | 37 std::string getFailureReport() const; |
Chris@4 | 38 |
Chris@4 | 39 private: |
Chris@4 | 40 struct TypeRec { |
Chris@4 | 41 std::string tag; |
Chris@4 | 42 stringlist path; |
Chris@4 | 43 std::string descriptor; |
Chris@4 | 44 }; |
Chris@4 | 45 std::map<PluginType, TypeRec> m_known; |
Chris@4 | 46 |
Chris@4 | 47 stringlist expandConventionalPath(PluginType type, std::string var); |
Chris@4 | 48 std::string getDefaultPath(PluginType type); |
Chris@4 | 49 |
Chris@4 | 50 PluginCandidates m_candidates; |
Chris@4 | 51 }; |
Chris@4 | 52 |
Chris@4 | 53 #endif |