Author: bklaas
Date: Wed Feb 17 10:01:47 2010
New Revision: 8518
URL: http://svn.slimdevices.com/jive?rev=8518&view=rev
Log:
Fixed Bug: 15339
Fixed Bug: 15573
Description: fully replace NP window on track change. This is a workaround to
the fact that window listeners are being lost in particular situations (e.g., a
new pandora station being selected and updating an already drawn NP window).
add log debug messages in notifications
don't take action on notifications not intended for the current player
restyle the rbutton widget rather than replace the whole title group widget set
Modified:
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingApplet.lua
Modified:
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingApplet.lua
URL:
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingApplet.lua?rev=8518&r1=8517&r2=8518&view=diff
==============================================================================
---
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingApplet.lua
(original)
+++
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingApplet.lua
Wed Feb 17 10:01:47 2010
@@ -126,12 +126,18 @@
end
function notify_playerShuffleModeChange(self, player, shuffleMode)
- log:debug("shuffle mode change notification")
+ if player ~= self.player then
+ return
+ end
+ log:debug("notify_playerShuffleModeChange(): ", shuffleMode)
self:_updateShuffle(shuffleMode)
end
function notify_playerRepeatModeChange(self, player, repeatMode)
- log:debug("repeat mode change notification")
+ if player ~= self.player then
+ return
+ end
+ log:debug("notify_playerRepeatModeChange(): ", repeatMode)
self:_updateRepeat(repeatMode)
end
@@ -177,6 +183,10 @@
end
function notify_playerTitleStatus(self, player, text, duration)
+ if player ~= self.player then
+ return
+ end
+ log:debug("notify_playerTitleStatus(): ", text)
self:_setTitleStatus(text, duration)
end
@@ -184,6 +194,7 @@
if player ~= self.player then
return
end
+ log:debug("notify_playerPower(): ", power)
local mode = self.player:getPlayMode()
@@ -203,12 +214,14 @@
function changeTitleText(self, titleText)
self.titleGroup:setWidgetValue("text", titleText)
- self.titleGroupOneTrackPlaylist:setWidgetValue("text", titleText)
end
function notify_playerTrackChange(self, player, nowPlaying)
- log:debug("Notification received that track has changed")
+ if player ~= self.player then
+ return
+ end
+ log:debug("notify_playerTrackChange(): ", nowPlaying)
local thisPlayer = _isThisPlayer(self, player)
if not thisPlayer then return end
@@ -243,9 +256,15 @@
-- for local music, nowPlaying = track_id
self.nowPlaying = nowPlaying
end
+
+ self:replaceNPWindow()
end
function notify_playerPlaylistChange(self, player)
+ if player ~= self.player then
+ return
+ end
+ log:debug("notify_playerPlaylistChange()")
self:_updateAll()
end
@@ -282,7 +301,7 @@
return
end
- log:debug("Player mode has been changed to: ", mode)
+ log:debug("notify_playerModeChange(): Player mode has been changed to:
", mode)
self:_updateMode(mode)
end
@@ -291,6 +310,7 @@
if player ~= self.player then
return
end
+ log:debug("notify_playerDelete():", player)
self:freeAndClear()
end
@@ -301,6 +321,7 @@
if self.player ~= player then
self:freeAndClear()
end
+ log:debug("notify_playerCurrent(): ", player)
self.player = player
if not self.player then
@@ -518,15 +539,13 @@
if playlistSize == 1 and self.rbutton == 'playlist' then
if not self.suppressTitlebar then
log:debug('changing rbutton to + button')
- self.window:removeWidget(self.titleGroup)
- self.window:addWidget(self.titleGroupOneTrackPlaylist)
+
self.titleGroup:getWidget('rbutton'):setStyle('button_more')
end
self.rbutton = 'more'
elseif self.rbutton == 'more' and playlistSize > 1 then
if not self.suppressTitlebar then
log:debug('changing rbutton to playlist button')
-
self.window:removeWidget(self.titleGroupOneTrackPlaylist)
- self.window:addWidget(self.titleGroup)
+
self.titleGroup:getWidget('rbutton'):setStyle('button_playlist')
end
self.rbutton = 'playlist'
end
@@ -955,6 +974,12 @@
log:debug('setting NP window style to: ', self.selectedStyle)
+ self:replaceNPWindow()
+end
+
+
+function replaceNPWindow(self)
+ log:debug("REPLACING NP WINDOW")
local oldWindow = self.window
self.window = _createUI(self)
@@ -962,7 +987,6 @@
self:_updateButtons(self.player:getPlayerStatus())
end
self:_refreshRightButton()
-
self.window:replace(oldWindow, Window.transitionFadeIn)
end
@@ -991,7 +1015,6 @@
self.mainTitle = self:_titleText('play')
self.titleGroup = self:_createTitleGroup(window, 'button_playlist')
- self.titleGroupOneTrackPlaylist = self:_createTitleGroup(window,
'button_more')
self.rbutton = 'playlist'
@@ -1026,7 +1049,6 @@
if not self.scrollSwitchTimer then
self.scrollSwitchTimer = Timer(3000,
function()
- log:debug("in scrollSwitchTimer
timer")
self.trackTitle:animate(true)
self.artistalbumTitle:animate(false)
self.artistTitle:animate(false)
@@ -1038,7 +1060,6 @@
self.trackTitle.textStopCallback =
function(label)
if not self.scrollSwitchTimer:isRunning() then
- log:debug("in scrollSwitchTimer callback: ",
label)
self.artistalbumTitle:animate(true)
self.artistTitle:animate(true)
self.trackTitle:animate(false)
@@ -1053,7 +1074,6 @@
self.artistalbumTitle:animate(false)
self.trackTitle:animate(false)
if not self.scrollSwitchTimer:isRunning() then
- log:debug("in scrollSwitchTimer
callback, setting timer: ", label)
self.scrollSwitchTimer:restart()
end
end
@@ -1062,7 +1082,6 @@
self.artistTitle.textStopCallback =
function(label)
if not self.scrollSwitchTimer:isRunning() then
- log:debug("in scrollSwitchTimer
callback: ", label)
self.trackTitle:animate(false)
self.artistTitle:animate(false)
self.albumTitle:animate(true)
@@ -1075,7 +1094,6 @@
self.albumTitle:animate(false)
self.trackTitle:animate(false)
if not self.scrollSwitchTimer:isRunning() then
- log:debug("in scrollSwitchTimer
callback, setting timer: ", label)
self.scrollSwitchTimer:restart()
end
end
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive-checkins