comparison checker/knownplugins.h @ 34:6905d8b146f6 plugin-path-config

Toward supporting separate environment variables for 32-bit plugins on a 64-bit system (otherwise we try to load both from the same helpers)
author Chris Cannam
date Wed, 06 Jun 2018 13:49:23 +0100
parents 7a20698b4c29
children 4154894d638c
comparison
equal deleted inserted replaced
33:cf18645ff411 34:6905d8b146f6
57 }; 57 };
58 58
59 KnownPlugins(std::string helperExecutableName, 59 KnownPlugins(std::string helperExecutableName,
60 PluginCandidates::LogCallback *cb = 0); 60 PluginCandidates::LogCallback *cb = 0);
61 61
62 std::vector<PluginType> getKnownPluginTypes() const { 62 std::vector<PluginType> getKnownPluginTypes() const;
63 return { VampPlugin, LADSPAPlugin, DSSIPlugin };
64 };
65 63
66 std::string getTagFor(PluginType type) const { 64 std::string getTagFor(PluginType type) const {
67 return m_known.at(type).tag; 65 return m_known.at(type).tag;
68 } 66 }
69 67
70 stringlist getCandidateLibrariesFor(PluginType type) const { 68 stringlist getCandidateLibrariesFor(PluginType type) const {
71 return m_candidates.getCandidateLibrariesFor(getTagFor(type)); 69 return m_candidates.getCandidateLibrariesFor(getTagFor(type));
70 }
71
72 std::string getPathEnvironmentVariableFor(PluginType type) const {
73 return m_known.at(type).variable;
74 }
75
76 stringlist getPathFor(PluginType type) const {
77 return m_known.at(type).path;
72 } 78 }
73 79
74 std::string getHelperExecutableName() const { 80 std::string getHelperExecutableName() const {
75 return m_helperExecutableName; 81 return m_helperExecutableName;
76 } 82 }
78 std::string getFailureReport() const; 84 std::string getFailureReport() const;
79 85
80 private: 86 private:
81 struct TypeRec { 87 struct TypeRec {
82 std::string tag; 88 std::string tag;
89 std::string variable;
83 stringlist path; 90 stringlist path;
84 std::string descriptor; 91 std::string descriptor;
85 }; 92 };
86 std::map<PluginType, TypeRec> m_known; 93 typedef std::map<PluginType, TypeRec> Known;
94 Known m_known;
87 95
88 stringlist expandConventionalPath(PluginType type, std::string var); 96 stringlist expandConventionalPath(PluginType type, std::string var);
89 std::string getDefaultPath(PluginType type); 97 std::string getDefaultPath(PluginType type);
90 98
91 PluginCandidates m_candidates; 99 PluginCandidates m_candidates;
92 std::string m_helperExecutableName; 100 std::string m_helperExecutableName;
93 101
94 bool is32bit() const; // true if helper looks to be 32-bit on 64-bit system 102 /** This returns true if the helper has a name ending in "-32". By
103 * our convention, this means that it is a 32-bit helper found on
104 * a 64-bit system, so (depending on the OS) we may need to look
105 * in 32-bit-specific paths. Note that is32bit() is *not* usually
106 * true on 32-bit systems; it's used specifically to indicate a
107 * "non-native" 32-bit helper.
108 */
109 bool is32bit() const;
95 }; 110 };
96 111
97 #endif 112 #endif