emulator.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package Emulator
  2. import (
  3. "github.com/clockworkpi/LauncherGoDev/sysgo/UI"
  4. )
  5. type ActionConfig struct {
  6. ROM string `json:"ROM"`
  7. ROM_SO string `json:"ROM_SO"`
  8. EXT []string `json:"EXT"`
  9. EXCLUDE []string `json:"EXCLUDE"`
  10. FILETYPE string `json:"FILETYPE"` // defalut is file
  11. LAUNCHER string `json:"LAUNCHER"`
  12. TITLE string `json:"TITLE"` // defaut is Game
  13. SO_URL string `json:"SO_URL"`
  14. RETRO_CONFIG string `json:"RETRO_CONFIG"`
  15. }
  16. var (
  17. FavGID = 31415
  18. FavGname = "cpifav"
  19. )
  20. type MyEmulator struct { // as leader of RomListPage and FavListPage, it's a PluginInterface
  21. Name string
  22. RomPage *RomListPage
  23. FavPage *FavListPage
  24. DeleteConfirmPage *UI.DeleteConfirmPage
  25. EmulatorConfig *ActionConfig
  26. }
  27. func NewMyEmulator() *MyEmulator{
  28. p := &MyEmulator{}
  29. return p
  30. }
  31. func (self *MyEmulator) GetName() string {
  32. return "MyEmulator"
  33. }
  34. func (self *MyEmulator) Init(main_screen *UI.MainScreen) {
  35. self.DeleteConfirmPage = UI.NewDeleteConfirmPage()
  36. self.DeleteConfirmPage.Screen = main_screen
  37. self.DeleteConfirmPage.Name = "Delete Confirm"
  38. self.DeleteConfirmPage.Init()
  39. self.RomPage = NewRomListPage()
  40. self.RomPage.Screen = main_screen
  41. self.RomPage.Name = self.EmulatorConfig.TITLE
  42. self.RomPage.EmulatorConfig = self.EmulatorConfig
  43. self.RomPage.Leader = self
  44. self.RomPage.Init()
  45. self.FavPage = NewFavListPage()
  46. self.FavPage.Screen = main_screen
  47. self.FavPage.Name = "FavouriteGames"
  48. self.FavPage.EmulatorConfig = self.EmulatorConfig
  49. self.FavPage.Leader = self
  50. self.FavPage.Init()
  51. }
  52. func (self *MyEmulator) Run(main_screen *UI.MainScreen) {
  53. if main_screen != nil {
  54. main_screen.PushCurPage()
  55. main_screen.SetCurPage(self.RomPage)
  56. main_screen.Draw()
  57. main_screen.SwapAndShow()
  58. }
  59. }