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