Author: bklaas
Date: Mon Nov 10 08:41:35 2008
New Revision: 3312

URL: http://svn.slimdevices.com?rev=3312&root=Jive&view=rev
Log:
Bug: 9343
Description: support in NowPlaying to obey a custom setting for artwork size 
when window is a screensaver
DefaultSkin support for large artwork layout
new strings as needed

Modified:
    
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/DefaultSkin/DefaultSkinApplet.lua
    
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/DefaultSkin/DefaultSkinMeta.lua
    
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingApplet.lua
    
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingMeta.lua
    7.3/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/strings.txt

Modified: 
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/DefaultSkin/DefaultSkinApplet.lua
URL: 
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/applets/DefaultSkin/DefaultSkinApplet.lua?rev=3312&root=Jive&r1=3311&r2=3312&view=diff
==============================================================================
--- 
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/DefaultSkin/DefaultSkinApplet.lua
 (original)
+++ 
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/DefaultSkin/DefaultSkinApplet.lua
 Mon Nov 10 08:41:35 2008
@@ -1616,8 +1616,9 @@
        s.ssnptitle.playlist.textAlign = "top-right"
 
 
-       -- nptitle style is the same for both windowStyles
-       s.browsenptitle = _uses(s.ssnptitle, browsenptitle)
+       -- nptitle style is the same for all windowStyles
+       s.browsenptitle = _uses(s.ssnptitle)
+       s.largenptitle  = _uses(s.ssnptitle)
 
 
        -- Song
@@ -1638,33 +1639,42 @@
        }
        s.ssnptrack.text.fg = { 0x00, 0x00, 0x00 }
 
-       -- nptrack is identical between the two windowStyles
+       -- nptrack is identical between all np styles
        s.browsenptrack = _uses(s.ssnptrack)
+       s.largenptrack  = _uses(s.ssnptrack, {
+                                       text = {
+                                               padding = { 10, 6, 8, 0 }
+                                       }
+                               }
+                       )
 
        -- Artwork
-       local browseArtWidth = 154
-       local ssArtWidth = 186
 
        s.ssnpartwork = {}
        s.ssnpartwork.w = WH_FILL
        -- 8 pixel padding below artwork in browse mode
        s.ssnpartwork.border = { 0, 10, 0, 8 }
---     s.ssnpartwork.bgImg = Tile:loadImage(imgpath .. "album_shadow_" .. 
ssArtWidth .. ".png")
        s.ssnpartwork.artwork = {}
        s.ssnpartwork.artwork.padding = 0 
        s.ssnpartwork.artwork.w = WH_FILL
        s.ssnpartwork.artwork.align = "center"
        s.ssnpartwork.artwork.img = Surface:loadImage(imgpath .. 
"Icons/icon_album_noartwork_npss.png")
 
-       -- artwork layout is not the same between the two windowStyles
+       -- artwork layout for browse NP page
        local browsenpartwork = {
                -- 10 pixel padding below artwork in browse mode
                w = WH_FILL,
                border = { 0, 10, 0, 10 },
-               --bgImg = Tile:loadImage(imgpath .. "album_shadow_" .. 
browseArtWidth .. ".png"),
+               artwork = { padding = 0, img = Surface:loadImage(imgpath .. 
"Icons/icon_album_noartwork_browse.png") }
+       }
+       -- artwork layout for large NP page
+       local largenpartwork = {
+               w = WH_FILL,
+               border = { 0, 4, 0, 0 },
                artwork = { padding = 0, img = Surface:loadImage(imgpath .. 
"Icons/icon_album_noartwork_browse.png") }
        }
        s.browsenpartwork = _uses(s.ssnpartwork, browsenpartwork)
+       s.largenpartwork = _uses(s.ssnpartwork, largenpartwork)
 
        -- Progress bar
        s.ssprogress = {}
@@ -1692,6 +1702,16 @@
                                        }
                                }
                        )
+       s.largeprogress = _uses(s.ssprogress,
+                               {
+                                       padding = { 8, 2, 8, 2 },
+                                       elapsed = {
+                                               padding = { 8, 2, 0, 5 }
+                                       },
+                                       remain = {
+                                               padding = { 8, 2, 0, 5 }
+                                       }
+                               })
 
        s.ssprogressB             = {}
         s.ssprogressB.horizontal  = 1
@@ -1704,6 +1724,11 @@
                                        {
                                        padding = { 0, 0, 0, 25 }
                                        }
+                               )
+       s.largeprogressB = _uses(s.ssprogressB, 
+                               {
+                                       padding = { 0, 0, 0, 2 }
+                               }
                                )
 
        -- special style for when there shouldn't be a progress bar (e.g., 
internet radio streams)
@@ -1727,6 +1752,14 @@
                                        }
                                }
                        )
+       s.largeprogressNB = _uses(s.ssprogressNB,
+                               {
+                                       padding = { 0, 0, 0, 0 },
+                                       elapsed = {
+                                               padding = { 0, 0, 0, 0 },
+                                       }
+                               }
+                       )
 
        -- background style should start at x,y = 0,0
         s.iconbg = {}

Modified: 
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/DefaultSkin/DefaultSkinMeta.lua
URL: 
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/applets/DefaultSkin/DefaultSkinMeta.lua?rev=3312&root=Jive&r1=3311&r2=3312&view=diff
==============================================================================
--- 
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/DefaultSkin/DefaultSkinMeta.lua
 (original)
+++ 
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/DefaultSkin/DefaultSkinMeta.lua
 Mon Nov 10 08:41:35 2008
@@ -38,7 +38,8 @@
        local params = {
                THUMB_SIZE = 56,
                nowPlayingBrowseArtworkSize = 154,
-               nowPlayingSSArtworkSize = 186,
+               nowPlayingSSArtworkSize     = 186,
+               nowPlayingLargeArtworkSize  = 240,
        }
        jiveMain:registerSkin(self:string("CONTROLLER_SKIN"), "DefaultSkin", 
"skin", params)
 

Modified: 
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingApplet.lua
URL: 
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingApplet.lua?rev=3312&root=Jive&r1=3311&r2=3312&view=diff
==============================================================================
--- 
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingApplet.lua
 (original)
+++ 
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingApplet.lua
 Mon Nov 10 08:41:35 2008
@@ -57,6 +57,7 @@
 --
 
 local windowStyle
+local customStyle
 
 -- defines a new style that inherits from an existing style
 local function _uses(parent, value)
@@ -90,10 +91,14 @@
 local function _getIcon(self, item, icon, remote)
        local server = self.player:getSlimServer()
 
-       if windowStyle == 'ss' then
-               ARTWORK_SIZE = jiveMain:getSkinParam("nowPlayingSSArtworkSize")
+       if windowStyle == 'browse' or ( windowStyle == 'ss' and customStyle == 
'browse' ) then
+               ARTWORK_SIZE = 
jiveMain:getSkinParam("nowPlayingBrowseArtworkSize")
        else
-               ARTWORK_SIZE = 
jiveMain:getSkinParam("nowPlayingBrowseArtworkSize")
+               if customStyle == 'ss' then
+                       ARTWORK_SIZE = 
jiveMain:getSkinParam("nowPlayingSSArtworkSize")
+               elseif customStyle == 'large' then
+                       ARTWORK_SIZE = 
jiveMain:getSkinParam("nowPlayingLargeArtworkSize")
+               end
        end
 
        if item and item["icon-id"] then
@@ -216,14 +221,16 @@
                return
        end
 
-       self:free()
+       log:warn('you are here')
+       self:freeAndClear()
 end
 
 -- players changed, add playing menu
 function notify_playerCurrent(self, player)
 
        if self.player ~= player then
-               self:free()
+       log:warn('you are here')
+               self:freeAndClear()
        end
 
        self.player = player
@@ -308,7 +315,14 @@
 
 function _updateTrack(self, trackinfo, pos, length, ws)
        if not ws then ws = self[windowStyle] end
-       ws.trackGroup:setWidgetValue("text", trackinfo);
+       if ws.trackGroup then
+               if customStyle == 'large' and 
+                       windowStyle == 'ss' and 
+                       jiveMain:getSelectedSkin() == 'DefaultSkin' then
+                               trackinfo = string.gsub(trackinfo, "\n", " - ")
+               end
+               ws.trackGroup:setWidgetValue("text", trackinfo);
+       end
 end
 
 function _updateProgress(self, data, ws)
@@ -352,10 +366,12 @@
                strRemain = "-" .. _secondsToString(duration - elapsed)
        end
 
-       self[windowStyle].progressGroup:setWidgetValue("elapsed", strElapsed)
-       if showProgressBar then
-               self[windowStyle].progressGroup:setWidgetValue("remain", 
strRemain)
-               self[windowStyle].progressSlider:setValue(elapsed)
+       if self[windowStyle].progressGroup then
+               self[windowStyle].progressGroup:setWidgetValue("elapsed", 
strElapsed)
+               if showProgressBar then
+                       
self[windowStyle].progressGroup:setWidgetValue("remain", strRemain)
+                       self[windowStyle].progressSlider:setValue(elapsed)
+               end
        end
 end
 
@@ -454,8 +470,12 @@
 function _createUI(self)
        local window = Window("window")
 
+       customStyle = windowStyle
        if windowStyle == 'ss' then
-               window:setShowFrameworkWidgets(false)
+               customStyle = self:getSettings()["screensaverArtworkSize"]
+               if customStyle ~= 'browse' then
+                       window:setShowFrameworkWidgets(false)
+               end
        end
 
        local playerStatus = self.player:getPlayerStatus()
@@ -478,7 +498,8 @@
        }       
 
        for k, v in pairs(components) do
-               local new = windowStyle .. v
+               local new = customStyle .. v
+               log:warn(new)
                components[k] = new
        end
 
@@ -503,24 +524,31 @@
           })
        
 
-       self[windowStyle].trackGroup = Group(components.nptrack, {
-                                  text = Label("text", "\n\n\n")
-                          })
-       
+
+       if customStyle == 'large' then
+
+               self[windowStyle].trackGroup = Group(components.nptrack, {
+                          text = Label("text", "")
+               })
+       else
+               self[windowStyle].trackGroup = Group(components.nptrack, {
+                          text = Label("text", "\n\n\n")
+               })
+       end
        
        if showProgressBar then
                self[windowStyle].progressSlider = Slider(components.progressB, 
0, 100, 0)
                self[windowStyle].progressSlider:addTimer(1000, function() 
self:_updatePosition() end)
 
                self[windowStyle].progressGroup = Group(components.progress, {
-                                             elapsed = Label("elapsed", ""),
-                                             slider = 
self[windowStyle].progressSlider,
-                                             remain = Label("remain", "")
-                                     })
+                                     elapsed = Label("elapsed", ""),
+                                     slider = self[windowStyle].progressSlider,
+                                     remain = Label("remain", "")
+                             })
        else
                self[windowStyle].progressGroup = Group(components.progressNB, {
-                                             elapsed = Label("elapsed", "")
-                                     })
+                             elapsed = Label("elapsed", "")
+               })
                self[windowStyle].progressGroup:addTimer(1000, function() 
self:_updatePosition() end)
        end
 
@@ -567,6 +595,7 @@
        window:addWidget(self[windowStyle].progressGroup)
 
        window:focusWidget(self[windowStyle].trackGroup)
+
        -- register window as a screensaver, unless we are explicitly not in 
that mode
        if windowStyle == 'ss' then
                local manager = appletManager:getAppletInstance("ScreenSavers")
@@ -590,10 +619,73 @@
        end
 end
 
+function displaySizeSetting(self, menuItem)
+
+       local window  = Window("window", menuItem.text, 'settingstitle')
+        local group   = RadioGroup()
+        local current = self:getSettings()["screensaverArtworkSize"]
+
+       window:addWidget(
+               SimpleMenu(
+                       "menu",
+                               {
+                                       {
+                                               text  = 
self:string("SCREENSAVER_ARTWORK_SMALL"),
+                                               sound = "WINDOWSHOW",
+                                               icon = RadioButton(
+                                                               "radio", 
+                                                               group, 
+                                                               function(event, 
menuItem)
+                                                                       
self:setArtworkSize("browse")
+                                                               end,
+                                                               current == 
'browse')
+                                       },
+                                       {
+                                               text  = 
self:string("SCREENSAVER_ARTWORK_MEDIUM"),
+                                               sound = "WINDOWSHOW",
+                                               icon = RadioButton(
+                                                               "radio", 
+                                                               group, 
+                                                               function(event, 
menuItem)
+                                                                       
self:setArtworkSize("ss")
+                                                               end,
+                                                               current == 'ss')
+                                       },
+                                       {
+                                               text  = 
self:string("SCREENSAVER_ARTWORK_LARGE"),
+                                               sound = "WINDOWSHOW",
+                                               icon = RadioButton(
+                                                               "radio", 
+                                                               group, 
+                                                               function(event, 
menuItem)
+                                                                       
self:setArtworkSize("large")
+                                                               end,
+                                                               current == 
'large')
+                                       },
+                               }
+               )
+       )
+
+        self:tieAndShowWindow(window)
+        return window
+end
+
+function setArtworkSize(self, size)
+       log:warn(size)
+       self:getSettings()['screensaverArtworkSize'] = size
+       self:storeSettings()
+end
+
 function openScreensaver(self, style, transition)
 
+       -- if we're opening this after freeing the applet, grab the player again
+       if not self.player then
+               self.player = appletManager:callService("getCurrentPlayer")
+       end
+
        local playerStatus = self.player and self.player:getPlayerStatus()
 
+       log:info("style=", style)
        log:info("player=", self.player, " status=", playerStatus)
 
        -- playlist_tracks needs to be > 0 or else defer back to SlimBrowser
@@ -604,8 +696,9 @@
                browser:showPlaylist()
                return
        end
-       -- this is to show the window to be opened in two modes: 
-       -- ss and browse
+
+       -- this is to show the window to be opened in one of three modes: 
+       -- browse, ss, and large (i.e., small med & large)
 
        --convenience
        local _thisTrack
@@ -614,6 +707,11 @@
        end
 
        if not style then style = 'ss' end
+
+       -- if opening the screensaver, then use the setting for 
screensaverArtworkSize
+       if style == 'ss' then
+               transition = Window.transitionFadeIn
+       end
 
        windowStyle = style
        if not self[windowStyle] then self[windowStyle] = {} end
@@ -672,11 +770,21 @@
 
 end
 
+function freeAndClear(self)
+       self.player = false
+       self['ss'] = nil
+       self['browse'] = nil
+       jiveMain:removeItemById('appletNowPlaying')
+       self:free()
+
+end
+
 function free(self)
        -- when we leave NowPlaying, ditch the window
        -- the screen can get loaded with two layouts, and by doing this
        -- we force the recreation of the UI when re-entering the screen, 
possibly in a different mode
        log:info("NowPlaying.free()")
+       log:info(self.player)
 
        -- player has left the building, close Now Playing browse window
        if self['browse'] and self['browse'].window then
@@ -687,10 +795,7 @@
                self['ss'].window:hide()
        end
 
-       self.player = false
-       self['ss'] = nil
-       self['browse'] = nil
-       jiveMain:removeItemById('appletNowPlaying')
-end
-
-
+       return true
+end
+
+

Modified: 
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingMeta.lua
URL: 
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingMeta.lua?rev=3312&root=Jive&r1=3311&r2=3312&view=diff
==============================================================================
--- 
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingMeta.lua
 (original)
+++ 
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/NowPlayingMeta.lua
 Mon Nov 10 08:41:35 2008
@@ -17,6 +17,7 @@
 
 function defaultSettings(self)
        return {
+               [ "screeensaverArtworkSize" ] = "ss"
        }
 end
 
@@ -33,7 +34,8 @@
                self:string("SCREENSAVER_NOWPLAYING"), 
                "NowPlaying", 
                "openScreensaver", 
-               _, _, 
+               self:string("SCREENSAVER_ARTWORK_SIZE"), 
+               "displaySizeSetting", 
                10
        )
 

Modified: 
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/strings.txt
URL: 
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/strings.txt?rev=3312&root=Jive&r1=3311&r2=3312&view=diff
==============================================================================
--- 7.3/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/strings.txt 
(original)
+++ 7.3/trunk/squeezeplay/src/squeezeplay/share/applets/NowPlaying/strings.txt 
Mon Nov 10 08:41:35 2008
@@ -74,3 +74,15 @@
        NO      Av
        SV      Av
 
+SCREENSAVER_ARTWORK_SIZE
+       EN      Now Playing Artwork Size
+
+SCREENSAVER_ARTWORK_SMALL
+       EN      Small
+
+SCREENSAVER_ARTWORK_MEDIUM
+       EN      Medium
+
+SCREENSAVER_ARTWORK_LARGE
+       EN      Large
+

_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins

Reply via email to