|
12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #pragma once
- #include <vector>
-
- #include <common.hpp>
- #include <plugin/Plugin.hpp>
- #include <plugin/Model.hpp>
-
-
- namespace rack {
- /** Loads and manages Rack plugins */
- namespace plugin {
-
-
- PRIVATE void init();
- PRIVATE void destroy();
- PRIVATE void settingsMergeJson(json_t* rootJ);
-
- /** Finds a loaded Plugin by slug. */
- Plugin* getPlugin(const std::string& pluginSlug);
- /** Finds a loaded Plugin by slug, or a fallback plugin if exists. */
- Plugin* getPluginFallback(const std::string& pluginSlug);
- /** Finds a loaded Model by plugin and model slug. */
- Model* getModel(const std::string& pluginSlug, const std::string& modelSlug);
- /** Finds a loaded Model by plugin and model slug, or a fallback model if exists. */
- Model* getModelFallback(const std::string& pluginSlug, const std::string& modelSlug);
-
- /** Creates a Model from a JSON module object.
- Throws an Exception if the model is not found.
- */
- Model* modelFromJson(json_t* moduleJ);
- /** Checks that the slug contains only alphanumeric characters, "-", and "_" */
- bool isSlugValid(const std::string& slug);
- /** Returns a string containing only the valid slug characters. */
- std::string normalizeSlug(const std::string& slug);
-
-
- /** Path to plugins installation dir */
- extern std::string pluginsPath;
- extern std::vector<Plugin*> plugins;
-
-
- } // namespace plugin
- } // namespace rack
|