Files
AynaLivePlayer/app/gui/main.go
2022-12-23 05:06:57 -08:00

52 lines
1.6 KiB
Go

package main
import (
"AynaLivePlayer/common/i18n"
"AynaLivePlayer/common/logger"
"AynaLivePlayer/config"
"AynaLivePlayer/controller"
"AynaLivePlayer/controller/core"
"AynaLivePlayer/gui"
"AynaLivePlayer/player"
"AynaLivePlayer/plugin/diange"
"AynaLivePlayer/plugin/qiege"
"AynaLivePlayer/plugin/textinfo"
"AynaLivePlayer/plugin/webinfo"
"AynaLivePlayer/plugin/wylogin"
"flag"
)
var dev = flag.Bool("dev", false, "generate new translation file")
func createController() controller.IController {
liveroom := core.NewLiveRoomController()
lyric := core.NewLyricLoader()
provider := core.NewProviderController()
playlist := core.NewPlaylistController(provider)
plugin := core.NewPluginController()
mpvPlayer := player.NewMpvPlayer()
playControl := core.NewPlayerController(mpvPlayer, playlist, lyric, provider)
ctr := core.NewController(liveroom, playControl, playlist, provider, plugin)
return ctr
}
func main() {
flag.Parse()
logger.Logger.Info("================Program Start================")
logger.Logger.Infof("================Current Version: %s================", config.Version)
mainController := createController()
controller.Instance = mainController
gui.Initialize()
plugins := []controller.Plugin{diange.NewDiange(mainController), qiege.NewQiege(mainController),
textinfo.NewTextInfo(mainController), webinfo.NewWebInfo(mainController),
wylogin.NewWYLogin()}
mainController.LoadPlugins(plugins...)
gui.MainWindow.ShowAndRun()
mainController.CloseAndSave()
if *dev {
i18n.SaveTranslation()
}
_ = config.SaveToConfigFile(config.ConfigPath)
logger.Logger.Info("================Program End================")
}