Author: titmuss
Date: Sun Jan 27 02:48:30 2008
New Revision: 1638

URL: http://svn.slimdevices.com?rev=1638&root=Jive&view=rev
Log:
 [EMAIL PROTECTED] (orig r1633):  bklaas | 2008-01-27 06:20:21 +0000
 Bug: 6800
 Description: 
 Create a special showTrackOne method in slimbrowser that inspects playerStatus
 and pushes a songinfo window for track #1 on screen
 
 Add hook in NowPlaying to use this method when playlist size == 1

Modified:
    trunk/   (props changed)
    trunk/jive/src/pkg/jive/share/applets/NowPlaying/NowPlayingApplet.lua
    trunk/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua

Propchange: trunk/
------------------------------------------------------------------------------
--- svk:merge (original)
+++ svk:merge Sun Jan 27 02:48:30 2008
@@ -1,3 +1,3 @@
-bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/7.0:1632
+bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/7.0:1633
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/SN:1083
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/scrolling:1378

Modified: trunk/jive/src/pkg/jive/share/applets/NowPlaying/NowPlayingApplet.lua
URL: 
http://svn.slimdevices.com/trunk/jive/src/pkg/jive/share/applets/NowPlaying/NowPlayingApplet.lua?rev=1638&root=Jive&r1=1637&r2=1638&view=diff
==============================================================================
--- trunk/jive/src/pkg/jive/share/applets/NowPlaying/NowPlayingApplet.lua 
(original)
+++ trunk/jive/src/pkg/jive/share/applets/NowPlaying/NowPlayingApplet.lua Sun 
Jan 27 02:48:30 2008
@@ -424,6 +424,8 @@
 
        if windowStyle == 'browse' then
                local browser = appletManager:getAppletInstance("SlimBrowser")
+               local playerStatus = self.player and 
self.player:getPlayerStatus()
+               local playlistSize = playerStatus and 
playerStatus.playlist_tracks
                self[windowStyle].listeners[2] = window:addListener(
                        EVENT_KEY_PRESS,
                        function(event)
@@ -435,8 +437,13 @@
                                        return EVENT_CONSUME
 
                                elseif (keyPress == KEY_GO) then
-                                       -- to playlist
-                                       browser:showPlaylist()
+                                       if playlistSize == 1 then
+                                               -- use special showTrackOne 
method from SlimBrowser
+                                               browser:showTrackOne()
+                                       else
+                                               -- show playlist
+                                               browser:showPlaylist()
+                                       end
                                        return EVENT_CONSUME
                                end
                                return EVENT_UNUSED

Modified: 
trunk/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua
URL: 
http://svn.slimdevices.com/trunk/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua?rev=1638&root=Jive&r1=1637&r2=1638&view=diff
==============================================================================
--- trunk/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua 
(original)
+++ trunk/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua Sun 
Jan 27 02:48:30 2008
@@ -1588,6 +1588,73 @@
 end
 
 
+-- showTrackOne
+--
+-- pushes the song info window for track one on stage
+-- this method is used solely by NowPlaying Applet for 
+-- skipping the playlist screen when the playlist size == 1
+function showTrackOne()
+       local playerStatus = _player:getPlayerStatus()
+       local item = playerStatus and playerStatus.item_loop and 
playerStatus.item_loop[1]
+       local iWindow = _safeDeref(item, 'window')
+
+       local baseData = playerStatus and playerStatus.base
+       local bWindow = _safeDeref(baseData, 'window')
+
+       local bAction = _safeDeref(baseData, 'actions', 'go')
+       local iAction = _safeDeref(item, 'actions', 'go')
+
+       local jsonAction
+
+       -- if the action is defined in the item, then do that
+       if iAction then
+               jsonAction = iAction
+       -- bAction contains (possibly) the start of the songinfo command for 
track 1
+       else
+               jsonAction = bAction
+               local params = jsonAction["params"]
+                if not params then
+                       params = {}
+               end
+               -- but also get params in the item
+               if item["params"] then
+                       for k,v in pairs(item['params']) do
+                               params[k] = v
+                       end
+               end
+               jsonAction["params"] = params
+       end
+
+       -- determine style
+       local menuStyle = _priorityAssign('menuStyle', "", iWindow, bWindow)
+       local newWindowSpec = {
+               ["windowStyle"]      = "",
+               ["labelTitleStyle"]  = _priorityAssign('titleStyle', iWindow, 
bWindow, 'album') .. "title",
+               ["menuStyle"]        = menuStyle .. "menu",
+               ["labelItemStyle"]   = menuStyle .. "item",
+               ["text"]             = _priorityAssign('text',       
item["text"],    iWindow, bWindow),
+               ["icon-id"]          = _priorityAssign('icon-id',    
item["icon-id"], iWindow, bWindow),
+               ["icon"]             = _priorityAssign('icon',       
item["icon"],    iWindow, bWindow),
+       }               
+
+       local step, sink = _newDestination(nil, item, newWindowSpec, 
_browseSink)
+       step.window:addListener(EVENT_KEY_PRESS,
+               function(event)
+                       local evtCode = event:getKeycode()
+                       if evtCode == KEY_BACK then
+                               _goNowPlaying(Window.transitionPushRight)
+                               return EVENT_CONSUME
+                       end
+               end
+       )
+       step.window:show()
+       _curStep = step
+
+       -- send the command
+       local from, qty
+       _performJSONAction(jsonAction, 0, 200, sink)
+end
+
 -- showPlaylist
 --
 function showPlaylist()

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

Reply via email to