global: 'Dream Multimedia' -> 'Dream Property'
[enigma2-plugins.git] / internetradio / src / InternetRadioList.py
1 #
2 # InternetRadio E2
3 #
4 # Coded by Dr.Best (c) 2012
5 # Support: www.dreambox-tools.info
6 # E-Mail: dr.best@dreambox-tools.info
7 #
8 # This plugin is open source but it is NOT free software.
9 #
10 # This plugin may only be distributed to and executed on hardware which
11 # is licensed by Dream Property GmbH.
12 # In other words:
13 # It's NOT allowed to distribute any parts of this plugin or its source code in ANY way
14 # to hardware which is NOT licensed by Dream Property GmbH.
15 # It's NOT allowed to execute this plugin and its source code or even parts of it in ANY way
16 # on hardware which is NOT licensed by Dream Property GmbH.
17 #
18 # If you want to use or modify the code or parts of it,
19 # you have to keep MY license and inform me about the modifications by mail.
20 #
21
22 from Components.Sources.List import List
23 from Components.Element import cached
24
25 class InternetRadioList(List):
26         def buildEntry(self, item):
27                 text1 = ""
28                 text2 = ""
29                 if self.mode == 0: # GENRELIST
30                         text1 =  item.name
31                 elif self.mode == 1: # STATIONLIST
32                         if len(item.country) != 0:
33                                 display = "%s (%s)" % (item.name, item.country)
34                         else:
35                                 display = item.name
36                         text1 = display
37                         text2 = item.genre
38                 elif self.mode == 2: # FAVORITELIST
39                         if len(item.configItem.country.value) != 0:
40                                 display = "%s (%s)" % (item.configItem.name.value, item.configItem.country.value)
41                         else:
42                                 display = item.configItem.name.value
43                                 
44                         if item.configItem.type.value > 0:
45                                 if item.configItem.type.value == 1:
46                                         filtername = _("Genres")
47                                 else:
48                                         filtername = _("Countries")
49                                 display2 = "%s %s" % (_("Filter:"),filtername)
50                         else:
51                                 display2 = item.configItem.tags.value
52                         text1 = display
53                         text2 = display2
54                 return (text1, text2)
55
56         def __init__(self):
57                 List.__init__(self, enableWrapAround=True, item_height=28, buildfunc=self.buildEntry)
58                 self.mode = 0
59                 self.list = []
60
61         def setMode(self, mode):
62                 self.mode = mode
63                 if mode == 0: # GENRELIST
64                         self.style = "default"
65                 elif mode == 1 or mode == 2: # STATIONLIST OR FAVORITELIST
66                         self.style = "favorite"
67
68         def moveToIndex(self, index):
69                 if self.master is not None:
70                         self.master.index = index
71
72         def getCurrentIndex(self):
73                 if self.master is not None:
74                         return self.master.getIndex()
75                 else:
76                         return 0
77                         
78         @cached
79         def getCurrentSelection(self):
80                 data = self.current and self.current[0]
81                 if data:
82                         return data
83                 return None                     
84
85         def setList(self, list):
86                 self.list = list
87                 List.setList(self, list)
88
89         def moveToFavorite(self, name, text):
90                 if self.mode == 2: # FAVORITELIST
91                         i = 0
92                         for favs in self.list:
93                                 if favs[0].configItem.name.value == name and favs[0].configItem.text.value == text:
94                                         self.moveToIndex(i)
95                                         break
96                                 i += 1