big update, add goroutine sdl render

replace a lot of self.Screen.Draw() to self.Screen.Refresh()
This commit is contained in:
cuu 2023-01-23 14:04:11 +00:00
parent 057bcc86f1
commit 7814f9ca6f
40 changed files with 358 additions and 403 deletions

View File

@ -350,27 +350,23 @@ func (self *AboutPage) OnLoadCb() {
func (self *AboutPage) OnReturnBackCb() { func (self *AboutPage) OnReturnBackCb() {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
func (self *AboutPage) KeyDown(ev *event.Event) { func (self *AboutPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Up"] { if ev.Data["Key"] == UI.CurKeys["Up"] {
self.ScrollUp() self.ScrollUp()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Down"] { if ev.Data["Key"] == UI.CurKeys["Down"] {
self.ScrollDown() self.ScrollDown()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }

View File

@ -137,8 +137,7 @@ func (self *AirplanePage) ToggleModeAni() {
self.airwire_y -= v self.airwire_y -= v
self.dialog_index = 2 self.dialog_index = 2
time.BlockDelay(40) time.BlockDelay(40)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
UI.System("sudo rfkill unblock all") UI.System("sudo rfkill unblock all")
@ -153,8 +152,7 @@ func (self *AirplanePage) ToggleModeAni() {
self.airwire_y += v self.airwire_y += v
self.dialog_index = 3 self.dialog_index = 3
time.BlockDelay(40) time.BlockDelay(40)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
UI.System("sudo rfkill block all") UI.System("sudo rfkill block all")
self.Screen.TitleBar.InAirPlaneMode = true self.Screen.TitleBar.InAirPlaneMode = true
@ -195,8 +193,7 @@ func (self *AirplanePage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["B"] { if ev.Data["Key"] == UI.CurKeys["B"] {
@ -207,8 +204,7 @@ func (self *AirplanePage) KeyDown(ev *event.Event) {
self.UnBlockAll() self.UnBlockAll()
self.Screen.SwapAndShow() self.Screen.SwapAndShow()
time.BlockDelay(1000) time.BlockDelay(1000)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }

View File

@ -17,7 +17,7 @@ import (
"github.com/cuu/gogame/font" "github.com/cuu/gogame/font"
*/ */
"github.com/cuu/gogame/event" "github.com/cuu/gogame/event"
"github.com/cuu/gogame/time" //"github.com/cuu/gogame/time"
//"github.com/godbus/dbus" //"github.com/godbus/dbus"
//"github.com/muka/go-bluetooth/api" //"github.com/muka/go-bluetooth/api"
//"github.com/muka/go-bluetooth/bluez" //"github.com/muka/go-bluetooth/bluez"
@ -62,8 +62,7 @@ func (self *BleAgentPairPage) ShowPinCode(device string, pincode string) {
if self.Screen.CurPage() != self { if self.Screen.CurPage() != self {
self.Screen.PushPage(self) self.Screen.PushPage(self)
self.ClearCanvas() self.ClearCanvas()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
self.Pin = pincode self.Pin = pincode
@ -82,8 +81,7 @@ func (self *BleAgentPairPage) ShowPassKey(device string, passkey uint32, entered
if self.Screen.CurPage() != self { if self.Screen.CurPage() != self {
self.Screen.PushPage(self) self.Screen.PushPage(self)
self.ClearCanvas() self.ClearCanvas()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
self.Pass = fmt.Sprintf("%06d", passkey) self.Pass = fmt.Sprintf("%06d", passkey)
@ -100,36 +98,24 @@ func (self *BleAgentPairPage) ShowPassKey(device string, passkey uint32, entered
func (self *BleAgentPairPage) PairOKCb() { func (self *BleAgentPairPage) PairOKCb() {
self.ClearCanvas() self.ClearCanvas()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
self.Screen.MsgBox.SetText("Device paired") self.Screen.ShowMsg("Device paired",1500)
self.Screen.MsgBox.Draw()
self.Screen.SwapAndShow()
time.BlockDelay(1500)
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
self.Screen.FootBar.ResetNavText() self.Screen.FootBar.ResetNavText()
} }
func (self *BleAgentPairPage) PairErrorCb(err_msg string) { func (self *BleAgentPairPage) PairErrorCb(err_msg string) {
self.ClearCanvas() self.ClearCanvas()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
self.Screen.MsgBox.SetText(err_msg) self.Screen.ShowMsg(err_msg,1500)
self.Screen.MsgBox.Draw()
self.Screen.SwapAndShow()
time.BlockDelay(1500)
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
self.Screen.FootBar.ResetNavText() self.Screen.FootBar.ResetNavText()
} }
@ -145,8 +131,7 @@ func (self *BleAgentPairPage) KeyDown(ev *event.Event) {
} }
} }
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }

View File

@ -62,19 +62,16 @@ func (self *BleForgetConfirmPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["B"] { if ev.Data["Key"] == UI.CurKeys["B"] {
self.SnapMsg("Deleting") self.SnapMsg("Deleting")
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
time.BlockDelay(400) time.BlockDelay(400)
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }
@ -310,8 +307,7 @@ func (self *BleInfoPage) TryToForget() {
time.BlockDelay(400) time.BlockDelay(400)
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} else { } else {
@ -327,17 +323,14 @@ func (self *BleInfoPage) TryToDisconnect() {
if is_connected { if is_connected {
self.Screen.FootBar.UpdateNavText("Disconnecting") self.Screen.FootBar.UpdateNavText("Disconnecting")
self.Screen.MsgBox.SetText("Disconnecting") self.Screen.ShowMsg("Disconnecting",0)
self.Screen.MsgBox.Draw()
self.Screen.SwapAndShow()
self.MyDevice.Disconnect() self.MyDevice.Disconnect()
time.BlockDelay(350) time.BlockDelay(350)
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
self.Screen.FootBar.ResetNavText() self.Screen.FootBar.ResetNavText()
} }
@ -369,22 +362,19 @@ func (self *BleInfoPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Up"] { if ev.Data["Key"] == UI.CurKeys["Up"] {
self.ScrollUp() self.ScrollUp()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Down"] { if ev.Data["Key"] == UI.CurKeys["Down"] {
self.ScrollDown() self.ScrollDown()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Enter"] { if ev.Data["Key"] == UI.CurKeys["Enter"] {
self.Click() self.Click()
@ -512,9 +502,8 @@ func NewBluetoothPage() *BluetoothPage {
func (self *BluetoothPage) ShowBox(msg string) { func (self *BluetoothPage) ShowBox(msg string) {
self.MsgBox.Text = msg self.MsgBox.Text = msg
self.ShowingMessageBox = true self.ShowingMessageBox = true
self.Screen.Draw()
self.MsgBox.Draw() self.Screen.ShowMsg(msg,0)
self.Screen.SwapAndShow()
} }
func (self *BluetoothPage) HideBox() { func (self *BluetoothPage) HideBox() {
@ -562,8 +551,7 @@ func (self *BluetoothPage) AbortedAndReturnToUpLevel() {
self.HideBox() self.HideBox()
self.Screen.FootBar.ResetNavText() self.Screen.FootBar.ResetNavText()
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
@ -816,8 +804,7 @@ func (self *BluetoothPage) KeyDown(ev *event.Event) {
self.HideBox() self.HideBox()
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
self.Screen.FootBar.ResetNavText() self.Screen.FootBar.ResetNavText()
} }
@ -825,15 +812,13 @@ func (self *BluetoothPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["Up"] { if ev.Data["Key"] == UI.CurKeys["Up"] {
self.ScrollUp() self.ScrollUp()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Down"] { if ev.Data["Key"] == UI.CurKeys["Down"] {
self.ScrollDown() self.ScrollDown()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["X"] { if ev.Data["Key"] == UI.CurKeys["X"] {
@ -854,8 +839,7 @@ func (self *BluetoothPage) KeyDown(ev *event.Event) {
self.InfoPage.MyDevice = self.MyList[self.PsIndex].(*NetItem).Device self.InfoPage.MyDevice = self.MyList[self.PsIndex].(*NetItem).Device
self.Screen.PushPage(self.InfoPage) self.Screen.PushPage(self.InfoPage)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["B"] { if ev.Data["Key"] == UI.CurKeys["B"] {

View File

@ -294,20 +294,17 @@ func (self *BrightnessPage) WhenSliderDrag(val int) {
func (self *BrightnessPage) KeyDown(ev *event.Event) { func (self *BrightnessPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Right"] { if ev.Data["Key"] == UI.CurKeys["Right"] {
self.MySlider.Further() self.MySlider.Further()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Left"] { if ev.Data["Key"] == UI.CurKeys["Left"] {
self.MySlider.StepBack() self.MySlider.StepBack()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }

View File

@ -110,8 +110,7 @@ func (self *UpdateConfirmPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["B"] { if ev.Data["Key"] == UI.CurKeys["B"] {
@ -153,8 +152,7 @@ func (self *UpdateConfirmPage) KeyDown(ev *event.Event) {
func (self *UpdateConfirmPage) OnReturnBackCb() { func (self *UpdateConfirmPage) OnReturnBackCb() {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
func (self *UpdateConfirmPage) Draw() { func (self *UpdateConfirmPage) Draw() {
@ -287,8 +285,7 @@ func (self *ButtonsLayoutPage) ToggleMode() {
} }
self.dialog_index = 1 self.dialog_index = 1
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} else { } else {
d := []byte("xbox") d := []byte("xbox")
@ -298,8 +295,7 @@ func (self *ButtonsLayoutPage) ToggleMode() {
} }
self.dialog_index = 0 self.dialog_index = 0
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }
@ -320,8 +316,7 @@ func (self *ButtonsLayoutPage) OnLoadCb() {
func (self *ButtonsLayoutPage) OnReturnBackCb() { func (self *ButtonsLayoutPage) OnReturnBackCb() {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
@ -329,8 +324,7 @@ func (self *ButtonsLayoutPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["B"] { if ev.Data["Key"] == UI.CurKeys["B"] {
@ -340,8 +334,7 @@ func (self *ButtonsLayoutPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["X"] { if ev.Data["Key"] == UI.CurKeys["X"] {
self.ConfirmPage.LayoutMode = self.GetButtonsLayoutMode() self.ConfirmPage.LayoutMode = self.GetButtonsLayoutMode()
self.Screen.PushPage(self.ConfirmPage) self.Screen.PushPage(self.ConfirmPage)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }

View File

@ -224,25 +224,17 @@ func (self *GateWayPage) Click() {
self.MyList[i].(*PageListItem).Active = false self.MyList[i].(*PageListItem).Active = false
} }
cur_li.Active = self.ApplyGateWay(cur_li.Value) cur_li.Active = self.ApplyGateWay(cur_li.Value)
self.Screen.MsgBox.SetText("Applying") self.Screen.ShowMsg("Applying",1000)
self.Screen.MsgBox.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
time.BlockDelay(1000)
self.Screen.Draw()
self.Screen.SwapAndShow()
} else { } else {
self.Screen.MsgBox.SetText("Do it in GameShell")
self.Screen.MsgBox.Draw() self.Screen.ShowMsg("Do it in GameShell",0)
self.Screen.SwapAndShow()
} }
} }
func (self *GateWayPage) ClearAllGateways() { func (self *GateWayPage) ClearAllGateways() {
self.Screen.MsgBox.SetText("Cleaning up") self.Screen.ShowMsg("Cleaning up",0)
self.Screen.MsgBox.Draw()
self.Screen.SwapAndShow()
UI.System("sudo ip route del 0/0") UI.System("sudo ip route del 0/0")
time.BlockDelay(800) time.BlockDelay(800)
@ -251,8 +243,7 @@ func (self *GateWayPage) ClearAllGateways() {
self.MyList[i].(*PageListItem).Active = false self.MyList[i].(*PageListItem).Active = false
} }
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
@ -332,8 +323,7 @@ func (self *GateWayPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["B"] { if ev.Data["Key"] == UI.CurKeys["B"] {
@ -347,15 +337,13 @@ func (self *GateWayPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["Up"] { if ev.Data["Key"] == UI.CurKeys["Up"] {
self.ScrollUp() self.ScrollUp()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Down"] { if ev.Data["Key"] == UI.CurKeys["Down"] {
self.ScrollDown() self.ScrollDown()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }

View File

@ -244,8 +244,7 @@ func (self *LanguagesPage) Click() {
time.BlockDelay(1000) time.BlockDelay(1000)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
@ -279,8 +278,7 @@ func (self *LanguagesPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["B"] { if ev.Data["Key"] == UI.CurKeys["B"] {
@ -290,15 +288,13 @@ func (self *LanguagesPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["Up"] { if ev.Data["Key"] == UI.CurKeys["Up"] {
self.ScrollUp() self.ScrollUp()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Down"] { if ev.Data["Key"] == UI.CurKeys["Down"] {
self.ScrollDown() self.ScrollDown()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }

View File

@ -28,8 +28,7 @@ func (self *PowerOFFConfirmPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["Menu"] || ev.Data["Key"] == UI.CurKeys["A"] { if ev.Data["Key"] == UI.CurKeys["Menu"] || ev.Data["Key"] == UI.CurKeys["A"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }

View File

@ -293,22 +293,19 @@ func (self *InfoPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Up"] { if ev.Data["Key"] == UI.CurKeys["Up"] {
self.ScrollUp() self.ScrollUp()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Down"] { if ev.Data["Key"] == UI.CurKeys["Down"] {
self.ScrollDown() self.ScrollDown()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }
@ -494,8 +491,7 @@ func (self *PowerOptionsPage) Click() {
time.BlockDelay(1000) time.BlockDelay(1000)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
func (self *PowerOptionsPage) OnLoadCb() { func (self *PowerOptionsPage) OnLoadCb() {
@ -513,8 +509,7 @@ func (self *PowerOptionsPage) OnLoadCb() {
func (self *PowerOptionsPage) KeyDown(ev *event.Event) { func (self *PowerOptionsPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["B"] { if ev.Data["Key"] == UI.CurKeys["B"] {
@ -524,15 +519,13 @@ func (self *PowerOptionsPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["Up"] { if ev.Data["Key"] == UI.CurKeys["Up"] {
self.ScrollUp() self.ScrollUp()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Down"] { if ev.Data["Key"] == UI.CurKeys["Down"] {
self.ScrollDown() self.ScrollDown()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Y"] { if ev.Data["Key"] == UI.CurKeys["Y"] {
@ -547,8 +540,7 @@ func (self *PowerOptionsPage) KeyDown(ev *event.Event) {
self.InfoPage.Time3 = time3 self.InfoPage.Time3 = time3
self.Screen.PushPage(self.InfoPage) self.Screen.PushPage(self.InfoPage)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }

View File

@ -241,20 +241,17 @@ func (self *SettingsPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Up"] { if ev.Data["Key"] == UI.CurKeys["Up"] {
self.ScrollUp() self.ScrollUp()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Down"] { if ev.Data["Key"] == UI.CurKeys["Down"] {
self.ScrollDown() self.ScrollDown()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Enter"] { if ev.Data["Key"] == UI.CurKeys["Enter"] {

View File

@ -269,20 +269,17 @@ func (self *SoundPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Right"] { if ev.Data["Key"] == UI.CurKeys["Right"] {
self.MySlider.Further() self.MySlider.Further()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Left"] { if ev.Data["Key"] == UI.CurKeys["Left"] {
self.MySlider.StepBack() self.MySlider.StepBack()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }

View File

@ -257,8 +257,7 @@ func (self *TimeZoneListPage) Click() {
fmt.Println("add ", cur_li.Path) fmt.Println("add ", cur_li.Path)
} }
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
func (self *TimeZoneListPage) Rescan() { func (self *TimeZoneListPage) Rescan() {
@ -270,32 +269,27 @@ func (self *TimeZoneListPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["Menu"] || ev.Data["Key"] == UI.CurKeys["A"] { if ev.Data["Key"] == UI.CurKeys["Menu"] || ev.Data["Key"] == UI.CurKeys["A"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Up"] { if ev.Data["Key"] == UI.CurKeys["Up"] {
self.ScrollUp() self.ScrollUp()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Down"] { if ev.Data["Key"] == UI.CurKeys["Down"] {
self.ScrollDown() self.ScrollDown()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Right"] { if ev.Data["Key"] == UI.CurKeys["Right"] {
self.FastScrollDown(5) self.FastScrollDown(5)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Left"] { if ev.Data["Key"] == UI.CurKeys["Left"] {
self.FastScrollUp(5) self.FastScrollUp(5)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Enter"] { if ev.Data["Key"] == UI.CurKeys["Enter"] {

View File

@ -4,7 +4,7 @@ import (
"bytes" "bytes"
"encoding/json" "encoding/json"
"fmt" "fmt"
"github.com/cuu/gogame/time" //"github.com/cuu/gogame/time"
"github.com/veandco/go-sdl2/ttf" "github.com/veandco/go-sdl2/ttf"
"net/http" "net/http"
"os/exec" "os/exec"
@ -47,8 +47,7 @@ func (self *UpdateConfirmPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["B"] { if ev.Data["Key"] == UI.CurKeys["B"] {
@ -64,8 +63,7 @@ func (self *UpdateConfirmPage) KeyDown(ev *event.Event) {
func (self *UpdateConfirmPage) OnReturnBackCb() { func (self *UpdateConfirmPage) OnReturnBackCb() {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
func (self *UpdateConfirmPage) Draw() { func (self *UpdateConfirmPage) Draw() {
@ -208,11 +206,7 @@ func (self *UpdatePage) CheckUpdate() bool {
self.Screen.SwapAndShow() self.Screen.SwapAndShow()
} else { } else {
self.Screen.Draw() self.Screen.ShowMsg("Launchergo is up to date",765)
self.Screen.MsgBox.SetText("Launchergo is up to date")
self.Screen.MsgBox.Draw()
self.Screen.SwapAndShow()
time.BlockDelay(765)
} }
defer resp.Body.Close() defer resp.Body.Close()
@ -224,26 +218,18 @@ func (self *UpdatePage) CheckUpdate() bool {
func (self *UpdatePage) KeyDown(ev *event.Event) { func (self *UpdatePage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["X"] { if ev.Data["Key"] == UI.CurKeys["X"] {
if self.Screen.IsWifiConnectedNow() == true { if self.Screen.IsWifiConnectedNow() == true {
if self.CheckUpdate() == true { if self.CheckUpdate() == true {
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} else { } else {
self.Screen.Draw() self.Screen.ShowMsg("Check Update Failed",0)
self.Screen.MsgBox.SetText("Check Update Failed")
self.Screen.MsgBox.Draw()
self.Screen.SwapAndShow()
} }
} else { } else {
self.Screen.Draw() self.Screen.ShowMsg("Please Check your Wi-Fi connection",0)
self.Screen.MsgBox.SetText("Please Check your Wi-Fi connection")
self.Screen.MsgBox.Draw()
self.Screen.SwapAndShow()
} }
} }
} }

View File

@ -50,23 +50,20 @@ func (self *WifiDisconnectConfirmPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["B"] { if ev.Data["Key"] == UI.CurKeys["B"] {
fmt.Println("Disconnecting..") fmt.Println("Disconnecting..")
self.SnapMsg("Disconnecting...") self.SnapMsg("Disconnecting...")
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
self.Parent.Parent.Disconnect() self.Parent.Parent.Disconnect()
time.BlockDelay(400) time.BlockDelay(400)
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
self.Parent.Parent.Rescan(false) self.Parent.Parent.Rescan(false)
} }
} }
@ -242,8 +239,7 @@ func (self *WifiInfoPage) TryDisconnect() {
if len(ip) > 6 { if len(ip) > 6 {
self.Screen.PushPage(self.DisconnectConfirmPage) self.Screen.PushPage(self.DisconnectConfirmPage)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} else { } else {
fmt.Println("WifiInfoPage TryDisconnect can not get IP,maybe you are offline") fmt.Println("WifiInfoPage TryDisconnect can not get IP,maybe you are offline")
return return
@ -263,8 +259,7 @@ func (self *WifiInfoPage) OnLoadCb() {
func (self *WifiInfoPage) OnReturnBackCb() { func (self *WifiInfoPage) OnReturnBackCb() {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
@ -272,20 +267,17 @@ func (self *WifiInfoPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Up"] { if ev.Data["Key"] == UI.CurKeys["Up"] {
self.ScrollUp() self.ScrollUp()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Down"] { if ev.Data["Key"] == UI.CurKeys["Down"] {
self.ScrollDown() self.ScrollDown()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Enter"] { if ev.Data["Key"] == UI.CurKeys["Enter"] {
@ -411,10 +403,7 @@ func NewWifiList() *WifiList {
func (self *WifiList) ShowBox(msg string) { func (self *WifiList) ShowBox(msg string) {
self.MsgBox.Text = msg self.MsgBox.Text = msg
self.ShowingMessageBox = true self.ShowingMessageBox = true
self.Screen.Draw() self.Screen.ShowMsg(msg,0)
self.MsgBox.Draw()
self.Screen.SwapAndShow()
} }
func (self *WifiList) HideBox() { func (self *WifiList) HideBox() {
@ -688,8 +677,8 @@ func (self *WifiList) AbortedAndReturnToUpLevel() {
self.HideBox() self.HideBox()
self.Screen.FootBar.ResetNavText() self.Screen.FootBar.ResetNavText()
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw()
self.Screen.SwapAndShow() self.Screen.Refresh()
} }
func (self *WifiList) OnKbdReturnBackCb() { func (self *WifiList) OnKbdReturnBackCb() {
@ -718,14 +707,12 @@ func (self *WifiList) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["Up"] { if ev.Data["Key"] == UI.CurKeys["Up"] {
self.ScrollUp() self.ScrollUp()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Down"] { if ev.Data["Key"] == UI.CurKeys["Down"] {
self.ScrollDown() self.ScrollDown()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Enter"] { // enter to set password,enter is B on GM if ev.Data["Key"] == UI.CurKeys["Enter"] { // enter to set password,enter is B on GM
@ -745,8 +732,7 @@ func (self *WifiList) KeyDown(ev *event.Event) {
fmt.Println("APIOBJ.PasswordPage.SetPassword ", thepass, len(thepass)) fmt.Println("APIOBJ.PasswordPage.SetPassword ", thepass, len(thepass))
APIOBJ.PasswordPage.SetPassword(thepass) APIOBJ.PasswordPage.SetPassword(thepass)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }
@ -762,8 +748,7 @@ func (self *WifiList) KeyDown(ev *event.Event) {
self.InfoPage.BSSID = self.MyList[self.PsIndex].Bssid self.InfoPage.BSSID = self.MyList[self.PsIndex].Bssid
self.InfoPage.ESSID = self.MyList[self.PsIndex].Essid self.InfoPage.ESSID = self.MyList[self.PsIndex].Essid
self.Screen.PushPage(self.InfoPage) self.Screen.PushPage(self.InfoPage)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }

View File

@ -85,8 +85,7 @@ func (self *ImageDownloadProcessPage) OnLoadCb() {
} }
self.ClearCanvas() self.ClearCanvas()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
//parts := strings.Split(self.URL,"/") //parts := strings.Split(self.URL,"/")
//filename := strings.TrimSpace(parts[len(parts)-1]) //filename := strings.TrimSpace(parts[len(parts)-1])
@ -100,8 +99,7 @@ func (self *ImageDownloadProcessPage) OnLoadCb() {
if UI.FileExists(local_menu_file) { if UI.FileExists(local_menu_file) {
self.Img = image.Load(local_menu_file) self.Img = image.Load(local_menu_file)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
}else { }else {
self.req,_ = grab.NewRequest("/tmp",self.URL) self.req,_ = grab.NewRequest("/tmp",self.URL)
@ -174,8 +172,7 @@ L:
if UI.FileExists(dst_filename) { if UI.FileExists(dst_filename) {
if self.Screen.CurPage() == self { if self.Screen.CurPage() == self {
self.Img = image.Load(dst_filename) self.Img = image.Load(dst_filename)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }
@ -190,8 +187,7 @@ func (self *ImageDownloadProcessPage) KeyDown(ev *event.Event) {
self.SetDownloading(false) self.SetDownloading(false)
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
self.URL = "" self.URL = ""
} }
} }

View File

@ -16,7 +16,7 @@ import (
//"github.com/cuu/gogame/draw" //"github.com/cuu/gogame/draw"
"github.com/cuu/gogame/color" "github.com/cuu/gogame/color"
"github.com/cuu/gogame/event" "github.com/cuu/gogame/event"
"github.com/cuu/gogame/time" //"github.com/cuu/gogame/time"
"github.com/clockworkpi/LauncherGoDev/sysgo/UI" "github.com/clockworkpi/LauncherGoDev/sysgo/UI"
"github.com/cuu/grab" "github.com/cuu/grab"
) )
@ -84,8 +84,7 @@ func (self *LoadHousePage) OnLoadCb() {
return return
} }
self.ClearCanvas() self.ClearCanvas()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
//parts := strings.Split(self.URL,"/") //parts := strings.Split(self.URL,"/")
//filename := strings.TrimSpace(parts[len(parts)-1]) //filename := strings.TrimSpace(parts[len(parts)-1])
@ -198,10 +197,7 @@ L:
} else { } else {
fmt.Println(err) fmt.Println(err)
self.Screen.MsgBox.SetText("Fetch house failed") self.Screen.ShowMsg("Fetch house failed",500)
self.Screen.MsgBox.Draw()
self.Screen.SwapAndShow()
time.BlockDelay(500)
} }
} }
@ -211,8 +207,7 @@ func (self *LoadHousePage) Leave() {
self.SetDownloading(false) self.SetDownloading(false)
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
self.URL = "" self.URL = ""
} }

View File

@ -134,8 +134,7 @@ L:
} }
if self.Screen.CurPage() == self && dirty == true { if self.Screen.CurPage() == self && dirty == true {
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
dirty = false dirty = false
case v:= <- self.Downloading: case v:= <- self.Downloading:
@ -467,8 +466,7 @@ func (self *WareHouse) LoadHouse() {
if cur_li.Value["type"] == "source" || cur_li.Value["type"] == "dir" { if cur_li.Value["type"] == "source" || cur_li.Value["type"] == "dir" {
self.LoadHousePage.URL = cur_li.Value["file"] self.LoadHousePage.URL = cur_li.Value["file"]
self.Screen.PushPage(self.LoadHousePage) self.Screen.PushPage(self.LoadHousePage)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }
@ -488,8 +486,7 @@ func (self *WareHouse) PreviewGame() {
fmt.Println(cur_li.Value["shots"]) fmt.Println(cur_li.Value["shots"])
self.PreviewPage.URL = cur_li.Value["shots"] self.PreviewPage.URL = cur_li.Value["shots"]
self.Screen.PushPage(self.PreviewPage) self.Screen.PushPage(self.PreviewPage)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }
} }
@ -599,8 +596,7 @@ func (self *WareHouse) Click() {
self.MyStack.Push(result.List) self.MyStack.Push(result.List)
self.SyncList() self.SyncList()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
@ -672,8 +668,7 @@ func (self *WareHouse) Click() {
func (self *WareHouse) OnAria2CompleteCb(gid string) { func (self *WareHouse) OnAria2CompleteCb(gid string) {
fmt.Println("OnAria2CompleteCb", gid) fmt.Println("OnAria2CompleteCb", gid)
self.SyncList() self.SyncList()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
if gid == self.Aria2DownloadingGid { if gid == self.Aria2DownloadingGid {
self.Aria2DownloadingGid = "" self.Aria2DownloadingGid = ""
@ -763,8 +758,7 @@ func (self *WareHouse) OnKbdReturnBackCb() {
} }
self.SyncList() self.SyncList()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }
} }
@ -805,8 +799,7 @@ func (self *WareHouse) OnReturnBackCb() {
self.SyncList() self.SyncList()
self.RestoreScrolled() self.RestoreScrolled()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
@ -886,12 +879,10 @@ func (self *WareHouse) KeyDown(ev *event.Event) {
} }
self.SyncList() self.SyncList()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
}else if self.MyStack.Length() == 1 { }else if self.MyStack.Length() == 1 {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
self.SetDownloading(false)//shutdown UpdateProcessInterval self.SetDownloading(false)//shutdown UpdateProcessInterval
} }
} }
@ -910,8 +901,7 @@ func (self *WareHouse) KeyDown(ev *event.Event) {
} }
} }
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["X"] { if ev.Data["Key"] == UI.CurKeys["X"] {
@ -923,15 +913,13 @@ func (self *WareHouse) KeyDown(ev *event.Event) {
}else { }else {
self.Screen.PushPage(self.RemovePage) self.Screen.PushPage(self.RemovePage)
self.RemovePage.StartOrAEvent = self.RemoveGame self.RemovePage.StartOrAEvent = self.RemoveGame
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }
return return
} }
self.SyncList() self.SyncList()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Y"] { if ev.Data["Key"] == UI.CurKeys["Y"] {
@ -944,14 +932,12 @@ func (self *WareHouse) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["Up"] { if ev.Data["Key"] == UI.CurKeys["Up"] {
self.ScrollUp() self.ScrollUp()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Down"] { if ev.Data["Key"] == UI.CurKeys["Down"] {
self.ScrollDown() self.ScrollDown()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }

View File

@ -1,7 +1,7 @@
package MusicPlayer package MusicPlayer
import ( import (
"fmt" //"fmt"
// "path/filepath" // "path/filepath"
// "github.com/cuu/gogame/event" // "github.com/cuu/gogame/event"
@ -37,7 +37,6 @@ func (self *ListPageSelector) Draw() {
idx := self.Parent.GetPsIndex() idx := self.Parent.GetPsIndex()
mylist := self.Parent.GetMyList() mylist := self.Parent.GetMyList()
fmt.Println(idx)
if idx < len(mylist) { if idx < len(mylist) {
x, y := mylist[idx].Coord() x, y := mylist[idx].Coord()
_, h := mylist[idx].Size() _, h := mylist[idx].Size()

View File

@ -234,8 +234,7 @@ func (self *MusicLibListPage) Click() {
} }
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
@ -243,22 +242,19 @@ func (self *MusicLibListPage) KeyDown(ev *event.Event) {
if UI.IsKeyMenuOrA(ev.Data["Key"]) || ev.Data["Key"] == UI.CurKeys["Left"] { if UI.IsKeyMenuOrA(ev.Data["Key"]) || ev.Data["Key"] == UI.CurKeys["Left"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Up"] { if ev.Data["Key"] == UI.CurKeys["Up"] {
self.ScrollUp() self.ScrollUp()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Down"] { if ev.Data["Key"] == UI.CurKeys["Down"] {
self.ScrollDown() self.ScrollDown()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["B"] { if ev.Data["Key"] == UI.CurKeys["B"] {

View File

@ -41,6 +41,14 @@ func NewMusicLibListPageListItem() *MusicLibListPageListItem {
return p return p
} }
func (self *MusicLibListPageListItem) Init(text string) {
l := UI.NewLabel()
l.PosX = 10
l.SetCanvasHWND(self.Parent.GetCanvasHWND())
l.Init(text, self.Fonts["normal"], nil)
self.Labels["Text"] = l
}
func (self *MusicLibListPageListItem) Draw() { func (self *MusicLibListPageListItem) Draw() {
x, _ := self.Labels["Text"].Coord() x, _ := self.Labels["Text"].Coord()

View File

@ -9,8 +9,11 @@ import (
"github.com/cuu/gogame/event" "github.com/cuu/gogame/event"
"github.com/cuu/gogame/rect" "github.com/cuu/gogame/rect"
"github.com/cuu/gogame/surface" "github.com/cuu/gogame/surface"
// "github.com/cuu/gogame/time"
gotime "time"
//"github.com/veandco/go-sdl2/sdl"
"github.com/veandco/go-sdl2/ttf" "github.com/veandco/go-sdl2/ttf"
"github.com/cuu/gogame/color" "github.com/cuu/gogame/color"
"github.com/clockworkpi/LauncherGoDev/sysgo" "github.com/clockworkpi/LauncherGoDev/sysgo"
"github.com/clockworkpi/LauncherGoDev/sysgo/UI" "github.com/clockworkpi/LauncherGoDev/sysgo/UI"
@ -41,6 +44,10 @@ type MusicPlayerPage struct {
CurSongTime string CurSongTime string
CurSongName string CurSongName string
playing_ch chan bool
PlayerOn bool
} }
func NewMusicPlayerPage() *MusicPlayerPage { func NewMusicPlayerPage() *MusicPlayerPage {
@ -56,7 +63,7 @@ func NewMusicPlayerPage() *MusicPlayerPage {
p.URLColor = UI.MySkinManager.GiveColor("URL") p.URLColor = UI.MySkinManager.GiveColor("URL")
p.TextColor = UI.MySkinManager.GiveColor("Text") p.TextColor = UI.MySkinManager.GiveColor("Text")
p.ListFontObj = UI.MyLangManager.TrFont("notosanscjk15") p.ListFontObj = UI.MyLangManager.TrFont("notosanscjk14")
p.Labels = make(map[string]UI.LabelInterface) p.Labels = make(map[string]UI.LabelInterface)
@ -67,12 +74,16 @@ func NewMusicPlayerPage() *MusicPlayerPage {
p.CurSongTime = "0:0" p.CurSongTime = "0:0"
p.playing_ch = make(chan bool,1)
p.PlayerOn = false
return p return p
} }
func (self *MusicPlayerPage) OnLoadCb() { func (self *MusicPlayerPage) OnLoadCb() {
self.PosY = 0 self.PosY = 0
self.PlayerOn = true
if self.MpdClient == nil { if self.MpdClient == nil {
conn, err := mpd.Dial("unix", sysgo.MPD_socket) conn, err := mpd.Dial("unix", sysgo.MPD_socket)
@ -83,8 +94,11 @@ func (self *MusicPlayerPage) OnLoadCb() {
fmt.Println("Start mpd client") fmt.Println("Start mpd client")
} }
self.SyncList() self.SyncList()
self.SetPlaying(true)
go self.UpdatePlayingStatus(250)
} }
func (self *MusicPlayerPage) OnPopUpCb() { func (self *MusicPlayerPage) OnPopUpCb() {
@ -99,14 +113,6 @@ func (self *MusicPlayerPage) OnReturnBackCb() {
self.SyncList() self.SyncList()
} }
func (self *MusicPlayerPage) SetCoords() {
}
func (self *MusicPlayerPage) SetLabels() {
}
func (self *MusicPlayerPage) SyncList() { func (self *MusicPlayerPage) SyncList() {
conn := self.MpdClient conn := self.MpdClient
start_x := 0 start_x := 0
@ -150,24 +156,55 @@ func (self *MusicPlayerPage) SyncList() {
self.SyncPlaying() self.SyncPlaying()
} }
func (self *MusicPlayerPage) SyncPlaying() { func (self *MusicPlayerPage) UpdatePlayingStatus(ms int) {
RefreshTicker := gotime.NewTicker(gotime.Duration(ms)*gotime.Millisecond)
defer RefreshTicker.Stop()
L:
for {
select {
case <- RefreshTicker.C:
cur_pos_id := self.SyncPlaying()
if self.Screen.CurPage() == self && cur_pos_id >= 0 {
self.Screen.Refresh()
}
case v:= <- self.playing_ch:
if v== false {
break L
}
}
}
fmt.Println("Quiting UpdatePlayingStatus")
}
func (self *MusicPlayerPage) SyncPlaying() int {
conn := self.MpdClient conn := self.MpdClient
cur_pos_id := -1
if self.PlayerOn == false {
return cur_pos_id
}
for i,_ := range self.MyList { for i,_ := range self.MyList {
self.MyList[i].(*MusicPlayPageListItem).Active = false self.MyList[i].(*MusicPlayPageListItem).Active = false
self.MyList[i].(*MusicPlayPageListItem).PlayingProcess = 0 self.MyList[i].(*MusicPlayPageListItem).PlayingProcess = 0
self.MyList[i].(*MusicPlayPageListItem).State = ""
} }
current_song,_ := conn.CurrentSong()
current_song,_ := conn.Status()
if len(current_song) > 0 { if len(current_song) > 0 {
if val,ok := current_song["song"]; ok{ if val,ok := current_song["song"]; ok{
posid, _ := strconv.Atoi(val) posid, _ := strconv.Atoi(val)
if posid < len(self.MyList) { if posid < len(self.MyList) {
cur_pos_id = posid
if state,ok2 := current_song["state"]; ok2 { if state,ok2 := current_song["state"]; ok2 {
if state == "stop" { if state == "play" {
self.MyList[posid].(*MusicPlayPageListItem).Active = false
}else{
self.MyList[posid].(*MusicPlayPageListItem).Active = true self.MyList[posid].(*MusicPlayPageListItem).Active = true
}else{
self.MyList[posid].(*MusicPlayPageListItem).Active = false
} }
self.MyList[posid].(*MusicPlayPageListItem).State = state
} }
if song_time,ok3 := current_song["time"]; ok3 { if song_time,ok3 := current_song["time"]; ok3 {
@ -183,6 +220,8 @@ func (self *MusicPlayerPage) SyncPlaying() {
} }
} }
} }
return cur_pos_id
} }
func (self *MusicPlayerPage) InPlayList(path string) bool { func (self *MusicPlayerPage) InPlayList(path string) bool {
@ -201,6 +240,52 @@ func (self *MusicPlayerPage) InPlayList(path string) bool {
return false return false
} }
func (self *MusicPlayerPage) SetPlaying( v bool) {
for len(self.playing_ch) > 0 {
<- self.playing_ch
}
self.playing_ch <- v
}
func (self *MusicPlayerPage) StopPlayer() {
self.SetPlaying(false)
conn := self.MpdClient
conn.Stop()
self.CurSongName = ""
self.CurSongTime = "0:0"
}
func (self *MusicPlayerPage) PlayOrPause() {
self.RefreshPsIndex()
if self.MyList == nil || len(self.MyList) == 0 {
return
}
conn := self.MpdClient
cur_song_posid := self.SyncPlaying()
if cur_song_posid == self.PsIndex {
cur_li := self.MyList[self.PsIndex].(*MusicPlayPageListItem)
//fmt.Println(cur_li.State)
if cur_li.State == "pause" {
conn.Pause(false)
}else if cur_li.State == "play" {
conn.Pause(true)
}else {
conn.Play(self.PsIndex)
}
}else{
conn.Play(self.PsIndex)
}
self.SyncPlaying()
self.Screen.Refresh()
}
func (self *MusicPlayerPage) Init() { func (self *MusicPlayerPage) Init() {
if self.Screen == nil { if self.Screen == nil {
panic("No Screen") panic("No Screen")
@ -261,34 +346,36 @@ func (self *MusicPlayerPage) Init() {
func (self *MusicPlayerPage) KeyDown(ev *event.Event) { func (self *MusicPlayerPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["Right"] { if ev.Data["Key"] == UI.CurKeys["Right"] {
self.Screen.PushPage(self.MyMusicLibListPage) self.Screen.PushPage(self.MyMusicLibListPage)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.PlayerOn = false
self.StopPlayer()
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Up"] { if ev.Data["Key"] == UI.CurKeys["Up"] {
self.ScrollUp() self.ScrollUp()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Down"] { if ev.Data["Key"] == UI.CurKeys["Down"] {
self.ScrollDown() self.ScrollDown()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["X"] { if ev.Data["Key"] == UI.CurKeys["X"] {
self.MpdClient.Delete(self.PsIndex,-1) self.MpdClient.Delete(self.PsIndex,-1)
self.SyncList() self.SyncList()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["B"] {
self.PlayOrPause()
}
return return
} }

View File

@ -27,7 +27,7 @@ type MusicPlayPageListItem struct {
Value string Value string
MyType int MyType int
Path string Path string
State string
PlayingProcess int PlayingProcess int
} }
@ -43,6 +43,14 @@ func NewMusicPlayPageListItem() *MusicPlayPageListItem {
return p return p
} }
func (self *MusicPlayPageListItem) Init(text string) {
l := UI.NewLabel()
l.PosX = 10
l.SetCanvasHWND(self.Parent.GetCanvasHWND())
l.Init(text, self.Fonts["normal"], nil)
self.Labels["Text"] = l
}
func (self *MusicPlayPageListItem) Draw() { func (self *MusicPlayPageListItem) Draw() {
x, _ := self.Labels["Text"].Coord() x, _ := self.Labels["Text"].Coord()

View File

@ -168,8 +168,7 @@ func (self *TinyCloudPage) Init() {
func (self *TinyCloudPage) KeyDown(ev *event.Event) { func (self *TinyCloudPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
return return
} }

View File

@ -28,8 +28,7 @@ func (self *PowerOFFConfirmPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["Menu"] || ev.Data["Key"] == UI.CurKeys["A"] { if ev.Data["Key"] == UI.CurKeys["Menu"] || ev.Data["Key"] == UI.CurKeys["A"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }

4
go.mod
View File

@ -3,7 +3,6 @@ module github.com/clockworkpi/LauncherGoDev
go 1.17 go 1.17
require ( require (
github.com/cuu/gogame v0.0.0-20211011085728-70b3e040be73
github.com/cuu/grab v2.0.0+incompatible github.com/cuu/grab v2.0.0+incompatible
github.com/cuu/wpa-connect v1.5.5 github.com/cuu/wpa-connect v1.5.5
github.com/fatih/structs v1.1.0 github.com/fatih/structs v1.1.0
@ -15,13 +14,14 @@ require (
github.com/mitchellh/go-homedir v1.1.0 github.com/mitchellh/go-homedir v1.1.0
github.com/muka/go-bluetooth v0.0.0-20221213043340-85dc80edc4e1 github.com/muka/go-bluetooth v0.0.0-20221213043340-85dc80edc4e1
github.com/sirupsen/logrus v1.9.0 github.com/sirupsen/logrus v1.9.0
github.com/veandco/go-sdl2 v0.4.28 github.com/veandco/go-sdl2 v0.4.30
github.com/vjeantet/jodaTime v1.0.0 github.com/vjeantet/jodaTime v1.0.0
github.com/yookoala/realpath v1.0.0 github.com/yookoala/realpath v1.0.0
github.com/zyxar/argo v0.0.0-20210923033329-21abde88a063 github.com/zyxar/argo v0.0.0-20210923033329-21abde88a063
) )
require ( require (
github.com/cuu/gogame v0.0.0-20230123135735-e5581171f193 // indirect
github.com/fhs/gompd/v2 v2.3.0 // indirect github.com/fhs/gompd/v2 v2.3.0 // indirect
github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-ole/go-ole v1.2.6 // indirect
github.com/gorilla/websocket v1.5.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect

8
go.sum
View File

@ -1,5 +1,11 @@
github.com/cuu/gogame v0.0.0-20211011085728-70b3e040be73 h1:fmTvicP5+vCLftniyG8yjf9TKMesgq1phni5My+4YVo= github.com/cuu/gogame v0.0.0-20211011085728-70b3e040be73 h1:fmTvicP5+vCLftniyG8yjf9TKMesgq1phni5My+4YVo=
github.com/cuu/gogame v0.0.0-20211011085728-70b3e040be73/go.mod h1:1ZGiLH+shrG0St33RrS7HWw8aTUezakhQcM/uzvjUiA= github.com/cuu/gogame v0.0.0-20211011085728-70b3e040be73/go.mod h1:1ZGiLH+shrG0St33RrS7HWw8aTUezakhQcM/uzvjUiA=
github.com/cuu/gogame v0.0.0-20230123095320-c80490dde012 h1:JM3b7ukEBEJVSExaLgmbZLTP6DJA8JInkOwZKxRydQY=
github.com/cuu/gogame v0.0.0-20230123095320-c80490dde012/go.mod h1:1ZGiLH+shrG0St33RrS7HWw8aTUezakhQcM/uzvjUiA=
github.com/cuu/gogame v0.0.0-20230123135016-435fff5f39a9 h1:DfHSAlgeKqyxhmJdXegkfjOobh7VEH7GSZfAIbbOJYA=
github.com/cuu/gogame v0.0.0-20230123135016-435fff5f39a9/go.mod h1:1ZGiLH+shrG0St33RrS7HWw8aTUezakhQcM/uzvjUiA=
github.com/cuu/gogame v0.0.0-20230123135735-e5581171f193 h1:S7c9jkrxHHF+0XeeWY9PcbMjO2jL7t5cp1Lsl0ba4gs=
github.com/cuu/gogame v0.0.0-20230123135735-e5581171f193/go.mod h1:1ZGiLH+shrG0St33RrS7HWw8aTUezakhQcM/uzvjUiA=
github.com/cuu/grab v2.0.0+incompatible h1:iXzIujTt9fYkjw63Tlxyxw1ohvabE59jWgkzI4LUY6E= github.com/cuu/grab v2.0.0+incompatible h1:iXzIujTt9fYkjw63Tlxyxw1ohvabE59jWgkzI4LUY6E=
github.com/cuu/grab v2.0.0+incompatible/go.mod h1:FQIc8xU5/Uw5lfVeVv4hrrclKgc+6c0ALOYVaTS+R20= github.com/cuu/grab v2.0.0+incompatible/go.mod h1:FQIc8xU5/Uw5lfVeVv4hrrclKgc+6c0ALOYVaTS+R20=
github.com/cuu/wpa-connect v1.5.5 h1:Y6iBOIzFTBkn386uUCiBA80NIGJboAJ8Ee0AFfIbGRc= github.com/cuu/wpa-connect v1.5.5 h1:Y6iBOIzFTBkn386uUCiBA80NIGJboAJ8Ee0AFfIbGRc=
@ -66,6 +72,8 @@ github.com/suapapa/go_eddystone v1.3.1/go.mod h1:bXC11TfJOS+3g3q/Uzd7FKd5g62STQE
github.com/veandco/go-sdl2 v0.4.10/go.mod h1:OROqMhHD43nT4/i9crJukyVecjPNYYuCofep6SNiAjY= github.com/veandco/go-sdl2 v0.4.10/go.mod h1:OROqMhHD43nT4/i9crJukyVecjPNYYuCofep6SNiAjY=
github.com/veandco/go-sdl2 v0.4.28 h1:kLXyC0MNbQp6aQcow27Nozaos6XT9j1db7hMm2PPPas= github.com/veandco/go-sdl2 v0.4.28 h1:kLXyC0MNbQp6aQcow27Nozaos6XT9j1db7hMm2PPPas=
github.com/veandco/go-sdl2 v0.4.28/go.mod h1:OROqMhHD43nT4/i9crJukyVecjPNYYuCofep6SNiAjY= github.com/veandco/go-sdl2 v0.4.28/go.mod h1:OROqMhHD43nT4/i9crJukyVecjPNYYuCofep6SNiAjY=
github.com/veandco/go-sdl2 v0.4.30 h1:ZES8cWfk512B1OETAfw8BFbV5k6K4XE6rUlzfgj3KZA=
github.com/veandco/go-sdl2 v0.4.30/go.mod h1:OROqMhHD43nT4/i9crJukyVecjPNYYuCofep6SNiAjY=
github.com/vjeantet/jodaTime v1.0.0 h1:Fq2K9UCsbTFtKbHpe/L7C57XnSgbZ5z+gyGpn7cTE3s= github.com/vjeantet/jodaTime v1.0.0 h1:Fq2K9UCsbTFtKbHpe/L7C57XnSgbZ5z+gyGpn7cTE3s=
github.com/vjeantet/jodaTime v1.0.0/go.mod h1:gA+i8InPfZxL1ToHaDpzi6QT/npjl3uPlcV4cxDNerI= github.com/vjeantet/jodaTime v1.0.0/go.mod h1:gA+i8InPfZxL1ToHaDpzi6QT/npjl3uPlcV4cxDNerI=
github.com/yookoala/realpath v1.0.0 h1:7OA9pj4FZd+oZDsyvXWQvjn5oBdcHRTV44PpdMSuImQ= github.com/yookoala/realpath v1.0.0 h1:7OA9pj4FZd+oZDsyvXWQvjn5oBdcHRTV44PpdMSuImQ=

View File

@ -497,13 +497,14 @@ func run() int {
func main() { func main() {
var exitcode int var exitcode int
defer sdl.Quit() defer gogame.Quit()
//runtime.GOMAXPROCS(1) //runtime.GOMAXPROCS(1)
os.Setenv("SDL_VIDEO_CENTERED", "1") os.Setenv("SDL_VIDEO_CENTERED", "1")
gogame.AsyncStart(func() {
exitcode = run() exitcode = run()
})
os.Exit(exitcode) os.Exit(exitcode)
} }

View File

@ -13,7 +13,7 @@ import (
"github.com/clockworkpi/LauncherGoDev/sysgo/UI" "github.com/clockworkpi/LauncherGoDev/sysgo/UI"
"github.com/cuu/gogame/color" "github.com/cuu/gogame/color"
"github.com/cuu/gogame/time" //"github.com/cuu/gogame/time"
) )
type FavListPage struct { type FavListPage struct {
@ -378,8 +378,7 @@ func (self *FavListPage) Click() {
} else { } else {
self.Screen.PushCurPage() self.Screen.PushCurPage()
self.Screen.SetCurPage(self.RomSoConfirmDownloadPage) self.Screen.SetCurPage(self.RomSoConfirmDownloadPage)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }
@ -387,8 +386,7 @@ func (self *FavListPage) Click() {
} }
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
func (self *FavListPage) ReScan() { func (self *FavListPage) ReScan() {
@ -417,14 +415,12 @@ func (self *FavListPage) ReScan() {
func (self *FavListPage) OnReturnBackCb() { func (self *FavListPage) OnReturnBackCb() {
self.ReScan() self.ReScan()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
func (self *FavListPage) OnLoadCb() { func (self *FavListPage) OnLoadCb() {
self.ReScan() self.ReScan()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
func (self *FavListPage) SpeedScroll(thekey string) { func (self *FavListPage) SpeedScroll(thekey string) {
@ -447,22 +443,19 @@ func (self *FavListPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["Menu"] || ev.Data["Key"] == UI.CurKeys["Left"] { if ev.Data["Key"] == UI.CurKeys["Menu"] || ev.Data["Key"] == UI.CurKeys["Left"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Up"] { if ev.Data["Key"] == UI.CurKeys["Up"] {
self.SpeedScroll(ev.Data["Key"]) self.SpeedScroll(ev.Data["Key"])
self.ScrollUp() self.ScrollUp()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Down"] { if ev.Data["Key"] == UI.CurKeys["Down"] {
self.SpeedScroll(ev.Data["Key"]) self.SpeedScroll(ev.Data["Key"])
self.ScrollDown() self.ScrollDown()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Enter"] { if ev.Data["Key"] == UI.CurKeys["Enter"] {
@ -471,8 +464,7 @@ func (self *FavListPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["X"] { //Scan current if ev.Data["Key"] == UI.CurKeys["X"] { //Scan current
self.ReScan() self.ReScan()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Y"] { // del if ev.Data["Key"] == UI.CurKeys["Y"] { // del
@ -484,13 +476,9 @@ func (self *FavListPage) KeyDown(ev *event.Event) {
if cur_li.(*EmulatorListItem).IsFile() { if cur_li.(*EmulatorListItem).IsFile() {
uid := UI.GetUid(cur_li.(*EmulatorListItem).Path) uid := UI.GetUid(cur_li.(*EmulatorListItem).Path)
os.Chown(cur_li.(*EmulatorListItem).Path, uid, uid) os.Chown(cur_li.(*EmulatorListItem).Path, uid, uid)
self.Screen.MsgBox.SetText("Deleting") self.Screen.ShowMsg("Deleting",600)
self.Screen.MsgBox.Draw()
self.Screen.SwapAndShow()
time.BlockDelay(600)
self.ReScan() self.ReScan()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }
} }

View File

@ -9,7 +9,7 @@ import (
"github.com/clockworkpi/LauncherGoDev/sysgo/UI" "github.com/clockworkpi/LauncherGoDev/sysgo/UI"
"github.com/cuu/gogame/color" "github.com/cuu/gogame/color"
"github.com/cuu/gogame/event" "github.com/cuu/gogame/event"
"github.com/cuu/gogame/time" //"github.com/cuu/gogame/time"
"github.com/veandco/go-sdl2/ttf" "github.com/veandco/go-sdl2/ttf"
"os/exec" "os/exec"
"path/filepath" "path/filepath"
@ -406,8 +406,7 @@ func (self *RomListPage) Click() {
} else { } else {
self.Screen.PushCurPage() self.Screen.PushCurPage()
self.Screen.SetCurPage(self.RomSoConfirmDownloadPage) self.Screen.SetCurPage(self.RomSoConfirmDownloadPage)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }
@ -415,8 +414,7 @@ func (self *RomListPage) Click() {
} }
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
func (self *RomListPage) ReScan() { func (self *RomListPage) ReScan() {
@ -435,8 +433,7 @@ func (self *RomListPage) ReScan() {
func (self *RomListPage) OnReturnBackCb() { func (self *RomListPage) OnReturnBackCb() {
self.ReScan() self.ReScan()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
func (self *RomListPage) SpeedScroll(thekey string) { func (self *RomListPage) SpeedScroll(thekey string) {
@ -459,29 +456,25 @@ func (self *RomListPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["Menu"] { if ev.Data["Key"] == UI.CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Right"] { if ev.Data["Key"] == UI.CurKeys["Right"] {
self.Screen.PushCurPage() self.Screen.PushCurPage()
self.Screen.SetCurPage(self.Leader.FavPage) self.Screen.SetCurPage(self.Leader.FavPage)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Up"] { if ev.Data["Key"] == UI.CurKeys["Up"] {
self.SpeedScroll(ev.Data["Key"]) self.SpeedScroll(ev.Data["Key"])
self.ScrollUp() self.ScrollUp()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Down"] { if ev.Data["Key"] == UI.CurKeys["Down"] {
self.SpeedScroll(ev.Data["Key"]) self.SpeedScroll(ev.Data["Key"])
self.ScrollDown() self.ScrollDown()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Enter"] { if ev.Data["Key"] == UI.CurKeys["Enter"] {
@ -502,21 +495,15 @@ func (self *RomListPage) KeyDown(ev *event.Event) {
fmt.Println(err) fmt.Println(err)
} }
self.Screen.MsgBox.SetText("Add to favourite list") self.Screen.ShowMsg("Add to favourite list",600)
self.Screen.MsgBox.Draw()
self.Screen.SwapAndShow()
time.BlockDelay(600)
self.ReScan() self.ReScan()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }
if ev.Data["Key"] == UI.CurKeys["X"] { //Scan current if ev.Data["Key"] == UI.CurKeys["X"] { //Scan current
self.ReScan() self.ReScan()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["Y"] { // del if ev.Data["Key"] == UI.CurKeys["Y"] { // del
@ -531,9 +518,8 @@ func (self *RomListPage) KeyDown(ev *event.Event) {
self.Screen.PushCurPage() self.Screen.PushCurPage()
self.Screen.SetCurPage(self.Leader.DeleteConfirmPage) self.Screen.SetCurPage(self.Leader.DeleteConfirmPage)
self.Screen.Draw()
self.Screen.SwapAndShow()
self.Screen.Refresh()
} }
} }
} }

View File

@ -59,23 +59,20 @@ func (self *RomSoConfirmPage) Init() {
func (self *RomSoConfirmPage) SnapMsg(msg string) { func (self *RomSoConfirmPage) SnapMsg(msg string) {
self.MyList[0].SetText(msg) self.MyList[0].SetText(msg)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
self.MyList[0].SetText(self.ConfirmText) self.MyList[0].SetText(self.ConfirmText)
} }
func (self *RomSoConfirmPage) OnReturnBackCb() { func (self *RomSoConfirmPage) OnReturnBackCb() {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
func (self *RomSoConfirmPage) KeyDown(ev *event.Event) { func (self *RomSoConfirmPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == UI.CurKeys["Menu"] || ev.Data["Key"] == UI.CurKeys["A"] { if ev.Data["Key"] == UI.CurKeys["Menu"] || ev.Data["Key"] == UI.CurKeys["A"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["B"] { if ev.Data["Key"] == UI.CurKeys["B"] {
@ -91,8 +88,7 @@ func (self *RomSoConfirmPage) KeyDown(ev *event.Event) {
} }
self.Screen.PushPage(self.DownloadPage) self.Screen.PushPage(self.DownloadPage)
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
ec := self.Parent.GetEmulatorConfig() ec := self.Parent.GetEmulatorConfig()
if sysgo.CurKeySet == "PC" { if sysgo.CurKeySet == "PC" {

View File

@ -141,8 +141,7 @@ func (self *ConfirmPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == CurKeys["A"] || ev.Data["Key"] == CurKeys["Menu"] { if ev.Data["Key"] == CurKeys["A"] || ev.Data["Key"] == CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }

View File

@ -38,8 +38,7 @@ func (self *DeleteConfirmPage) KeyDown(ev *event.Event) {
if ev.Data["Key"] == CurKeys["A"] || ev.Data["Key"] == CurKeys["Menu"] { if ev.Data["Key"] == CurKeys["A"] || ev.Data["Key"] == CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == CurKeys["B"] { if ev.Data["Key"] == CurKeys["B"] {
@ -51,21 +50,17 @@ func (self *DeleteConfirmPage) KeyDown(ev *event.Event) {
err = os.Rename(filepath.Base(self.FileName), filepath.Join(self.TrashDir, filepath.Base(self.FileName))) err = os.Rename(filepath.Base(self.FileName), filepath.Join(self.TrashDir, filepath.Base(self.FileName)))
if err != nil { if err != nil {
if strings.Contains(err.Error(), "exists") { if strings.Contains(err.Error(), "exists") {
self.Screen.MsgBox.SetText("Already Existed") self.Screen.ShowMsg("Already Existed",0)
} else { } else {
self.Screen.MsgBox.SetText("Error") self.Screen.ShowMsg("Error",0)
} }
self.Screen.MsgBox.Draw()
self.Screen.SwapAndShow()
} else { } else {
self.SnapMsg("Deleting") self.SnapMsg("Deleting")
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
self.Reset() self.Reset()
time.BlockDelay(300) time.BlockDelay(300)
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
fmt.Println(self.FileName) fmt.Println(self.FileName)

View File

@ -126,8 +126,7 @@ func (self *DownloadProcessPage) UpdateProcessInterval() {
self.FileNameLabel.SetText(filepath.Base(self.resp.Filename)) self.FileNameLabel.SetText(filepath.Base(self.resp.Filename))
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
if self.resp.Progress() >= 1.0 { if self.resp.Progress() >= 1.0 {
// download is complete // download is complete
@ -187,8 +186,7 @@ func (self *DownloadProcessPage) DownloadErr() {
func (self *DownloadProcessPage) DoneAndReturnUpLevel() { func (self *DownloadProcessPage) DoneAndReturnUpLevel() {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
func (self *DownloadProcessPage) StartDownload(_url, dst_dir string) { func (self *DownloadProcessPage) StartDownload(_url, dst_dir string) {
@ -229,8 +227,7 @@ func (self *DownloadProcessPage) KeyDown(ev *event.Event) {
self.StopDownload() self.StopDownload()
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }

View File

@ -449,15 +449,14 @@ func (self *Keyboard) KeyDown(ev *event.Event) {
if ev.Data["Key"] == CurKeys["Menu"] { if ev.Data["Key"] == CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == CurKeys["Y"] { // done if ev.Data["Key"] == CurKeys["Y"] { // done
fmt.Println(strings.Join(self.Textarea.MyWords, "")) fmt.Println(strings.Join(self.Textarea.MyWords, ""))
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.SwapAndShow() self.Screen.Refresh()
if self.Caller != nil { if self.Caller != nil {
self.Caller.OnKbdReturnBackCb() self.Caller.OnKbdReturnBackCb()
} }

View File

@ -1,7 +1,7 @@
package UI package UI
import ( import (
//"fmt" "fmt"
"github.com/veandco/go-sdl2/sdl" "github.com/veandco/go-sdl2/sdl"
"github.com/veandco/go-sdl2/ttf" "github.com/veandco/go-sdl2/ttf"
@ -112,7 +112,11 @@ func (self *Label) Draw() {
my_text := font.Render(self.FontObj, self.Text, true, self.Color, nil) my_text := font.Render(self.FontObj, self.Text, true, self.Color, nil)
rect_ := rect.Rect(self.PosX, self.PosY, self.Width, self.Height) rect_ := rect.Rect(self.PosX, self.PosY, self.Width, self.Height)
surface.Blit(self.CanvasHWND, my_text, &rect_, nil) if my_text == nil || my_text.W <= 0 {
my_text.Free() fmt.Println("%#v",my_text,self.FontObj)
}else{
surface.Blit(self.CanvasHWND, my_text, &rect_, nil)
my_text.Free()
}
} }

View File

@ -45,6 +45,7 @@ type ScreenInterface interface {
SetCurPage(pg PageInterface) SetCurPage(pg PageInterface)
SwapAndShow() SwapAndShow()
IsWifiConnectedNow() IsWifiConnectedNow()
Refresh()
} }
type PluginConfig struct { type PluginConfig struct {
@ -185,7 +186,8 @@ type MainScreen struct {
LastKey string LastKey string
LastKeyDown gotime.Time LastKeyDown gotime.Time
updateScreen chan bool
} }
func NewMainScreen() *MainScreen { func NewMainScreen() *MainScreen {
@ -199,6 +201,9 @@ func NewMainScreen() *MainScreen {
m.MsgBoxFont = Fonts["veramono20"] m.MsgBoxFont = Fonts["veramono20"]
m.IconFont = Fonts["varela15"] m.IconFont = Fonts["varela15"]
m.Closed = false m.Closed = false
m.updateScreen = make(chan bool,1)
return m return m
} }
@ -217,7 +222,11 @@ func (self *MainScreen) Init() {
self.CounterScreen.Init() self.CounterScreen.Init()
//self.GenList() // load predefined plugin list,ready to be injected ,or ,as a .so for dynamic loading //self.GenList() // load predefined plugin list,ready to be injected ,or ,as a .so for dynamic loading
go func() {
sdl.Do(func() {
self.RefreshLoop()
})
}()
} }
func (self *MainScreen) FartherPages() { // right after ReadTheDirIntoPages func (self *MainScreen) FartherPages() { // right after ReadTheDirIntoPages
@ -272,6 +281,7 @@ func (self *MainScreen) SwapAndShow() {
surface.Blit(self.HWND, self.CanvasHWND, &rect_, nil) surface.Blit(self.HWND, self.CanvasHWND, &rect_, nil)
} }
display.Flip() display.Flip()
} }
@ -443,3 +453,23 @@ func (self *MainScreen) Draw() {
self.FootBar.Draw() self.FootBar.Draw()
} }
} }
func (self *MainScreen) Refresh() {
self.updateScreen <- true
}
func (self *MainScreen) RefreshLoop() {
L:
for {
select {
case v:= <- self.updateScreen:
if v == true {
self.Draw()
self.SwapAndShow()
}
if v== false {
break L
}
}
}
}

View File

@ -815,16 +815,14 @@ func (self *Page) KeyDown(ev *event.Event) {
if self.FootMsg[3] == "Back" { if self.FootMsg[3] == "Back" {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
return return
} }
} }
if ev.Data["Key"] == CurKeys["Menu"] { if ev.Data["Key"] == CurKeys["Menu"] {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == CurKeys["Right"] { if ev.Data["Key"] == CurKeys["Right"] {
@ -836,8 +834,7 @@ func (self *Page) KeyDown(ev *event.Event) {
} }
self.PsIndex = self.IconIndex self.PsIndex = self.IconIndex
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }
@ -849,15 +846,13 @@ func (self *Page) KeyDown(ev *event.Event) {
self.IconsEasingRight(IconWidth + self.PageIconMargin) self.IconsEasingRight(IconWidth + self.PageIconMargin)
} }
self.PsIndex = self.IconIndex self.PsIndex = self.IconIndex
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }
if ev.Data["Key"] == CurKeys["Enter"] { if ev.Data["Key"] == CurKeys["Enter"] {
self.IconClick() self.IconClick()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
} }

View File

@ -132,7 +132,7 @@ func NewTitleBar() *TitleBar {
t.icon_base_path = SkinMap("sysgo/gameshell/titlebar_icons/") t.icon_base_path = SkinMap("sysgo/gameshell/titlebar_icons/")
t.TitleFont = Fonts["notosanscjk15"] t.TitleFont = Fonts["varela16"]
t.TimeFont = Fonts["varela12"] t.TimeFont = Fonts["varela12"]
t.InLowBackLight = -1 t.InLowBackLight = -1

View File

@ -37,8 +37,7 @@ func (self *YesCancelConfirmPage) KeyDown(ev *event.Event) {
if IsKeyMenuOrB(ev.Data["Key"]) { if IsKeyMenuOrB(ev.Data["Key"]) {
self.ReturnToUpLevelPage() self.ReturnToUpLevelPage()
self.Screen.Draw() self.Screen.Refresh()
self.Screen.SwapAndShow()
} }
if IsKeyStartOrA(ev.Data["Key"]) { if IsKeyStartOrA(ev.Data["Key"]) {