mirror of
https://github.com/clockworkpi/LauncherGoDev.git
synced 2025-12-12 16:08:52 +01:00
event.Wait to be Poll
This commit is contained in:
parent
df2cc2c931
commit
0833c64b9d
7
Menu/GameShell/20_Retro Games/Pcsx/action.config
Normal file
7
Menu/GameShell/20_Retro Games/Pcsx/action.config
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
ROM=/home/cpi/games/PCSX
|
||||||
|
ROM_SO=/home/cpi/apps/emulators/pcsx
|
||||||
|
EXT=bin,cue,img,mdf,pbp,toc,cbn,m3u,ccd
|
||||||
|
LAUNCHER=
|
||||||
|
TITLE=PS Roms
|
||||||
|
SO_URL=https://github.com/cuu/Pcsx/raw/master/pcsx.zip
|
||||||
|
|
||||||
4
main.go
4
main.go
@ -347,7 +347,7 @@ func run() int {
|
|||||||
|
|
||||||
running := true
|
running := true
|
||||||
for running {
|
for running {
|
||||||
ev := event.Wait()
|
ev := event.Poll()
|
||||||
if ev.Type == event.QUIT {
|
if ev.Type == event.QUIT {
|
||||||
running = false
|
running = false
|
||||||
break
|
break
|
||||||
@ -475,6 +475,8 @@ func run() int {
|
|||||||
main_screen.KeyDown(ev)
|
main_screen.KeyDown(ev)
|
||||||
main_screen.LastKeyDown = everytime_keydown
|
main_screen.LastKeyDown = everytime_keydown
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gotime.Sleep(50*gotime.Millisecond)
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@ -105,7 +105,7 @@ func (self *RomSoConfirmPage) KeyDown(ev *event.Event) {
|
|||||||
|
|
||||||
}else{
|
}else{
|
||||||
so_url := ec.SO_URL
|
so_url := ec.SO_URL
|
||||||
self.DownloadPage.StartDownload(so_url,filepath.Dir(ec.ROM_SO))
|
go self.DownloadPage.StartDownload(so_url,filepath.Dir(ec.ROM_SO))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -106,18 +106,15 @@ func (self *DownloadProcessPage) OnExitCb() {
|
|||||||
|
|
||||||
// should be in a gorotine
|
// should be in a gorotine
|
||||||
func (self *DownloadProcessPage) UpdateProcessInterval() {
|
func (self *DownloadProcessPage) UpdateProcessInterval() {
|
||||||
if self.TheTicker == nil {
|
|
||||||
|
if self.Doing == true {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
self.Doing = true
|
||||||
if self.Screen.CurPage() != self {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
Loop:
|
|
||||||
for {
|
for {
|
||||||
select {
|
|
||||||
case <-self.TheTicker.C:
|
gotime.Sleep(150 * gotime.Millisecond)
|
||||||
|
|
||||||
fmt.Printf(" transferred %v / %v bytes (%.2f%%)\n",
|
fmt.Printf(" transferred %v / %v bytes (%.2f%%)\n",
|
||||||
self.resp.BytesComplete(),
|
self.resp.BytesComplete(),
|
||||||
self.resp.Size,
|
self.resp.Size,
|
||||||
@ -131,17 +128,22 @@ Loop:
|
|||||||
self.SizeLabel.SetText(lb_str)
|
self.SizeLabel.SetText(lb_str)
|
||||||
|
|
||||||
self.FileNameLabel.SetText(filepath.Base(self.resp.Filename))
|
self.FileNameLabel.SetText(filepath.Base(self.resp.Filename))
|
||||||
|
|
||||||
|
|
||||||
self.Screen.Draw()
|
self.Screen.Draw()
|
||||||
self.Screen.SwapAndShow()
|
self.Screen.SwapAndShow()
|
||||||
|
|
||||||
case <-self.resp.Done:
|
if self.resp.Progress() >= 1.0 {
|
||||||
// download is complete
|
// download is complete
|
||||||
fmt.Println("download is complete ",self.Value)
|
fmt.Println("download is complete ",self.Value)
|
||||||
self.Value = 0
|
self.Value = 0
|
||||||
self.TheTicker.Stop()
|
self.Doing=false
|
||||||
self.Doing=false
|
break
|
||||||
break Loop
|
}
|
||||||
}
|
|
||||||
|
if self.Doing == false {
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
self.Doing=false
|
self.Doing=false
|
||||||
@ -177,8 +179,6 @@ Loop:
|
|||||||
cmd.Dir = self.DST_DIR
|
cmd.Dir = self.DST_DIR
|
||||||
cmd.Run()
|
cmd.Run()
|
||||||
|
|
||||||
self.TheTicker.Stop()
|
|
||||||
|
|
||||||
self.DoneAndReturnUpLevel()
|
self.DoneAndReturnUpLevel()
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -216,39 +216,22 @@ func (self *DownloadProcessPage) StartDownload(_url,dst_dir string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
self.req, _ = grab.NewRequest(self.DST_DIR, _url)
|
|
||||||
|
|
||||||
fmt.Printf("Downloading %v...\n", self.req.URL())
|
|
||||||
|
|
||||||
self.resp = self.Downloader.Do(self.req)
|
|
||||||
|
|
||||||
fmt.Printf(" %v\n", self.resp.HTTPResponse.Status)
|
|
||||||
|
|
||||||
self.TheTicker = gotime.NewTicker(100 * gotime.Millisecond)
|
|
||||||
|
|
||||||
if self.Doing == false {
|
if self.Doing == false {
|
||||||
self.Doing = true
|
self.req, _ = grab.NewRequest(self.DST_DIR, _url)
|
||||||
go self.UpdateProcessInterval()
|
fmt.Printf("Downloading %v...\n", self.req.URL())
|
||||||
|
self.resp = self.Downloader.Do(self.req)
|
||||||
|
fmt.Printf(" %v\n", self.resp.HTTPResponse.Status)
|
||||||
|
self.UpdateProcessInterval()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *DownloadProcessPage) StopDownload() {
|
func (self *DownloadProcessPage) StopDownload() {
|
||||||
|
|
||||||
if self.TheTicker != nil {
|
self.Doing=false
|
||||||
self.TheTicker.Stop()
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if self.resp != nil {
|
|
||||||
self.resp.Cancel()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
func (self *DownloadProcessPage) KeyDown( ev *event.Event) {
|
func (self *DownloadProcessPage) 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.StopDownload()
|
self.StopDownload()
|
||||||
|
|
||||||
self.ReturnToUpLevelPage()
|
self.ReturnToUpLevelPage()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user