88 lines
1.8 KiB
Go

package Emulator
import (
"github.com/clockworkpi/LauncherGoDev/sysgo/UI"
)
type ActionConfig struct {
ROM string `ini:"ROM"`
ROM_SO string `ini:"ROM_SO"`
EXT []string `ini:"EXT,omitempty"`
EXCLUDE []string `ini:"EXCLUDE,omitempty"`
FILETYPE string `ini:"FILETYPE"` // defalut is file
LAUNCHER string `ini:"LAUNCHER"`
TITLE string `ini:"TITLE"` // defaut is Game
SO_URL string `ini:"SO_URL"`
RETRO_CONFIG string `ini:"RETRO_CONFIG"`
}
var (
FavGID = 31415
FavGname = "cpifav"
)
type MyEmulator struct { // as leader of RomListPage and FavListPage, it's a PluginInterface
Name string
RomPage *RomListPage
FavPage *FavListPage
DeleteConfirmPage *UI.DeleteConfirmPage
EmulatorConfig *ActionConfig
SpeedMax int
SpeedTimeInter int
}
func NewMyEmulator() *MyEmulator{
p := &MyEmulator{}
p.SpeedMax = 5
p.SpeedTimeInter = 300
return p
}
func (self *MyEmulator) GetName() string {
return "MyEmulator"
}
func (self *MyEmulator) Init(main_screen *UI.MainScreen) {
self.DeleteConfirmPage = UI.NewDeleteConfirmPage()
self.DeleteConfirmPage.Screen = main_screen
self.DeleteConfirmPage.Name = "Delete Confirm"
self.DeleteConfirmPage.Init()
self.RomPage = NewRomListPage()
self.RomPage.Screen = main_screen
self.RomPage.Name = self.EmulatorConfig.TITLE
self.RomPage.EmulatorConfig = self.EmulatorConfig
self.RomPage.Leader = self
self.RomPage.Init()
self.FavPage = NewFavListPage()
self.FavPage.Screen = main_screen
self.FavPage.Name = "FavouriteGames"
self.FavPage.EmulatorConfig = self.EmulatorConfig
self.FavPage.Leader = self
self.FavPage.Init()
}
func (self *MyEmulator) Run(main_screen *UI.MainScreen) {
if main_screen != nil {
main_screen.PushCurPage()
main_screen.SetCurPage(self.RomPage)
main_screen.Draw()
main_screen.SwapAndShow()
}
}