bug fix,music player fix

This commit is contained in:
cuu 2023-01-22 08:33:10 +00:00
parent e59d572610
commit 057bcc86f1
8 changed files with 103 additions and 16 deletions

View File

@ -66,16 +66,21 @@ func NewMusicLibListPage() *MusicLibListPage {
return p return p
} }
func (self *MusicLibListPage) OnLoadCb() { func (self *MusicLibListPage) OnLoadCb() {
self.PosY = 0 // self.PosY = 0
if self.MyList == nil || len(self.MyList) == 0 {
self.MyStack.Clear()
self.SyncList("/") self.SyncList("/")
}
} }
func (self *MusicLibListPage) SetCoords() { func (self *MusicLibListPage) SetCoords() {
} }
func (self *MusicLibListPage) SyncList(path string) { func (self *MusicLibListPage) SyncList(path string) {
fmt.Println("SyncList: ",path)
fmt.Println(self.MyStack)
conn := self.Parent.MpdClient conn := self.Parent.MpdClient
self.MyList = nil self.MyList = nil
@ -98,6 +103,7 @@ func (self *MusicLibListPage) SyncList(path string) {
li.PosY = start_y li.PosY = start_y
li.Width = UI.Width li.Width = UI.Width
li.Fonts["normal"] = self.ListFontObj li.Fonts["normal"] = self.ListFontObj
li.Path = "[..]"
li.Init("[..]") li.Init("[..]")
li.MyType = UI.ICON_TYPES["DIR"] li.MyType = UI.ICON_TYPES["DIR"]
self.MyList = append(self.MyList, li) self.MyList = append(self.MyList, li)
@ -235,7 +241,7 @@ func (self *MusicLibListPage) Click() {
func (self *MusicLibListPage) KeyDown(ev *event.Event) { func (self *MusicLibListPage) KeyDown(ev *event.Event) {
if UI.IsKeyMenuOrB(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.Draw()
self.Screen.SwapAndShow() self.Screen.SwapAndShow()
@ -255,10 +261,14 @@ func (self *MusicLibListPage) KeyDown(ev *event.Event) {
self.Screen.SwapAndShow() self.Screen.SwapAndShow()
} }
if UI.IsKeyStartOrA(ev.Data["Key"]) { if ev.Data["Key"] == UI.CurKeys["B"] {
self.Click() self.Click()
} }
if ev.Data["Key"] == UI.CurKeys["Y"] {
self.Screen.ShowMsg("Scan...",300)
self.OnLoadCb()
}
return return
} }
@ -274,6 +284,13 @@ func (self *MusicLibListPage) Draw() {
self.Ps.Draw() self.Ps.Draw()
for _, v := range self.MyList { for _, v := range self.MyList {
v.(*MusicLibListPageListItem).Active = false
if self.Parent.InPlayList( v.(*MusicLibListPageListItem).Path) {
v.(*MusicLibListPageListItem).Active = true
fmt.Println("in PlayList: ",v.(*MusicLibListPageListItem).Path)
}
if v.(*MusicLibListPageListItem).PosY > self.Height+self.Height/2 { if v.(*MusicLibListPageListItem).PosY > self.Height+self.Height/2 {
break break
} }
@ -292,6 +309,13 @@ func (self *MusicLibListPage) Draw() {
self.Ps.(*ListPageSelector).Width = self.Width self.Ps.(*ListPageSelector).Width = self.Width
self.Ps.Draw() self.Ps.Draw()
for _, v := range self.MyList { for _, v := range self.MyList {
v.(*MusicLibListPageListItem).Active = false
if self.Parent.InPlayList( v.(*MusicLibListPageListItem).Path) {
v.(*MusicLibListPageListItem).Active = true
fmt.Println("in PlayList: ",v.(*MusicLibListPageListItem).Path)
}
if v.(*MusicLibListPageListItem).PosY > self.Height+self.Height/2 { if v.(*MusicLibListPageListItem).PosY > self.Height+self.Height/2 {
break break
} }

View File

@ -48,10 +48,27 @@ func (self *MusicLibListPageListItem) Draw() {
self.Labels["Text"].NewCoord(x, self.PosY+(self.Height-h)/2) self.Labels["Text"].NewCoord(x, self.PosY+(self.Height-h)/2)
if self.MyType == UI.ICON_TYPES["DIR"] && self.Path != "[..]" {
sys_icon := self.Parent.(*MusicLibListPage).Icons["sys"]
sys_icon.SetIconIndex(0)
_,h := sys_icon.Size()
sys_icon.NewCoord(self.Width - 12,self.PosY+ (self.Height - h)/2+h/2)
sys_icon.Draw()
}
if self.MyType == UI.ICON_TYPES["FILE"] {
sys_icon := self.Parent.(*MusicLibListPage).Icons["sys"]
sys_icon.SetIconIndex(1)
_,h := sys_icon.Size()
sys_icon.NewCoord(self.Width-12,self.PosY+ (self.Height - h)/2+h/2)
sys_icon.Draw()
}
/*
if self.Active == true { if self.Active == true {
self.Parent.(*MusicLibListPage).Icons["sys"].NewCoord(self.Parent.(*MusicLibListPage).Width-30, self.PosY+5) self.Parent.(*MusicLibListPage).Icons["sys"].NewCoord(self.Parent.(*MusicLibListPage).Width-30, self.PosY+5)
self.Parent.(*MusicLibListPage).Icons["sys"].Draw() self.Parent.(*MusicLibListPage).Icons["sys"].Draw()
} }
*/
self.Labels["Text"].SetBold(self.Active) self.Labels["Text"].SetBold(self.Active)
self.Labels["Text"].Draw() self.Labels["Text"].Draw()

View File

@ -51,7 +51,7 @@ func NewMusicPlayerPage() *MusicPlayerPage {
p.Align = UI.ALIGN["SLeft"] p.Align = UI.ALIGN["SLeft"]
p.FootMsg = [5]string{"Nav","Remove","RTA","Back","Play/Pause"} p.FootMsg = [5]string{"Nav","Remove","","Back","Play/Pause"}
p.URLColor = UI.MySkinManager.GiveColor("URL") p.URLColor = UI.MySkinManager.GiveColor("URL")
@ -185,6 +185,22 @@ func (self *MusicPlayerPage) SyncPlaying() {
} }
} }
func (self *MusicPlayerPage) InPlayList(path string) bool {
if self.MyList == nil || len(self.MyList) == 0 {
return false
}
for _,v := range self.MyList {
///fmt.Println(v.(*MusicPlayPageListItem).Path, path)
if v.(*MusicPlayPageListItem).Path == path {
return true
}
}
return false
}
func (self *MusicPlayerPage) Init() { func (self *MusicPlayerPage) Init() {
if self.Screen == nil { if self.Screen == nil {
panic("No Screen") panic("No Screen")
@ -234,7 +250,7 @@ func (self *MusicPlayerPage) Init() {
self.MyMusicLibListPage = NewMusicLibListPage() self.MyMusicLibListPage = NewMusicLibListPage()
self.MyMusicLibListPage.Screen = self.Screen self.MyMusicLibListPage.Screen = self.Screen
self.MyMusicLibListPage.Name = "Music Library" self.MyMusicLibListPage.Name = "Music library"
self.MyMusicLibListPage.Parent = self self.MyMusicLibListPage.Parent = self
self.MyMusicLibListPage.Init() self.MyMusicLibListPage.Init()
@ -267,7 +283,12 @@ func (self *MusicPlayerPage) KeyDown(ev *event.Event) {
self.Screen.Draw() self.Screen.Draw()
self.Screen.SwapAndShow() self.Screen.SwapAndShow()
} }
if ev.Data["Key"] == UI.CurKeys["X"] {
self.MpdClient.Delete(self.PsIndex,-1)
self.SyncList()
self.Screen.Draw()
self.Screen.SwapAndShow()
}
return return
} }

View File

@ -25,7 +25,7 @@ type MusicPlayerPlugin struct {
func (self *MusicPlayerPlugin) Init(main_screen *UI.MainScreen) { func (self *MusicPlayerPlugin) Init(main_screen *UI.MainScreen) {
self.MusicPlayerPage = NewMusicPlayerPage() self.MusicPlayerPage = NewMusicPlayerPage()
self.MusicPlayerPage.SetScreen(main_screen) self.MusicPlayerPage.SetScreen(main_screen)
self.MusicPlayerPage.SetName("Music Player") self.MusicPlayerPage.SetName("Music player")
self.MpdClient = nil self.MpdClient = nil
self.MusicPlayerPage.MpdClient = self.MpdClient self.MusicPlayerPage.MpdClient = self.MpdClient
self.MusicPlayerPage.Init() self.MusicPlayerPage.Init()

View File

@ -54,7 +54,11 @@ func (stk *FolderStack) Last() string {
return stk.head.data.(string) return stk.head.data.(string)
} }
} }
func (stk *FolderStack) Clear() {
for stk.Length() > 0 {
stk.Pop()
}
}
func NewFolderStack() *FolderStack { func NewFolderStack() *FolderStack {
stk := new(FolderStack) stk := new(FolderStack)
stk.lock = &sync.Mutex{} stk.lock = &sync.Mutex{}

View File

@ -70,6 +70,15 @@ func IsKeyStartOrA(key string) bool {
return key == CurKeys["Start"] || key == CurKeys["A"] return key == CurKeys["Start"] || key == CurKeys["A"]
} }
func IsKeyStartOrB(key string) bool {
return key == CurKeys["Start"] || key == CurKeys["B"]
}
func IsKeyMenuOrB(key string) bool { func IsKeyMenuOrB(key string) bool {
return key == CurKeys["Menu"] || key == CurKeys["B"] return key == CurKeys["Menu"] || key == CurKeys["B"]
} }
func IsKeyMenuOrA(key string) bool {
return key == CurKeys["Menu"] || key == CurKeys["A"]
}

View File

@ -411,7 +411,18 @@ func (self *MainScreen) KeyDown(ev *event.Event) {
self.LastKey = ev.Data["Key"] self.LastKey = ev.Data["Key"]
} }
func (self *MainScreen) ShowMsg(content string, blocktime int) {
self.MsgBox.SetText(content)
self.MsgBox.Draw()
self.SwapAndShow()
if blocktime > 0 {
time.BlockDelay(blocktime)
self.CurrentPage.Draw()
self.SwapAndShow()
}
}
func (self *MainScreen) DrawRun() { func (self *MainScreen) DrawRun() {
self.MsgBox.SetText("Launching....") self.MsgBox.SetText("Launching....")
self.MsgBox.Draw() self.MsgBox.Draw()

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["varela16"] t.TitleFont = Fonts["notosanscjk15"]
t.TimeFont = Fonts["varela12"] t.TimeFont = Fonts["varela12"]
t.InLowBackLight = -1 t.InLowBackLight = -1
@ -293,15 +293,15 @@ func (self *TitleBar) SetSoundVolume(vol int) {
func (self *TitleBar) CheckBatteryStat() { func (self *TitleBar) CheckBatteryStat() {
bat_segs := [][]int{[]int{0, 6}, []int{7, 15}, []int{16, 20}, []int{21, 30}, []int{31, 50}, []int{51, 60}, []int{61, 80}, []int{81, 90}, []int{91, 100}} bat_segs := [][]int{[]int{0, 6}, []int{7, 15}, []int{16, 20}, []int{21, 30}, []int{31, 50}, []int{51, 60}, []int{61, 80}, []int{81, 90}, []int{91, 100}}
if FileExists(sysgo.Battery) == false {
self.Icons["battery"] = self.Icons["battery_unknown"] self.Icons["battery"] = self.Icons["battery_unknown"]
if FileExists(sysgo.Battery) == false {
return return
} }
file, err := os.Open(sysgo.Battery) file, err := os.Open(sysgo.Battery)
if err != nil { if err != nil {
fmt.Println("Could not open file ", sysgo.Battery) fmt.Println("Could not open file ", sysgo.Battery)
self.Icons["battery"] = self.Icons["battery_unknown"]
return return
} }
@ -529,12 +529,10 @@ func (self *TitleBar) Draw(title string) {
title_text_surf := font.Render(self.TitleFont, self.Title, true, self.SkinManager.GiveColor("Text"), nil) title_text_surf := font.Render(self.TitleFont, self.Title, true, self.SkinManager.GiveColor("Text"), nil)
surface.Blit(self.CanvasHWND, title_text_surf, draw.MidRect(title_text_w/2+self.LOffset, title_text_h/2+(self.BarHeight-title_text_h)/2, title_text_w, title_text_h, Width, Height), nil) surface.Blit(self.CanvasHWND, title_text_surf, draw.MidRect(title_text_w/2+self.LOffset, title_text_h/2+(self.BarHeight-title_text_h)/2, title_text_w, title_text_h, Width, Height), nil)
title_text_surf.Free()
time_text_surf := font.Render(self.TimeFont, cur_time, true, self.SkinManager.GiveColor("Text"), nil) time_text_surf := font.Render(self.TimeFont, cur_time, true, self.SkinManager.GiveColor("Text"), nil)
surface.Blit(self.CanvasHWND, time_text_surf, draw.MidRect(Width-time_text_w/2-self.ROffset, time_text_h/2+(self.BarHeight-time_text_h)/2, time_text_w, time_text_h, Width, Height), nil) surface.Blit(self.CanvasHWND, time_text_surf, draw.MidRect(Width-time_text_w/2-self.ROffset, time_text_h/2+(self.BarHeight-time_text_h)/2, time_text_w, time_text_h, Width, Height), nil)
time_text_surf.Free()
start_x := Width - time_text_w - self.ROffset - self.IconWidth*3 // close to the time_text start_x := Width - time_text_w - self.ROffset - self.IconWidth*3 // close to the time_text
@ -574,4 +572,7 @@ func (self *TitleBar) Draw(title string) {
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.HWND, self.CanvasHWND, &rect_, nil) surface.Blit(self.HWND, self.CanvasHWND, &rect_, nil)
} }
title_text_surf.Free()
time_text_surf.Free()
} }