#pragma once #include namespace rack { namespace plugin { struct Plugin; } // namespace plugin namespace asset { void init(); /** Returns the path of a system resource. Should only read files from this location. */ std::string system(std::string filename); /** Returns the path of a user resource. Can read and write files to this location. */ std::string user(std::string filename); /** Returns the path of a resource in the plugin's folder. Should only read files from this location. */ std::string plugin(plugin::Plugin* plugin, std::string filename); // Set these before calling init() to override the default paths extern std::string systemDir; extern std::string userDir; extern std::string logPath; extern std::string pluginsPath; extern std::string settingsPath; extern std::string autosavePath; extern std::string templatePath; // Only defined on Mac extern std::string bundlePath; } // namespace asset } // namespace rack