summaryrefslogtreecommitdiffstatshomepage
path: root/src/frontend/mame/pluginopts.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/mame/pluginopts.h')
-rw-r--r--src/frontend/mame/pluginopts.h35
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