Author: bklaas
Date: Fri Feb 26 10:49:21 2010
New Revision: 8592
URL: http://svn.slimdevices.com/jive?rev=8592&view=rev
Log:
Fixed Bug: 11761
Description: Add user setting for Now Playing text scroll behavior
(Settings->Screen->Now Playing Text Scrolling)
Options are: Standard Scrolling, Scroll Once, Do Not Scroll (these strings are
taken from WebUI and are thus consistent)
Note that there is one new EN string in this checkin that needs localization.
Modified:
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingApplet.lua
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingMeta.lua
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/strings.txt
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=8592&r1=8591&r2=8592&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
Fri Feb 26 10:49:21 2010
@@ -123,7 +123,81 @@
self.player = false
self.lastVolumeSliderAdjustT = 0
self.cumulativeScrollTicks = 0
-end
+
+ local settings = self:getSettings()
+ self.scrollText = settings["scrollText"]
+ self.scrollTextOnce = settings["scrollTextOnce"]
+
+end
+
+
+function settingsShow(self)
+ local window = Window("text_list",
self:string('SCREENSAVER_SCROLLMODE') )
+ local group = RadioGroup()
+
+ local menu = SimpleMenu("menu", {
+ {
+ text = self:string("SCREENSAVER_SCROLLMODE_DEFAULT"),
+ style = 'item_choice',
+ check = RadioButton("radio",
+ group,
+ function(event)
+ self:setScrollBehavior("always")
+ end,
+ self.scrollText and not self.scrollTextOnce
+ )
+ },
+ {
+ text = self:string("SCREENSAVER_SCROLLMODE_SCROLLONCE"),
+ style = 'item_choice',
+ check = RadioButton("radio",
+ group,
+ function(event)
+ self:setScrollBehavior("once")
+ end,
+ self.scrollText and self.scrollTextOnce
+ )
+ },
+ {
+ text = self:string("SCREENSAVER_SCROLLMODE_NOSCROLL"),
+ style = 'item_choice',
+ check = RadioButton("radio",
+ group,
+ function(event)
+ self:setScrollBehavior("never")
+ end,
+ not self.scrollText
+ )
+ },
+ })
+
+ window:addWidget(menu)
+ window:show()
+end
+
+
+function setScrollBehavior(self, setting)
+ if setting == 'once' then
+ self.scrollText = true
+ self.scrollTextOnce = true
+ self:_addScrollSwitchTimer()
+ elseif setting == 'never' then
+ self.scrollText = false
+ self.scrollTextOnce = false
+ self.scrollSwitchTimer = nil
+ else
+ self.scrollText = true
+ self.scrollTextOnce = false
+ self:_addScrollSwitchTimer()
+ end
+
+ local settings = self:getSettings()
+
+ settings["scrollText"] = self.scrollText
+ settings["scrollTextOnce"] = self.scrollTextOnce
+ self:storeSettings()
+end
+
function notify_playerShuffleModeChange(self, player, shuffleMode)
if player ~= self.player then
@@ -132,6 +206,7 @@
log:debug("notify_playerShuffleModeChange(): ", shuffleMode)
self:_updateShuffle(shuffleMode)
end
+
function notify_playerRepeatModeChange(self, player, repeatMode)
if player ~= self.player then
@@ -614,7 +689,7 @@
artistalbum = album
end
- if self.scrollSwitchTimer:isRunning() then
+ if self.scrollSwitchTimer and
self.scrollSwitchTimer:isRunning() then
self.scrollSwitchTimer:stop()
end
@@ -622,7 +697,11 @@
self.albumTitle:setValue(album)
self.artistTitle:setValue(artist)
self.artistalbumTitle:setValue(artistalbum)
- self.trackTitle:animate(true)
+ if self.scrollText then
+ self.trackTitle:animate(true)
+ else
+ self.trackTitle:animate(false)
+ end
self.artistTitle:animate(false)
self.albumTitle:animate(false)
self.artistalbumTitle:animate(false)
@@ -1060,7 +1139,8 @@
npalbum = self.albumTitleButton,
})
- if not self.scrollSwitchTimer then
+ if not self.scrollSwitchTimer and self.scrollText then
+ self:_addScrollSwitchTimer()
self.scrollSwitchTimer = Timer(3000,
function()
self.trackTitle:animate(true)
@@ -1073,7 +1153,8 @@
self.trackTitle.textStopCallback =
function(label)
- if not self.scrollSwitchTimer:isRunning() then
+ if self.scrollSwitchTimer and not
self.scrollSwitchTimer:isRunning() then
+ log:debug('trackTitle animation done, animate
artistalbum/artistTitle')
self.artistalbumTitle:animate(true)
self.artistTitle:animate(true)
self.trackTitle:animate(false)
@@ -1087,15 +1168,18 @@
function(label)
self.artistalbumTitle:animate(false)
self.trackTitle:animate(false)
- if not self.scrollSwitchTimer:isRunning() then
- self.scrollSwitchTimer:restart()
+ if self.scrollSwitchTimer and not
self.scrollSwitchTimer:isRunning() and
+ not self.scrollTextOnce then
+ log:debug('artistAlbum
animation done, restarting timer')
+ self.scrollSwitchTimer:restart()
end
end
else
self.artistTitle.textStopCallback =
function(label)
- if not self.scrollSwitchTimer:isRunning() then
+ if self.scrollSwitchTimer and not
self.scrollSwitchTimer:isRunning() then
+ log:debug('artist animation done,
animate album text')
self.trackTitle:animate(false)
self.artistTitle:animate(false)
self.albumTitle:animate(true)
@@ -1104,11 +1188,14 @@
self.albumTitle.textStopCallback =
function(label)
+ log:warn('in albumTitle textStop callback')
self.artistTitle:animate(false)
self.albumTitle:animate(false)
self.trackTitle:animate(false)
- if not self.scrollSwitchTimer:isRunning() then
- self.scrollSwitchTimer:restart()
+ if self.scrollSwitchTimer and not
self.scrollSwitchTimer:isRunning() and
+ not self.scrollTextOnce then
+ log:debug('album animation
done, restarting timer')
+ self.scrollSwitchTimer:restart()
end
end
end
@@ -1553,6 +1640,24 @@
end
+function _addScrollSwitchTimer(self)
+ if not self.scrollSwitchTimer then
+ log:debug('Adding scrollSwitchTimer for scrolling text,
self.scrollText: ', self.scrollText, ' self.scrollTextOnce: ',
self.scrollTextOnce)
+ self.scrollSwitchTimer = Timer(3000,
+ function()
+ self.trackTitle:animate(true)
+ self.artistalbumTitle:animate(false)
+ self.artistTitle:animate(false)
+ self.albumTitle:animate(false)
+ end,
+ true
+ )
+ else
+ log:debug('_addScrollSwitchTimer() called but Timer object
already exists: ', self.scrollSwitchTimer)
+ end
+end
+
+
-- internal method to decide if track information is from the 'text' field or
from 'track', 'artist', and 'album'
-- if it has the three fields, return a table
-- otherwise return a string
Modified:
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingMeta.lua
URL:
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingMeta.lua?rev=8592&r1=8591&r2=8592&view=diff
==============================================================================
---
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingMeta.lua
(original)
+++
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingMeta.lua
Fri Feb 26 10:49:21 2010
@@ -16,12 +16,23 @@
function defaultSettings(self)
return {
- screensaverArtworkSize = "ss"
+ scrollText = true,
+ scrollTextOnce = false,
}
end
function registerApplet(self)
+ jiveMain:addItem(
+ self:menuItem(
+ 'appletNowPlayingScrollMode',
+ 'screenSettings',
+ 'SCREENSAVER_SCROLLMODE',
+ function(applet, ...)
+ applet:settingsShow(...)
+ end
+ )
+ )
self:registerService('goNowPlaying')
self:registerService("hideNowPlaying")
Modified:
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/strings.txt
URL:
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/strings.txt?rev=8592&r1=8591&r2=8592&view=diff
==============================================================================
--- 7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/strings.txt
(original)
+++ 7.5/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/strings.txt
Fri Feb 26 10:49:21 2010
@@ -137,3 +137,51 @@
RU ÐÑÑпнÑй
SV Stor
+SCREENSAVER_SCROLLMODE
+ EN Now Playing Text Scrolling
+
+SCREENSAVER_SCROLLMODE_DEFAULT
+ CS Standardnà rolovánÃ
+ DA Standardrulning
+ DE Standardlaufschrift
+ EN Standard scrolling
+ ES Desplazamiento estándar
+ FI Normaali vieritys
+ FR Mode de défilement par défaut
+ IT Scorrimento normale
+ NL Tekst laten lopen
+ NO Vanlig rulling
+ PL Przewijanie standardowe
+ RU СÑандаÑÑÐ½Ð°Ñ Ð¿ÑокÑÑÑка
+ SV Standardrullning
+
+SCREENSAVER_SCROLLMODE_SCROLLONCE
+ CS Rolovat jednou a zastavit
+ DA Rul én gang og stop
+ DE Einmal Laufschrift, dann anhalten
+ EN Scroll once and stop
+ ES Desplazar una vez y detener
+ FI Vieritä kerran ja pysähdy
+ FR Défiler une fois seulement
+ IT Scorri solo una volta
+ NL Tekst één keer laten lopen, dan stoppen
+ NO Rull én gang og stans
+ PL PrzewiÅ raz i zatrzymaj
+ RU ÐÑокÑÑÑиÑÑ Ð¸ оÑÑановиÑÑ
+ SV Rulla en gång och stanna
+
+SCREENSAVER_SCROLLMODE_NOSCROLL
+ CS Nerolovat
+ DA Rul ikke
+ DE Keine Laufschrift
+ EN Do not scroll
+ ES No desplazar
+ FI Ãlä vieritä
+ FR Pas de défilement
+ IT Non scorrere
+ NL Tekst niet laten lopen
+ NO Ikke rull
+ PL Nie przewijaj
+ RU Ðез пÑокÑÑÑки
+ SV Rulla inte
+
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive-checkins