diff --git a/configure.ac b/configure.ac
index 057ded7..233c934 100644
--- a/configure.ac
+++ b/configure.ac
@@ -134,6 +134,16 @@ data/skin_default/menu/Makefile
data/skin_default/icons/Makefile
data/skin_default/buttons/Makefile
data/skin_default/spinner/Makefile
+data/750S/Makefile
+data/750S/menu/Makefile
+data/750S/icons/Makefile
+data/750S/buttons/Makefile
+data/750S/countries/Makefile
+data/Vu_HD/Makefile
+data/Vu_HD/menu/Makefile
+data/Vu_HD/icons/Makefile
+data/Vu_HD/buttons/Makefile
+data/Vu_HD/countries/Makefile
include/Makefile
lib/Makefile
lib/actions/Makefile
diff --git a/data/750S/Makefile.am b/data/750S/Makefile.am
new file mode 100644
index 0000000..7ac9481
--- /dev/null
+++ b/data/750S/Makefile.am
@@ -0,0 +1,6 @@
+SUBDIRS = menu icons buttons countries
+
+installdir = $(pkgdatadir)/750S
+
+install_DATA = \
+ *.xml *.png
diff --git a/data/750S/buttons/Makefile.am b/data/750S/buttons/Makefile.am
new file mode 100644
index 0000000..db2e817
--- /dev/null
+++ b/data/750S/buttons/Makefile.am
@@ -0,0 +1,6 @@
+AUTOMAKE_OPTIONS = gnu
+
+installdir = $(pkgdatadir)/750S/buttons
+
+install_DATA = \
+ *.png
diff --git a/data/750S/countries/Makefile.am b/data/750S/countries/Makefile.am
new file mode 100644
index 0000000..9c4bf9a
--- /dev/null
+++ b/data/750S/countries/Makefile.am
@@ -0,0 +1,6 @@
+AUTOMAKE_OPTIONS = gnu
+
+installdir = $(pkgdatadir)/750S/countries
+
+install_DATA = \
+ *.png
diff --git a/data/750S/icons/Makefile.am b/data/750S/icons/Makefile.am
new file mode 100644
index 0000000..4686688
--- /dev/null
+++ b/data/750S/icons/Makefile.am
@@ -0,0 +1,6 @@
+AUTOMAKE_OPTIONS = gnu
+
+installdir = $(pkgdatadir)/750S/icons
+
+install_DATA = \
+ *.png
diff --git a/data/750S/menu/Makefile.am b/data/750S/menu/Makefile.am
new file mode 100644
index 0000000..20f24d9
--- /dev/null
+++ b/data/750S/menu/Makefile.am
@@ -0,0 +1,6 @@
+AUTOMAKE_OPTIONS = gnu
+
+installdir = $(pkgdatadir)/750S/menu
+
+install_DATA = \
+ *.png
diff --git a/data/750S/skin.xml b/data/750S/skin.xml
new file mode 100755
index 0000000..3148751
--- /dev/null
+++ b/data/750S/skin.xml
@@ -0,0 +1,2852 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SNRdB
+
+
+
+
+ AGC
+
+
+
+
+
+ Name
+
+
+
+ NUMBER
+ 0,0
+
+
+
+ NUMBER
+ 1,1
+
+
+
+ NUMBER
+ 2,2
+
+
+
+ NUMBER
+ 3,3
+
+
+
+ TunerUseMask
+ 1
+
+
+
+ TunerUseMask
+ 2
+
+
+
+ TunerUseMask
+ 4
+
+
+
+ TunerUseMask
+ 8
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+ IsCrypted
+
+
+
+
+ HasTelext
+
+
+
+
+ IsWidescreen
+
+
+
+
+ IsMultichannel
+
+
+
+
+
+ Progress
+
+
+
+
+ Blink
+
+
+
+
+ StartTime
+ Default
+
+
+ Name
+
+
+ Remaining
+ InMinutes
+
+
+
+ StartTime
+ Default
+
+
+ Name
+
+
+ Duration
+ InMinutes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SubservicesAvailable
+
+
+
+
+ SubservicesAvailable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [ MultiContentEntryText(pos = (20, 5), size = (230, 30), flags = RT_HALIGN_LEFT, text = 0) ],
+ "fonts": [gFont("Regular", 25)],
+ "itemHeight": 39
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+ subtitle_selection
+
+
+
+ setup_selection
+
+
+
+ standby_restart_list
+
+
+
+ plugin_selection
+
+
+
+ info_screen
+
+
+
+ scart_switch
+
+
+
+ timer_edit
+
+
+
+ media_player
+
+
+
+ subtitle_selection
+
+
+
+ setup_selection
+
+
+
+ setup_selection
+
+
+
+ setup_selection
+
+
+
+ setup_selection
+
+
+
+ standby_restart_list
+
+
+
+ standby_restart_list
+
+
+
+ standby_restart_list
+
+
+
+ plugin_selection
+
+
+
+ info_screen
+
+
+
+ scart_switch
+
+
+
+ timer_edit
+
+
+
+ media_player
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+
+ Length
+
+
+
+ Position
+
+
+
+ Gauge
+
+
+
+ Remaining
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"templates":
+ {"default": (25, [
+ MultiContentEntryText(pos = (0, 0), size = (35, 25), font = 0, flags = RT_HALIGN_LEFT, text = 1), # key,
+ MultiContentEntryText(pos = (40, 0), size = (60, 25), font = 0, flags = RT_HALIGN_LEFT, text = 2), # number,
+ MultiContentEntryText(pos = (110, 0), size = (120, 25), font = 0, flags = RT_HALIGN_LEFT, text = 3), # description,
+ MultiContentEntryText(pos = (240, 0), size = (200, 25), font = 0, flags = RT_HALIGN_LEFT, text = 4), # language,
+ MultiContentEntryText(pos = (450, 4), size = (90, 25), font = 1, flags = RT_HALIGN_RIGHT, text = 5), # selection,
+ ], True, "showNever"),
+ "notselected": (25, [
+ MultiContentEntryText(pos = (0, 0), size = (35, 25), font = 0, flags = RT_HALIGN_LEFT, text = 1), # key,
+ MultiContentEntryText(pos = (40, 0), size = (60, 25), font = 0, flags = RT_HALIGN_LEFT, text = 2), # number,
+ MultiContentEntryText(pos = (110, 0), size = (120, 25), font = 0, flags = RT_HALIGN_LEFT, text = 3), # description,
+ MultiContentEntryText(pos = (240, 0), size = (200, 25), font = 0, flags = RT_HALIGN_LEFT, text = 4), # language,
+ MultiContentEntryText(pos = (450, 4), size = (90, 25), font = 1, flags = RT_HALIGN_RIGHT, text = 5), # selection,
+ ], False, "showNever")
+ },
+ "fonts": [gFont("Regular", 20), gFont("Regular", 16)],
+ "itemHeight": 25
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+
+
+
+
+ Name
+
+
+ StartTime
+
+
+
+ EndTime
+ Format:- %H:%M
+
+
+ Progress
+
+
+ ExtendedDescription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+
+
+
+
+ StartTime
+
+
+
+ EndTime
+ Format:- %H:%M
+
+
+ Progress
+
+
+ StartTime
+ Format:(%A)
+
+
+ ExtendedDescription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (80, 10), size = (200, 50), flags = RT_HALIGN_LEFT, text = 1), # index 1 is the language name,
+# MultiContentEntryPixmap(pos = (10, 5), size = (53, 35), png = 2), # index 2 is the pixmap
+ MultiContentEntryPixmap(pos = (7, 5), size = (60, 40), png = 2), # index 2 is the pixmap
+ ],
+ "fonts": [gFont("Regular", 20)],
+ "itemHeight": 50
+ }
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (80, 10), size = (200, 50), flags = RT_HALIGN_LEFT, text = 1), # index 1 is the language name,
+# MultiContentEntryPixmap(pos = (10, 5), size = (53, 35), png = 2), # index 2 is the pixmap
+ MultiContentEntryPixmap(pos = (7, 5), size = (60, 40), png = 2), # index 2 is the pixmap
+ ],
+ "fonts": [gFont("Regular", 20)],
+ "itemHeight": 50
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [ MultiContentEntryText(pos = (20, 5), size = (450, 25), flags = RT_HALIGN_LEFT, text = 0) ],
+ "fonts": [gFont("Regular", 25)],
+ "itemHeight": 35
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ShortDescription
+
+
+ Duration
+ AsLength
+
+
+ RecordServiceName
+
+
+ ExtendedDescription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (85, 6), size = (440, 28), font=0, flags = RT_HALIGN_LEFT|RT_VALIGN_TOP, text = 1), # index 1 is the interfacename
+ MultiContentEntryText(pos = (85, 43), size = (440, 20), font=1, flags = RT_HALIGN_LEFT|RT_VALIGN_BOTTOM, text = 2), # index 2 is the description
+ MultiContentEntryPixmapAlphaTest(pos = (2, 8), size = (54, 54), png = 3), # index 3 is the interface pixmap
+ MultiContentEntryPixmapAlphaTest(pos = (63, 46), size = (15, 16), png = 4), # index 4 is the default pixmap
+ ],
+ "fonts": [gFont("Regular", 28),gFont("Regular", 20)],
+ "itemHeight": 70
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (10, 5), size = (400, 30), flags = RT_HALIGN_LEFT, text = 1), # index 1 is the nim name,
+ MultiContentEntryText(pos = (50, 30), size = (320, 30), font = 1, flags = RT_HALIGN_LEFT, text = 2), # index 2 is a description of the nim settings,
+ ],
+ "fonts": [gFont("Regular", 20), gFont("Regular", 15)],
+ "itemHeight": 70
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ RasInteractiveAvailable
+
+
+
+ Blink
+
+
+
+ Progress
+
+
+ Default
+
+
+ StartTime
+ Default
+
+
+ Name
+
+
+ Remaining
+ InMinutes
+
+
+ StartTime
+ Default
+
+
+ Name
+
+
+ Duration
+ InMinutes
+
+
+
+
+ RadioText
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SNRdB
+
+
+
+ SNR
+
+
+ SNR
+
+
+
+ AGC
+
+
+ AGC
+
+
+
+ BER
+
+
+ BER
+
+
+
+ LOCK
+
+
+
+ LOCK
+ Invert
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TYPE
+ 0,0
+
+
+
+ TYPE
+ 1,1
+
+
+
+ TYPE
+ 2,2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ """
+
+
+
+ Blink
+
+
+
+
+ Name
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Remaining
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%A %B %d, %H:%M
+
+
+
+
+ Name
+
+
+ Position,Detailed
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(size=(125, 20), text = 1, backcolor = MultiContentTemplateColor(3)),
+ MultiContentEntryText(pos=(125,0), size=(50, 20), text = 2, flags = RT_HALIGN_RIGHT, backcolor = MultiContentTemplateColor(3))
+ ],
+ "fonts": [gFont("Regular", 18)],
+ "itemHeight": 20
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (0, 0), size = (420, 20), font = 0, flags = RT_HALIGN_LEFT, text = 1), # index 1 Title,
+ MultiContentEntryText(pos = (0, 20), size = (328, 17), font = 1, flags = RT_HALIGN_LEFT, text = 2), # index 2 description,
+ MultiContentEntryText(pos = (420, 6), size = (120, 20), font = 1, flags = RT_HALIGN_RIGHT, text = 3), # index 3 begin time,
+ MultiContentEntryText(pos = (328, 20), size = (154, 17), font = 1, flags = RT_HALIGN_RIGHT, text = 4), # index 4 channel,
+ MultiContentEntryText(pos = (482, 20), size = (58, 20), font = 1, flags = RT_HALIGN_RIGHT, text = 5), # index 4 channel,
+ ],
+ "fonts": [gFont("Regular", 20), gFont("Regular", 14)],
+ "itemHeight": 37
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ShortDescription
+
+
+ Duration
+ AsLength
+
+
+ RecordServiceName
+
+
+ ExtendedDescription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+
+
+
+
+
+
+ HasTelext
+
+
+
+
+
+
+
+
+ Position,ShowHours
+
+
+
+ Gauge
+
+
+
+ Remaining,Negate,ShowHours
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ "template": [ MultiContentEntryText(pos = (5, 5), size = (250, 30), flags = RT_HALIGN_LEFT, text = 0), MultiContentEntryText(pos = (260, 5), size = (290, 30), flags = RT_HALIGN_LEFT, text = 1)],
+ "fonts": [gFont("Regular", 20)],
+ "itemHeight": 30
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TYPE
+ 0,0
+
+
+
+ TYPE
+ 1,1
+
+
+
+ TYPE
+ 2,2
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (10, 0), size = (330, 25), flags = RT_HALIGN_LEFT, text = 1), # index 1 is the index name,
+ MultiContentEntryText(pos = (330, 0), size = (150, 25), flags = RT_HALIGN_RIGHT, text = 2) # index 2 is the status,
+ ],
+ "fonts": [gFont("Regular", 20)],
+ "itemHeight": 25
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (10, 5), size = (360, 30), flags = RT_HALIGN_LEFT, text = 1), # index 1 is the nim name,
+ MultiContentEntryText(pos = (50, 30), size = (320, 30), font = 1, flags = RT_HALIGN_LEFT, text = 2), # index 2 is a description of the nim settings,
+ ],
+ "fonts": [gFont("Regular", 20), gFont("Regular", 15)],
+ "itemHeight": 70
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (2, 2), size = (330, 24), flags = RT_HALIGN_LEFT, text = 1), # index 0 is the MenuText,
+ ],
+ "fonts": [gFont("Regular", 22)],
+ "itemHeight": 25
+ }
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (2, 2), size = (240, 300), flags = RT_HALIGN_CENTER|RT_VALIGN_CENTER|RT_WRAP, text = 2), # index 2 is the Description,
+ ],
+ "fonts": [gFont("Regular", 22)],
+ "itemHeight": 300
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"templates":
+ {"default": (51,[
+ MultiContentEntryText(pos = (30, 1), size = (470, 24), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name
+ MultiContentEntryText(pos = (30, 25), size = (470, 24), font=1, flags = RT_HALIGN_LEFT, text = 2), # index 2 is the description
+ MultiContentEntryPixmapAlphaTest(pos = (475, 0), size = (48, 48), png = 5), # index 5 is the status pixmap
+ MultiContentEntryPixmapAlphaTest(pos = (0, 49), size = (550, 2), png = 6), # index 6 is the div pixmap
+ ]),
+ "category": (40,[
+ MultiContentEntryText(pos = (30, 0), size = (500, 22), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name
+ MultiContentEntryText(pos = (30, 22), size = (500, 16), font=2, flags = RT_HALIGN_LEFT, text = 1), # index 1 is the description
+ MultiContentEntryPixmapAlphaTest(pos = (0, 38), size = (550, 2), png = 3), # index 3 is the div pixmap
+ ])
+ },
+ "fonts": [gFont("Regular", 22),gFont("Regular", 20),gFont("Regular", 16)],
+ "itemHeight": 52
+ }
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (50, 0), size = (150, 26), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name
+ MultiContentEntryText(pos = (50, 27), size = (540, 23), font=1, flags = RT_HALIGN_LEFT, text = 1), # index 1 is the state
+ MultiContentEntryPixmapAlphaTest(pos = (0, 1), size = (48, 48), png = 2), # index 2 is the status pixmap
+ MultiContentEntryPixmapAlphaTest(pos = (0, 48), size = (550, 2), png = 3), # index 3 is the div pixmap
+ ],
+ "fonts": [gFont("Regular", 24),gFont("Regular", 22)],
+ "itemHeight": 50
+ }
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (50, 0), size = (540, 26), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name
+ MultiContentEntryText(pos = (50, 27), size = (540, 23), font=1, flags = RT_HALIGN_LEFT, text = 1), # index 1 is the state
+ MultiContentEntryPixmapAlphaTest(pos = (0, 1), size = (48, 48), png = 2), # index 2 is the status pixmap
+ MultiContentEntryPixmapAlphaTest(pos = (0, 48), size = (550, 2), png = 3), # index 3 is the div pixmap
+ ],
+ "fonts": [gFont("Regular", 24),gFont("Regular", 22)],
+ "itemHeight": 50
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (5, 1), size = (440, 28), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name
+ MultiContentEntryText(pos = (5, 26), size = (440, 20), font=1, flags = RT_HALIGN_LEFT, text = 2), # index 2 is the description
+ MultiContentEntryPixmapAlphaTest(pos = (445, 2), size = (48, 48), png = 4), # index 4 is the status pixmap
+ MultiContentEntryPixmapAlphaTest(pos = (5, 50), size = (510, 2), png = 5), # index 4 is the div pixmap
+ ],
+ "fonts": [gFont("Regular", 22),gFont("Regular", 14)],
+ "itemHeight": 52
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ Progress
+
+
+ Format:%H:%M
+
+
+ Format:%S
+
+
+
+
+
+ Name
+
+
+ Progress
+
+
+ Format:%H:%M
+
+
+
+
+
+ Name
+
+
+ Progress
+
+
+ Format:%H:%M
+
+
+ Format:%S
+
+
+ config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean
+ Blink
+
+
+
+
+
+ Name
+
+
+ Progress
+
+
+ Format:%H:%M
+
+
+ config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean
+ Blink
+
+
+
+
+
+ Name
+
+
+ Position
+
+
+ Format:%H:%M
+
+
+ config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean
+ Blink
+
+
+
+
+
+ Name
+
+
+ Position
+
+
+ Format:%H:%M
+
+
+ config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean
+ Blink
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+ config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean
+ Blink
+
+
+
+
+
+ Format:%H:%M
+
+
+ config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean
+ Blink
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/Makefile.am b/data/Makefile.am
index 0eaa082..869a16e 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = countries fonts defaults extensions keymaps skin_default
+SUBDIRS = countries fonts defaults extensions keymaps skin_default 750S Vu_HD
dist_pkgdata_DATA = \
defaultsatlists.xml \
diff --git a/data/Vu_HD/Makefile.am b/data/Vu_HD/Makefile.am
new file mode 100644
index 0000000..dcdab6d
--- /dev/null
+++ b/data/Vu_HD/Makefile.am
@@ -0,0 +1,6 @@
+SUBDIRS = menu icons buttons countries
+
+installdir = $(pkgdatadir)/Vu_HD
+
+install_DATA = \
+ *.xml *.png
diff --git a/data/Vu_HD/buttons/Makefile.am b/data/Vu_HD/buttons/Makefile.am
new file mode 100644
index 0000000..3da6ab8
--- /dev/null
+++ b/data/Vu_HD/buttons/Makefile.am
@@ -0,0 +1,6 @@
+AUTOMAKE_OPTIONS = gnu
+
+installdir = $(pkgdatadir)/Vu_HD/buttons
+
+install_DATA = \
+ *.png
diff --git a/data/Vu_HD/countries/Makefile.am b/data/Vu_HD/countries/Makefile.am
new file mode 100644
index 0000000..68c6dc7
--- /dev/null
+++ b/data/Vu_HD/countries/Makefile.am
@@ -0,0 +1,6 @@
+AUTOMAKE_OPTIONS = gnu
+
+installdir = $(pkgdatadir)/Vu_HD/countries
+
+install_DATA = \
+ *.png
diff --git a/data/Vu_HD/icons/Makefile.am b/data/Vu_HD/icons/Makefile.am
new file mode 100644
index 0000000..650c1e5
--- /dev/null
+++ b/data/Vu_HD/icons/Makefile.am
@@ -0,0 +1,6 @@
+AUTOMAKE_OPTIONS = gnu
+
+installdir = $(pkgdatadir)/Vu_HD/icons
+
+install_DATA = \
+ *.png
diff --git a/data/Vu_HD/menu/Makefile.am b/data/Vu_HD/menu/Makefile.am
new file mode 100644
index 0000000..9d4f458
--- /dev/null
+++ b/data/Vu_HD/menu/Makefile.am
@@ -0,0 +1,6 @@
+AUTOMAKE_OPTIONS = gnu
+
+installdir = $(pkgdatadir)/Vu_HD/menu
+
+install_DATA = \
+ *.png
diff --git a/data/Vu_HD/skin.xml b/data/Vu_HD/skin.xml
new file mode 100755
index 0000000..45c42d3
--- /dev/null
+++ b/data/Vu_HD/skin.xml
@@ -0,0 +1,3460 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SNRdB
+
+
+
+
+ AGC
+
+
+
+
+
+ Name
+
+
+
+
+ TunerUseMask
+ 1
+
+
+
+ TunerUseMask
+ 2
+
+
+
+ TunerUseMask
+ 4
+
+
+
+ TunerUseMask
+ 8
+
+
+
+
+ Format:%H:%M
+
+
+
+ NUMBER
+ 0,0
+
+
+
+ NUMBER
+ 1,1
+
+
+
+
+
+
+
+
+
+
+ Blink
+
+
+
+ IsCrypted
+
+
+
+
+ HasTelext
+
+
+
+
+ IsWidescreen
+
+
+
+
+ IsMultichannel
+
+
+
+
+
+ Progress
+
+
+
+
+ StartTime
+ Default
+
+
+ Name
+
+
+ Remaining
+ InMinutes
+
+
+
+ StartTime
+ Default
+
+
+ Name
+
+
+ Duration
+ InMinutes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+
+
+ SubservicesAvailable
+
+
+
+
+ SubservicesAvailable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [ MultiContentEntryText(pos = (30, 8), size = (410, 28), flags = RT_HALIGN_LEFT, text = 0 ) ],
+ "fonts": [gFont("Regular", 28)],
+ "itemHeight": 45
+ }
+
+
+
+ dvd_player
+
+
+
+ filecommand
+
+
+
+ subtitle_selection
+
+
+
+ setup_selection
+
+
+
+ standby_restart_list
+
+
+
+ plugin_selection
+
+
+
+ info_screen
+
+
+
+ scart_switch
+
+
+
+ timer_edit
+
+
+
+ media_player
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+ Name
+
+
+
+ Length
+
+
+
+ Position
+
+
+
+
+
+ Gauge
+
+
+
+ Remaining
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"templates":
+ {"default": (25, [
+ MultiContentEntryText(pos = (0, 0), size = (35, 25), font = 0, flags = RT_HALIGN_LEFT, text = 1), # key,
+ MultiContentEntryText(pos = (40, 0), size = (60, 25), font = 0, flags = RT_HALIGN_LEFT, text = 2), # number,
+ MultiContentEntryText(pos = (110, 0), size = (120, 25), font = 0, flags = RT_HALIGN_LEFT, text = 3), # description,
+ MultiContentEntryText(pos = (240, 0), size = (200, 25), font = 0, flags = RT_HALIGN_LEFT, text = 4), # language,
+ MultiContentEntryText(pos = (450, 4), size = (90, 25), font = 1, flags = RT_HALIGN_RIGHT, text = 5), # selection,
+ ], True, "showNever"),
+ "notselected": (25, [
+ MultiContentEntryText(pos = (0, 0), size = (35, 25), font = 0, flags = RT_HALIGN_LEFT, text = 1), # key,
+ MultiContentEntryText(pos = (40, 0), size = (60, 25), font = 0, flags = RT_HALIGN_LEFT, text = 2), # number,
+ MultiContentEntryText(pos = (110, 0), size = (120, 25), font = 0, flags = RT_HALIGN_LEFT, text = 3), # description,
+ MultiContentEntryText(pos = (240, 0), size = (200, 25), font = 0, flags = RT_HALIGN_LEFT, text = 4), # language,
+ MultiContentEntryText(pos = (450, 4), size = (90, 25), font = 1, flags = RT_HALIGN_RIGHT, text = 5), # selection,
+ ], False, "showNever")
+ },
+ "fonts": [gFont("Regular", 20), gFont("Regular", 16)],
+ "itemHeight": 25
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+
+
+
+
+ Name
+
+
+ StartTime
+
+
+
+ EndTime
+ Format:- %H:%M
+
+
+ Progress
+
+
+ ExtendedDescription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ StartTime
+
+
+
+ EndTime
+ Format:- %H:%M
+
+
+ Progress
+
+
+ StartTime
+ Format:(%A)
+
+
+ ExtendedDescription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (80, 11), size = (360, 20), flags = RT_HALIGN_LEFT, text = 1), # index 1 is the language name,
+ MultiContentEntryPixmap(pos = (10, 6), size = (45, 30), png = 2), # index 2 is the pixmap
+ ],
+ "fonts": [gFont("Regular", 20)],
+ "itemHeight": 42
+ }
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (80, 11), size = (200, 20), flags = RT_HALIGN_LEFT, text = 1), # index 1 is the language name,
+ MultiContentEntryPixmap(pos = (10, 6), size = (45, 30), png = 2), # index 2 is the pixmap
+ ],
+ "fonts": [gFont("Regular", 20)],
+ "itemHeight": 42
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Position
+
+
+ Remaining
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [ MultiContentEntryText(pos = (30, 8), size = (410, 28), flags = RT_HALIGN_LEFT, text = 0 ) ],
+ "fonts": [gFont("Regular", 28)],
+ "itemHeight": 45
+ }
+
+
+
+
+
+
+
+
+
+
+ {"template": [ MultiContentEntryText(pos = (30, 8), size = (410, 28), flags = RT_HALIGN_LEFT, text = 0 ) ],
+ "fonts": [gFont("Regular", 28)],
+ "itemHeight": 45
+ }
+
+
+
+
+
+
+
+
+
+
+ {"template": [ MultiContentEntryText(pos = (30, 8), size = (410, 28), flags = RT_HALIGN_LEFT, text = 0 ) ],
+ "fonts": [gFont("Regular", 28)],
+ "itemHeight": 45
+ }
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [ MultiContentEntryText(pos = (30, 8), size = (410, 28), flags = RT_HALIGN_LEFT, text = 0 ) ],
+ "fonts": [gFont("Regular", 28)],
+ "itemHeight": 45
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ShortDescription
+
+
+ Duration
+ AsLength
+
+
+ RecordServiceName
+
+
+ ExtendedDescription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (85, 6), size = (440, 28), font=0, flags = RT_HALIGN_LEFT|RT_VALIGN_TOP, text = 1), # index 1 is the interfacename
+ MultiContentEntryText(pos = (85, 43), size = (440, 20), font=1, flags = RT_HALIGN_LEFT|RT_VALIGN_BOTTOM, text = 2), # index 2 is the description
+ MultiContentEntryPixmapAlphaTest(pos = (2, 8), size = (54, 54), png = 3), # index 3 is the interface pixmap
+ MultiContentEntryPixmapAlphaTest(pos = (63, 46), size = (15, 16), png = 4), # index 4 is the default pixmap
+ ],
+ "fonts": [gFont("Regular", 28),gFont("Regular", 20)],
+ "itemHeight": 70
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (10, 5), size = (400, 30), flags = RT_HALIGN_LEFT, text = 1), # index 1 is the nim name,
+ MultiContentEntryText(pos = (50, 30), size = (320, 30), font = 1, flags = RT_HALIGN_LEFT, text = 2), # index 2 is a description of the nim settings,
+ ],
+ "fonts": [gFont("Regular", 20), gFont("Regular", 15)],
+ "itemHeight": 70
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ RasInteractiveAvailable
+
+
+
+ Blink
+
+
+ Name
+
+
+ StartTime
+ Default
+
+
+ EndTime
+ Default
+
+
+ Progress
+
+
+ Name
+
+
+ StartTime
+ Default
+
+
+ EndTime
+ Default
+
+
+ RadioText
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SNRdB
+
+
+
+ SNR
+
+
+ SNR
+
+
+
+ AGC
+
+
+ AGC
+
+
+
+ BER
+
+
+ BER
+
+
+
+ LOCK
+
+
+
+ LOCK
+ Invert
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TYPE
+ 0,0
+
+
+
+ TYPE
+ 1,1
+
+
+
+ TYPE
+ 2,2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Blink
+
+
+
+
+ Name
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Remaining
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ Progress
+
+
+ Format:%H:%M
+
+
+ Format:%S
+
+
+
+
+
+ Name
+
+
+ Progress
+
+
+ Format:%H:%M
+
+
+
+
+
+ Name
+
+
+ Progress
+
+
+ Format:%H:%M
+
+
+ Format:%S
+
+
+ config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean
+ Blink
+
+
+
+
+
+ Name
+
+
+ Progress
+
+
+ Format:%H:%M
+
+
+ config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean
+ Blink
+
+
+
+
+
+ Name
+
+
+ Position
+
+
+ Format:%H:%M
+
+
+ config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean
+ Blink
+
+
+
+
+
+ Name
+
+
+ Position
+
+
+ Format:%H:%M
+
+
+ config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean
+ Blink
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+ config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean
+ Blink
+
+
+
+
+
+ Format:%H:%M
+
+
+ config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean
+ Blink
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default
+
+
+ Format:%d.%m.%Y
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(size=(220, 20), text = 1),
+ MultiContentEntryText(pos=(220,2), size=(100, 20), text = 2, flags = RT_HALIGN_RIGHT)
+ ],
+ "fonts": [gFont("Regular", 20)],
+ "itemHeight": 25
+ }
+
+
+
+
+
+ Name
+
+
+ Position,Detailed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default
+
+
+ Format:%d.%m.%Y
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(size=(220, 20), text = 1),
+ MultiContentEntryText(pos=(220,2), size=(100, 20), text = 2, flags = RT_HALIGN_RIGHT)
+ ],
+ "fonts": [gFont("Regular", 20)],
+ "itemHeight": 25
+ }
+
+
+
+
+
+ Name
+
+
+ Position,Detailed
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (0, 0), size = (420, 20), font = 0, flags = RT_HALIGN_LEFT, text = 1), # index 1 Title,
+ MultiContentEntryText(pos = (0, 20), size = (328, 17), font = 1, flags = RT_HALIGN_LEFT, text = 2), # index 2 description,
+ MultiContentEntryText(pos = (420, 6), size = (120, 20), font = 1, flags = RT_HALIGN_RIGHT, text = 3), # index 3 begin time,
+ MultiContentEntryText(pos = (328, 20), size = (154, 17), font = 1, flags = RT_HALIGN_RIGHT, text = 4), # index 4 channel,
+ MultiContentEntryText(pos = (482, 20), size = (58, 20), font = 1, flags = RT_HALIGN_RIGHT, text = 5), # index 4 channel,
+ ],
+ "fonts": [gFont("Regular", 20), gFont("Regular", 14)],
+ "itemHeight": 37
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ShortDescription
+
+
+ Duration
+ AsLength
+
+
+ RecordServiceName
+
+
+ ExtendedDescription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+ Name
+
+
+
+
+
+
+
+
+ HasTelext
+
+
+
+
+
+
+
+
+ Position,ShowHours
+
+
+
+
+ Gauge
+
+
+
+ Remaining,Negate,ShowHours
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ "template": [ MultiContentEntryText(pos = (5, 5), size = (250, 30), flags = RT_HALIGN_LEFT, text = 0), MultiContentEntryText(pos = (260, 5), size = (290, 30), flags = RT_HALIGN_LEFT, text = 1)],
+ "fonts": [gFont("Regular", 20)],
+ "itemHeight": 30
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TYPE
+ 0,0
+
+
+
+ TYPE
+ 1,1
+
+
+
+ TYPE
+ 2,2
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (10, 0), size = (330, 25), flags = RT_HALIGN_LEFT, text = 1), # index 1 is the index name,
+ MultiContentEntryText(pos = (330, 0), size = (150, 25), flags = RT_HALIGN_RIGHT, text = 2) # index 2 is the status,
+ ],
+ "fonts": [gFont("Regular", 20)],
+ "itemHeight": 25
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (10, 5), size = (360, 30), flags = RT_HALIGN_LEFT, text = 1), # index 1 is the nim name,
+ MultiContentEntryText(pos = (50, 30), size = (320, 30), font = 1, flags = RT_HALIGN_LEFT, text = 2), # index 2 is a description of the nim settings,
+ ],
+ "fonts": [gFont("Regular", 20), gFont("Regular", 15)],
+ "itemHeight": 70
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (2, 2), size = (330, 24), flags = RT_HALIGN_LEFT, text = 1), # index 0 is the MenuText,
+ ],
+ "fonts": [gFont("Regular", 22)],
+ "itemHeight": 25
+ }
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (2, 2), size = (380, 300), flags = RT_HALIGN_CENTER|RT_VALIGN_CENTER|RT_WRAP, text = 2), # index 2 is the Description,
+ ],
+ "fonts": [gFont("Regular", 22)],
+ "itemHeight": 300
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"templates":
+ {"default": (51,[
+ MultiContentEntryText(pos = (30, 1), size = (670, 24), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name
+ MultiContentEntryText(pos = (30, 25), size = (670, 24), font=1, flags = RT_HALIGN_LEFT, text = 2), # index 2 is the description
+ MultiContentEntryPixmapAlphaTest(pos = (675, 0), size = (48, 48), png = 5), # index 5 is the status pixmap
+ MultiContentEntryPixmapAlphaTest(pos = (0, 49), size = (750, 2), png = 6), # index 6 is the div pixmap
+ ]),
+ "category": (40,[
+ MultiContentEntryText(pos = (30, 0), size = (700, 22), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name
+ MultiContentEntryText(pos = (30, 22), size = (700, 16), font=2, flags = RT_HALIGN_LEFT, text = 1), # index 1 is the description
+ MultiContentEntryPixmapAlphaTest(pos = (0, 38), size = (750, 2), png = 3), # index 3 is the div pixmap
+ ])
+ },
+ "fonts": [gFont("Regular", 22),gFont("Regular", 20),gFont("Regular", 16)],
+ "itemHeight": 52
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (50, 0), size = (250, 26), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name
+ MultiContentEntryText(pos = (50, 27), size = (640, 23), font=1, flags = RT_HALIGN_LEFT, text = 1), # index 1 is the state
+ MultiContentEntryPixmapAlphaTest(pos = (0, 1), size = (48, 48), png = 2), # index 2 is the status pixmap
+ MultiContentEntryPixmapAlphaTest(pos = (0, 48), size = (750, 2), png = 3), # index 3 is the div pixmap
+ ],
+ "fonts": [gFont("Regular", 24),gFont("Regular", 22)],
+ "itemHeight": 50
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (50, 0), size = (540, 26), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name
+ MultiContentEntryText(pos = (50, 27), size = (540, 23), font=1, flags = RT_HALIGN_LEFT, text = 1), # index 1 is the state
+ MultiContentEntryPixmapAlphaTest(pos = (0, 1), size = (48, 48), png = 2), # index 2 is the status pixmap
+ MultiContentEntryPixmapAlphaTest(pos = (0, 48), size = (550, 2), png = 3), # index 3 is the div pixmap
+ ],
+ "fonts": [gFont("Regular", 24),gFont("Regular", 22)],
+ "itemHeight": 50
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (5, 1), size = (640, 28), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name
+ MultiContentEntryText(pos = (5, 26), size = (640, 20), font=1, flags = RT_HALIGN_LEFT, text = 2), # index 2 is the description
+ MultiContentEntryPixmapAlphaTest(pos = (645, 2), size = (48, 48), png = 4), # index 4 is the status pixmap
+ MultiContentEntryPixmapAlphaTest(pos = (5, 50), size = (740, 2), png = 5), # index 4 is the div pixmap
+ ],
+ "fonts": [gFont("Regular", 22),gFont("Regular", 14)],
+ "itemHeight": 52
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default
+
+
+ Format:%d.%m.%Y
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default
+
+
+ Format:%d.%m.%Y
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"templates":
+ {"default": (77,[
+ MultiContentEntryPixmapAlphaTest(pos = (0, 0), size = (100, 75), png = 4), # index 4 is the thumbnail
+ MultiContentEntryText(pos = (100, 1), size = (500, 22), font=0, flags = RT_HALIGN_LEFT | RT_VALIGN_TOP| RT_WRAP, text = 1), # index 1 is the Title
+ MultiContentEntryText(pos = (100, 24), size = (300, 18), font=1, flags = RT_HALIGN_LEFT | RT_VALIGN_TOP| RT_WRAP, text = 5), # index 5 is the Published Date
+ MultiContentEntryText(pos = (100, 43), size = (300, 18), font=1, flags = RT_HALIGN_LEFT | RT_VALIGN_TOP| RT_WRAP, text = 6), # index 6 is the Views Count
+ MultiContentEntryText(pos = (400, 24), size = (200, 18), font=1, flags = RT_HALIGN_LEFT | RT_VALIGN_TOP| RT_WRAP, text = 7), # index 7 is the duration
+ MultiContentEntryText(pos = (400, 43), size = (200, 18), font=1, flags = RT_HALIGN_LEFT | RT_VALIGN_TOP| RT_WRAP, text = 8), # index 8 is the ratingcount
+ ]),
+ "state": (77,[
+ MultiContentEntryText(pos = (10, 1), size = (560, 28), font=2, flags = RT_HALIGN_LEFT | RT_VALIGN_TOP| RT_WRAP, text = 0), # index 0 is the name
+ MultiContentEntryText(pos = (10, 22), size = (560, 46), font=3, flags = RT_HALIGN_LEFT | RT_VALIGN_TOP| RT_WRAP, text = 1), # index 2 is the description
+ ])
+ },
+ "fonts": [gFont("Regular", 22),gFont("Regular", 18),gFont("Regular", 26),gFont("Regular", 20)],
+ "itemHeight": 77
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ # fake entry for dynamic thumbnail resizing, currently there is no other way doing this.
+
+
+
+
+
+
+
+
+
+ {"templates":
+ {"default": (110,[
+ MultiContentEntryPixmapAlphaTest(pos = (0, 4), size = (130, 98), png = 0), # index 0 is the thumbnail
+ MultiContentEntryPixmapAlphaTest(pos = (130, 4), size = (130, 98), png = 1), # index 0 is the thumbnail
+ MultiContentEntryPixmapAlphaTest(pos = (260, 4), size = (130, 98), png = 2), # index 0 is the thumbnail
+ MultiContentEntryPixmapAlphaTest(pos = (390, 4), size = (130, 98), png = 3), # index 0 is the thumbnail
+ ]),
+ "state": (110,[
+ MultiContentEntryText(pos = (10, 40), size = (550, 38), font=2, flags = RT_HALIGN_LEFT | RT_VALIGN_TOP| RT_WRAP, text = 0), # index 0 is the name
+ ])
+ },
+ "fonts": [gFont("Regular", 20),gFont("Regular", 14),gFont("Regular", 28)],
+ "itemHeight": 110
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+
+ Length
+
+
+ Position
+
+
+ Gauge
+
+
+ Remaining
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (0, 1), size = (340, 24), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name
+ MultiContentEntryText(pos = (350, 1), size = (180, 24), font=1, flags = RT_HALIGN_RIGHT, text = 1), # index 1 are the rtesults
+ ],
+ "fonts": [gFont("Regular", 22),gFont("Regular", 18)],
+ "itemHeight": 25
+ }
+
+
+
+
+
+
+
+ {"template": [
+ MultiContentEntryText(pos = (0, 1), size = (340, 24), font=0, flags = RT_HALIGN_LEFT, text = 0), # index 0 is the name
+ ],
+ "fonts": [gFont("Regular", 22),gFont("Regular", 18)],
+ "itemHeight": 25
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Format:%H:%M
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {"templates":
+ {"default": (54,[
+ MultiContentEntryText(pos = (100, 0), size = (560, 30), font=0, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 0), # index 0 is vendor - model
+ MultiContentEntryText(pos = (100, 32), size = (130, 20), font=1, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 1), # index 1 is Device
+ MultiContentEntryText(pos = (230, 32), size = (130, 20), font=1, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 2), # index 2 is Size
+ MultiContentEntryText(pos = (360, 32), size = (130, 20), font=1, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 3), # index 3 is Partitions
+ MultiContentEntryText(pos = (490, 32), size = (140, 20), font=1, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 4), # index 4 is Removable
+ MultiContentEntryPixmapAlphaTest(pos = (0, 52), size = (670, 2), png = 5), # png 5 is the div pixmap
+ ]),
+ "partitions": (98, [
+ MultiContentEntryText(pos = (100, 0), size = (560, 30), font=0, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 0), # index 1 is Partition
+ MultiContentEntryText(pos = (100, 32), size = (560, 20), font=1, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 1), # index 2 is Mounted on
+ MultiContentEntryText(pos = (100, 54), size = (560, 20), font=1, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 2), # index 3 UUID
+ MultiContentEntryText(pos = (100, 76), size = (140, 20), font=1, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 3), # index 4 Type
+ MultiContentEntryText(pos = (230, 76), size = (140, 20), font=1, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 4), # index 5 Size_total
+ MultiContentEntryText(pos = (380, 76), size = (200, 20), font=1, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 5), # index 6 Size_free
+ MultiContentEntryPixmapAlphaTest(pos = (0, 96), size = (670, 2), png = 6), # png 6 is the div pixmap
+ ]),
+ "mountpoint": (54,[
+ MultiContentEntryPixmapAlphaTest(pos = (10, 7), size = (30, 30), png = 0), # index 0: picture
+ MultiContentEntryText(pos = (40, 0), size = (500, 30), font=0, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 1), # index 1 name
+ MultiContentEntryText(pos = (40, 32), size = (500, 20), font=1, flags = RT_HALIGN_LEFT|RT_VALIGN_CENTER, text = 2), # index 2 path
+ MultiContentEntryPixmapAlphaTest(pos = (0, 52), size = (670, 2), png = 5), # index 5 is the div pixmap
+ ])
+ },
+ "fonts": [gFont("Regular", 22),gFont("Regular", 16),gFont("Regular", 28)],
+ "itemHeight": 54
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/fonts/Makefile.am b/data/fonts/Makefile.am
index 2f7e7c7..f81801a 100644
--- a/data/fonts/Makefile.am
+++ b/data/fonts/Makefile.am
@@ -5,4 +5,7 @@ dist_install_DATA = \
lcd.ttf \
md_khmurabi_10.ttf \
nmsbd.ttf \
- tuxtxt.ttf
+ tuxtxt.ttf \
+ MyriadPro-Regular.otf \
+ MyriadPro-Semibold.otf \
+ MyriadPro-SemiboldIt.otf
diff --git a/data/skin.xml b/data/skin.xml
index ccd8eb7..9233610 100755
--- a/data/skin.xml
+++ b/data/skin.xml
@@ -150,11 +150,10 @@
-
+
diff --git a/lib/gdi/epng.cpp b/lib/gdi/epng.cpp
index fd33298..d8c1982 100644
--- a/lib/gdi/epng.cpp
+++ b/lib/gdi/epng.cpp
@@ -116,10 +116,71 @@ int loadPNG(ePtr &result, const char *filename)
}
surface->clut.start=0;
png_read_end(png_ptr, end_info);
+#ifndef BUILD_VUPLUS
} else {
result=0;
eDebug("%s: %dx%dx%d png, %d", filename, (int)width, (int)height, (int)bit_depth, color_type);
}
+#else //csh Support for 32bit png file.
+ }else if (color_type == PNG_COLOR_TYPE_RGB_ALPHA && bit_depth == 8){
+// eDebug("%s: %dx%dx%d png, %d", filename, (int)width, (int)height, (int)bit_depth, color_type);
+ result=new gPixmap(eSize(width, height), bit_depth*4);
+ gSurface *surface = result->surface;
+ int pass;
+ png_bytep *rowptr=new png_bytep[height];
+
+
+ //png_set_swap_alpha(png_ptr);
+
+ if (color_type & PNG_COLOR_MASK_COLOR)
+ png_set_bgr(png_ptr);
+
+
+
+ int number_passes = png_set_interlace_handling(png_ptr);
+
+ for (unsigned int i=0; idata))+i*surface->stride;
+
+ for (pass = 0; pass < number_passes; pass++)
+ for (int y = 0; y < height; y++)
+ {
+ png_read_rows(png_ptr, &rowptr[y], png_bytepp_NULL, 1);
+ }
+
+/*
+ png_bytep testptr = rowptr[32] + sizeof(unsigned int)*32;
+
+ for(int i = 0 ; i < 40 ; i ++)
+ fprintf(stderr, "0x%x\n", testptr[i]);
+*/
+ for (int y = 0; y < height; y++){ //csh
+ __u32 col;
+ unsigned int *ptr = (unsigned int *)rowptr[y];
+ for(int i = 0 ; i < width ; i ++){
+ col= ptr[i];
+ col ^=0xFF000000;
+ ptr[i] = col;
+ }
+ }
+
+ surface->clut.data=0;
+ surface->clut.colors=0;
+ surface->clut.start=0;
+/*
+ testptr = rowptr[32] + sizeof(unsigned int)*32;
+ fprintf(stderr, "----------------------------------------------\n");
+ for(int i = 0 ; i < 40 ; i ++)
+ fprintf(stderr, "0x%x\n", testptr[i]);
+*/
+ delete [] rowptr;
+ png_read_end(png_ptr, end_info);
+
+ } else {
+ result=0;
+ eDebug("%s: %dx%dx%d png, %d", filename, (int)width, (int)height, (int)bit_depth, color_type);
+ }
+#endif
png_destroy_read_struct(&png_ptr, &info_ptr,&end_info);
fclose(fp);
diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py
index 688fe50..7bc66dc 100755
--- a/lib/python/Screens/ChannelSelection.py
+++ b/lib/python/Screens/ChannelSelection.py
@@ -2,6 +2,8 @@ from Tools.Profile import profile
from Screen import Screen
from Components.Button import Button
+# ikseong
+from Components.Label import Label
from Components.ServiceList import ServiceList
from Components.ActionMap import NumberActionMap, ActionMap, HelpableActionMap
from Components.MenuList import MenuList
@@ -731,6 +733,9 @@ class ChannelSelectionBase(Screen):
self["key_yellow"] = Button(_("Provider"))
self["key_blue"] = Button(_("Favourites"))
+ # ikseong
+ self["etitle"] = Label(_('Channel Selection'))
+
self["list"] = ServiceList()
self.servicelist = self["list"]
@@ -876,25 +881,51 @@ class ChannelSelectionBase(Screen):
pos = titleStr.find(']')
if pos == -1:
pos = titleStr.find(')')
- if pos != -1:
- titleStr = titleStr[:pos+1]
- Len = len(self.servicePath)
- if Len > 0:
- base_ref = self.servicePath[0]
- if Len > 1:
- end_ref = self.servicePath[Len-1]
- else:
- end_ref = None
- nameStr = self.getServiceName(base_ref)
- titleStr += ' ' + nameStr
- if end_ref is not None:
- if Len > 2:
- titleStr += '/../'
+ # ikseong
+ if config.skin.primary_skin.value =="750S/skin.xml":
+ if pos != -1:
+ titleStr = titleStr[:pos+1]
+ Len = len(self.servicePath)
+ if Len > 0:
+ base_ref = self.servicePath[0]
+ if Len > 1:
+ end_ref = self.servicePath[Len-1]
else:
- titleStr += '/'
- nameStr = self.getServiceName(end_ref)
- titleStr += nameStr
- self.setTitle(titleStr)
+ end_ref = None
+ nameStr = self.getServiceName(base_ref)
+ if end_ref is not None:
+ titles = ".../"+ nameStr
+ if Len > 2:
+ titles += '/../'
+ else:
+ titles += '/'
+ nameStr = self.getServiceName(end_ref)
+ titles += nameStr
+ self["etitle"].setText(titles)
+ else:
+ titles = "Channel Selection "+titleStr + ' ' + nameStr
+ self["etitle"].setText(titles)
+ else:
+ #
+ if pos != -1:
+ titleStr = titleStr[:pos+1]
+ Len = len(self.servicePath)
+ if Len > 0:
+ base_ref = self.servicePath[0]
+ if Len > 1:
+ end_ref = self.servicePath[Len-1]
+ else:
+ end_ref = None
+ nameStr = self.getServiceName(base_ref)
+ titleStr += ' ' + nameStr
+ if end_ref is not None:
+ if Len > 2:
+ titleStr += '/../'
+ else:
+ titleStr += '/'
+ nameStr = self.getServiceName(end_ref)
+ titleStr += nameStr
+ self.setTitle(titleStr)
def moveUp(self):
self.servicelist.moveUp()
diff --git a/lib/python/Screens/FixedMenu.py b/lib/python/Screens/FixedMenu.py
index 0122346..c877a19 100644
--- a/lib/python/Screens/FixedMenu.py
+++ b/lib/python/Screens/FixedMenu.py
@@ -20,3 +20,10 @@ class FixedMenu(Screen):
})
self["title"] = StaticText(title)
+ # ikseong
+ self["thistory"] = StaticText(title)
+ self["title0"] = StaticText('')
+ self["title1"] = StaticText('')
+ self["title2"] = StaticText('')
+ #
+
diff --git a/lib/python/Screens/Menu.py b/lib/python/Screens/Menu.py
index 2a8801c..20403d8 100755
--- a/lib/python/Screens/Menu.py
+++ b/lib/python/Screens/Menu.py
@@ -22,6 +22,28 @@ from Screens.Setup import Setup, getSetupTitle
# read the menu
mdom = xml.etree.cElementTree.parse(resolveFilename(SCOPE_SKIN, 'menu.xml'))
+# ikseong make menu title
+class title_History:
+ def __init__(self):
+ self.thistory = ''
+ def reset(self):
+ self.thistory = ''
+ def reducehistory(self):
+# print "reducehistory" , self.thistory
+ history_len = len(self.thistory.split('>'))
+ if(history_len < 3):
+ self.reset()
+ return
+ if(self.thistory == ''):
+ return
+ result = self.thistory.rsplit('>',2)
+ if(result[0] == ''):
+ self.reset()
+ return
+ self.thistory = result[0] + '> '
+
+t_history = title_History()
+#
class boundFunction:
def __init__(self, fnc, *args):
self.fnc = fnc
@@ -237,9 +259,41 @@ class Menu(Screen):
a = a and _(a)
if a is None:
a = _(parent.get("text", "").encode("UTF-8"))
+ # ikseong - enter Main menu
+ else:
+ t_history.reset()
+
self["title"] = StaticText(a)
self.menu_title = a
+ # ikseong make menu title
+ self["thistory"] = StaticText(t_history.thistory)
+ history_len = len(t_history.thistory)
+ self["title0"] = StaticText('')
+ self["title1"] = StaticText('')
+ self["title2"] = StaticText('')
+ if history_len < 13 :
+ self["title0"] = StaticText(a)
+ elif history_len < 21 :
+ self["title0"] = StaticText('')
+ self["title1"] = StaticText(a)
+ else:
+ self["title0"] = StaticText('')
+ self["title1"] = StaticText('')
+ self["title2"] = StaticText(a)
+
+# english title
+# if(t_history.thistory ==''):
+# t_history.thistory = str(etitle) + ' > '
+# else:
+# t_history.thistory = t_history.thistory + str(etitle) + ' > '
+
+ if(t_history.thistory ==''):
+ t_history.thistory = str(a) + ' > '
+ else:
+ t_history.thistory = t_history.thistory + str(a) + ' > '
+ #
+
def keyNumberGlobal(self, number):
print "menu keyNumber:", number
# Calculate index
@@ -250,9 +304,15 @@ class Menu(Screen):
self.okbuttonClick()
def closeNonRecursive(self):
+ # ikseong for menu title
+ t_history.reducehistory()
+ #
self.close(False)
def closeRecursive(self):
+ # ikseong for menu title
+ t_history.reset()
+ #
self.close(True)
def createSummary(self):
diff --git a/skin.py b/skin.py
index 19da203..f191530 100755
--- a/skin.py
+++ b/skin.py
@@ -50,7 +50,7 @@ def loadSkin(name, scope = SCOPE_SKIN):
# example: loadSkin("nemesis_greenline/skin.xml")
config.skin = ConfigSubsection()
-config.skin.primary_skin = ConfigText(default = "skin.xml")
+config.skin.primary_skin = ConfigText(default = "Vu_HD/skin.xml")
profile("LoadSkin")
try:
@@ -133,6 +133,36 @@ def loadPixmap(path, desktop):
raise SkinError("pixmap file %s not found!" % (path))
return ptr
+# ikseong
+from enigma import runMainloop, eDVBDB, eTimer, quitMainloop, \
+ getDesktop, ePythonConfigQuery, eAVSwitch, eServiceEvent
+pngcache = []
+def cachemenu():
+ pixmaplist = []
+ for (path, skin) in dom_skins:
+ for x in skin.findall("screen"):
+ if x.attrib.get('name') == 'menu_mainmenu':
+ print x.attrib.get('name')
+ for s in x.findall("ePixmap"):
+ if s.attrib.get('pixmap','') is not '':
+ pixmaplist.append(s.attrib.get('pixmap',''))
+ for s in x.findall('widget'):
+ if s.attrib.get('pixmap','') is not '':
+ pixmaplist.append(s.attrib.get('pixmap',''))
+ desktop = getDesktop(0)
+ for s in pixmaplist:
+ value ='/usr/share/enigma2/'+s
+# print value
+ ptr = loadPixmap(value, desktop)
+ pngcache.append((value,ptr))
+# ikseong
+try:
+ if config.skin.primary_skin.value == "750S/skin.xml" or config.skin.primary_skin.value == "Vu_HD/skin.xml":
+ cachemenu()
+except:
+ print "fail cache main menu"
+#
+
def applySingleAttribute(guiObject, desktop, attrib, value, scale = ((1,1),(1,1))):
# and set attributes
try:
@@ -151,7 +181,15 @@ def applySingleAttribute(guiObject, desktop, attrib, value, scale = ((1,1),(1,1)
elif attrib == 'itemHeight':
guiObject.setItemHeight(int(value))
elif attrib in ("pixmap", "backgroundPixmap", "selectionPixmap"):
- ptr = loadPixmap(value, desktop) # this should already have been filename-resolved.
+#ikseong
+ global pngcache
+ ptr = None
+ for cvalue, cptr in pngcache:
+ if cvalue== value:
+ ptr=cptr
+ if ptr is None:
+ ptr = loadPixmap(value, desktop) # this should already have been filename-resolved.
+#
if attrib == "pixmap":
guiObject.setPixmap(ptr)
elif attrib == "backgroundPixmap":