summaryrefslogtreecommitdiffstatshomepage
path: root/plugins/boot.lua
diff options
context:
space:
mode:
author R. Belmont <rb6502@users.noreply.github.com>2019-07-24 19:59:17 -0400
committer GitHub <noreply@github.com>2019-07-24 19:59:17 -0400
commit775b486c734d9a5e0c2c8c17c3a3b25f43789180 (patch)
treeb9769607eb616614e17ea4b04c1454223d96d645 /plugins/boot.lua
parent002fa6688c64c24b3d8be034407ce5b246d4bbe7 (diff)
parentaac4e79d4b62decf5b53683b100525587b5091c8 (diff)
Merge pull request #5383 from npwoods/plugin_refactor
Refactored MAME's plugin system
Diffstat (limited to 'plugins/boot.lua')
-rw-r--r--plugins/boot.lua28
1 files changed, 6 insertions, 22 deletions
diff --git a/plugins/boot.lua b/plugins/boot.lua
index 5ed1ac803ad..98eb14baa86 100644
--- a/plugins/boot.lua
+++ b/plugins/boot.lua
@@ -26,27 +26,11 @@ local dir = lfs.env_replace(manager:options().entries.pluginspath:value())
package.path = dir .. "/?.lua;" .. dir .. "/?/init.lua"
-local json = require('json')
-local function readAll(file)
- local f = io.open(file, "rb")
- local content = f:read("*all")
- f:close()
- return content
-end
-
-for file in lfs.dir(dir) do
- if (file~="." and file~=".." and lfs.attributes(dir .. "/" .. file,"mode")=="directory") then
- local filename = dir .. "/" .. file .. "/plugin.json"
- local meta = json.parse(readAll(filename))
- if (meta["plugin"]["type"]=="plugin") and (mame_manager:plugins().entries[meta["plugin"]["name"]]~=nil) then
- local entry = mame_manager:plugins().entries[meta["plugin"]["name"]]
- if (entry:value()==true) then
- emu.print_verbose("Starting plugin " .. meta["plugin"]["name"] .. "...")
- plugin = require(meta["plugin"]["name"])
- if plugin.set_folder~=nil then plugin.set_folder(dir .. "/" .. file) end
- plugin.startplugin();
- end
- end
+for _,entry in pairs(manager:plugins()) do
+ if (entry.type == "plugin" and entry.start) then
+ emu.print_verbose("Starting plugin " .. entry.name .. "...")
+ plugin = require(entry.name)
+ if plugin.set_folder~=nil then plugin.set_folder(entry.directory) end
+ plugin.startplugin();
end
end
-