diff options
Diffstat (limited to 'src/frontend/mame/pluginopts.h')
-rw-r--r-- | src/frontend/mame/pluginopts.h | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/src/frontend/mame/pluginopts.h b/src/frontend/mame/pluginopts.h index 27e57104293..c722fb8e2a2 100644 --- a/src/frontend/mame/pluginopts.h +++ b/src/frontend/mame/pluginopts.h @@ -7,27 +7,50 @@ Plugin options manager. ***************************************************************************/ + #ifndef MAME_FRONTEND_PLUGINOPTS_H #define MAME_FRONTEND_PLUGINOPTS_H #pragma once -#include "options.h" - #include <list> #include <string> -class plugin_options : public core_options +// ======================> plugin + +struct plugin +{ + std::string m_name; + std::string m_description; + std::string m_type; + std::string m_directory; + bool m_start; +}; + + +// ======================> plugin_options + +class plugin_options { public: plugin_options(); - void parse_json(std::string path); + // accessors + std::list<plugin> &plugins() { return m_plugins; } + const std::list<plugin> &plugins() const { return m_plugins; } + + // methods + void scan_directory(const std::string &path, bool recursive); + bool load_plugin(const std::string &path); + plugin *find(const std::string &name); + + // INI functionality + void parse_ini_file(util::core_file &inifile); + std::string output_ini() const; private: - static const options_entry s_option_entries[]; - std::list<std::string> m_descriptions; + std::list<plugin> m_plugins; }; #endif // MAME_FRONTEND_PLUGINOPTS_H |