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

Reply via email to