emulator.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package Emulator
  2. import (
  3. "github.com/clockworkpi/LauncherGoDev/sysgo/UI"
  4. )
  5. type ActionConfig struct {
  6. ROM string `ini:"ROM"`
  7. ROM_SO string `ini:"ROM_SO"`
  8. EXT []string `ini:"EXT,omitempty"`
  9. EXCLUDE []string `ini:"EXCLUDE,omitempty"`
  10. FILETYPE string `ini:"FILETYPE"` // defalut is file
  11. LAUNCHER string `ini:"LAUNCHER"`
  12. TITLE string `ini:"TITLE"` // defaut is Game
  13. SO_URL string `ini:"SO_URL"`
  14. RETRO_CONFIG string `ini:"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. SpeedMax int
  27. SpeedTimeInter int
  28. }
  29. func NewMyEmulator() *MyEmulator {
  30. p := &MyEmulator{}
  31. p.SpeedMax = 5
  32. p.SpeedTimeInter = 300
  33. return p
  34. }
  35. func (self *MyEmulator) GetName() string {
  36. return "MyEmulator"
  37. }
  38. func (self *MyEmulator) Init(main_screen *UI.MainScreen) {
  39. self.DeleteConfirmPage = UI.NewDeleteConfirmPage()
  40. self.DeleteConfirmPage.Screen = main_screen
  41. self.DeleteConfirmPage.Name = "Delete Confirm"
  42. self.DeleteConfirmPage.Init()
  43. self.RomPage = NewRomListPage()
  44. self.RomPage.Screen = main_screen
  45. self.RomPage.Name = self.EmulatorConfig.TITLE
  46. self.RomPage.EmulatorConfig = self.EmulatorConfig
  47. self.RomPage.Leader = self
  48. self.RomPage.Init()
  49. self.FavPage = NewFavListPage()
  50. self.FavPage.Screen = main_screen
  51. self.FavPage.Name = "FavouriteGames"
  52. self.FavPage.EmulatorConfig = self.EmulatorConfig
  53. self.FavPage.Leader = self
  54. self.FavPage.Init()
  55. }
  56. func (self *MyEmulator) Run(main_screen *UI.MainScreen) {
  57. if main_screen != nil {
  58. main_screen.PushCurPage()
  59. main_screen.SetCurPage(self.RomPage)
  60. main_screen.Draw()
  61. main_screen.SwapAndShow()
  62. }
  63. }