Files
AynaLivePlayer/internal/plugins/plugin.go
Aynakeya 5cc5948a85 Merge 1.0.x branch (#8)
* rewrite

* update submodule

* make width height configurable

* update dependency

* update

* update file

* update dep

* fix basic config layout

* update plugin management

* more stuff

* add blacklist

* fix todo

* fix windows gethandle

* update windows update guide

* update windows build guide

* include go mod tidy in script

* update todo

* fix source session

* fix text output

* add plugin play duration control

* fix id diange not working

* update todo

* update version number
2024-04-22 21:21:02 -07:00

40 lines
849 B
Go

package plugins
import (
"AynaLivePlayer/core/model"
"AynaLivePlayer/global"
"AynaLivePlayer/pkg/logger"
)
var plugins []model.Plugin = make([]model.Plugin, 0)
var log logger.ILogger
func Initialize() {
plugins = make([]model.Plugin, 0)
log = global.Logger.WithPrefix("Plugin")
}
func LoadPlugin(plugin model.Plugin) {
log.Info("[Plugin] Loading plugin: " + plugin.Name())
if err := plugin.Enable(); err != nil {
log.Warnf("[Plugin] Failed to load plugin: %s, %s", plugin.Name(), err)
return
}
plugins = append(plugins, plugin)
}
func LoadPlugins(plugins ...model.Plugin) {
for _, plugin := range plugins {
LoadPlugin(plugin)
}
}
func ClosePlugins() {
for _, plugin := range plugins {
if err := plugin.Disable(); err != nil {
log.Warnf("[Plugin] Failed to close plugin: %s, %s", plugin.Name(), err)
continue
}
}
}