Chris@1472: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ Chris@1472: Chris@1472: /* Chris@1472: Sonic Visualiser Chris@1472: An audio file viewer and annotation editor. Chris@1472: Centre for Digital Music, Queen Mary, University of London. Chris@1472: Chris@1472: This program is free software; you can redistribute it and/or Chris@1472: modify it under the terms of the GNU General Public License as Chris@1472: published by the Free Software Foundation; either version 2 of the Chris@1472: License, or (at your option) any later version. See the file Chris@1472: COPYING included with this distribution for more information. Chris@1472: */ Chris@1472: Chris@1472: #ifndef SV_PLUGIN_PATH_SETTER_H Chris@1472: #define SV_PLUGIN_PATH_SETTER_H Chris@1472: Chris@1472: #include Chris@1472: #include Chris@1472: #include Chris@1472: Chris@1472: #include Chris@1472: Chris@1472: class PluginPathSetter Chris@1472: { Chris@1472: public: Chris@1472: /// Text used to identify a plugin type, e.g. "LADSPA", "Vamp" Chris@1472: typedef QString PluginTypeLabel; Chris@1472: Chris@1472: struct PathConfig { Chris@1472: QStringList directories; Chris@1472: QString envVariable; // e.g. "LADSPA_PATH" etc Chris@1472: bool useEnvVariable; // true if env variable overrides directories list Chris@1472: }; Chris@1472: Chris@1472: typedef std::map Paths; Chris@1472: Chris@1472: /// Return paths arising from environment variables only, without Chris@1472: /// any user-defined preferences Chris@1472: static Paths getDefaultPaths(); Chris@1472: Chris@1472: /// Return paths arising from user settings + environment Chris@1472: /// variables as appropriate Chris@1472: static Paths getPaths(); Chris@1472: Chris@1472: /// Save the given paths to the settings Chris@1472: static void savePathSettings(Paths paths); Chris@1472: Chris@1472: /// Update *_PATH environment variables from the settings, on Chris@1472: /// application startup Chris@1472: static void setEnvironmentVariables(); Chris@1472: Chris@1472: private: Chris@1472: static Paths m_defaultPaths; Chris@1472: static QMutex m_mutex; Chris@1472: }; Chris@1472: Chris@1472: #endif