|
- #pragma once
- #include "common.hpp"
- #include <list>
-
-
- namespace rack {
-
-
- struct Model;
-
-
- // Subclass this and return a pointer to a new one when init() is called
- struct Plugin {
- /** A list of the models available by this plugin, add with addModel() */
- std::list<Model*> models;
- /** The file path of the plugin's directory */
- std::string path;
- /** OS-dependent library handle */
- void *handle = NULL;
-
- /** Must be unique. Used for patch files and the VCV store API.
- To guarantee uniqueness, it is a good idea to prefix the slug by your "company name" if available, e.g. "MyCompany-MyPlugin"
- */
- std::string slug;
-
- /** The version of your plugin
- Plugins should follow the versioning scheme described at https://github.com/VCVRack/Rack/issues/266
- Do not include the "v" in "v1.0" for example.
- */
- std::string version;
-
- /** Deprecated, do not use. */
- std::string website;
- std::string manual;
-
- virtual ~Plugin();
- void addModel(Model *model);
- };
-
-
- } // namespace rack
|