1
import xbmc, xbmcgui
2
from libpandora.pandora import Pandora
3
4
KEY_BUTTON_BACK = 275
5
KEY_KEYBOARD_ESC = 61467
6
7
ACTION_PREVIOUS_MENU = 10
8
ACTION_NEXT_ITEM = 14
9
10
BTN_THUMB_DN = 330
11
BTN_THUMB_UP = 331
12
BTN_PLAY_PAUSE = 332
13
BTN_SKIP = 333
14
BTN_INFO = 334
15
16
class PandaGUI(xbmcgui.WindowXMLDialog):
17
	def __init__(self,strXMLname, strFallbackPath,strDefaultName,bforeFallback=0,panda=None):
18
		xbmcgui.WindowXMLDialog.__init__( self, strXMLname, strFallbackPath, strDefaultName, bforeFallback )
19
		self.panda = panda
20
21
	def onInit(self):
22
		print "PANDORA: Window Initalized"
23
		self.list = self.getControl(200)
24
		dlg = xbmcgui.DialogProgress()
25
		dlg.create( "PANDORA", "Fetching Stations" )
26
		dlg.update( 0 )
27
		for s in self.panda.getStations():
28
			tmp = xbmcgui.ListItem(s["stationName"])
29
			tmp.setProperty( "stationId", s["stationId"] )
30
			self.list.addItem(tmp)
31
		dlg.close()
32
33
	def onAction(self, action):
34
		buttonCode =  action.getButtonCode()
35
		actionID   =  action.getId()
36
		if (actionID == ACTION_PREVIOUS_MENU ):
37
			self.panda.quit()
38
		elif (actionID == ACTION_NEXT_ITEM ):
39
			self.panda.skipSong()
40
41
	def onClick(self, controlID):
42
		if (controlID == 200): #List Item
43
			selItem = self.list.getSelectedItem()
44
			self.panda.playStation( selItem.getProperty("stationId") )
45
		elif self.panda.playing:
46
			if controlID == BTN_THUMB_DN:
47
				pass #TODO
48
			elif controlID == BTN_THUMB_UP:
49
				pass #TODO
50
			elif controlID == BTN_PLAY_PAUSE:
51
				pass #Handled by skin currently, further functionality TBD
52
			elif controlID == BTN_SKIP:
53
				self.panda.playNextSong()
54
			elif controlID == BTN_INFO:
55
				pass #TODO
56
57
	def onFocus(self, controlID):
58
		pass