diff --git a/.gitignore b/.gitignore
index d675d82b..bb7e9bd0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -51,5 +51,7 @@ Thumbs.db
/Installer/setup-SetupFiles
/Installer/vocaluxe-*-setup.exe
/Installer/Vocaluxe*.rar
+/Installer/Prerequisites/GStreamer x64/gstreamer-1.0-x86_64-1.4.1.msi
+/Installer/Prerequisites/GStreamer x86/gstreamer-1.0-x86-1.4.1.msi
/WebserverInitalConfig/bin
-/PhoneGap/
\ No newline at end of file
+/PhoneGap/
diff --git a/Installer/setup.aip b/Installer/setup.aip
index 853fa2ce..b0fe10be 100644
--- a/Installer/setup.aip
+++ b/Installer/setup.aip
@@ -78,8 +78,6 @@
-
-
@@ -87,7 +85,6 @@
-
@@ -99,7 +96,6 @@
-
@@ -112,7 +108,6 @@
-
@@ -132,7 +127,6 @@
-
@@ -166,6 +160,8 @@
+
+
@@ -227,8 +223,6 @@
-
-
@@ -238,458 +232,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -700,23 +244,17 @@
-
-
-
-
-
-
-
+
+
+
-
+
-
-
@@ -870,20 +408,11 @@
-
+
-
-
-
-
-
-
-
-
-
-
+
@@ -917,6 +446,8 @@
+
+
@@ -1042,7 +573,7 @@
-
+
@@ -1069,7 +600,7 @@
-
+
@@ -1077,18 +608,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1115,458 +634,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -1594,7 +663,7 @@
-
+
@@ -1603,7 +672,7 @@
-
+
@@ -1663,13 +732,8 @@
-
-
-
-
-
@@ -1732,9 +796,6 @@
-
-
-
@@ -1742,11 +803,9 @@
-
-
@@ -1798,7 +857,6 @@
-
@@ -1809,17 +867,13 @@
-
-
-
-
@@ -1836,7 +890,6 @@
-
@@ -1871,7 +924,6 @@
-
@@ -1891,10 +943,6 @@
-
-
-
-
@@ -1903,11 +951,9 @@
-
-
@@ -1957,17 +1003,13 @@
-
-
-
-
@@ -2007,12 +1049,14 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -2021,7 +1065,9 @@
-
+
+
+
diff --git a/Output/Languages/English.xml b/Output/Languages/English.xml
index 6554f2dc..6231e96b 100644
--- a/Output/Languages/English.xml
+++ b/Output/Languages/English.xml
@@ -93,6 +93,7 @@
Party
Options
Profiles
+ No profiles found!
Party Mode Selection
Party Mode
Description
@@ -211,8 +212,8 @@
Webcams
Webcam-Resolution
Screen adjustments
- Press CTR + ALT + SHIFT + Arrows to adjust screen
- CTR + ALT + SHIFT + 0 to reset
+ Press CTR + ALT (+ SHIFT) + Arrows|"+" to adjust screen
+ CTR + ALT + 0 to reset
Top left
Top right
Bottom left
diff --git a/Output/Languages/French.xml b/Output/Languages/French.xml
index 149f908c..f42b5ac4 100644
--- a/Output/Languages/French.xml
+++ b/Output/Languages/French.xml
@@ -76,6 +76,7 @@
Musique personnelle et Musique de fond
Pas de Musique personnelle
Seulement la Musique personnelle
+ Seulement les chansons sélectionnées
Tout
Seulement noms et avatars
Rien
diff --git a/Output/Languages/German.xml b/Output/Languages/German.xml
index 50ffef0a..751bf476 100644
--- a/Output/Languages/German.xml
+++ b/Output/Languages/German.xml
@@ -92,6 +92,7 @@
Party
Optionen
Profile
+ Keine Profile gefunden!
Party-Modus Auswahl
Party-Modus
Beschreibung
@@ -210,8 +211,8 @@
Webcams
Webcam-Auflösung
Anzeigeanpassungen
- STRG + ALT + SHIFT + Pfeiltasten drücken um den Bildschirm anzupassen
- STRG + ALT + SHIFT + 0 um die Anpassungen zurückzusetzen
+ STRG + ALT (+ SHIFT) + Pfeiltasten|"+" drücken um den Bildschirm anzupassen
+ STRG + ALT + 0 um die Anpassungen zurückzusetzen
Oben links
Oben rechts
Unten links
diff --git a/Output/Languages/Swedish.xml b/Output/Languages/Swedish.xml
index 2b364a94..92c72192 100644
--- a/Output/Languages/Swedish.xml
+++ b/Output/Languages/Swedish.xml
@@ -76,6 +76,7 @@
Egen Musik och Bakgrundsmusik
Ingen egen Musik
Endast egen Musik
+ Endast vald låt
Alla
Endast namn och avatarer
Ingenting
diff --git a/Output/PartyModes/Challenge/Screens/PartyScreenChallengeConfig.xml b/Output/PartyModes/Challenge/Screens/PartyScreenChallengeConfig.xml
index 1623eba7..a05153de 100644
--- a/Output/PartyModes/Challenge/Screens/PartyScreenChallengeConfig.xml
+++ b/Output/PartyModes/Challenge/Screens/PartyScreenChallengeConfig.xml
@@ -1,458 +1,388 @@
-
-
+
+
+ PartyScreenChallengeConfig
1
-
-
+
+
+
Video
-
+
-
BG_Default
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
+
+
640
48
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENCONFIG_TITLE
-
-
-
-
-
-
+
+
+
75
105
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENCONFIG_NUMPLAYERS
-
-
-
-
-
-
+
+
+
75
165
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENCONFIG_NUMMICS
-
-
-
-
-
-
+
+
+
75
225
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENCONFIG_NUMROUNDS
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 100
- 0,00
- 700
- 50
-
- 505
- 105
- 0,00
- 40
- 40
-
- 1170
- 105
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
- 205,33
-
+
+ 500
+ 100
+ 700
+ 50
+ 0
+
+
+ 505
+ 105
+ 40
+ 40
+ 0
+
+
+ 1170
+ 105
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
9
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 160
- 0,00
- 700
- 50
-
- 505
- 165
- 0,00
- 40
- 40
-
- 1170
- 165
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
- 205,33
-
+
+ 500
+ 160
+ 700
+ 50
+ 0
+
+
+ 505
+ 165
+ 40
+ 40
+ 0
+
+
+ 1170
+ 165
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
2
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 220
- 0,00
- 700
- 50
-
- 505
- 225
- 0,00
- 40
- 40
-
- 1170
- 225
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
- 205,33
-
+
+ 500
+ 220
+ 700
+ 50
+ 0
+
+
+ 505
+ 225
+ 40
+ 40
+ 0
+
+
+ 1170
+ 225
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
10
-
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/PartyModes/Challenge/Screens/PartyScreenChallengeMain.xml b/Output/PartyModes/Challenge/Screens/PartyScreenChallengeMain.xml
index 45a1eed7..61ef56e8 100644
--- a/Output/PartyModes/Challenge/Screens/PartyScreenChallengeMain.xml
+++ b/Output/PartyModes/Challenge/Screens/PartyScreenChallengeMain.xml
@@ -1,985 +1,2791 @@
-
-
+
+
+ PartyScreenChallengeMain
1
-
-
+
+
+
Video
-
+
-
BG_Default
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
PopupBG
-
- 0
- 0
- -1,00
- 1280
- 720
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 0
+ 0
+ 1280
+ 720
+ -1
+
+
+
+
Invisible
-
- 0
- 0
- 0,00
- 100
- 100
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 0
+ 0
+ 100
+ 100
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
640
48
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_TITLE
-
-
-
-
-
-
- 640
- 515
-
- 0,00
-
- 27
-
-
-
- StaticColor
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
- TR_SCREENMAIN_NEXT_PLAYER
-
-
-
-
-
-
- 640
- 520
-
- 0,00
-
- 44
-
-
-
- StaticColor
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
- TR_SCREENMAIN_FINISH
-
-
-
-
-
-
- 640
- 575
-
- 0,00
-
- 31
-
- 770
-
-
- StaticColor
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
+
+
+
40
102
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_TABLE_POS
-
-
-
-
-
-
+
+
+
50
102
-
- 0,00
-
+ 0
27
-
130
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_TABLE_PLAYERNAME
-
-
-
-
-
-
+
+
+
260
102
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_TABLE_NUMPLAYED
-
-
-
-
-
-
+
+
+
340
102
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_TABLE_WON
-
-
-
-
-
-
+
+
+
490
102
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_TABLE_SINGPOINTS
-
-
-
-
-
-
+
+
+
590
102
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_TABLE_GAMEPOINTS
-
-
-
-
-
-
+
+
+
0
0
-
- 0,00
-
+ 0
27
-
100
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
- 0
- 0
-
- 0,00
-
- 27
-
-
-
- StaticColor
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
- 660
- 102
-
- 0,00
-
- 27
-
-
-
- StaticColor
-
-
- TextSColor
-
- Right
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
- 0
- 0
-
- 0,00
-
- 27
-
-
-
- StaticColor
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
+
+
+
640
265
-
- -1,01
-
+ -1.01
27
-
380
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_POPUP_REALLYEXIT
-
-
-
-
-
-
+
+
+
+ 660
+ 102
+ 0
+ 27
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
+ Right
+ Center
+
+ Outline
+
+
+
+
+ 0
+ 0
+ 0
+ 27
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+ 0
+ 0
+ 0
+ 27
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+ 640
+ 520
+ 0
+ 44
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+ TR_SCREENMAIN_FINISH
+
+
+
+ 640
+ 575
+ 0
+ 31
+ 770
+
+ StaticColor
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+ 640
+ 515
+ 0
+ 27
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+ TR_SCREENMAIN_NEXT_PLAYER
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 1.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 2.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 3.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 4.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 5.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 6.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 7.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 8.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 9.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 10.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/PartyModes/Challenge/Screens/PartyScreenChallengeNames.xml b/Output/PartyModes/Challenge/Screens/PartyScreenChallengeNames.xml
index 1715fc94..d5a7e4b1 100644
--- a/Output/PartyModes/Challenge/Screens/PartyScreenChallengeNames.xml
+++ b/Output/PartyModes/Challenge/Screens/PartyScreenChallengeNames.xml
@@ -1,607 +1,511 @@
-
-
+
+
+ PartyScreenChallengeNames
1
-
-
+
+
+
Video
-
+
-
BG_Default
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
+
+
640
48
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENNAMES_TITLE
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 40
- 100
- 0,00
- 1200
- 50
-
- 45
- 105
- 0,00
- 40
- 40
-
- 1170
- 105
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 40
+ 100
+ 1200
+ 50
+ 0
+
+
+ 45
+ 105
+ 40
+ 40
+ 0
+
+
+ 1170
+ 105
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
2
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlidePlayer
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlidePlayer
-
- 40
- 160
- 0,00
- 1200
- 150
-
- 45
- 210
- 0,00
- 40
- 40
-
- 1170
- 210
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
- -5,00
-
- 205,33
-
+
+ 40
+ 160
+ 1200
+ 150
+ 0
+
+
+ 45
+ 210
+ 40
+ 40
+ 0
+
+
+ 1170
+ 210
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ -5
+ 205.33
Outline
-
Bold
-
8
-
-
-
- 42
- 327
- 0,00
- 1200
- 393
-
+
+
+
+
+
+
+ 42
+ 327
+ 1200
+ 393
+ 0
+
CoverTile
-
-
- 1,00
- 1,00
- 1,00
- 0,20
-
+
+
+ 1
+ 1
+ 1
+ 0.2
+
+
PlayerSelector
-
-
100
100
-
10
2
-
- 20,71
- 30,00
-
+ 20.71
+ 30
-
- 2,0
-
- Outline
-
- TextColor
-
-
-
+ 2
17
+ Outline
+
+
+ TextColor
+
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/PartyModes/Challenge/Textures/Skin.xml b/Output/PartyModes/Challenge/Textures/Skin.xml
index b2ea588c..9217b4e3 100644
--- a/Output/PartyModes/Challenge/Textures/Skin.xml
+++ b/Output/PartyModes/Challenge/Textures/Skin.xml
@@ -155,4 +155,4 @@
[Blue]BG_Video.mp4
-
+
\ No newline at end of file
diff --git a/Output/PartyModes/ChallengeMedley/Screens/PartyScreenChallengeMedleyConfig.xml b/Output/PartyModes/ChallengeMedley/Screens/PartyScreenChallengeMedleyConfig.xml
index 31c764e5..b189de6e 100644
--- a/Output/PartyModes/ChallengeMedley/Screens/PartyScreenChallengeMedleyConfig.xml
+++ b/Output/PartyModes/ChallengeMedley/Screens/PartyScreenChallengeMedleyConfig.xml
@@ -1,458 +1,388 @@
-
-
+
+
+ PartyScreenChallengeMedleyConfig
1
-
-
+
+
+
Video
-
+
-
BG_Default
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
+
+
640
48
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENCONFIG_TITLE
-
-
-
-
-
-
+
+
+
75
105
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENCONFIG_NUMPLAYERS
-
-
-
-
-
-
+
+
+
75
165
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENCONFIG_NUMMICS
-
-
-
-
-
-
+
+
+
75
225
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENCONFIG_NUMROUNDS
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 100
- 0,00
- 700
- 50
-
- 505
- 105
- 0,00
- 40
- 40
-
- 1170
- 105
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
- 205,33
-
+
+ 500
+ 100
+ 700
+ 50
+ 0
+
+
+ 505
+ 105
+ 40
+ 40
+ 0
+
+
+ 1170
+ 105
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
9
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 160
- 0,00
- 700
- 50
-
- 505
- 165
- 0,00
- 40
- 40
-
- 1170
- 165
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
- 205,33
-
+
+ 500
+ 160
+ 700
+ 50
+ 0
+
+
+ 505
+ 165
+ 40
+ 40
+ 0
+
+
+ 1170
+ 165
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
2
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 220
- 0,00
- 700
- 50
-
- 505
- 225
- 0,00
- 40
- 40
-
- 1170
- 225
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
- 205,33
-
+
+ 500
+ 220
+ 700
+ 50
+ 0
+
+
+ 505
+ 225
+ 40
+ 40
+ 0
+
+
+ 1170
+ 225
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
10
-
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/PartyModes/ChallengeMedley/Screens/PartyScreenChallengeMedleyMain.xml b/Output/PartyModes/ChallengeMedley/Screens/PartyScreenChallengeMedleyMain.xml
index ca6ca079..6b73bf10 100644
--- a/Output/PartyModes/ChallengeMedley/Screens/PartyScreenChallengeMedleyMain.xml
+++ b/Output/PartyModes/ChallengeMedley/Screens/PartyScreenChallengeMedleyMain.xml
@@ -1,985 +1,2791 @@
-
-
+
+
+ PartyScreenChallengeMedleyMain
1
-
-
+
+
+
Video
-
+
-
BG_Default
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
PopupBG
-
- 0
- 0
- -1,00
- 1280
- 720
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 0
+ 0
+ 1280
+ 720
+ -1
+
+
+
+
Invisible
-
- 0
- 0
- 0,00
- 100
- 100
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 0
+ 0
+ 100
+ 100
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
640
48
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_TITLE
-
-
-
-
-
-
- 640
- 515
-
- 0,00
-
- 27
-
-
-
- StaticColor
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
- TR_SCREENMAIN_NEXT_PLAYER
-
-
-
-
-
-
- 640
- 520
-
- 0,00
-
- 44
-
-
-
- StaticColor
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
- TR_SCREENMAIN_FINISH
-
-
-
-
-
-
- 640
- 575
-
- 0,00
-
- 31
-
- 770
-
-
- StaticColor
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
+
+
+
40
102
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_TABLE_POS
-
-
-
-
-
-
+
+
+
50
102
-
- 0,00
-
+ 0
27
-
130
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_TABLE_PLAYERNAME
-
-
-
-
-
-
+
+
+
260
102
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_TABLE_NUMPLAYED
-
-
-
-
-
-
+
+
+
340
102
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_TABLE_WON
-
-
-
-
-
-
+
+
+
490
102
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_TABLE_SINGPOINTS
-
-
-
-
-
-
+
+
+
590
102
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_TABLE_GAMEPOINTS
-
-
-
-
-
-
+
+
+
0
0
-
- 0,00
-
+ 0
27
-
100
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
- 0
- 0
-
- 0,00
-
- 27
-
-
-
- StaticColor
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
- 660
- 102
-
- 0,00
-
- 27
-
-
-
- StaticColor
-
-
- TextSColor
-
- Right
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
- 0
- 0
-
- 0,00
-
- 27
-
-
-
- StaticColor
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
+
+
+
640
265
-
- -1,01
-
+ -1.01
27
-
380
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_POPUP_REALLYEXIT
-
-
-
-
-
-
+
+
+
+ 660
+ 102
+ 0
+ 27
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
+ Right
+ Center
+
+ Outline
+
+
+
+
+ 0
+ 0
+ 0
+ 27
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+ 0
+ 0
+ 0
+ 27
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+ 640
+ 520
+ 0
+ 44
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+ TR_SCREENMAIN_FINISH
+
+
+
+ 640
+ 575
+ 0
+ 31
+ 770
+
+ StaticColor
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+ 640
+ 515
+ 0
+ 27
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+ TR_SCREENMAIN_NEXT_PLAYER
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 1.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 2.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 3.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 4.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 5.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 6.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 7.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 8.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 9.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ 10.
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_PLAYERNAME
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_NUMPLAYED
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_WON
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_SINGPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+ TR_SCREENMAIN_TABLE_GAMEPOINTS
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ Left
+ Top
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/PartyModes/ChallengeMedley/Screens/PartyScreenChallengeMedleyNames.xml b/Output/PartyModes/ChallengeMedley/Screens/PartyScreenChallengeMedleyNames.xml
index e6236e97..1373bf23 100644
--- a/Output/PartyModes/ChallengeMedley/Screens/PartyScreenChallengeMedleyNames.xml
+++ b/Output/PartyModes/ChallengeMedley/Screens/PartyScreenChallengeMedleyNames.xml
@@ -1,607 +1,511 @@
-
-
+
+
+ PartyScreenChallengeMedleyNames
1
-
-
+
+
+
Video
-
+
-
BG_Default
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
+
+
640
48
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENNAMES_TITLE
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 40
- 100
- 0,00
- 1200
- 50
-
- 45
- 105
- 0,00
- 40
- 40
-
- 1170
- 105
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 40
+ 100
+ 1200
+ 50
+ 0
+
+
+ 45
+ 105
+ 40
+ 40
+ 0
+
+
+ 1170
+ 105
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
2
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlidePlayer
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlidePlayer
-
- 40
- 160
- 0,00
- 1200
- 150
-
- 45
- 210
- 0,00
- 40
- 40
-
- 1170
- 210
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
- -5,00
-
- 205,33
-
+
+ 40
+ 160
+ 1200
+ 150
+ 0
+
+
+ 45
+ 210
+ 40
+ 40
+ 0
+
+
+ 1170
+ 210
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ -5
+ 205.33
Outline
-
Bold
-
8
-
-
-
- 42
- 327
- 0,00
- 1200
- 393
-
+
+
+
+
+
+
+ 42
+ 327
+ 1200
+ 393
+ 0
+
CoverTile
-
-
- 1,00
- 1,00
- 1,00
- 0,20
-
+
+
+ 1
+ 1
+ 1
+ 0.2
+
+
PlayerSelector
-
-
100
100
-
10
2
-
- 20,71
- 30,00
-
+ 20.71
+ 30
-
- 2,0
-
- Outline
-
- TextColor
-
-
-
+ 2
17
+ Outline
+
+
+ TextColor
+
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/PartyModes/ChallengeMedley/Textures/Skin.xml b/Output/PartyModes/ChallengeMedley/Textures/Skin.xml
index e89952f1..f73b7fbd 100644
--- a/Output/PartyModes/ChallengeMedley/Textures/Skin.xml
+++ b/Output/PartyModes/ChallengeMedley/Textures/Skin.xml
@@ -154,4 +154,4 @@
[Blue]BG_Video.mp4
-
+
\ No newline at end of file
diff --git a/Output/PartyModes/TicTacToe/Screens/PartyScreenTicTacToeConfig.xml b/Output/PartyModes/TicTacToe/Screens/PartyScreenTicTacToeConfig.xml
index ab0ac65f..fbcd05f5 100644
--- a/Output/PartyModes/TicTacToe/Screens/PartyScreenTicTacToeConfig.xml
+++ b/Output/PartyModes/TicTacToe/Screens/PartyScreenTicTacToeConfig.xml
@@ -1,588 +1,504 @@
-
-
+
+
+ PartyScreenTicTacToeConfig
1
-
-
+
+
+
Video
-
+
-
BG_Default
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
+
+
640
48
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENCONFIG_TITLE
-
-
-
-
-
-
+
+
+
75
105
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENCONFIG_NUMFIELDS
-
-
-
-
-
-
+
+
+
75
165
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENCONFIG_SONGSOURCE
-
-
-
-
-
-
+
+
+
75
285
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENCONFIG_GAMEMODE
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 100
- 0,00
- 700
- 50
-
- 505
- 105
- 0,00
- 40
- 40
-
- 1170
- 105
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
- 205,33
-
+
+ 500
+ 100
+ 700
+ 50
+ 0
+
+
+ 505
+ 105
+ 40
+ 40
+ 0
+
+
+ 1170
+ 105
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 160
- 0,00
- 700
- 50
-
- 505
- 165
- 0,00
- 40
- 40
-
- 1170
- 165
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
- 205,33
-
+
+ 500
+ 160
+ 700
+ 50
+ 0
+
+
+ 505
+ 165
+ 40
+ 40
+ 0
+
+
+ 1170
+ 165
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 220
- 0,00
- 700
- 50
-
- 505
- 225
- 0,00
- 40
- 40
-
- 1170
- 225
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
- 205,33
-
+
+ 500
+ 220
+ 700
+ 50
+ 0
+
+
+ 505
+ 225
+ 40
+ 40
+ 0
+
+
+ 1170
+ 225
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
1
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 220
- 0,00
- 700
- 50
-
- 505
- 225
- 0,00
- 40
- 40
-
- 1170
- 225
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
- 205,33
-
+
+ 500
+ 220
+ 700
+ 50
+ 0
+
+
+ 505
+ 225
+ 40
+ 40
+ 0
+
+
+ 1170
+ 225
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
1
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 280
- 0,00
- 700
- 50
-
- 505
- 285
- 0,00
- 40
- 40
-
- 1170
- 285
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
- 205,33
-
+
+ 500
+ 280
+ 700
+ 50
+ 0
+
+
+ 505
+ 285
+ 40
+ 40
+ 0
+
+
+ 1170
+ 285
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
1
-
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/PartyModes/TicTacToe/Screens/PartyScreenTicTacToeMain.xml b/Output/PartyModes/TicTacToe/Screens/PartyScreenTicTacToeMain.xml
index 61e5e3a3..3dd79eae 100644
--- a/Output/PartyModes/TicTacToe/Screens/PartyScreenTicTacToeMain.xml
+++ b/Output/PartyModes/TicTacToe/Screens/PartyScreenTicTacToeMain.xml
@@ -1,844 +1,1386 @@
-
-
+
+
+ PartyScreenTicTacToeMain
1
-
-
+
+
+
Video
-
+
-
BG_Default
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
PopupBG
-
- 0
- 0
- -2,00
- 1280
- 720
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 0
+ 0
+ 1280
+ 720
+ -2
+
+
+
+
PopupBG
-
- 10
- 200
- -1,00
- 100
- 100
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 10
+ 200
+ 100
+ 100
+ -1
+
+
+
+
PopupBG
-
- 1170
- 200
- -1,00
- 100
- 100
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 1170
+ 200
+ 100
+ 100
+ -1
+
+
+
+
+
+
640
48
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_TITLE
-
-
-
-
-
-
- 160
- 150
-
- 0,00
-
- 35
-
-
-
- Player1
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
- TR_SCREENMAIN_NEXT_PLAYER
-
-
-
-
-
-
- 1120
- 150
-
- 0,00
-
- 35
-
-
-
- Player2
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
- TR_SCREENMAIN_NEXT_PLAYER
-
-
-
-
-
-
- 120
- 230
-
- 0,00
-
- 35
-
-
-
- Player1
-
-
- TextSColor
-
- Left
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
- 1160
- 230
-
- 0,00
-
- 40
-
-
-
- Player2
-
-
- TextSColor
-
- Right
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
- 640
- 90
-
- 0,00
-
- 35
-
-
-
- StaticColor
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
- 640
- 90
-
- 0,00
-
- 35
-
-
-
- StaticColor
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
+
+
+
640
265
-
- -2,01
-
+ -2.01
27
-
380
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENMAIN_POPUP_REALLYEXIT
-
-
-
-
-
-
- Random
-
- Random
-
- 10
- 320
- 0,00
- 100
- 100
-
-
- Player1Dim
-
-
- Player1
-
-
- 50
- 25
-
- 50
-
- 50
-
-
- ButtonTextColor
-
-
- ButtonTextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
-
-
-
-
- Random
-
- Random
-
- 1170
- 320
- 0,00
- 100
- 100
-
-
- Player2Dim
-
-
- Player2
-
-
- 50
- 25
-
- 50
-
- 50
-
-
- ButtonTextColor
-
-
- ButtonTextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
-
-
-
-
- RepeatIcon
-
- RepeatIcon
-
- 110
- 320
- 0,00
- 100
- 100
-
-
- Player1Dim
-
-
- Player1
-
-
- 48
- 25
-
- 50
-
- 50
-
-
- ButtonTextColor
-
-
- ButtonTextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
-
-
-
-
- RepeatIcon
-
- RepeatIcon
-
- 1070
- 320
- 0,00
- 100
- 100
-
-
- Player2Dim
-
-
- Player2
-
-
- 48
- 25
-
- 50
-
- 50
-
-
- ButtonTextColor
-
-
- ButtonTextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ 640
+ 90
+ 0
+ 35
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+ 640
+ 90
+ 0
+ 35
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+ 160
+ 150
+ 0
+ 35
+ 0
+
+ Player1
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+ TR_SCREENMAIN_NEXT_PLAYER
+
+
+
+ 1120
+ 150
+ 0
+ 35
+ 0
+
+ Player2
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+ TR_SCREENMAIN_NEXT_PLAYER
+
+
+
+ 120
+ 230
+ 0
+ 35
+ 0
+
+ Player1
+
+
+ TextSColor
+
+ Left
+ Center
+
+ Outline
+
+
+
+
+ 1160
+ 230
+ 0
+ 40
+ 0
+
+ Player2
+
+
+ TextSColor
+
+ Right
+ Center
+
+ Outline
+
+
+
+
+
+
+
+
+
+
+
-
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/PartyModes/TicTacToe/Screens/PartyScreenTicTacToeNames.xml b/Output/PartyModes/TicTacToe/Screens/PartyScreenTicTacToeNames.xml
index a968b115..f3f7d2f1 100644
--- a/Output/PartyModes/TicTacToe/Screens/PartyScreenTicTacToeNames.xml
+++ b/Output/PartyModes/TicTacToe/Screens/PartyScreenTicTacToeNames.xml
@@ -1,607 +1,511 @@
-
-
+
+
+ PartyScreenTicTacToeNames
1
-
-
+
+
+
Video
-
+
-
BG_Default
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
+
+
640
48
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENNAMES_TITLE
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 40
- 100
- 0,00
- 1100
- 50
-
- 45
- 105
- 0,00
- 40
- 40
-
- 1050
- 105
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 40
+ 100
+ 1100
+ 50
+ 0
+
+
+ 45
+ 105
+ 40
+ 40
+ 0
+
+
+ 1050
+ 105
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
2
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlidePlayer
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlidePlayer
-
- 40
- 160
- 0,00
- 1100
- 150
-
- 45
- 210
- 0,00
- 40
- 40
-
- 1050
- 210
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
- -5,00
-
- 205,33
-
+
+ 40
+ 160
+ 1100
+ 150
+ 0
+
+
+ 45
+ 210
+ 40
+ 40
+ 0
+
+
+ 1050
+ 210
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ -5
+ 205.33
Outline
-
Bold
-
8
-
-
-
- 42
- 327
- 0,00
- 1200
- 393
-
+
+
+
+
+
+
+ 42
+ 327
+ 1200
+ 393
+ 0
+
CoverTile
-
-
- 1,00
- 1,00
- 1,00
- 0,20
-
+
+
+ 1
+ 1
+ 1
+ 0.2
+
+
PlayerSelector
-
-
100
100
-
10
2
-
- 20,71
- 30,00
-
+ 20.71
+ 30
-
- 2,0
-
- Outline
-
- TextColor
-
-
-
+ 2
17
+ Outline
+
+
+ TextColor
+
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/PartyModes/TicTacToe/Textures/Skin.xml b/Output/PartyModes/TicTacToe/Textures/Skin.xml
index 9145b6bf..5979ac45 100644
--- a/Output/PartyModes/TicTacToe/Textures/Skin.xml
+++ b/Output/PartyModes/TicTacToe/Textures/Skin.xml
@@ -229,4 +229,4 @@
[Blue]BG_Video.mp4
-
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/PopupScreenPlayerControl.xml b/Output/Themes/Ambient/Screens/PopupScreenPlayerControl.xml
index a1e0b31f..e8125613 100644
--- a/Output/Themes/Ambient/Screens/PopupScreenPlayerControl.xml
+++ b/Output/Themes/Ambient/Screens/PopupScreenPlayerControl.xml
@@ -1,460 +1,382 @@
-
-
-
+
+
+
+ PopupScreenPlayerControl
1
-
-
+
+
+
+
Menu
-
- 49
- 0
- 0,00
- 1181
- 42
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 49
+ 0
+ 1181
+ 42
+ 0
+
+
+
+
CoverBackground
-
- 55
- 2
- 0,00
- 38
- 38
-
-
- Visible
-
-
-
-
-
-
+
+ Visible
+
+
+ 55
+ 2
+ 38
+ 38
+ 0
+
+
+
+
+
+
410
8
-
- 0,00
-
+ 0
27
-
769
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/PopupScreenServerQR.xml b/Output/Themes/Ambient/Screens/PopupScreenServerQR.xml
index 6bf09478..441542da 100644
--- a/Output/Themes/Ambient/Screens/PopupScreenServerQR.xml
+++ b/Output/Themes/Ambient/Screens/PopupScreenServerQR.xml
@@ -1,315 +1,244 @@
-
-
-
+
+
+
+ PopupScreenServerQR
1
-
-
+
+
+
+
SongMenuBG
-
- 0
- 0
- -1,99
- 1280
- 720
-
-
- 1,00
- 1,00
- 1,00
- 0,80
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.8
+
+
+
+ 0
+ 0
+ 1280
+ 720
+ -1.99
+
+
+
+
Menu
-
- 490
- 210
- -2,00
- 300
- 300
-
-
- Visible
-
-
-
-
-
-
+
+ Visible
+
+
+ 490
+ 210
+ 300
+ 300
+ -2
+
+
+
+
Menu
-
- 25
- 25
- -2,00
- 200
- 200
-
-
- Visible
-
-
-
-
-
-
+
+ Visible
+
+
+ 25
+ 25
+ 200
+ 200
+ -2
+
+
+
+
Menu
-
- 1055
- 25
- -2,00
- 200
- 200
-
-
- Visible
-
-
-
-
-
-
+
+ Visible
+
+
+ 1055
+ 25
+ 200
+ 200
+ -2
+
+
+
+
Menu
-
- 25
- 495
- -2,00
- 200
- 200
-
-
- Visible
-
-
-
-
-
-
+
+ Visible
+
+
+ 25
+ 495
+ 200
+ 200
+ -2
+
+
+
+
Menu
-
- 1055
- 495
- -2,00
- 200
- 200
-
-
- Visible
-
-
-
-
-
-
- 640
- 515
-
- -2,00
-
- 35
-
- 300
-
-
- StaticColor
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
- 640
- 265
-
- -2,00
-
- 45
-
- 600
-
-
- StaticColor
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
- TR_SCREENPSERVERQR_NOTRUNNING
-
-
-
-
-
-
+
+ Visible
+
+
+ 1055
+ 495
+ 200
+ 200
+ -2
+
+
+
+
+
+
640
180
-
- -2,00
-
+ -2
35
-
300
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPSERVERQR_ADDRESS
-
-
-
-
-
-
+
+
+
125
230
-
- -2,00
-
+ -2
27
-
200
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
Android
-
-
-
-
-
-
+
+
+
1155
230
-
- -2,00
-
+ -2
27
-
200
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
Symbian
-
-
-
-
-
-
+
+
+
125
460
-
- -2,00
-
+ -2
27
-
200
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
WebOS
-
-
-
-
-
-
+
+
+
1155
460
-
- -2,00
-
+ -2
27
-
200
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
Windows Phone
-
-
-
-
-
-
+
+
+
+ 640
+ 515
+ -2
+ 35
+ 300
+
+ StaticColor
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+
+
+
+
+ 640
+ 265
+ -2
+ 45
+ 600
+
+ StaticColor
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+ TR_SCREENPSERVERQR_NOTRUNNING
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/PopupScreenVolumeControl.xml b/Output/Themes/Ambient/Screens/PopupScreenVolumeControl.xml
index 80b47b72..cf00cb9c 100644
--- a/Output/Themes/Ambient/Screens/PopupScreenVolumeControl.xml
+++ b/Output/Themes/Ambient/Screens/PopupScreenVolumeControl.xml
@@ -1,121 +1,114 @@
-
-
-
+
+
+
+ PopupScreenVolumeControl
1
-
-
+
+
+
+
Menu
-
- 1065
- 672
- -2,00
- 225
- 48
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 1065
+ 672
+ 225
+ 48
+ -2
+
+
+
+
+
+
1067
682
-
- -2,00
-
+ -2
27
-
80
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPVOLUMECONTROL_VOLUME
-
-
-
-
-
-
+
+
+
+
+
+
+
+
Invisible
-
Minus
-
Plus
-
Invisible
-
Minus
-
Plus
-
Invisible
-
- 1090
- 680
- -2,00
- 200
- 50
-
- 1195
- 682
- -2,00
- 30
- 30
-
- 1240
- 682
- -2,00
- 30
- 30
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
- -15,00
-
- -8,00
-
- 500,00
-
+
+ 1090
+ 680
+ 200
+ 50
+ -2
+
+
+ 1195
+ 682
+ 30
+ 30
+ -2
+
+
+ 1240
+ 682
+ 30
+ 30
+ -2
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ -15
+ -8
+ 500
Outline
-
Bold
-
1
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenHighscore.xml b/Output/Themes/Ambient/Screens/ScreenHighscore.xml
index 2af500cc..cff7c62a 100644
--- a/Output/Themes/Ambient/Screens/ScreenHighscore.xml
+++ b/Output/Themes/Ambient/Screens/ScreenHighscore.xml
@@ -1,1486 +1,1038 @@
-
-
-
+
+
+
+ ScreenHighscore
2
-
-
+
+
+
Video
-
+
-
BG_Default
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
TextBG
-
- 50
- 90
- 0,00
- 1180
- 610
-
-
- Invisible
-
-
-
-
-
-
+
+ Invisible
+
+
+ 50
+ 90
+ 1180
+ 610
+ 0
+
+
+
+
+
+
60
50
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENHIGHSCORE_HIGHSCORE
-
-
-
-
-
-
+
+
+
640
50
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1220
50
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
120
103
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
120
160
-
- 0,00
-
+ 0
42
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
120
223
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
120
283
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
120
343
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
120
403
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
120
463
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
120
523
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
120
583
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
120
643
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
200
103
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
200
163
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
200
223
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
200
283
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
200
343
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
200
403
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
200
463
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
200
523
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
200
583
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
200
643
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
800
103
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
800
163
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
800
223
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
800
283
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
800
343
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
800
403
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
800
463
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
800
523
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
800
583
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
800
643
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1000
103
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1000
163
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1000
223
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1000
283
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1000
343
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1000
403
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1000
463
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1000
523
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1000
583
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1000
643
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
Star
-
- 80
- 100
- 1,00
- 1080
- 35
-
-
- StaticColor
-
+
+ 80
+ 100
+ 1080
+ 35
+ 1
+
+
+ StaticColor
+
Star
-
- 25,00
-
+ 25
250
-
-
-
+
+
Star
-
- 80
- 160
- 1,00
- 1080
- 35
-
-
- StaticColor
-
+
+ 80
+ 160
+ 1080
+ 35
+ 1
+
+
+ StaticColor
+
Star
-
- 25,00
-
+ 25
250
-
-
-
+
+
Star
-
- 80
- 220
- 1,00
- 1080
- 35
-
-
- StaticColor
-
+
+ 80
+ 220
+ 1080
+ 35
+ 1
+
+
+ StaticColor
+
Star
-
- 25,00
-
+ 25
250
-
-
-
+
+
Star
-
- 80
- 280
- 1,00
- 1080
- 35
-
-
- StaticColor
-
+
+ 80
+ 280
+ 1080
+ 35
+ 1
+
+
+ StaticColor
+
Star
-
- 25,00
-
+ 25
250
-
-
-
+
+
Star
-
- 80
- 340
- 1,00
- 1080
- 35
-
-
- StaticColor
-
+
+ 80
+ 340
+ 1080
+ 35
+ 1
+
+
+ StaticColor
+
Star
-
- 25,00
-
+ 25
250
-
-
-
+
+
Star
-
- 80
- 400
- 1,00
- 1080
- 35
-
-
- StaticColor
-
+
+ 80
+ 400
+ 1080
+ 35
+ 1
+
+
+ StaticColor
+
Star
-
- 25,00
-
+ 25
250
-
-
-
+
+
Star
-
- 80
- 460
- 1,00
- 1080
- 35
-
-
- StaticColor
-
+
+ 80
+ 460
+ 1080
+ 35
+ 1
+
+
+ StaticColor
+
Star
-
- 25,00
-
+ 25
250
-
-
-
+
+
Star
-
- 80
- 520
- 1,00
- 1080
- 35
-
-
- StaticColor
-
+
+ 80
+ 520
+ 1080
+ 35
+ 1
+
+
+ StaticColor
+
Star
-
- 25,00
-
+ 25
250
-
-
-
+
+
Star
-
- 80
- 580
- 1,00
- 1080
- 35
-
-
- StaticColor
-
+
+ 80
+ 580
+ 1080
+ 35
+ 1
+
+
+ StaticColor
+
Star
-
- 25,00
-
+ 25
250
-
-
-
+
+
Star
-
- 80
- 640
- 1,00
- 1080
- 35
-
-
- StaticColor
-
+
+ 80
+ 640
+ 1080
+ 35
+ 1
+
+
+ StaticColor
+
Star
-
- 25,00
-
+ 25
250
-
-
-
\ No newline at end of file
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenLoad.xml b/Output/Themes/Ambient/Screens/ScreenLoad.xml
index 36041ea4..7d31a98a 100644
--- a/Output/Themes/Ambient/Screens/ScreenLoad.xml
+++ b/Output/Themes/Ambient/Screens/ScreenLoad.xml
@@ -1,120 +1,103 @@
-
-
-
+
+
+
+ ScreenLoad
2
-
-
+
+
+
Texture
-
+
-
BG_Default
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 50
- 644
- 0,00
- 1195
- 50
-
-
- Invisible
-
-
-
-
-
-
+
+ Invisible
+
+
+ 50
+ 644
+ 1195
+ 50
+ 0
+
+
+
+
+
+
60
655
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
Center
-
-
Outline
-
TR_SCREENLOAD_LOADING
-
-
-
-
-
-
- 640
- 305
-
- 0,00
-
- 101
-
-
-
- StaticColor
-
-
- TextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
- TR_PROGRAM_NAME
-
-
-
-
-
-
+
+
+
240
655
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
Center
-
-
Outline
-
-
-
-
-
-
-
-
+ Gesamt: 168 Lieder (168 geladen)
+
+
+
+ 640
+ 305
+ 0
+ 101
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
+ Center
+ Center
+
+ Outline
+ TR_PROGRAM_NAME
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenMain.xml b/Output/Themes/Ambient/Screens/ScreenMain.xml
index 0d256cd2..f1701971 100644
--- a/Output/Themes/Ambient/Screens/ScreenMain.xml
+++ b/Output/Themes/Ambient/Screens/ScreenMain.xml
@@ -1,318 +1,324 @@
-
-
-
- 1
-
-
+
+
+
+ ScreenMain
+ 2
+
+
+
Video
-
+
-
BG_Default
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 49
- 32
- 0,00
- 1181
- 50
-
-
- Invisible
-
-
-
-
-
-
+
+ Invisible
+
+
+ 49
+ 32
+ 1181
+ 50
+ 0
+
+
+
+
+ TextBG
+
+ StaticWarningColor
+
+
+ 150
+ 610
+ 355
+ 30
+ -1.9
+
+
+
+
+
+
+ 10
+ 690
+ -1
+ 15
+ 0
+
+ TextWhite
+
+
+ TextWhite
+
+ Left
+ Center
+
+ Normal
+ Vocaluxe "Shining Heaven" v0.3.0 (x64) Beta (0083)
+
+
+
+ 320
+ 612
+ -2
+ 27
+ 355
+
+ TextWarningColor
+
+
+ TextWarningColor
+
+ Center
+ Center
+
+ Outline
+ TR_SCREENMAIN_TEXT_NOPROFILES
+
+
+
+
+
-
-
+ 10
+
+
+
-
-
+ 10
+
+
+
-
-
+ 10
+
+
+
-
-
+ 10
+
+
+
-
-
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenNames.xml b/Output/Themes/Ambient/Screens/ScreenNames.xml
index 5d17ebe2..d4767290 100644
--- a/Output/Themes/Ambient/Screens/ScreenNames.xml
+++ b/Output/Themes/Ambient/Screens/ScreenNames.xml
@@ -1,1308 +1,1075 @@
-
-
-
+
+
+
+ ScreenNames
3
-
-
+
+
+
Video
-
+
-
BG_Options
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
Invisible
-
- 20
- 105
- -3,00
- 108
- 108
-
-
- Visible
-
-
-
-
-
-
+
+ Visible
+
+
+ 20
+ 105
+ 108
+ 108
+ -3
+
+
+
+
Invisible
-
- 20
- 260
- -3,00
- 108
- 108
-
-
- Visible
-
-
-
-
-
-
+
+ Visible
+
+
+ 20
+ 260
+ 108
+ 108
+ -3
+
+
+
+
Invisible
-
- 20
- 415
- -3,00
- 108
- 108
-
-
- Visible
-
-
-
-
-
-
+
+ Visible
+
+
+ 20
+ 415
+ 108
+ 108
+ -3
+
+
+
+
Invisible
-
- 1152
- 105
- -3,00
- 108
- 108
-
-
- Visible
-
-
-
-
-
-
+
+ Visible
+
+
+ 1152
+ 105
+ 108
+ 108
+ -3
+
+
+
+
Invisible
-
- 1152
- 260
- -3,00
- 108
- 108
-
-
- Visible
-
-
-
-
-
-
+
+ Visible
+
+
+ 1152
+ 260
+ 108
+ 108
+ -3
+
+
+
+
Invisible
-
- 1152
- 415
- -3,00
- 108
- 108
-
-
- Visible
-
-
-
-
-
-
+
+ Visible
+
+
+ 1152
+ 415
+ 108
+ 108
+ -3
+
+
+
+
PlayerSelector
-
- 15
- 100
- -2,00
- 118
- 118
-
-
- Player1
-
-
-
-
-
-
+
+ Player1
+
+
+ 15
+ 100
+ 118
+ 118
+ -2
+
+
+
+
PlayerSelector
-
- 15
- 255
- -2,00
- 118
- 118
-
-
- Player2
-
-
-
-
-
-
+
+ Player2
+
+
+ 15
+ 255
+ 118
+ 118
+ -2
+
+
+
+
PlayerSelector
-
- 15
- 410
- -2,00
- 118
- 118
-
-
- Player3
-
-
-
-
-
-
+
+ Player3
+
+
+ 15
+ 410
+ 118
+ 118
+ -2
+
+
+
+
PlayerSelector
-
- 1147
- 100
- -2,00
- 118
- 118
-
-
- Player4
-
-
-
-
-
-
+
+ Player4
+
+
+ 1147
+ 100
+ 118
+ 118
+ -2
+
+
+
+
PlayerSelector
-
- 1147
- 255
- -2,00
- 118
- 118
-
-
- Player5
-
-
-
-
-
-
+
+ Player5
+
+
+ 1147
+ 255
+ 118
+ 118
+ -2
+
+
+
+
PlayerSelector
-
- 1147
- 410
- -2,00
- 118
- 118
-
-
- Player6
-
-
-
-
-
-
+
+ Player6
+
+
+ 1147
+ 410
+ 118
+ 118
+ -2
+
+
+
+
Invisible
-
- 145
- 663
- 0,00
- 990
- 50
-
-
- StaticWarningColor
-
-
-
-
-
-
+
+ StaticWarningColor
+
+
+ 145
+ 663
+ 990
+ 50
+ 0
+
+
+
+
Invisible
-
- 145
- 715
- 0,00
- 990
- 50
-
-
- StaticWarningColor
-
-
-
-
-
-
+
+ StaticWarningColor
+
+
+ 145
+ 715
+ 990
+ 50
+ 0
+
+
+
+
+
+
640
50
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENNAMES_MENU
-
-
-
-
-
-
+
+
+
640
617
-
- 0,00
-
+ 0
27
-
970
-
-
- TextWarningColor
-
-
- TextWarningColor
-
+
+ TextWarningColor
+
+
+ TextWarningColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
640
652
-
- 0,00
-
+ 0
27
-
970
-
-
- TextWarningColor
-
-
- TextWarningColor
-
+
+ TextWarningColor
+
+
+ TextWarningColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
74
219
-
- 0,00
-
+ 0
20
-
-
-
- Player1
-
-
- TextSColor
-
+ 0
+
+ Player1
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
74
374
-
- 0,00
-
+ 0
20
-
-
-
- Player2
-
-
- TextSColor
-
+ 0
+
+ Player2
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
74
529
-
- 0,00
-
+ 0
20
-
-
-
- Player3
-
-
- TextSColor
-
+ 0
+
+ Player3
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1206
219
-
- 0,00
-
+ 0
20
-
-
-
- Player4
-
-
- TextSColor
-
+ 0
+
+ Player4
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1206
374
-
- 0,00
-
+ 0
20
-
-
-
- Player5
-
-
- TextSColor
-
+ 0
+
+ Player5
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1206
529
-
- 0,00
-
+ 0
20
-
-
-
- Player6
-
-
- TextSColor
-
+ 0
+
+ Player6
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlidePlayer
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlidePlayer
-
- 70
- 548
- 0,00
- 1140
- 45
-
- 75
- 553
- 0,00
- 40
- 40
-
- 1170
- 553
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 186,00
-
+
+ 70
+ 548
+ 1140
+ 45
+ 0
+
+
+ 75
+ 553
+ 40
+ 40
+ 0
+
+
+ 1170
+ 553
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 186
Outline
-
Bold
-
6
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
Button
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
Button
-
- 41
- 105
- -4,00
- 88
- 20
-
- 20
- 105
- -4,01
- 20
- 20
-
- 20
- 105
- -4,01
- 20
- 20
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 20,00
-
-
-
- 86,00
-
+
+ 41
+ 105
+ 88
+ 20
+ -4
+
+
+ 20
+ 105
+ 20
+ 20
+ -4.01
+
+
+ 20
+ 105
+ 20
+ 20
+ -4.01
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 20
+ 0
+ 0
+ 86
Outline
-
Bold
-
1
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
Button
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
Button
-
- 41
- 260
- -4,00
- 88
- 20
-
- 20
- 260
- -4,01
- 20
- 20
-
- 20
- 260
- -4,01
- 20
- 20
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 20,00
-
-
-
- 86,00
-
+
+ 41
+ 260
+ 88
+ 20
+ -4
+
+
+ 20
+ 260
+ 20
+ 20
+ -4.01
+
+
+ 20
+ 260
+ 20
+ 20
+ -4.01
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 20
+ 0
+ 0
+ 86
Outline
-
Bold
-
1
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
Button
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
Button
-
- 41
- 415
- -4,00
- 88
- 20
-
- 20
- 415
- -4,01
- 20
- 20
-
- 20
- 415
- -4,01
- 20
- 20
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 20,00
-
-
-
- 86,00
-
+
+ 41
+ 415
+ 88
+ 20
+ -4
+
+
+ 20
+ 415
+ 20
+ 20
+ -4.01
+
+
+ 20
+ 415
+ 20
+ 20
+ -4.01
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 20
+ 0
+ 0
+ 86
Outline
-
Bold
-
1
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
Button
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
Button
-
- 1152
- 105
- -4,00
- 88
- 20
-
- 1240
- 105
- -4,01
- 20
- 20
-
- 1240
- 105
- -4,01
- 20
- 20
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 20,00
-
-
-
- 86,00
-
+
+ 1152
+ 105
+ 88
+ 20
+ -4
+
+
+ 1240
+ 105
+ 20
+ 20
+ -4.01
+
+
+ 1240
+ 105
+ 20
+ 20
+ -4.01
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 20
+ 0
+ 0
+ 86
Outline
-
Bold
-
1
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
Button
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
Button
-
- 1152
- 260
- -4,00
- 88
- 20
-
- 1240
- 260
- -4,01
- 20
- 20
-
- 1240
- 260
- -4,01
- 20
- 20
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 20,00
-
-
-
- 86,00
-
+
+ 1152
+ 260
+ 88
+ 20
+ -4
+
+
+ 1240
+ 260
+ 20
+ 20
+ -4.01
+
+
+ 1240
+ 260
+ 20
+ 20
+ -4.01
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 20
+ 0
+ 0
+ 86
Outline
-
Bold
-
1
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
Button
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
Button
-
- 1152
- 415
- -4,00
- 88
- 20
-
- 1240
- 415
- -4,01
- 20
- 20
-
- 1240
- 415
- -4,01
- 20
- 20
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 20,00
-
-
-
- 86,00
-
+
+ 1152
+ 415
+ 88
+ 20
+ -4
+
+
+ 1240
+ 415
+ 20
+ 20
+ -4.01
+
+
+ 1240
+ 415
+ 20
+ 20
+ -4.01
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 20
+ 0
+ 0
+ 86
Outline
-
Bold
-
1
-
-
-
- 172
- 127
- 0,00
- 945
- 393
-
+
+
+
+
+
+
+ 172
+ 127
+ 945
+ 393
+ 0
+
CoverTile
-
-
- 1,00
- 1,00
- 1,00
- 0,20
-
+
+
+ 1
+ 1
+ 1
+ 0.2
+
+
PlayerSelector
-
-
100
100
-
8
3
-
- 20,71
- 30,00
-
+ 20.71
+ 30
-
- 2,0
-
- Outline
-
- TextColor
-
-
-
+ 2
17
+ Outline
+
+
+ TextColor
+
-
-
+
+
+
Invisible
-
- 21
- 152
- -4,00
- 108
- 60
-
+
+ 21
+ 152
+ 108
+ 60
+ -4
+
8
-
- 2,00
-
+ 2
-
TR_CONFIG_OFF
-
-
- Player1Dim2
-
-
- Player1Dim2
-
-
-
-
-
-
+
+ Player1Dim2
+
+
+ Player1Dim2
+
+
+
+
Invisible
-
- 21
- 307
- -4,00
- 108
- 60
-
+
+ 21
+ 307
+ 108
+ 60
+ -4
+
8
-
- 2,00
-
+ 2
-
TR_CONFIG_OFF
-
-
- Player2Dim2
-
-
- Player2Dim2
-
-
-
-
-
-
+
+ Player2Dim2
+
+
+ Player2Dim2
+
+
+
+
Invisible
-
- 21
- 467
- -4,00
- 108
- 60
-
+
+ 21
+ 467
+ 108
+ 60
+ -4
+
8
-
- 2,00
-
+ 2
-
TR_CONFIG_OFF
-
-
- Player3Dim2
-
-
- Player3Dim2
-
-
-
-
-
-
+
+ Player3Dim2
+
+
+ Player3Dim2
+
+
+
+
Invisible
-
- 1153
- 152
- -4,00
- 108
- 60
-
+
+ 1153
+ 152
+ 108
+ 60
+ -4
+
8
-
- 2,00
-
+ 2
-
TR_CONFIG_OFF
-
-
- Player4Dim2
-
-
- Player4Dim2
-
-
-
-
-
-
+
+ Player4Dim2
+
+
+ Player4Dim2
+
+
+
+
Invisible
-
- 1153
- 307
- -4,00
- 108
- 60
-
+
+ 1153
+ 307
+ 108
+ 60
+ -4
+
8
-
- 2,00
-
+ 2
-
TR_CONFIG_OFF
-
-
- Player5Dim2
-
-
- Player5Dim2
-
-
-
-
-
-
+
+ Player5Dim2
+
+
+ Player5Dim2
+
+
+
+
Invisible
-
- 1153
- 467
- -4,00
- 108
- 60
-
+
+ 1153
+ 467
+ 108
+ 60
+ -4
+
8
-
- 2,00
-
+ 2
-
TR_CONFIG_OFF
-
-
- Player6Dim2
-
-
- Player6Dim2
-
-
-
-
-
-
\ No newline at end of file
+
+ Player6Dim2
+
+
+ Player6Dim2
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenOptions.xml b/Output/Themes/Ambient/Screens/ScreenOptions.xml
index de798ca2..120be893 100644
--- a/Output/Themes/Ambient/Screens/ScreenOptions.xml
+++ b/Output/Themes/Ambient/Screens/ScreenOptions.xml
@@ -1,404 +1,336 @@
-
-
-
+
+
+
+ ScreenOptions
1
-
-
+
+
+
Video
-
+
-
BG_Default
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 50
- 32
- 0,00
- 1180
- 50
-
-
- Invisible
-
-
-
-
-
-
+
+ Invisible
+
+
+ 50
+ 32
+ 1180
+ 50
+ 0
+
+
+
+
+
+
60
43
-
- 0,00
-
+ 0
27
-
-
-
- Invisible
-
-
- Invisible
-
+ 0
+
+ Invisible
+
+
+ Invisible
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENO_OPTIONS
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
\ No newline at end of file
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenOptionsGame.xml b/Output/Themes/Ambient/Screens/ScreenOptionsGame.xml
index 49c9551a..b3aebc79 100644
--- a/Output/Themes/Ambient/Screens/ScreenOptionsGame.xml
+++ b/Output/Themes/Ambient/Screens/ScreenOptionsGame.xml
@@ -1,848 +1,703 @@
-
-
-
+
+
+
+ ScreenOptionsGame
2
-
-
+
+
+
Video
-
+
-
BG_Options
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 100
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 100
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 160
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 160
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 220
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 220
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 280
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 280
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 340
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 340
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 400
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 400
+ 460
+ 50
+ 0
+
+
+
+
+
+
640
50
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOGAME_OPTIONS
-
-
-
-
-
-
+
+
+
75
107
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOGAME_LANGUAGE
-
-
-
-
-
-
+
+
+
75
167
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOGAME_DEBUGLEVEL
-
-
-
-
-
-
+
+
+
75
227
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOGAME_SONGMENU
-
-
-
-
-
-
+
+
+
75
287
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOGAME_SONGSORTING
-
-
-
-
-
-
+
+
+
75
347
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOGAME_TABS
-
-
-
-
-
-
+
+
+
75
407
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOGAME_TIMERMODE
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 100
- 0,00
- 700
- 50
-
- 505
- 105
- 0,00
- 40
- 40
-
- 1170
- 105
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 500
+ 100
+ 700
+ 50
+ 0
+
+
+ 505
+ 105
+ 40
+ 40
+ 0
+
+
+ 1170
+ 105
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 160
- 0,00
- 700
- 50
-
- 505
- 165
- 0,00
- 40
- 40
-
- 1170
- 165
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 500
+ 160
+ 700
+ 50
+ 0
+
+
+ 505
+ 165
+ 40
+ 40
+ 0
+
+
+ 1170
+ 165
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 220
- 0,00
- 700
- 50
-
- 505
- 225
- 0,00
- 40
- 40
-
- 1170
- 225
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 500
+ 220
+ 700
+ 50
+ 0
+
+
+ 505
+ 225
+ 40
+ 40
+ 0
+
+
+ 1170
+ 225
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 280
- 0,00
- 700
- 50
-
- 505
- 285
- 0,00
- 40
- 40
-
- 1170
- 285
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 500
+ 280
+ 700
+ 50
+ 0
+
+
+ 505
+ 285
+ 40
+ 40
+ 0
+
+
+ 1170
+ 285
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 340
- 0,00
- 700
- 50
-
- 505
- 345
- 0,00
- 40
- 40
-
- 1170
- 345
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 308,00
-
+
+ 500
+ 340
+ 700
+ 50
+ 0
+
+
+ 505
+ 345
+ 40
+ 40
+ 0
+
+
+ 1170
+ 345
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 308
Outline
-
Bold
-
2
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 400
- 0,00
- 700
- 50
-
- 505
- 405
- 0,00
- 40
- 40
-
- 1170
- 405
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 500
+ 400
+ 700
+ 50
+ 0
+
+
+ 505
+ 405
+ 40
+ 40
+ 0
+
+
+ 1170
+ 405
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
3
-
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenOptionsLyrics.xml b/Output/Themes/Ambient/Screens/ScreenOptionsLyrics.xml
index 2fa9d49b..4f80e6fc 100644
--- a/Output/Themes/Ambient/Screens/ScreenOptionsLyrics.xml
+++ b/Output/Themes/Ambient/Screens/ScreenOptionsLyrics.xml
@@ -1,311 +1,266 @@
-
-
-
+
+
+
+ ScreenOptionsLyrics
2
-
-
+
+
+
Video
-
+
-
BG_Options
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
+
+
640
50
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOLYRICS_OPTIONS
-
-
-
-
-
-
+
+
+
75
107
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOLYRICS_STYLE
-
-
-
-
-
-
+
+
+
75
167
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOLYRICS_POSITION
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 100
- 0,00
- 700
- 50
-
- 505
- 105
- 0,00
- 40
- 40
-
- 1170
- 105
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 500
+ 100
+ 700
+ 50
+ 0
+
+
+ 505
+ 105
+ 40
+ 40
+ 0
+
+
+ 1170
+ 105
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
4
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 160
- 0,00
- 700
- 50
-
- 505
- 165
- 0,00
- 40
- 40
-
- 1170
- 165
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 500
+ 160
+ 700
+ 50
+ 0
+
+
+ 505
+ 165
+ 40
+ 40
+ 0
+
+
+ 1170
+ 165
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
2
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenOptionsRecord.xml b/Output/Themes/Ambient/Screens/ScreenOptionsRecord.xml
index 77c04934..9fc3c7fd 100644
--- a/Output/Themes/Ambient/Screens/ScreenOptionsRecord.xml
+++ b/Output/Themes/Ambient/Screens/ScreenOptionsRecord.xml
@@ -1,838 +1,683 @@
-
-
-
+
+
+
+ ScreenOptionsRecord
4
-
-
+
+
+
Video
-
+
-
BG_Options
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 100
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 100
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 160
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 160
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 220
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 220
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 280
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 280
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 340
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 340
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 145
- 530
- 0,00
- 990
- 50
-
-
- StaticWarningColor
-
-
-
-
-
-
+
+ StaticWarningColor
+
+
+ 145
+ 530
+ 990
+ 50
+ 0
+
+
+
+
EnergyBeam
-
- 390
- 234
- 0,00
- 100
- 16
-
-
- Visible
-
-
-
-
-
-
+
+ Visible
+
+
+ 390
+ 234
+ 100
+ 16
+ 0
+
+
+
+
EnergyBeam
-
- 390
- 296
- 0,00
- 100
- 16
-
-
- Visible
-
-
-
-
-
-
+
+ Visible
+
+
+ 390
+ 296
+ 100
+ 16
+ 0
+
+
+
+
+
+
640
55
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENORECORD_OPTIONS
-
-
-
-
-
-
+
+
+
75
106
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENORECORD_DEVICE
-
-
-
-
-
-
+
+
+
75
347
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENORECORD_MIC_DELAY
-
-
-
-
-
-
- 75
- 227
-
- 0,00
-
- 27
-
-
-
- StaticColor
-
-
- TextSColor
-
- Left
-
- Center
-
-
-
- Outline
-
- TR_SCREENORECORD_CHANNEL_1
-
-
-
-
-
-
- 75
- 287
-
- 0,00
-
- 27
-
-
-
- StaticColor
-
-
- TextSColor
-
- Left
-
- Center
-
-
-
- Outline
-
- TR_SCREENORECORD_CHANNEL_2
-
-
-
-
-
-
+
+
+
640
537
-
- 0,00
-
+ 0
27
-
970
-
-
- TextWarningColor
-
-
- TextWarningColor
-
+
+ TextWarningColor
+
+
+ TextWarningColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENORECORD_MIC_WARNING
-
-
-
-
-
-
+
+
+
+ 75
+ 227
+ 0
+ 27
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENORECORD_CHANNEL_1
+
+
+
+ 75
+ 287
+ 0
+ 27
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
+ Left
+ Center
+
+ Outline
+ TR_SCREENORECORD_CHANNEL_2
+
+
+
330
227
-
- -1,00
-
+ -1
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
330
287
-
- -1,00
-
+ -1
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 100
- 0,00
- 700
- 50
-
- 505
- 105
- 0,00
- 40
- 40
-
- 1170
- 105
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 616,00
-
+
+ 500
+ 100
+ 700
+ 50
+ 0
+
+
+ 505
+ 105
+ 40
+ 40
+ 0
+
+
+ 1170
+ 105
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 616
Outline
-
Bold
-
1
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 220
- 0,00
- 700
- 50
-
- 505
- 225
- 0,00
- 40
- 40
-
- 1170
- 225
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 154,00
-
+
+ 500
+ 220
+ 700
+ 50
+ 0
+
+
+ 505
+ 225
+ 40
+ 40
+ 0
+
+
+ 1170
+ 225
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 154
Outline
-
Bold
-
7
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 280
- 0,00
- 700
- 50
-
- 505
- 285
- 0,00
- 40
- 40
-
- 1170
- 285
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 154,00
-
+
+ 500
+ 280
+ 700
+ 50
+ 0
+
+
+ 505
+ 285
+ 40
+ 40
+ 0
+
+
+ 1170
+ 285
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 154
Outline
-
Bold
-
7
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 340
- 0,00
- 700
- 50
-
- 505
- 345
- 0,00
- 40
- 40
-
- 1170
- 345
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 123,20
-
+
+ 500
+ 340
+ 700
+ 50
+ 0
+
+
+ 505
+ 345
+ 40
+ 40
+ 0
+
+
+ 1170
+ 345
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 123.2
Outline
-
Bold
-
5
-
-
-
+
+
+
+
+
+
Invisible
-
- 50
- 400
- -1,00
- 230
- 150
-
+
+ 50
+ 400
+ 230
+ 150
+ -1
+
12
-
- 2,00
-
+ 2
-
TR_CONFIG_OFF
-
-
- ButtonColor
-
-
- ButtonTextColor
-
-
-
-
- 10
+
+ ButtonColor
+
+
+ ButtonTextColor
+
+
26
+ 10
-
-
-
+
+
Invisible
-
- 400
- 400
- -1,00
- 230
- 150
-
+
+ 400
+ 400
+ 230
+ 150
+ -1
+
12
-
- 2,00
-
+ 2
-
TR_CONFIG_OFF
-
-
- ButtonColor
-
-
- ButtonTextColor
-
-
-
-
- 10
+
+ ButtonColor
+
+
+ ButtonTextColor
+
+
26
+ 10
-
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml b/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml
index 3472b1ab..5cb85711 100644
--- a/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml
+++ b/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml
@@ -1,599 +1,497 @@
-
-
-
+
+
+
+ ScreenOptionsSound
3
-
-
+
+
+
Video
-
+
-
BG_Options
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
+
+
640
50
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOSOUND_OPTIONS
-
-
-
-
-
-
+
+
+
75
107
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOSOUND_BACKGROUNDMUSIC
-
-
-
-
-
-
+
+
+
75
167
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOSOUND_BACKGROUNDMUSICVOLUME
-
-
-
-
-
-
+
+
+
75
227
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE
-
-
-
-
-
-
+
+
+
75
287
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOSOUND_PREVIEWMUSICVOLUME
-
-
-
-
-
-
+
+
+
75
347
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOSOUND_GAMEMUSICVOLUME
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 100
- 0,00
- 700
- 50
-
- 505
- 105
- 0,00
- 40
- 40
-
- 1170
- 105
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 500
+ 100
+ 700
+ 50
+ 0
+
+
+ 505
+ 105
+ 40
+ 40
+ 0
+
+
+ 1170
+ 105
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 160
- 0,00
- 700
- 50
-
- 505
- 165
- 0,00
- 40
- 40
-
- 1170
- 165
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 500
+ 160
+ 700
+ 50
+ 0
+
+
+ 505
+ 165
+ 40
+ 40
+ 0
+
+
+ 1170
+ 165
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 220
- 0,00
- 700
- 50
-
- 505
- 225
- 0,00
- 40
- 40
-
- 1170
- 225
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 500,00
-
+
+ 500
+ 220
+ 700
+ 50
+ 0
+
+
+ 505
+ 225
+ 40
+ 40
+ 0
+
+
+ 1170
+ 225
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 500
Outline
-
Bold
-
1
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 280
- 0,00
- 700
- 50
-
- 505
- 285
- 0,00
- 40
- 40
-
- 1170
- 285
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 500,00
-
+
+ 500
+ 280
+ 700
+ 50
+ 0
+
+
+ 505
+ 285
+ 40
+ 40
+ 0
+
+
+ 1170
+ 285
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 500
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 340
- 0,00
- 700
- 50
-
- 505
- 345
- 0,00
- 40
- 40
-
- 1170
- 345
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 500,00
-
+
+ 500
+ 340
+ 700
+ 50
+ 0
+
+
+ 505
+ 345
+ 40
+ 40
+ 0
+
+
+ 1170
+ 345
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 500
Outline
-
Bold
-
3
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenOptionsTheme.xml b/Output/Themes/Ambient/Screens/ScreenOptionsTheme.xml
index a66566e2..ef17078d 100644
--- a/Output/Themes/Ambient/Screens/ScreenOptionsTheme.xml
+++ b/Output/Themes/Ambient/Screens/ScreenOptionsTheme.xml
@@ -1,1015 +1,840 @@
-
-
-
+
+
+
+ ScreenOptionsTheme
3
-
-
+
+
+
Video
-
+
-
BG_Options
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 100
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 100
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 160
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 160
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 220
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 220
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 280
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 280
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 340
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 340
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 400
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 400
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 460
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 460
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 520
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 520
+ 460
+ 50
+ 0
+
+
+
+
+
+
640
50
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOTHEME_OPTIONS
-
-
-
-
-
-
+
+
+
75
107
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOTHEME_THEME
-
-
-
-
-
-
+
+
+
75
167
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOTHEME_SKIN
-
-
-
-
-
-
+
+
+
75
227
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOTHEME_COVERTHEME
-
-
-
-
-
-
+
+
+
75
287
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOTHEME_NOTELINES
-
-
-
-
-
-
+
+
+
75
347
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOTHEME_TONEHELPER
-
-
-
-
-
-
+
+
+
75
407
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOTHEME_TIMERLOOK
-
-
-
-
-
-
+
+
+
75
467
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOTHEME_FADEINFO
-
-
-
-
-
-
+
+
+
75
527
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOTHEME_COVERLOADING
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 100
- 0,00
- 700
- 50
-
- 505
- 105
- 0,00
- 40
- 40
-
- 1170
- 105
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 616,00
-
+
+ 500
+ 100
+ 700
+ 50
+ 0
+
+
+ 505
+ 105
+ 40
+ 40
+ 0
+
+
+ 1170
+ 105
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 616
Outline
-
Bold
-
1
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 160
- 0,00
- 700
- 50
-
- 505
- 165
- 0,00
- 40
- 40
-
- 1170
- 165
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 616,00
-
+
+ 500
+ 160
+ 700
+ 50
+ 0
+
+
+ 505
+ 165
+ 40
+ 40
+ 0
+
+
+ 1170
+ 165
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 616
Outline
-
Bold
-
1
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 220
- 0,00
- 700
- 50
-
- 505
- 225
- 0,00
- 40
- 40
-
- 1170
- 225
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 308,00
-
+
+ 500
+ 220
+ 700
+ 50
+ 0
+
+
+ 505
+ 225
+ 40
+ 40
+ 0
+
+
+ 1170
+ 225
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 308
Outline
-
Bold
-
2
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 280
- 0,00
- 700
- 50
-
- 505
- 285
- 0,00
- 40
- 40
-
- 1170
- 285
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 308,00
-
+
+ 500
+ 280
+ 700
+ 50
+ 0
+
+
+ 505
+ 285
+ 40
+ 40
+ 0
+
+
+ 1170
+ 285
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 308
Outline
-
Bold
-
2
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 340
- 0,00
- 700
- 50
-
- 505
- 345
- 0,00
- 40
- 40
-
- 1170
- 345
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 308,00
-
+
+ 500
+ 340
+ 700
+ 50
+ 0
+
+
+ 505
+ 345
+ 40
+ 40
+ 0
+
+
+ 1170
+ 345
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 308
Outline
-
Bold
-
2
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 400
- 0,00
- 700
- 50
-
- 505
- 405
- 0,00
- 40
- 40
-
- 1170
- 405
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 308,00
-
+
+ 500
+ 400
+ 700
+ 50
+ 0
+
+
+ 505
+ 405
+ 40
+ 40
+ 0
+
+
+ 1170
+ 405
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 308
Outline
-
Bold
-
2
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 460
- 0,00
- 700
- 50
-
- 505
- 465
- 0,00
- 40
- 40
-
- 1170
- 465
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 616,00
-
+
+ 500
+ 460
+ 700
+ 50
+ 0
+
+
+ 505
+ 465
+ 40
+ 40
+ 0
+
+
+ 1170
+ 465
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 616
Outline
-
Bold
-
2
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 520
- 0,00
- 700
- 50
-
- 505
- 525
- 0,00
- 40
- 40
-
- 1170
- 525
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 616,00
-
+
+ 500
+ 520
+ 700
+ 50
+ 0
+
+
+ 505
+ 525
+ 40
+ 40
+ 0
+
+
+ 1170
+ 525
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 616
Outline
-
Bold
-
1
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenOptionsVideo.xml b/Output/Themes/Ambient/Screens/ScreenOptionsVideo.xml
index cabb55d9..889d2e5f 100644
--- a/Output/Themes/Ambient/Screens/ScreenOptionsVideo.xml
+++ b/Output/Themes/Ambient/Screens/ScreenOptionsVideo.xml
@@ -1,816 +1,675 @@
-
-
-
+
+
+
+ ScreenOptionsVideo
5
-
-
+
+
+
Video
-
+
-
BG_Options
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 100
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 100
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 160
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 160
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 220
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 220
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 550
- 460
- 0,00
- 320
- 240
-
-
- Visible
-
-
-
-
-
-
+
+ Visible
+
+
+ 550
+ 460
+ 320
+ 240
+ 0
+
+
+
+
+
+
640
50
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOVIDEO_OPTIONS
-
-
-
-
-
-
+
+
+
75
107
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOVIDEO_VIDEOBACKGROUNDS
-
-
-
-
-
-
+
+
+
75
167
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOVIDEO_VIDEOPREVIEW
-
-
-
-
-
-
+
+
+
75
227
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOVIDEO_VIDEOINSONGS
-
-
-
-
-
-
+
+
+
75
287
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOVIDEO_VIDEOSTOBACKGROUND
-
-
-
-
-
-
+
+
+
75
347
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOVIDEO_WEBCAMDEVICES
-
-
-
-
-
-
+
+
+
75
407
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOVIDEO_WEBCAMRESOLUTION
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 100
- 0,00
- 700
- 50
-
- 505
- 105
- 0,00
- 40
- 40
-
- 1170
- 105
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 500
+ 100
+ 700
+ 50
+ 0
+
+
+ 505
+ 105
+ 40
+ 40
+ 0
+
+
+ 1170
+ 105
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 160
- 0,00
- 700
- 50
-
- 505
- 165
- 0,00
- 40
- 40
-
- 1170
- 165
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 500
+ 160
+ 700
+ 50
+ 0
+
+
+ 505
+ 165
+ 40
+ 40
+ 0
+
+
+ 1170
+ 165
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 220
- 0,00
- 700
- 50
-
- 505
- 225
- 0,00
- 40
- 40
-
- 1170
- 225
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 500
+ 220
+ 700
+ 50
+ 0
+
+
+ 505
+ 225
+ 40
+ 40
+ 0
+
+
+ 1170
+ 225
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 280
- 0,00
- 700
- 50
-
- 505
- 285
- 0,00
- 40
- 40
-
- 1170
- 285
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 500
+ 280
+ 700
+ 50
+ 0
+
+
+ 505
+ 285
+ 40
+ 40
+ 0
+
+
+ 1170
+ 285
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 340
- 0,00
- 700
- 50
-
- 505
- 345
- 0,00
- 40
- 40
-
- 1170
- 345
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 205,33
-
+
+ 500
+ 340
+ 700
+ 50
+ 0
+
+
+ 505
+ 345
+ 40
+ 40
+ 0
+
+
+ 1170
+ 345
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 205.33
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 400
- 0,00
- 700
- 50
-
- 505
- 405
- 0,00
- 40
- 40
-
- 1170
- 405
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 150,00
-
+
+ 500
+ 400
+ 700
+ 50
+ 0
+
+
+ 505
+ 405
+ 40
+ 40
+ 0
+
+
+ 1170
+ 405
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 150
Outline
-
Bold
-
3
-
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenOptionsVideoAdjustments.xml b/Output/Themes/Ambient/Screens/ScreenOptionsVideoAdjustments.xml
index e9ffb2eb..bbef2844 100644
--- a/Output/Themes/Ambient/Screens/ScreenOptionsVideoAdjustments.xml
+++ b/Output/Themes/Ambient/Screens/ScreenOptionsVideoAdjustments.xml
@@ -1,251 +1,196 @@
-
-
-
+
+
+
+ ScreenOptionsVideoAdjustments
1
-
-
+
+
+
Color
-
+
-
BG_Options
-
-
- 1,00
- 1,00
- 1,00
- 1,00
-
-
-
+
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
0
0
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Top
-
+ Center
-
Outline
-
TR_SCREENOVIDEOADJUSTMENTS_TOPLEFT
-
-
-
-
-
-
+
+
+
1280
0
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Top
-
+ Center
-
Outline
-
TR_SCREENOVIDEOADJUSTMENTS_TOPRIGHT
-
-
-
-
-
-
+
+
+
0
693
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Bottom
-
+ Center
-
Outline
-
TR_SCREENOVIDEOADJUSTMENTS_BOTTOMLEFT
-
-
-
-
-
-
+
+
+
1280
693
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Bottom
-
+ Center
-
Outline
-
TR_SCREENOVIDEOADJUSTMENTS_BOTTOMRIGHT
-
-
-
-
-
-
+
+
+
640
320
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOVIDEOADJUSTMENTS_NOTES
-
-
-
-
-
-
+
+
+
640
360
-
- 0,00
-
+ 0
35
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENOVIDEOADJUSTMENTS_NOTESRESET
-
-
-
-
-
-
+
+
+
+
+
-
+ 10
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenParty.xml b/Output/Themes/Ambient/Screens/ScreenParty.xml
index d725b993..eef66bfd 100644
--- a/Output/Themes/Ambient/Screens/ScreenParty.xml
+++ b/Output/Themes/Ambient/Screens/ScreenParty.xml
@@ -1,656 +1,481 @@
-
-
-
+
+
+
+ ScreenParty
1
-
-
+
+
+
Video
-
+
-
BG_Default
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
+
+
640
50
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPARTY_TITLE
-
-
-
-
-
-
+
+
+
75
107
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPARTY_MODES
-
-
-
-
-
-
+
+
+
75
167
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPARTY_DESCRIPTION
-
-
-
-
-
-
+
+
+
75
227
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPARTY_TARGETAUDIENCE
-
-
-
-
-
-
+
+
+
75
287
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPARTY_NUMTEAMS
-
-
-
-
-
-
+
+
+
75
347
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPARTY_NUMPLAYERS
-
-
-
-
-
-
+
+
+
75
407
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPARTY_AUTHOR
-
-
-
-
-
-
+
+
+
75
467
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPARTY_VERSION
-
-
-
-
-
-
+
+
+
850
167
-
- 0,00
-
+ 0
27
-
600
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
850
227
-
- 0,00
-
+ 0
27
-
600
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
850
287
-
- 0,00
-
+ 0
27
-
600
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
850
347
-
- 0,00
-
+ 0
27
-
600
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
850
407
-
- 0,00
-
+ 0
27
-
600
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
850
467
-
- 0,00
-
+ 0
27
-
600
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
850
527
-
- 0,00
-
+ 0
27
-
600
-
-
- TextWarningColor
-
-
- TextSColor
-
+
+ TextWarningColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPARTY_ERROR
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 100
- 0,00
- 700
- 50
-
- 505
- 105
- 0,00
- 40
- 40
-
- 1170
- 105
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 600,00
-
+
+ 500
+ 100
+ 700
+ 50
+ 0
+
+
+ 505
+ 105
+ 40
+ 40
+ 0
+
+
+ 1170
+ 105
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 600
Outline
-
Bold
-
1
-
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenProfiles.xml b/Output/Themes/Ambient/Screens/ScreenProfiles.xml
index 1fb4ce6f..16d02be5 100644
--- a/Output/Themes/Ambient/Screens/ScreenProfiles.xml
+++ b/Output/Themes/Ambient/Screens/ScreenProfiles.xml
@@ -1,1127 +1,923 @@
-
-
-
+
+
+
+ ScreenProfiles
3
-
-
+
+
+
Video
-
+
-
BG_Options
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 160
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 160
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 220
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 220
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 280
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 280
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 340
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 340
+ 460
+ 50
+ 0
+
+
+
+
Invisible
-
- 50
- 400
- 0,00
- 460
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 50
+ 400
+ 460
+ 50
+ 0
+
+
+
+
-
- 85
- 110
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
-
-
+
+ Visible
+
+
+ 85
+ 110
+ 160
+ 160
+ 0
+
+
+
+
+
+
640
50
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPROFILES_PROFILES
-
-
-
-
-
-
+
+
+
75
287
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPROFILES_PLAYERNAME
-
-
-
-
-
-
+
+
+
75
347
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPROFILES_GAMEDIFFICULTY
-
-
-
-
-
-
+
+
+
75
407
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPROFILES_AVATAR
-
-
-
-
-
-
+
+
+
75
467
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPROFILES_USERROLE
-
-
-
-
-
-
+
+
+
75
527
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENPROFILES_ACTIVE
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 160
- 0,00
- 710
- 50
-
- 505
- 165
- 0,00
- 40
- 40
-
- 1170
- 165
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 219,20
-
+
+ 500
+ 160
+ 710
+ 50
+ 0
+
+
+ 505
+ 165
+ 40
+ 40
+ 0
+
+
+ 1170
+ 165
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 219.2
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 340
- 0,00
- 710
- 50
-
- 505
- 345
- 0,00
- 40
- 40
-
- 1170
- 345
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 208,67
-
+
+ 500
+ 340
+ 710
+ 50
+ 0
+
+
+ 505
+ 345
+ 40
+ 40
+ 0
+
+
+ 1170
+ 345
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 208.67
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 400
- 0,00
- 710
- 50
-
- 505
- 405
- 0,00
- 40
- 40
-
- 1170
- 405
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 208,67
-
+
+ 500
+ 400
+ 710
+ 50
+ 0
+
+
+ 505
+ 405
+ 40
+ 40
+ 0
+
+
+ 1170
+ 405
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 208.67
Outline
-
Bold
-
3
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 460
- 0,00
- 710
- 50
-
- 505
- 465
- 0,00
- 40
- 40
-
- 1170
- 465
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 313,00
-
+
+ 500
+ 460
+ 710
+ 50
+ 0
+
+
+ 505
+ 465
+ 40
+ 40
+ 0
+
+
+ 1170
+ 465
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 313
Outline
-
Bold
-
2
-
-
-
+
+
Invisible
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
SelectSlideArrowLeft
-
SelectSlideArrowRight
-
SelectSlide
-
- 500
- 520
- 0,00
- 710
- 50
-
- 505
- 525
- 0,00
- 40
- 40
-
- 1170
- 525
- 0,00
- 40
- 40
-
-
- SelectSlideColor
-
-
- SelectSlideSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 27,00
-
-
-
- 313,00
-
+
+ 500
+ 520
+ 710
+ 50
+ 0
+
+
+ 505
+ 525
+ 40
+ 40
+ 0
+
+
+ 1170
+ 525
+ 40
+ 40
+ 0
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 27
+ 0
+ 0
+ 313
Outline
-
Bold
-
2
-
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenScore.xml b/Output/Themes/Ambient/Screens/ScreenScore.xml
index a07f386c..5e80539f 100644
--- a/Output/Themes/Ambient/Screens/ScreenScore.xml
+++ b/Output/Themes/Ambient/Screens/ScreenScore.xml
@@ -1,3773 +1,2766 @@
-
-
-
+
+
+
+ ScreenScore
3
-
-
+
+
+
Video
-
+
-
BG_Default
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
Menu
-
- 40
- 40
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 1200
+ 50
+ 0
+
+
+
+
TextBG
-
- 50
- 90
- 0,00
- 1180
- 610
-
-
- 0,00
- 0,00
- 0,00
- 0,00
-
-
-
-
-
-
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 50
+ 90
+ 1180
+ 610
+ 0
+
+
+
+
PointsBarBG
-
- 560
- 180
- 0,00
- 160
- 220
-
-
- 0,00
- 0,00
- 1,00
- 0,75
-
-
-
-
-
-
+
+
+ 0
+ 0
+ 1
+ 0.75
+
+
+
+ 560
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 560
- 180
- 0,00
- 160
- 0
-
-
- Player1
-
-
-
-
-
-
+
+ Player1
+
+
+ 560
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 560
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 560
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 352
- 180
- 0,00
- 160
- 220
-
-
- 0,00
- 0,00
- 1,00
- 0,75
-
-
-
-
-
-
+
+
+ 0
+ 0
+ 1
+ 0.75
+
+
+
+ 352
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 352
- 180
- 0,00
- 160
- 0
-
-
- Player1
-
-
-
-
-
-
+
+ Player1
+
+
+ 352
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 352
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 352
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 768
- 180
- 0,00
- 160
- 220
-
-
- 1,00
- 0,00
- 0,00
- 0,75
-
-
-
-
-
-
+
+
+ 1
+ 0
+ 0
+ 0.75
+
+
+
+ 768
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 768
- 180
- 0,00
- 160
- 0
-
-
- Player2
-
-
-
-
-
-
+
+ Player2
+
+
+ 768
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 768
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 768
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 238
- 180
- 0,00
- 160
- 220
-
-
- 0,00
- 0,00
- 1,00
- 0,75
-
-
-
-
-
-
+
+
+ 0
+ 0
+ 1
+ 0.75
+
+
+
+ 238
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 238
- 180
- 0,00
- 160
- 0
-
-
- Player1
-
-
-
-
-
-
+
+ Player1
+
+
+ 238
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 238
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 238
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 560
- 180
- 0,00
- 160
- 220
-
-
- 1,00
- 0,00
- 0,00
- 0,75
-
-
-
-
-
-
+
+
+ 1
+ 0
+ 0
+ 0.75
+
+
+
+ 560
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 560
- 180
- 0,00
- 160
- 0
-
-
- Player2
-
-
-
-
-
-
+
+ Player2
+
+
+ 560
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 560
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 560
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 882
- 180
- 0,00
- 160
- 220
-
-
- 0,00
- 1,00
- 0,00
- 0,75
-
-
-
-
-
-
+
+
+ 0
+ 1
+ 0
+ 0.75
+
+
+
+ 882
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 882
- 180
- 0,00
- 160
- 0
-
-
- Player3
-
-
-
-
-
-
+
+ Player3
+
+
+ 882
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 882
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 882
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 190
- 180
- 0,00
- 160
- 220
-
-
- 0,00
- 0,00
- 1,00
- 0,75
-
-
-
-
-
-
+
+
+ 0
+ 0
+ 1
+ 0.75
+
+
+
+ 190
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 190
- 180
- 0,00
- 160
- 0
-
-
- Player1
-
-
-
-
-
-
+
+ Player1
+
+
+ 190
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 190
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 190
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 422
- 180
- 0,00
- 160
- 220
-
-
- 1,00
- 0,00
- 0,00
- 0,75
-
-
-
-
-
-
+
+
+ 1
+ 0
+ 0
+ 0.75
+
+
+
+ 422
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 422
- 180
- 0,00
- 160
- 0
-
-
- Player2
-
-
-
-
-
-
+
+ Player2
+
+
+ 422
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 422
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 422
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 654
- 180
- 0,00
- 160
- 220
-
-
- 0,00
- 1,00
- 0,00
- 0,75
-
-
-
-
-
-
+
+
+ 0
+ 1
+ 0
+ 0.75
+
+
+
+ 654
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 654
- 180
- 0,00
- 160
- 0
-
-
- Player3
-
-
-
-
-
-
+
+ Player3
+
+
+ 654
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 654
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 654
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 886
- 180
- 0,00
- 160
- 220
-
-
- 0,50
- 0,00
- 1,00
- 0,75
-
-
-
-
-
-
+
+
+ 0.5
+ 0
+ 1
+ 0.75
+
+
+
+ 886
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 886
- 180
- 0,00
- 160
- 0
-
-
- Player4
-
-
-
-
-
-
+
+ Player4
+
+
+ 886
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 886
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 886
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 144
- 180
- 0,00
- 160
- 220
-
-
- 0,00
- 0,00
- 1,00
- 0,75
-
-
-
-
-
-
+
+
+ 0
+ 0
+ 1
+ 0.75
+
+
+
+ 144
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 144
- 180
- 0,00
- 160
- 0
-
-
- Player1
-
-
-
-
-
-
+
+ Player1
+
+
+ 144
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 144
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 144
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 352
- 180
- 0,00
- 160
- 220
-
-
- 1,00
- 0,00
- 0,00
- 0,75
-
-
-
-
-
-
+
+
+ 1
+ 0
+ 0
+ 0.75
+
+
+
+ 352
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 352
- 180
- 0,00
- 160
- 0
-
-
- Player2
-
-
-
-
-
-
+
+ Player2
+
+
+ 352
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 352
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 352
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 560
- 180
- 0,00
- 160
- 220
-
-
- 0,00
- 1,00
- 0,00
- 0,75
-
-
-
-
-
-
+
+
+ 0
+ 1
+ 0
+ 0.75
+
+
+
+ 560
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 560
- 180
- 0,00
- 160
- 0
-
-
- Player3
-
-
-
-
-
-
+
+ Player3
+
+
+ 560
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 560
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 560
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 768
- 180
- 0,00
- 160
- 220
-
-
- 0,50
- 0,00
- 1,00
- 0,75
-
-
-
-
-
-
+
+
+ 0.5
+ 0
+ 1
+ 0.75
+
+
+
+ 768
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 768
- 180
- 0,00
- 160
- 0
-
-
- Player4
-
-
-
-
-
-
+
+ Player4
+
+
+ 768
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 768
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 768
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 976
- 180
- 0,00
- 160
- 220
-
-
- 1,00
- 0,80
- 0,00
- 0,75
-
-
-
-
-
-
+
+
+ 1
+ 0.8
+ 0
+ 0.75
+
+
+
+ 976
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 976
- 180
- 0,00
- 160
- 0
-
-
- Player5
-
-
-
-
-
-
+
+ Player5
+
+
+ 976
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 976
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 976
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 45
- 180
- 0,00
- 160
- 220
-
-
- 0,00
- 0,00
- 1,00
- 0,75
-
-
-
-
-
-
+
+
+ 0
+ 0
+ 1
+ 0.75
+
+
+
+ 45
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 45
- 180
- 0,00
- 160
- 0
-
-
- Player1
-
-
-
-
-
-
+
+ Player1
+
+
+ 45
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 45
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 45
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 253
- 180
- 0,00
- 160
- 220
-
-
- 1,00
- 0,00
- 0,00
- 0,75
-
-
-
-
-
-
+
+
+ 1
+ 0
+ 0
+ 0.75
+
+
+
+ 253
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 253
- 180
- 0,00
- 160
- 0
-
-
- Player2
-
-
-
-
-
-
+
+ Player2
+
+
+ 253
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 253
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 253
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 461
- 180
- 0,00
- 160
- 220
-
-
- 0,00
- 1,00
- 0,00
- 0,75
-
-
-
-
-
-
+
+
+ 0
+ 1
+ 0
+ 0.75
+
+
+
+ 461
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 461
- 180
- 0,00
- 160
- 0
-
-
- Player3
-
-
-
-
-
-
+
+ Player3
+
+
+ 461
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 461
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 461
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 669
- 180
- 0,00
- 160
- 220
-
-
- 0,50
- 0,00
- 1,00
- 0,75
-
-
-
-
-
-
+
+
+ 0.5
+ 0
+ 1
+ 0.75
+
+
+
+ 669
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 669
- 180
- 0,00
- 160
- 0
-
-
- Player4
-
-
-
-
-
-
+
+ Player4
+
+
+ 669
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 669
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 669
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 877
- 180
- 0,00
- 160
- 220
-
-
- 1,00
- 0,80
- 0,00
- 0,75
-
-
-
-
-
-
+
+
+ 1
+ 0.8
+ 0
+ 0.75
+
+
+
+ 877
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 877
- 180
- 0,00
- 160
- 0
-
-
- Player5
-
-
-
-
-
-
+
+ Player5
+
+
+ 877
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 877
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 877
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
PointsBarBG
-
- 1085
- 180
- 0,00
- 160
- 220
-
-
- 1,00
- 0,00
- 0,50
- 0,75
-
-
-
-
-
-
+
+
+ 1
+ 0
+ 0.5
+ 0.75
+
+
+
+ 1085
+ 180
+ 160
+ 220
+ 0
+
+
+
+
PointsBar
-
- 1085
- 180
- 0,00
- 160
- 0
-
-
- Player6
-
-
-
-
-
-
+
+ Player6
+
+
+ 1085
+ 180
+ 160
+ 0
+ 0
+
+
+
+
-
- 1085
- 410
- 0,00
- 160
- 160
-
-
- Visible
-
-
-
-
- 15
+
+ Visible
+
+
+ 1085
+ 410
+ 160
+ 160
+ 0
+
+
40
+ 15
-
-
-
+
+
+
+
60
50
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENSCORE_SCORES
-
-
-
-
-
-
+
+
+
640
50
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
640
630
-
- 0,00
-
+ 0
44
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
640
142
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
640
107
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
640
670
-
- 0,00
-
+ 0
28
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
432
630
-
- 0,00
-
+ 0
44
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
432
142
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
432
107
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
432
670
-
- 0,00
-
+ 0
28
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
848
630
-
- 0,00
-
+ 0
44
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
848
142
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
848
107
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
858
670
-
- 0,00
-
+ 0
28
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
318
630
-
- 0,00
-
+ 0
44
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
318
142
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
318
107
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
318
670
-
- 0,00
-
+ 0
28
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
640
630
-
- 0,00
-
+ 0
44
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
640
142
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
640
107
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
640
670
-
- 0,00
-
+ 0
28
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
962
630
-
- 0,00
-
+ 0
44
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
962
142
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
962
107
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
962
670
-
- 0,00
-
+ 0
28
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
270
630
-
- 0,00
-
+ 0
44
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
270
142
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
270
107
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
270
670
-
- 0,00
-
+ 0
28
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
502
630
-
- 0,00
-
+ 0
44
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
502
142
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
502
107
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
502
670
-
- 0,00
-
+ 0
28
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
734
630
-
- 0,00
-
+ 0
44
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
734
142
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
734
107
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
734
670
-
- 0,00
-
+ 0
28
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
966
630
-
- 0,00
-
+ 0
44
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
966
142
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
966
107
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
966
670
-
- 0,00
-
+ 0
28
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
224
630
-
- 0,00
-
+ 0
44
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
224
142
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
224
107
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
224
670
-
- 0,00
-
+ 0
28
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
432
630
-
- 0,00
-
+ 0
44
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
432
142
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
432
107
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
432
670
-
- 0,00
-
+ 0
28
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
640
630
-
- 0,00
-
+ 0
44
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
640
142
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
640
107
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
640
670
-
- 0,00
-
+ 0
28
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
848
630
-
- 0,00
-
+ 0
44
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
848
142
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
848
107
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
848
670
-
- 0,00
-
+ 0
28
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1056
630
-
- 0,00
-
+ 0
44
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1056
142
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1056
107
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1056
670
-
- 0,00
-
+ 0
28
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
125
630
-
- 0,00
-
+ 0
44
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
125
142
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
125
107
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
125
670
-
- 0,00
-
+ 0
28
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
333
630
-
- 0,00
-
+ 0
44
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
333
142
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
333
107
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
333
670
-
- 0,00
-
+ 0
28
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
541
630
-
- 0,00
-
+ 0
44
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
541
142
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
541
107
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
541
670
-
- 0,00
-
+ 0
28
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
749
630
-
- 0,00
-
+ 0
44
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
749
142
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
749
107
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
749
670
-
- 0,00
-
+ 0
28
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
957
630
-
- 0,00
-
+ 0
44
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
957
142
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
957
107
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
957
670
-
- 0,00
-
+ 0
28
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1165
630
-
- 0,00
-
+ 0
44
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1165
142
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1165
107
-
- 0,00
-
+ 0
27
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1165
670
-
- 0,00
-
+ 0
28
-
160
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
- Int
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
7
-
-
-
Int
-
+
+
4
-
-
-
Int
-
+
+
4
-
-
-
- String
-
+ Int
+
+
Horizontal
-
-
-
\ No newline at end of file
+ String
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenSing.xml b/Output/Themes/Ambient/Screens/ScreenSing.xml
index 22342fca..1eb6b73e 100644
--- a/Output/Themes/Ambient/Screens/ScreenSing.xml
+++ b/Output/Themes/Ambient/Screens/ScreenSing.xml
@@ -1,2803 +1,2364 @@
-
-
-
+
+
+
+ ScreenSing
7
-
-
+
+
+
None
-
+
-
-
-
-
-
-
+
+
+ 0
+ 0
+ 0
+ 1
+
+
+
+
+
+
Score
-
- 190
- 10
- -1,00
- 900
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 190
+ 10
+ 900
+ 50
+ -1
+
+
+
+
Lyrics
-
- 40
- 600
- -0,75
- 1200
- 90
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 600
+ 1200
+ 90
+ -0.75
+
+
+
+
Lyrics
-
- 40
- 7
- -0,75
- 1200
- 93
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 7
+ 1200
+ 93
+ -0.75
+
+
+
+
Lyrics
-
- 40
- 7
- -0,75
- 1200
- 93
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 7
+ 1200
+ 93
+ -0.75
+
+
+
+
TimeBar
-
- 40
- 696
- -0,75
- 1200
- 21
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 40
+ 696
+ 1200
+ 21
+ -0.75
+
+
+
+
TimeLine
-
- 44
- 702
- -1,00
- 1090
- 10
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 44
+ 702
+ 1090
+ 10
+ -1
+
+
+
+
TimeLine
-
- 44
- 696
- -1,00
- 1090
- 9
-
-
- TimeBar
-
-
-
-
-
-
+
+ TimeBar
+
+
+ 44
+ 696
+ 1090
+ 9
+ -1
+
+
+
+
TimeLine
-
- 44
- 696
- -1,00
- 1090
- 9
-
-
- TimeBarSentence
-
-
-
-
-
-
+
+ TimeBarSentence
+
+
+ 44
+ 696
+ 1090
+ 9
+ -1
+
+
+
+
Pointer
-
- 44
- 702
- -1,25
- 2
- 10
-
-
- 0,00
- 0,00
- 0,00
- 1,00
-
-
-
-
-
-
+
+
+ 0
+ 0
+ 0
+ 1
+
+
+
+ 44
+ 702
+ 2
+ 10
+ -1.25
+
+
+
+
LyricHelper
-
- 40
- 600
- -1,00
- 45
- 45
-
-
- LyricHelper
-
-
-
-
-
-
+
+ LyricHelper
+
+
+ 40
+ 600
+ 45
+ 45
+ -1
+
+
+
+
LyricHelper
-
- 40
- 12
- -1,00
- 45
- 45
-
-
- LyricHelper
-
-
-
-
-
-
+
+ LyricHelper
+
+
+ 40
+ 12
+ 45
+ 45
+ -1
+
+
+
+
LyricHelper
-
- 40
- 12
- -1,00
- 45
- 45
-
-
- LyricHelper
-
-
-
-
-
-
+
+ LyricHelper
+
+
+ 40
+ 12
+ 45
+ 45
+ -1
+
+
+
+
PauseBG
-
- 0
- 0
- -2,10
- 1280
- 720
-
-
- Visible
-
-
-
-
-
-
+
+ Visible
+
+
+ 0
+ 0
+ 1280
+ 720
+ -2.1
+
+
+
+
Invisible
-
- 1150
- 350
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 1150
+ 350
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 40
- 360
- -0,75
- 190
- 190
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 40
+ 360
+ 190
+ 190
+ -0.75
+
+
+
+
Invisible
-
- 1150
- 150
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 1150
+ 150
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 40
- 160
- -0,75
- 165
- 165
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 40
+ 160
+ 165
+ 165
+ -0.75
+
+
+
+
Invisible
-
- 1150
- 350
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 1150
+ 350
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 40
- 360
- -0,75
- 165
- 165
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 40
+ 360
+ 165
+ 165
+ -0.75
+
+
+
+
Invisible
-
- 1150
- 10
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 1150
+ 10
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 40
- 111
- -0,75
- 140
- 140
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 40
+ 111
+ 140
+ 140
+ -0.75
+
+
+
+
Invisible
-
- 1150
- 210
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 1150
+ 210
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 40
- 274
- -0,75
- 140
- 140
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 40
+ 274
+ 140
+ 140
+ -0.75
+
+
+
+
Invisible
-
- 1150
- 410
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 1150
+ 410
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 40
- 442
- -0,75
- 140
- 140
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 40
+ 442
+ 140
+ 140
+ -0.75
+
+
+
+
Invisible
-
- 528
- 150
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 528
+ 150
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 40
- 160
- -0,75
- 165
- 165
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 40
+ 160
+ 165
+ 165
+ -0.75
+
+
+
+
Invisible
-
- 528
- 350
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 528
+ 350
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 40
- 360
- -0,75
- 165
- 165
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 40
+ 360
+ 165
+ 165
+ -0.75
+
+
+
+
Invisible
-
- 1150
- 150
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 1150
+ 150
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 1103
- 160
- -0,75
- 165
- 165
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 1103
+ 160
+ 165
+ 165
+ -0.75
+
+
+
+
Invisible
-
- 1150
- 350
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 1150
+ 350
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 1103
- 360
- -0,75
- 165
- 165
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 1103
+ 360
+ 165
+ 165
+ -0.75
+
+
+
+
Invisible
-
- 528
- 10
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 528
+ 10
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 40
- 111
- -0,75
- 140
- 140
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 40
+ 111
+ 140
+ 140
+ -0.75
+
+
+
+
Invisible
-
- 528
- 210
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 528
+ 210
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 40
- 274
- -0,75
- 140
- 140
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 40
+ 274
+ 140
+ 140
+ -0.75
+
+
+
+
Invisible
-
- 528
- 410
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 528
+ 410
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 40
- 442
- -0,75
- 140
- 140
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 40
+ 442
+ 140
+ 140
+ -0.75
+
+
+
+
Invisible
-
- 1150
- 150
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 1150
+ 150
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 1103
- 160
- -0,75
- 165
- 165
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 1103
+ 160
+ 165
+ 165
+ -0.75
+
+
+
+
Invisible
-
- 1150
- 350
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 1150
+ 350
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 1103
- 360
- -0,75
- 165
- 165
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 1103
+ 360
+ 165
+ 165
+ -0.75
+
+
+
+
Invisible
-
- 528
- 10
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 528
+ 10
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 40
- 111
- -0,75
- 140
- 140
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 40
+ 111
+ 140
+ 140
+ -0.75
+
+
+
+
Invisible
-
- 528
- 210
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 528
+ 210
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 40
- 274
- -0,75
- 140
- 140
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 40
+ 274
+ 140
+ 140
+ -0.75
+
+
+
+
Invisible
-
- 528
- 410
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 528
+ 410
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 40
- 442
- -0,75
- 140
- 140
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 40
+ 442
+ 140
+ 140
+ -0.75
+
+
+
+
Invisible
-
- 1150
- 10
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 1150
+ 10
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 1103
- 111
- -0,75
- 140
- 140
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 1103
+ 111
+ 140
+ 140
+ -0.75
+
+
+
+
Invisible
-
- 1150
- 210
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 1150
+ 210
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 1103
- 274
- -0,75
- 140
- 140
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 1103
+ 274
+ 140
+ 140
+ -0.75
+
+
+
+
Invisible
-
- 1150
- 410
- -0,75
- 100
- 50
-
-
- StaticColor
-
-
-
-
-
-
+
+ StaticColor
+
+
+ 1150
+ 410
+ 100
+ 50
+ -0.75
+
+
+
+
Invisible
-
- 1103
- 442
- -0,75
- 140
- 140
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ 1103
+ 442
+ 140
+ 140
+ -0.75
+
+
+
+
+
+
640
20
-
- -1,00
-
+ -1
27
-
880
-
-
- TextBlack
-
-
- TextBlack
-
+
+ TextBlack
+
+
+ TextBlack
+
Center
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
1214
697
-
- -1,00
-
+ -1
20
-
-
-
- TextWhite
-
-
- TextWhite
-
+ 0
+
+ TextWhite
+
+
+ TextWhite
+
Right
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
640
170
-
- -2,11
-
+ -2.11
90
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Normal
-
TR_SCREENSING_PAUSE
-
-
-
-
-
-
+
+
+
40
80
-
- -1,00
-
+ -1
30
-
-
-
- TextSColor
-
-
- TextSColor
-
+ 0
+
+ TextSColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
40
585
-
- -1,00
-
+ -1
30
-
-
-
- TextSColor
-
-
- TextSColor
-
+ 0
+
+ TextSColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
640
20
-
- -1,00
-
+ -1
27
-
-
-
- TextColor
-
-
- TextSColor
-
+ 0
+
+ TextColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1240
355
-
- -1,00
-
+ -1
198
-
-
-
- Player1Dim2
-
-
- TextSColor
-
+ 0
+
+ Player1Dim2
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
110
513
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- TextSColor
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1240
155
-
- -1,00
-
+ -1
173
-
-
-
- Player1Dim2
-
-
- Player1
-
+ 0
+
+ Player1Dim2
+
+
+ Player1
+
Right
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
110
288
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player1
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player1
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1240
355
-
- -1,00
-
+ -1
173
-
-
-
- Player2Dim2
-
-
- Player2
-
+ 0
+
+ Player2Dim2
+
+
+ Player2
+
Right
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
110
488
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player2
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player2
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1240
106
-
- -1,00
-
+ -1
148
-
-
-
- Player1Dim2
-
-
- Player1
-
+ 0
+
+ Player1Dim2
+
+
+ Player1
+
Right
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
110
219
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player1
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player1
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1240
269
-
- -1,00
-
+ -1
148
-
-
-
- Player2Dim2
-
-
- Player2
-
+ 0
+
+ Player2Dim2
+
+
+ Player2
+
Right
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
110
382
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player2
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player2
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1240
437
-
- -1,00
-
+ -1
148
-
-
-
- Player3Dim2
-
-
- Player3
-
+ 0
+
+ Player3Dim2
+
+
+ Player3
+
Right
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
110
550
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player3
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player3
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
324
155
-
- -1,00
-
+ -1
173
-
-
-
- Player1Dim2
-
-
- Player1
-
+ 0
+
+ Player1Dim2
+
+
+ Player1
+
Center
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
110
288
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player1
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player1
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
324
355
-
- -1,00
-
+ -1
173
-
-
-
- Player2Dim2
-
-
- Player2
-
+ 0
+
+ Player2Dim2
+
+
+ Player2
+
Center
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
110
488
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player2
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player2
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
967
155
-
- -1,00
-
+ -1
173
-
-
-
- Player3Dim2
-
-
- Player3
-
+ 0
+
+ Player3Dim2
+
+
+ Player3
+
Center
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
1173
288
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player3
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player3
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
967
355
-
- -1,00
-
+ -1
173
-
-
-
- Player4Dim2
-
-
- Player4
-
+ 0
+
+ Player4Dim2
+
+
+ Player4
+
Center
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
1173
488
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player4
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player4
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
324
106
-
- -1,00
-
+ -1
148
-
-
-
- Player1Dim2
-
-
- Player1
-
+ 0
+
+ Player1Dim2
+
+
+ Player1
+
Center
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
110
219
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player1
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player1
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
324
269
-
- -1,00
-
+ -1
148
-
-
-
- Player2Dim2
-
-
- Player2
-
+ 0
+
+ Player2Dim2
+
+
+ Player2
+
Center
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
110
382
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player2
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player2
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
324
437
-
- -1,00
-
+ -1
148
-
-
-
- Player3Dim2
-
-
- Player3
-
+ 0
+
+ Player3Dim2
+
+
+ Player3
+
Center
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
110
550
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player3
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player3
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
967
155
-
- -1,00
-
+ -1
173
-
-
-
- Player4Dim2
-
-
- Player4
-
+ 0
+
+ Player4Dim2
+
+
+ Player4
+
Center
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
1173
288
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player4
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player4
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
967
355
-
- -1,00
-
+ -1
173
-
-
-
- Player5Dim2
-
-
- Player5
-
+ 0
+
+ Player5Dim2
+
+
+ Player5
+
Center
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
1173
488
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player5
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player5
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
324
106
-
- -1,00
-
+ -1
148
-
-
-
- Player1Dim2
-
-
- Player1
-
+ 0
+
+ Player1Dim2
+
+
+ Player1
+
Center
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
110
219
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player1
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player1
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
324
269
-
- -1,00
-
+ -1
148
-
-
-
- Player2Dim2
-
-
- Player2
-
+ 0
+
+ Player2Dim2
+
+
+ Player2
+
Center
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
110
382
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player2
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player2
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
324
437
-
- -1,00
-
+ -1
148
-
-
-
- Player3Dim2
-
-
- Player3
-
+ 0
+
+ Player3Dim2
+
+
+ Player3
+
Center
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
110
550
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player3
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player3
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
967
106
-
- -1,00
-
+ -1
148
-
-
-
- Player4Dim2
-
-
- Player4
-
+ 0
+
+ Player4Dim2
+
+
+ Player4
+
Center
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
1173
219
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player4
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player4
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
967
269
-
- -1,00
-
+ -1
148
-
-
-
- Player5Dim2
-
-
- Player5
-
+ 0
+
+ Player5Dim2
+
+
+ Player5
+
Center
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
1173
382
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player5
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player5
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
967
437
-
- -1,00
-
+ -1
148
-
-
-
- Player6Dim2
-
-
- Player6
-
+ 0
+
+ Player6Dim2
+
+
+ Player6
+
Center
-
- Center
-
+ Center
-
Normal
-
-
-
-
-
-
-
+
+
+
1173
550
-
- -1,00
-
+ -1
28
-
-
-
- 1,00
- 1,00
- 1,00
- 0,40
-
-
- Player6
-
+ 0
+
+
+ 1
+ 1
+ 1
+ 0.4
+
+
+
+ Player6
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ 637
+ 600
+ 1200
+ 42
+ -1
+
+
+ LyricMainColor
+
+
+ LyricHighlight
+
+
+
+
+ 637
+ 642
+ 1200
+ 38
+ -1
+
+
+ LyricSubColor
+
+
+ LyricHighlight
+
+
+
+
+ 637
+ 12
+ 1200
+ 42
+ -1
+
+
+ LyricMainColor
+
+
+ LyricHighlight
+
+
+
+
+ 637
+ 54
+ 1200
+ 38
+ -1
+
+
+ LyricSubColor
+
+
+ LyricHighlight
+
+
+
+
+ 637
+ 12
+ 1200
+ 42
+ -1
+
+
+ LyricMainColor
+
+
+ LyricHighlight
+
+
+
+
+ 637
+ 54
+ 1200
+ 38
+ -1
+
+
+ LyricSubColor
+
+
+ LyricHighlight
+
+
+
+
+
+
NoteLeft
-
NoteMiddle
-
NoteRight
-
NoteBackgroundLeft
-
NoteBackgroundMiddle
-
NoteBackgroundRight
-
Star
-
ToneHelper
-
- PerfectNoteStar
-
-
-
+ PerfectNoteStar
- 35
- 350
- -1,50
- 1210
- 200
- 35
- 150
- -1,50
- 1210
- 175
- 35
- 350
- -1,50
- 1210
- 175
- 35
- 105
- -1,50
- 1210
- 150
- 35
- 268
- -1,50
- 1210
- 150
- 35
- 436
- -1,50
- 1210
- 150
- 35
- 150
- -1,50
- 578
- 175
- 35
- 350
- -1,50
- 578
- 175
- 678
- 150
- -1,50
- 578
- 175
- 678
- 350
- -1,50
- 578
- 175
- 35
- 105
- -1,50
- 578
- 150
- 35
- 268
- -1,50
- 578
- 150
- 35
- 436
- -1,50
- 578
- 150
- 678
- 150
- -1,50
- 578
- 175
- 678
- 350
- -1,50
- 578
- 175
- 35
- 105
- -1,50
- 578
- 150
- 35
- 268
- -1,50
- 578
- 150
- 35
- 436
- -1,50
- 578
- 150
- 678
- 105
- -1,50
- 578
- 150
- 678
- 268
- -1,50
- 578
- 150
- 678
- 436
- -1,50
- 578
- 150
+
+
+ 35
+ 350
+ 1210
+ 200
+ -1.5
+
+
+
+
+ 35
+ 150
+ 1210
+ 175
+ -1.5
+
+
+
+
+ 35
+ 350
+ 1210
+ 175
+ -1.5
+
+
+
+
+ 35
+ 105
+ 1210
+ 150
+ -1.5
+
+
+
+
+ 35
+ 268
+ 1210
+ 150
+ -1.5
+
+
+
+
+ 35
+ 436
+ 1210
+ 150
+ -1.5
+
+
+
+
+ 35
+ 150
+ 578
+ 175
+ -1.5
+
+
+
+
+ 35
+ 350
+ 578
+ 175
+ -1.5
+
+
+
+
+ 678
+ 150
+ 578
+ 175
+ -1.5
+
+
+
+
+ 678
+ 350
+ 578
+ 175
+ -1.5
+
+
+
+
+ 35
+ 105
+ 578
+ 150
+ -1.5
+
+
+
+
+ 35
+ 268
+ 578
+ 150
+ -1.5
+
+
+
+
+ 35
+ 436
+ 578
+ 150
+ -1.5
+
+
+
+
+ 678
+ 150
+ 578
+ 175
+ -1.5
+
+
+
+
+ 678
+ 350
+ 578
+ 175
+ -1.5
+
+
+
+
+ 35
+ 105
+ 578
+ 150
+ -1.5
+
+
+
+
+ 35
+ 268
+ 578
+ 150
+ -1.5
+
+
+
+
+ 35
+ 436
+ 578
+ 150
+ -1.5
+
+
+
+
+ 678
+ 105
+ 578
+ 150
+ -1.5
+
+
+
+
+ 678
+ 268
+ 578
+ 150
+ -1.5
+
+
+
+
+ 678
+ 436
+ 578
+ 150
+ -1.5
+
+
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenSong.xml b/Output/Themes/Ambient/Screens/ScreenSong.xml
index b23661d3..056977e5 100644
--- a/Output/Themes/Ambient/Screens/ScreenSong.xml
+++ b/Output/Themes/Ambient/Screens/ScreenSong.xml
@@ -1,2215 +1,1733 @@
-
-
-
+
+
+
+ ScreenSong
5
-
-
+
+
+
Video
-
+
-
BG_Default
-
-
- BackgroundColor
-
-
-
+
+ BackgroundColor
+
+
+
+
+
SongMenu
-
- 40
- 600
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
- 10
+
+ StaticColor
+
+
+ 40
+ 600
+ 1200
+ 50
+ 0
+
+
26
+ 10
-
-
-
+
+
Menu
-
- 40
- 600
- 0,00
- 1200
- 50
-
-
- StaticColor
-
-
-
-
- 10
+
+ StaticColor
+
+
+ 40
+ 600
+ 1200
+ 50
+ 0
+
+
26
+ 10
-
-
-
+
+
SongMenuBG
-
- 40
- 40
- -2,10
- 360
- 360
-
-
- 1,00
- 1,00
- 1,00
- 1,00
-
-
-
-
-
-
+
+
+ 1
+ 1
+ 1
+ 1
+
+
+
+ 40
+ 40
+ 360
+ 360
+ -2.1
+
+
+
+
+
+
1070
65
-
- -2,11
-
+ -2.11
42
-
350
-
-
- Player1
-
-
- Player1
-
+
+ Player1
+
+
+ Player1
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1070
135
-
- -2,11
-
+ -2.11
42
-
350
-
-
- Player2
-
-
- Player2
-
+
+ Player2
+
+
+ Player2
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1070
205
-
- -2,11
-
+ -2.11
42
-
350
-
-
- Player3
-
-
- Player3
-
+
+ Player3
+
+
+ Player3
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1070
275
-
- -2,11
-
+ -2.11
42
-
350
-
-
- Player4
-
-
- Player4
-
+
+ Player4
+
+
+ Player4
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1070
345
-
- -2,11
-
+ -2.11
42
-
350
-
-
- Player5
-
-
- Player5
-
+
+ Player5
+
+
+ Player5
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
1070
415
-
- -2,11
-
+ -2.11
42
-
350
-
-
- Player6
-
-
- Player6
-
+
+ Player6
+
+
+ Player6
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
220
612
-
- 0,00
-
+ 0
27
-
340
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
- 24
+
26
+ 24
-
-
-
+
+
825
612
-
- 0,00
-
+ 0
27
-
830
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
- 24
+
26
+ 24
-
-
-
+
+
400
612
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Right
-
- Center
-
+ Center
-
Outline
-
TR_SCREENSONG_SEARCH
-
-
-
-
-
-
+
+
+
410
612
-
- 0,00
-
+ 0
27
-
-
-
- StaticColor
-
-
- TextSColor
-
+ 0
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
-
-
-
-
-
-
+
+
+
220
47
-
- -2,11
-
+ -2.11
34
-
350
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
TR_SCREENSONG_SONGOPTIONS
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
CoverTile
-
CoverBackground
-
DuetIcon
-
VideoIcon
-
MedleyCalcIcon
-
MedleyTagIcon
-
-
- 1,00
- 1,00
- 1,00
- 0,20
-
+
+
+ 1
+ 1
+ 1
+ 0.2
+
+
-
6
-
4
-
- 10,00
-
- 10,00
-
4
-
4
-
- 410
- 40
- -1,00
- 830
- 550
-
- 410
- 40
- -1,00
- 550
- 550
-
-
+ 10
+ 10
+
+ 410
+ 40
+ 830
+ 550
+ -1
+
+
+ 410
+ 40
+ 550
+ 550
+ -1
+
+
222
416
-
- -1,01
-
+ -1.01
39
-
340
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Top
-
Outline
-
-
-
-
+
-
-
+
222
456
-
- -1,01
-
+ -1.01
32
-
340
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Top
-
Outline
-
-
-
-
+
-
-
+
222
490
-
- -1,01
-
+ -1.01
28
-
340
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Center
-
- Center
-
+ Top
-
Outline
-
-
-
-
+
-
-
+
CoverBackground
-
- 40
- 40
- -1,00
- 360
- 360
-
-
- Visible
-
-
-
+
+ Visible
+
+
+ 40
+ 40
+ 360
+ 360
+ -1
+
+
-
-
+
CoverBackground
-
- 40
- 40
- -1,00
- 360
- 550
-
-
- StaticColor
-
-
-
+
+ StaticColor
+
+
+ 40
+ 40
+ 360
+ 550
+ -1
+
+
-
-
+
DuetIcon
-
- 200
- 530
- -1,00
- 40
- 40
-
-
- StaticColor
-
-
-
+
+ StaticColor
+
+
+ 200
+ 530
+ 40
+ 40
+ -1
+
+
-
-
+
VideoIcon
-
- 120
- 530
- -1,00
- 40
- 40
-
-
- StaticColor
-
-
-
+
+ StaticColor
+
+
+ 120
+ 530
+ 40
+ 40
+ -1
+
+
-
-
+
MedleyCalcIcon
-
- 280
- 530
- -1,00
- 40
- 40
-
-
- StaticColor
-
-
-
+
+ StaticColor
+
+
+ 280
+ 530
+ 40
+ 40
+ -1
+
+
-
-
+
MedleyTagIcon
-
- 280
- 530
- -1,00
- 40
- 40
-
-
- StaticColor
-
-
-
+
+ StaticColor
+
+
+ 280
+ 530
+ 40
+ 40
+ -1
+
+
-
-
- 970
- 80
- -0,90
- 295
- 460
- 50,00
-
+
+
+
+
+ Button
+ SelectSlideArrowLeft
+ SelectSlideArrowRight
+ SelectSlide
+ SelectSlideArrowLeft
+ SelectSlideArrowRight
+ SelectSlide
+
+ 40
+ 135
+ 360
+ 40
+ -2.11
+
+
+ 45
+ 140
+ 30
+ 30
+ -2.12
+
+
+ 365
+ 140
+ 30
+ 30
+ -2.12
+
+
+ ButtonColor
+
+
+ ButtonSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 25
+ 0
+ 0
+ 280
+ Outline
+ Bold
+ 1
+
+
+ Button
+ SelectSlideArrowLeft
+ SelectSlideArrowRight
+ SelectSlide
+ SelectSlideArrowLeft
+ SelectSlideArrowRight
+ SelectSlide
+
+ 40
+ 190
+ 360
+ 40
+ -2.11
+
+
+ 45
+ 195
+ 30
+ 30
+ -2.12
+
+
+ 365
+ 195
+ 30
+ 30
+ -2.12
+
+
+ ButtonColor
+
+
+ ButtonSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 25
+ 0
+ 0
+ 280
+ Outline
+ Bold
+ 1
+
+
+ Button
+ SelectSlideArrowLeft
+ SelectSlideArrowRight
+ SelectSlide
+ SelectSlideArrowLeft
+ SelectSlideArrowRight
+ SelectSlide
+
+ 40
+ 180
+ 360
+ 40
+ -2.11
+
+
+ 45
+ 190
+ 30
+ 30
+ -2.12
+
+
+ 365
+ 190
+ 30
+ 30
+ -2.12
+
+
+ ButtonColor
+
+
+ ButtonSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 25
+ 0
+ 0
+ 280
+ Outline
+ Bold
+ 1
+
+
+ Button
+ SelectSlideArrowLeft
+ SelectSlideArrowRight
+ SelectSlide
+ SelectSlideArrowLeft
+ SelectSlideArrowRight
+ SelectSlide
+
+ 40
+ 90
+ 360
+ 40
+ -2.11
+
+
+ 45
+ 100
+ 30
+ 30
+ -2.12
+
+
+ 365
+ 100
+ 30
+ 30
+ -2.12
+
+
+ ButtonColor
+
+
+ ButtonSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 25
+ 0
+ 0
+ 280
+ Outline
+ Bold
+ 3
+
+
+
+
+
+
+
+
+ 970
+ 80
+ 295
+ 460
+ -0.9
+
+ 50
CoverTile
-
CoverTile
-
-
- StaticColorAlpha
-
-
- StaticColor
-
-
-
-
+
+ StaticColorAlpha
+
+
+ StaticColor
+
+
54
5
-
- -1,01
-
+ -1.01
22
-
235
-
-
- StaticColor
-
-
- TextSColor
-
+
+ StaticColor
+
+
+ TextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
TR_SCREENSONG_ARTIST_TITLE
-
-
-
-
-
-
- Menu
-
- 970
- 550
- -1,00
- 295
- 40
-
-
- StaticColor
-
-
-
-
-
-
- Menu
-
- 970
- 40
- -1,00
- 295
- 40
-
-
- StaticColor
-
-
-
-
-
-
+
+
+
-
- 4
- 2
- -1,00
- 46
- 46
-
-
- Visible
-
-
-
+
+ Visible
+
+
+ 4
+ 2
+ 46
+ 46
+ -1
+
+
-
-
- Button
-
- SelectSlideArrowLeft
-
- SelectSlideArrowRight
-
-
-
- SelectSlideArrowLeft
-
- SelectSlideArrowRight
-
-
-
- 0
- 28
- -1,01
- 293
- 24
-
- 54
- 30
- -1,02
- 20
- 20
-
- 271
- 30
- -1,02
- 20
- 20
-
-
- ButtonColor
-
-
- ButtonSColor
-
-
- SelectSlideHColor
-
-
- ArrowColor
-
-
- ArrowSColor
-
-
- TextColor
-
-
- TextSColor
-
- 22,00
-
- 25,00
-
-
- 230,00
-
- Outline
-
- Bold
-
- 1
-
-
-
+
+ Menu
+
+ StaticColor
+
+
+ 970
+ 40
+ 295
+ 40
+ -1
+
+
+
+
+ Menu
+
+ StaticColor
+
+
+ 970
+ 550
+ 295
+ 40
+ -1
+
+
+
+
Invisible
-
Invisible
-
- 975
- 45
- -1,01
- 220
- 25
-
-
- ButtonColor
-
-
- ButtonSColor
-
-
+
+ 975
+ 45
+ 220
+ 25
+ -1.01
+
+
+ ButtonColor
+
+
+ ButtonSColor
+
+
0
0
-
+ 0
25
-
220
-
-
- ButtonTextColor
-
-
- ButtonTextSColor
-
+
+ ButtonTextColor
+
+
+ ButtonTextSColor
+
Left
-
- Center
-
+ Center
-
Outline
-
+
-
-
-
-
-
-
+ false
+
+
-
-
+
CloseIcon
-
CloseIcon
-
- 1215
- 42
- -1,01
- 35
- 35
-
-
- ButtonColor
-
-
- ButtonSColor
-
-
+
+ 1215
+ 42
+ 35
+ 35
+ -1.01
+
+
+ ButtonColor
+
+
+ ButtonSColor
+
+
180
7
-
+ 0
25
-
350
-
-
- ButtonTextColor
-
-
- ButtonTextSColor
-
+
+ ButtonTextColor
+
+
+ ButtonTextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
+
-
-
-
-
-
-
+ false
+
+
-
-
- DeleteIcon
-
- DeleteIcon
-
- 1215
- 553
- -1,01
- 35
- 35
-
-
- ButtonColor
-
-
- ButtonSColor
-
-
- 180
- 5
-
- 25
-
- 350
-
-
- ButtonTextColor
-
-
- ButtonTextSColor
-
- Center
-
- Center
-
-
-
- Outline
-
-
-
-
-
-
-
-
-
-
-
-
+
SaveIcon
-
SaveIcon
-
- 1175
- 553
- -1,01
- 35
- 35
-
-
- ButtonColor
-
-
- ButtonSColor
-
-
+
+ 1175
+ 553
+ 35
+ 35
+ -1.01
+
+
+ ButtonColor
+
+
+ ButtonSColor
+
+
180
5
-
+ 0
25
-
350
-
-
- ButtonTextColor
-
-
- ButtonTextSColor
-
+
+ ButtonTextColor
+
+
+ ButtonTextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
+
-
-
-
-
-
-
+ false
+
+
-
-
- SingIcon
-
- SingIcon
-
- 975
- 553
- -1,01
- 35
- 35
-
-
- ButtonColor
-
-
- ButtonSColor
-
-
+
+ DeleteIcon
+ DeleteIcon
+
+ 1215
+ 553
+ 35
+ 35
+ -1.01
+
+
+ ButtonColor
+
+
+ ButtonSColor
+
+
180
5
-
+ 0
25
-
350
-
-
- ButtonTextColor
-
-
- ButtonTextSColor
-
+
+ ButtonTextColor
+
+
+ ButtonTextSColor
+
Center
-
- Center
-
+ Center
-
Outline
-
+
-
-
-
-
-
-
+ false
+
+
+
+
+ SingIcon
+ SingIcon
+
+ 975
+ 553
+ 35
+ 35
+ -1.01
+
+
+ ButtonColor
+
+
+ ButtonSColor
+
+
+ 180
+ 5
+ 0
+ 25
+ 350
+
+ ButtonTextColor
+
+
+ ButtonTextSColor
+
+ Center
+ Center
+
+ Outline
+
+
+
+ false
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ Normal
+ 0
+
-
-
\ No newline at end of file
+
+
+
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenTest.xml b/Output/Themes/Ambient/Screens/ScreenTest.xml
index 2137eab8..1f3ecc85 100644
--- a/Output/Themes/Ambient/Screens/ScreenTest.xml
+++ b/Output/Themes/Ambient/Screens/ScreenTest.xml
@@ -1,17 +1,23 @@
-
-
+
+
+ ScreenTest
1
-
-
- Video
-
-
-
- BG_Default
-
-
- BackgroundColor
-
-
-
\ No newline at end of file
+
+
+
+ None
+
+
+
+
+
+ 0
+ 0
+ 0
+ 1
+
+
+
+
+
diff --git a/Output/Themes/Ambient/Skin Blue.xml b/Output/Themes/Ambient/Skin Blue.xml
index 34cff336..bba00650 100644
--- a/Output/Themes/Ambient/Skin Blue.xml
+++ b/Output/Themes/Ambient/Skin Blue.xml
@@ -140,7 +140,7 @@
0,675
0,890
0,969
- 1,000
+ 0,600
0,675
@@ -227,9 +227,9 @@
1,000
- 0,000
- 0,000
- 0,000
+ 1,000
+ 1,000
+ 1,000
1,000
diff --git a/Output/Themes/Ambient/Skin Green.xml b/Output/Themes/Ambient/Skin Green.xml
index 868a0b0f..5b1b4d5f 100644
--- a/Output/Themes/Ambient/Skin Green.xml
+++ b/Output/Themes/Ambient/Skin Green.xml
@@ -140,7 +140,7 @@
0,709
0,968
0,674
- 1,000
+ 0,600
0,709
@@ -221,9 +221,9 @@
1,000
- 0,000
- 0,000
- 0,000
+ 1,000
+ 1,000
+ 1,000
1,000
diff --git a/Output/Themes/Ambient/Skin Red.xml b/Output/Themes/Ambient/Skin Red.xml
index a0929c67..50f1eecc 100644
--- a/Output/Themes/Ambient/Skin Red.xml
+++ b/Output/Themes/Ambient/Skin Red.xml
@@ -140,7 +140,7 @@
0,968
0,674
0,674
- 1,000
+ 0,600
0,968
@@ -221,9 +221,9 @@
1,000
- 0,000
- 0,000
- 0,000
+ 1,000
+ 1,000
+ 1,000
1,000
diff --git a/Output/Themes/Ambient/Skin Yellow.xml b/Output/Themes/Ambient/Skin Yellow.xml
index 141050a2..9dd57a3b 100644
--- a/Output/Themes/Ambient/Skin Yellow.xml
+++ b/Output/Themes/Ambient/Skin Yellow.xml
@@ -140,7 +140,7 @@
0,968
0,956
0,674
- 1,000
+ 0,600
0,968
@@ -221,9 +221,9 @@
1,000
- 0,000
- 0,000
- 0,000
+ 1,000
+ 1,000
+ 1,000
1,000
diff --git a/Output/Themes/Changelog/Changelog_ScreenMain.txt b/Output/Themes/Changelog/Changelog_ScreenMain.txt
new file mode 100644
index 00000000..b3eb3bb7
--- /dev/null
+++ b/Output/Themes/Changelog/Changelog_ScreenMain.txt
@@ -0,0 +1,10 @@
+SceenMain
+
+++++++++++
+Version 2:
+
+Add:
+
+
+
+
diff --git a/Output/glib-sharp.dll b/Output/glib-sharp.dll
index 2c5c288e..a4e18a6f 100644
Binary files a/Output/glib-sharp.dll and b/Output/glib-sharp.dll differ
diff --git a/Output/gstreamer-sharp.dll b/Output/gstreamer-sharp.dll
index 02c667ac..42183595 100644
Binary files a/Output/gstreamer-sharp.dll and b/Output/gstreamer-sharp.dll differ
diff --git a/Output/x64/gstreamer/libFLAC-8.dll b/Output/x64/gstreamer/libFLAC-8.dll
deleted file mode 100644
index a1a1c256..00000000
Binary files a/Output/x64/gstreamer/libFLAC-8.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/liba52-0.dll b/Output/x64/gstreamer/liba52-0.dll
deleted file mode 100644
index 6dfdbb94..00000000
Binary files a/Output/x64/gstreamer/liba52-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libass-4.dll b/Output/x64/gstreamer/libass-4.dll
deleted file mode 100644
index b3cc88b0..00000000
Binary files a/Output/x64/gstreamer/libass-4.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libbz2.dll b/Output/x64/gstreamer/libbz2.dll
deleted file mode 100644
index ee820481..00000000
Binary files a/Output/x64/gstreamer/libbz2.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libcairo-2.dll b/Output/x64/gstreamer/libcairo-2.dll
deleted file mode 100644
index 87965c8e..00000000
Binary files a/Output/x64/gstreamer/libcairo-2.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libcairo-gobject-2.dll b/Output/x64/gstreamer/libcairo-gobject-2.dll
deleted file mode 100644
index e9aae569..00000000
Binary files a/Output/x64/gstreamer/libcairo-gobject-2.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libcairo-script-interpreter-2.dll b/Output/x64/gstreamer/libcairo-script-interpreter-2.dll
deleted file mode 100644
index 8ddf3911..00000000
Binary files a/Output/x64/gstreamer/libcairo-script-interpreter-2.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libcharset-1.dll b/Output/x64/gstreamer/libcharset-1.dll
deleted file mode 100644
index af20e572..00000000
Binary files a/Output/x64/gstreamer/libcharset-1.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libdca-0.dll b/Output/x64/gstreamer/libdca-0.dll
deleted file mode 100644
index f3077d4c..00000000
Binary files a/Output/x64/gstreamer/libdca-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libdv-4.dll b/Output/x64/gstreamer/libdv-4.dll
deleted file mode 100644
index de42c8eb..00000000
Binary files a/Output/x64/gstreamer/libdv-4.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libdvdnav-4.dll b/Output/x64/gstreamer/libdvdnav-4.dll
deleted file mode 100644
index 78d701c0..00000000
Binary files a/Output/x64/gstreamer/libdvdnav-4.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libdvdnavmini-4.dll b/Output/x64/gstreamer/libdvdnavmini-4.dll
deleted file mode 100644
index d94459aa..00000000
Binary files a/Output/x64/gstreamer/libdvdnavmini-4.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libdvdread-4.dll b/Output/x64/gstreamer/libdvdread-4.dll
deleted file mode 100644
index dd80070f..00000000
Binary files a/Output/x64/gstreamer/libdvdread-4.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libexpat-1.dll b/Output/x64/gstreamer/libexpat-1.dll
deleted file mode 100644
index 7b425c4d..00000000
Binary files a/Output/x64/gstreamer/libexpat-1.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libfaad-2.dll b/Output/x64/gstreamer/libfaad-2.dll
deleted file mode 100644
index ac9a9fc5..00000000
Binary files a/Output/x64/gstreamer/libfaad-2.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libffi-6.dll b/Output/x64/gstreamer/libffi-6.dll
deleted file mode 100644
index 207ef431..00000000
Binary files a/Output/x64/gstreamer/libffi-6.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libfontconfig-1.dll b/Output/x64/gstreamer/libfontconfig-1.dll
deleted file mode 100644
index 7230751d..00000000
Binary files a/Output/x64/gstreamer/libfontconfig-1.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libfreetype-6.dll b/Output/x64/gstreamer/libfreetype-6.dll
deleted file mode 100644
index c2c2e4f9..00000000
Binary files a/Output/x64/gstreamer/libfreetype-6.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libfribidi-0.dll b/Output/x64/gstreamer/libfribidi-0.dll
deleted file mode 100644
index e484d1b5..00000000
Binary files a/Output/x64/gstreamer/libfribidi-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgcc_s_sjlj-1.dll b/Output/x64/gstreamer/libgcc_s_sjlj-1.dll
deleted file mode 100644
index c03ac645..00000000
Binary files a/Output/x64/gstreamer/libgcc_s_sjlj-1.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgdk_pixbuf-2.0-0.dll b/Output/x64/gstreamer/libgdk_pixbuf-2.0-0.dll
deleted file mode 100644
index 5120d9df..00000000
Binary files a/Output/x64/gstreamer/libgdk_pixbuf-2.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgio-2.0-0.dll b/Output/x64/gstreamer/libgio-2.0-0.dll
deleted file mode 100644
index 8e0b6729..00000000
Binary files a/Output/x64/gstreamer/libgio-2.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgiognutls.dll b/Output/x64/gstreamer/libgiognutls.dll
deleted file mode 100644
index e9a13da7..00000000
Binary files a/Output/x64/gstreamer/libgiognutls.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libglib-2.0-0.dll b/Output/x64/gstreamer/libglib-2.0-0.dll
deleted file mode 100644
index b3e095c8..00000000
Binary files a/Output/x64/gstreamer/libglib-2.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgmodule-2.0-0.dll b/Output/x64/gstreamer/libgmodule-2.0-0.dll
deleted file mode 100644
index 8b0889c2..00000000
Binary files a/Output/x64/gstreamer/libgmodule-2.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgnutls-28.dll b/Output/x64/gstreamer/libgnutls-28.dll
deleted file mode 100644
index 7bc8d264..00000000
Binary files a/Output/x64/gstreamer/libgnutls-28.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgnutls-openssl-27.dll b/Output/x64/gstreamer/libgnutls-openssl-27.dll
deleted file mode 100644
index 0f1f8444..00000000
Binary files a/Output/x64/gstreamer/libgnutls-openssl-27.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgnutlsxx-28.dll b/Output/x64/gstreamer/libgnutlsxx-28.dll
deleted file mode 100644
index 3b661f06..00000000
Binary files a/Output/x64/gstreamer/libgnutlsxx-28.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgobject-2.0-0.dll b/Output/x64/gstreamer/libgobject-2.0-0.dll
deleted file mode 100644
index 6adac242..00000000
Binary files a/Output/x64/gstreamer/libgobject-2.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgomp-1.dll b/Output/x64/gstreamer/libgomp-1.dll
deleted file mode 100644
index bfdef6d9..00000000
Binary files a/Output/x64/gstreamer/libgomp-1.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgsta52dec.dll b/Output/x64/gstreamer/libgsta52dec.dll
deleted file mode 100644
index bbf77d25..00000000
Binary files a/Output/x64/gstreamer/libgsta52dec.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstadder.dll b/Output/x64/gstreamer/libgstadder.dll
deleted file mode 100644
index fe87b9ea..00000000
Binary files a/Output/x64/gstreamer/libgstadder.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstadpcmdec.dll b/Output/x64/gstreamer/libgstadpcmdec.dll
deleted file mode 100644
index ed1e8670..00000000
Binary files a/Output/x64/gstreamer/libgstadpcmdec.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstadpcmenc.dll b/Output/x64/gstreamer/libgstadpcmenc.dll
deleted file mode 100644
index 763c14bc..00000000
Binary files a/Output/x64/gstreamer/libgstadpcmenc.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstalaw.dll b/Output/x64/gstreamer/libgstalaw.dll
deleted file mode 100644
index b906db09..00000000
Binary files a/Output/x64/gstreamer/libgstalaw.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstalpha.dll b/Output/x64/gstreamer/libgstalpha.dll
deleted file mode 100644
index c9da4e42..00000000
Binary files a/Output/x64/gstreamer/libgstalpha.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstalphacolor.dll b/Output/x64/gstreamer/libgstalphacolor.dll
deleted file mode 100644
index 827b5485..00000000
Binary files a/Output/x64/gstreamer/libgstalphacolor.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstamrnb.dll b/Output/x64/gstreamer/libgstamrnb.dll
deleted file mode 100644
index cf179595..00000000
Binary files a/Output/x64/gstreamer/libgstamrnb.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstamrwbdec.dll b/Output/x64/gstreamer/libgstamrwbdec.dll
deleted file mode 100644
index 199030f8..00000000
Binary files a/Output/x64/gstreamer/libgstamrwbdec.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstapetag.dll b/Output/x64/gstreamer/libgstapetag.dll
deleted file mode 100644
index f3c3c7ab..00000000
Binary files a/Output/x64/gstreamer/libgstapetag.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstapp-1.0-0.dll b/Output/x64/gstreamer/libgstapp-1.0-0.dll
deleted file mode 100644
index 3888aef7..00000000
Binary files a/Output/x64/gstreamer/libgstapp-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstapp.dll b/Output/x64/gstreamer/libgstapp.dll
deleted file mode 100644
index ceee5341..00000000
Binary files a/Output/x64/gstreamer/libgstapp.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstasf.dll b/Output/x64/gstreamer/libgstasf.dll
deleted file mode 100644
index 18a6d28f..00000000
Binary files a/Output/x64/gstreamer/libgstasf.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstasfmux.dll b/Output/x64/gstreamer/libgstasfmux.dll
deleted file mode 100644
index 28428ad8..00000000
Binary files a/Output/x64/gstreamer/libgstasfmux.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstassrender.dll b/Output/x64/gstreamer/libgstassrender.dll
deleted file mode 100644
index f6788bb1..00000000
Binary files a/Output/x64/gstreamer/libgstassrender.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstaudio-1.0-0.dll b/Output/x64/gstreamer/libgstaudio-1.0-0.dll
deleted file mode 100644
index 24f14d8c..00000000
Binary files a/Output/x64/gstreamer/libgstaudio-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstaudioconvert.dll b/Output/x64/gstreamer/libgstaudioconvert.dll
deleted file mode 100644
index ae4eb2cc..00000000
Binary files a/Output/x64/gstreamer/libgstaudioconvert.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstaudiofx.dll b/Output/x64/gstreamer/libgstaudiofx.dll
deleted file mode 100644
index 0feadf81..00000000
Binary files a/Output/x64/gstreamer/libgstaudiofx.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstaudioparsers.dll b/Output/x64/gstreamer/libgstaudioparsers.dll
deleted file mode 100644
index 01f0e4df..00000000
Binary files a/Output/x64/gstreamer/libgstaudioparsers.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstaudiorate.dll b/Output/x64/gstreamer/libgstaudiorate.dll
deleted file mode 100644
index f39f6e93..00000000
Binary files a/Output/x64/gstreamer/libgstaudiorate.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstaudioresample.dll b/Output/x64/gstreamer/libgstaudioresample.dll
deleted file mode 100644
index 304c7c9b..00000000
Binary files a/Output/x64/gstreamer/libgstaudioresample.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstaudiotestsrc.dll b/Output/x64/gstreamer/libgstaudiotestsrc.dll
deleted file mode 100644
index df012974..00000000
Binary files a/Output/x64/gstreamer/libgstaudiotestsrc.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstaudiovisualizers.dll b/Output/x64/gstreamer/libgstaudiovisualizers.dll
deleted file mode 100644
index fe0e4b17..00000000
Binary files a/Output/x64/gstreamer/libgstaudiovisualizers.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstauparse.dll b/Output/x64/gstreamer/libgstauparse.dll
deleted file mode 100644
index 521252a7..00000000
Binary files a/Output/x64/gstreamer/libgstauparse.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstautoconvert.dll b/Output/x64/gstreamer/libgstautoconvert.dll
deleted file mode 100644
index 345816ab..00000000
Binary files a/Output/x64/gstreamer/libgstautoconvert.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstautodetect.dll b/Output/x64/gstreamer/libgstautodetect.dll
deleted file mode 100644
index c36c6bdf..00000000
Binary files a/Output/x64/gstreamer/libgstautodetect.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstavi.dll b/Output/x64/gstreamer/libgstavi.dll
deleted file mode 100644
index 110cd16d..00000000
Binary files a/Output/x64/gstreamer/libgstavi.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstbase-1.0-0.dll b/Output/x64/gstreamer/libgstbase-1.0-0.dll
deleted file mode 100644
index 61c901b2..00000000
Binary files a/Output/x64/gstreamer/libgstbase-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstbasecamerabinsrc-1.0-0.dll b/Output/x64/gstreamer/libgstbasecamerabinsrc-1.0-0.dll
deleted file mode 100644
index 98613355..00000000
Binary files a/Output/x64/gstreamer/libgstbasecamerabinsrc-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstbayer.dll b/Output/x64/gstreamer/libgstbayer.dll
deleted file mode 100644
index 2b974151..00000000
Binary files a/Output/x64/gstreamer/libgstbayer.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstcairo.dll b/Output/x64/gstreamer/libgstcairo.dll
deleted file mode 100644
index 7ae8c9f5..00000000
Binary files a/Output/x64/gstreamer/libgstcairo.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstcamerabin2.dll b/Output/x64/gstreamer/libgstcamerabin2.dll
deleted file mode 100644
index 81f288ae..00000000
Binary files a/Output/x64/gstreamer/libgstcamerabin2.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstcodecparsers-1.0-0.dll b/Output/x64/gstreamer/libgstcodecparsers-1.0-0.dll
deleted file mode 100644
index 93717faa..00000000
Binary files a/Output/x64/gstreamer/libgstcodecparsers-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstcoloreffects.dll b/Output/x64/gstreamer/libgstcoloreffects.dll
deleted file mode 100644
index da9fdf91..00000000
Binary files a/Output/x64/gstreamer/libgstcoloreffects.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstcontroller-1.0-0.dll b/Output/x64/gstreamer/libgstcontroller-1.0-0.dll
deleted file mode 100644
index 9f378cde..00000000
Binary files a/Output/x64/gstreamer/libgstcontroller-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstcoreelements.dll b/Output/x64/gstreamer/libgstcoreelements.dll
deleted file mode 100644
index 53071c00..00000000
Binary files a/Output/x64/gstreamer/libgstcoreelements.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstcutter.dll b/Output/x64/gstreamer/libgstcutter.dll
deleted file mode 100644
index 3284d684..00000000
Binary files a/Output/x64/gstreamer/libgstcutter.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstd3dvideosink.dll b/Output/x64/gstreamer/libgstd3dvideosink.dll
deleted file mode 100644
index a256c1b2..00000000
Binary files a/Output/x64/gstreamer/libgstd3dvideosink.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstdataurisrc.dll b/Output/x64/gstreamer/libgstdataurisrc.dll
deleted file mode 100644
index 23f7cc17..00000000
Binary files a/Output/x64/gstreamer/libgstdataurisrc.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstdebug.dll b/Output/x64/gstreamer/libgstdebug.dll
deleted file mode 100644
index 5e57d929..00000000
Binary files a/Output/x64/gstreamer/libgstdebug.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstdeinterlace.dll b/Output/x64/gstreamer/libgstdeinterlace.dll
deleted file mode 100644
index 632dcd3d..00000000
Binary files a/Output/x64/gstreamer/libgstdeinterlace.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstdirectsoundsink.dll b/Output/x64/gstreamer/libgstdirectsoundsink.dll
deleted file mode 100644
index e88592ea..00000000
Binary files a/Output/x64/gstreamer/libgstdirectsoundsink.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstdtmf.dll b/Output/x64/gstreamer/libgstdtmf.dll
deleted file mode 100644
index 90842df1..00000000
Binary files a/Output/x64/gstreamer/libgstdtmf.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstdtsdec.dll b/Output/x64/gstreamer/libgstdtsdec.dll
deleted file mode 100644
index 2ab34a34..00000000
Binary files a/Output/x64/gstreamer/libgstdtsdec.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstdv.dll b/Output/x64/gstreamer/libgstdv.dll
deleted file mode 100644
index 79b387cd..00000000
Binary files a/Output/x64/gstreamer/libgstdv.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstdvbsuboverlay.dll b/Output/x64/gstreamer/libgstdvbsuboverlay.dll
deleted file mode 100644
index af9aab8a..00000000
Binary files a/Output/x64/gstreamer/libgstdvbsuboverlay.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstdvdlpcmdec.dll b/Output/x64/gstreamer/libgstdvdlpcmdec.dll
deleted file mode 100644
index 91957e78..00000000
Binary files a/Output/x64/gstreamer/libgstdvdlpcmdec.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstdvdread.dll b/Output/x64/gstreamer/libgstdvdread.dll
deleted file mode 100644
index 4bf8d797..00000000
Binary files a/Output/x64/gstreamer/libgstdvdread.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstdvdspu.dll b/Output/x64/gstreamer/libgstdvdspu.dll
deleted file mode 100644
index 0efa6a49..00000000
Binary files a/Output/x64/gstreamer/libgstdvdspu.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgsteffectv.dll b/Output/x64/gstreamer/libgsteffectv.dll
deleted file mode 100644
index 9163d2ad..00000000
Binary files a/Output/x64/gstreamer/libgsteffectv.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstencodebin.dll b/Output/x64/gstreamer/libgstencodebin.dll
deleted file mode 100644
index 14aa774c..00000000
Binary files a/Output/x64/gstreamer/libgstencodebin.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstequalizer.dll b/Output/x64/gstreamer/libgstequalizer.dll
deleted file mode 100644
index 38248417..00000000
Binary files a/Output/x64/gstreamer/libgstequalizer.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstfaad.dll b/Output/x64/gstreamer/libgstfaad.dll
deleted file mode 100644
index a397019f..00000000
Binary files a/Output/x64/gstreamer/libgstfaad.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstfft-1.0-0.dll b/Output/x64/gstreamer/libgstfft-1.0-0.dll
deleted file mode 100644
index 81c46e71..00000000
Binary files a/Output/x64/gstreamer/libgstfft-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstfieldanalysis.dll b/Output/x64/gstreamer/libgstfieldanalysis.dll
deleted file mode 100644
index 9b0c7e3d..00000000
Binary files a/Output/x64/gstreamer/libgstfieldanalysis.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstflac.dll b/Output/x64/gstreamer/libgstflac.dll
deleted file mode 100644
index 5a841071..00000000
Binary files a/Output/x64/gstreamer/libgstflac.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstflv.dll b/Output/x64/gstreamer/libgstflv.dll
deleted file mode 100644
index 91b04163..00000000
Binary files a/Output/x64/gstreamer/libgstflv.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstflxdec.dll b/Output/x64/gstreamer/libgstflxdec.dll
deleted file mode 100644
index a530e638..00000000
Binary files a/Output/x64/gstreamer/libgstflxdec.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstfragmented.dll b/Output/x64/gstreamer/libgstfragmented.dll
deleted file mode 100644
index 8dbbf084..00000000
Binary files a/Output/x64/gstreamer/libgstfragmented.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstfrei0r.dll b/Output/x64/gstreamer/libgstfrei0r.dll
deleted file mode 100644
index b5bd952a..00000000
Binary files a/Output/x64/gstreamer/libgstfrei0r.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstgaudieffects.dll b/Output/x64/gstreamer/libgstgaudieffects.dll
deleted file mode 100644
index 88281c51..00000000
Binary files a/Output/x64/gstreamer/libgstgaudieffects.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstgdkpixbuf.dll b/Output/x64/gstreamer/libgstgdkpixbuf.dll
deleted file mode 100644
index 93e946b7..00000000
Binary files a/Output/x64/gstreamer/libgstgdkpixbuf.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstgeometrictransform.dll b/Output/x64/gstreamer/libgstgeometrictransform.dll
deleted file mode 100644
index d96a28cf..00000000
Binary files a/Output/x64/gstreamer/libgstgeometrictransform.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstgio.dll b/Output/x64/gstreamer/libgstgio.dll
deleted file mode 100644
index 6d46d1f6..00000000
Binary files a/Output/x64/gstreamer/libgstgio.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstgoom.dll b/Output/x64/gstreamer/libgstgoom.dll
deleted file mode 100644
index 12a2fae1..00000000
Binary files a/Output/x64/gstreamer/libgstgoom.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstgoom2k1.dll b/Output/x64/gstreamer/libgstgoom2k1.dll
deleted file mode 100644
index 81402b5b..00000000
Binary files a/Output/x64/gstreamer/libgstgoom2k1.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgsticydemux.dll b/Output/x64/gstreamer/libgsticydemux.dll
deleted file mode 100644
index ec9f5da3..00000000
Binary files a/Output/x64/gstreamer/libgsticydemux.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstid3demux.dll b/Output/x64/gstreamer/libgstid3demux.dll
deleted file mode 100644
index 03dfb3c8..00000000
Binary files a/Output/x64/gstreamer/libgstid3demux.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstid3tag.dll b/Output/x64/gstreamer/libgstid3tag.dll
deleted file mode 100644
index 87ee51fa..00000000
Binary files a/Output/x64/gstreamer/libgstid3tag.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstimagefreeze.dll b/Output/x64/gstreamer/libgstimagefreeze.dll
deleted file mode 100644
index 7a7c77c2..00000000
Binary files a/Output/x64/gstreamer/libgstimagefreeze.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstinterlace.dll b/Output/x64/gstreamer/libgstinterlace.dll
deleted file mode 100644
index 023692d9..00000000
Binary files a/Output/x64/gstreamer/libgstinterlace.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstinterleave.dll b/Output/x64/gstreamer/libgstinterleave.dll
deleted file mode 100644
index 0a2fcfda..00000000
Binary files a/Output/x64/gstreamer/libgstinterleave.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstisomp4.dll b/Output/x64/gstreamer/libgstisomp4.dll
deleted file mode 100644
index 2bb6f4f2..00000000
Binary files a/Output/x64/gstreamer/libgstisomp4.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstjpeg.dll b/Output/x64/gstreamer/libgstjpeg.dll
deleted file mode 100644
index 5efccb76..00000000
Binary files a/Output/x64/gstreamer/libgstjpeg.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstjpegformat.dll b/Output/x64/gstreamer/libgstjpegformat.dll
deleted file mode 100644
index 16aa28ce..00000000
Binary files a/Output/x64/gstreamer/libgstjpegformat.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstlevel.dll b/Output/x64/gstreamer/libgstlevel.dll
deleted file mode 100644
index 9e5845bc..00000000
Binary files a/Output/x64/gstreamer/libgstlevel.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstlibav.dll b/Output/x64/gstreamer/libgstlibav.dll
deleted file mode 100644
index 14fb7fcb..00000000
Binary files a/Output/x64/gstreamer/libgstlibav.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstlibvisual.dll b/Output/x64/gstreamer/libgstlibvisual.dll
deleted file mode 100644
index 7e69637b..00000000
Binary files a/Output/x64/gstreamer/libgstlibvisual.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstliveadder.dll b/Output/x64/gstreamer/libgstliveadder.dll
deleted file mode 100644
index f813831c..00000000
Binary files a/Output/x64/gstreamer/libgstliveadder.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstmad.dll b/Output/x64/gstreamer/libgstmad.dll
deleted file mode 100644
index 34347486..00000000
Binary files a/Output/x64/gstreamer/libgstmad.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstmatroska.dll b/Output/x64/gstreamer/libgstmatroska.dll
deleted file mode 100644
index cdadba86..00000000
Binary files a/Output/x64/gstreamer/libgstmatroska.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstmms.dll b/Output/x64/gstreamer/libgstmms.dll
deleted file mode 100644
index 0e664a4a..00000000
Binary files a/Output/x64/gstreamer/libgstmms.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstmpeg2dec.dll b/Output/x64/gstreamer/libgstmpeg2dec.dll
deleted file mode 100644
index 8c594f28..00000000
Binary files a/Output/x64/gstreamer/libgstmpeg2dec.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstmpegpsdemux.dll b/Output/x64/gstreamer/libgstmpegpsdemux.dll
deleted file mode 100644
index 528d3145..00000000
Binary files a/Output/x64/gstreamer/libgstmpegpsdemux.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstmpegpsmux.dll b/Output/x64/gstreamer/libgstmpegpsmux.dll
deleted file mode 100644
index 28660251..00000000
Binary files a/Output/x64/gstreamer/libgstmpegpsmux.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstmpegtsdemux.dll b/Output/x64/gstreamer/libgstmpegtsdemux.dll
deleted file mode 100644
index 3815e96f..00000000
Binary files a/Output/x64/gstreamer/libgstmpegtsdemux.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstmpegtsmux.dll b/Output/x64/gstreamer/libgstmpegtsmux.dll
deleted file mode 100644
index e90cab54..00000000
Binary files a/Output/x64/gstreamer/libgstmpegtsmux.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstmulaw.dll b/Output/x64/gstreamer/libgstmulaw.dll
deleted file mode 100644
index f77d2a0f..00000000
Binary files a/Output/x64/gstreamer/libgstmulaw.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstmultifile.dll b/Output/x64/gstreamer/libgstmultifile.dll
deleted file mode 100644
index a5c667e3..00000000
Binary files a/Output/x64/gstreamer/libgstmultifile.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstmultipart.dll b/Output/x64/gstreamer/libgstmultipart.dll
deleted file mode 100644
index 1a07d138..00000000
Binary files a/Output/x64/gstreamer/libgstmultipart.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstnet-1.0-0.dll b/Output/x64/gstreamer/libgstnet-1.0-0.dll
deleted file mode 100644
index 00a0b717..00000000
Binary files a/Output/x64/gstreamer/libgstnet-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstogg.dll b/Output/x64/gstreamer/libgstogg.dll
deleted file mode 100644
index 6d67444d..00000000
Binary files a/Output/x64/gstreamer/libgstogg.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstopus.dll b/Output/x64/gstreamer/libgstopus.dll
deleted file mode 100644
index 46419c5e..00000000
Binary files a/Output/x64/gstreamer/libgstopus.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstpango.dll b/Output/x64/gstreamer/libgstpango.dll
deleted file mode 100644
index f0d64403..00000000
Binary files a/Output/x64/gstreamer/libgstpango.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstpbutils-1.0-0.dll b/Output/x64/gstreamer/libgstpbutils-1.0-0.dll
deleted file mode 100644
index c795b0b4..00000000
Binary files a/Output/x64/gstreamer/libgstpbutils-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstpcapparse.dll b/Output/x64/gstreamer/libgstpcapparse.dll
deleted file mode 100644
index fe8325e8..00000000
Binary files a/Output/x64/gstreamer/libgstpcapparse.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstphotography-1.0-0.dll b/Output/x64/gstreamer/libgstphotography-1.0-0.dll
deleted file mode 100644
index 2a8d90cf..00000000
Binary files a/Output/x64/gstreamer/libgstphotography-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstplayback.dll b/Output/x64/gstreamer/libgstplayback.dll
deleted file mode 100644
index 1468ee4a..00000000
Binary files a/Output/x64/gstreamer/libgstplayback.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstpng.dll b/Output/x64/gstreamer/libgstpng.dll
deleted file mode 100644
index 879b75cf..00000000
Binary files a/Output/x64/gstreamer/libgstpng.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstpnm.dll b/Output/x64/gstreamer/libgstpnm.dll
deleted file mode 100644
index 6190b5f4..00000000
Binary files a/Output/x64/gstreamer/libgstpnm.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstrawparse.dll b/Output/x64/gstreamer/libgstrawparse.dll
deleted file mode 100644
index b88704a5..00000000
Binary files a/Output/x64/gstreamer/libgstrawparse.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstreamer-1.0-0.dll b/Output/x64/gstreamer/libgstreamer-1.0-0.dll
deleted file mode 100644
index 41d966df..00000000
Binary files a/Output/x64/gstreamer/libgstreamer-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstreamersharpglue-1.0.0.dll b/Output/x64/gstreamer/libgstreamersharpglue-1.0.0.dll
deleted file mode 100644
index 4215d2ea..00000000
Binary files a/Output/x64/gstreamer/libgstreamersharpglue-1.0.0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstremovesilence.dll b/Output/x64/gstreamer/libgstremovesilence.dll
deleted file mode 100644
index 8ce09432..00000000
Binary files a/Output/x64/gstreamer/libgstremovesilence.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstreplaygain.dll b/Output/x64/gstreamer/libgstreplaygain.dll
deleted file mode 100644
index a23e781d..00000000
Binary files a/Output/x64/gstreamer/libgstreplaygain.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstresindvd.dll b/Output/x64/gstreamer/libgstresindvd.dll
deleted file mode 100644
index 93165f46..00000000
Binary files a/Output/x64/gstreamer/libgstresindvd.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstriff-1.0-0.dll b/Output/x64/gstreamer/libgstriff-1.0-0.dll
deleted file mode 100644
index f84c4d32..00000000
Binary files a/Output/x64/gstreamer/libgstriff-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstrmdemux.dll b/Output/x64/gstreamer/libgstrmdemux.dll
deleted file mode 100644
index d96fbf96..00000000
Binary files a/Output/x64/gstreamer/libgstrmdemux.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstrtp-1.0-0.dll b/Output/x64/gstreamer/libgstrtp-1.0-0.dll
deleted file mode 100644
index 671314bd..00000000
Binary files a/Output/x64/gstreamer/libgstrtp-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstrtp.dll b/Output/x64/gstreamer/libgstrtp.dll
deleted file mode 100644
index 956c06a6..00000000
Binary files a/Output/x64/gstreamer/libgstrtp.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstrtpmanager.dll b/Output/x64/gstreamer/libgstrtpmanager.dll
deleted file mode 100644
index 368bfad3..00000000
Binary files a/Output/x64/gstreamer/libgstrtpmanager.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstrtsp-1.0-0.dll b/Output/x64/gstreamer/libgstrtsp-1.0-0.dll
deleted file mode 100644
index aa6e0113..00000000
Binary files a/Output/x64/gstreamer/libgstrtsp-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstrtsp.dll b/Output/x64/gstreamer/libgstrtsp.dll
deleted file mode 100644
index ffe21d20..00000000
Binary files a/Output/x64/gstreamer/libgstrtsp.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstscaletempoplugin.dll b/Output/x64/gstreamer/libgstscaletempoplugin.dll
deleted file mode 100644
index d6666bf6..00000000
Binary files a/Output/x64/gstreamer/libgstscaletempoplugin.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstschro.dll b/Output/x64/gstreamer/libgstschro.dll
deleted file mode 100644
index f2df296e..00000000
Binary files a/Output/x64/gstreamer/libgstschro.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstsdp-1.0-0.dll b/Output/x64/gstreamer/libgstsdp-1.0-0.dll
deleted file mode 100644
index e626b4ea..00000000
Binary files a/Output/x64/gstreamer/libgstsdp-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstsdpelem.dll b/Output/x64/gstreamer/libgstsdpelem.dll
deleted file mode 100644
index 7a76eba2..00000000
Binary files a/Output/x64/gstreamer/libgstsdpelem.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstsegmentclip.dll b/Output/x64/gstreamer/libgstsegmentclip.dll
deleted file mode 100644
index 65a59e2b..00000000
Binary files a/Output/x64/gstreamer/libgstsegmentclip.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstshapewipe.dll b/Output/x64/gstreamer/libgstshapewipe.dll
deleted file mode 100644
index 90936372..00000000
Binary files a/Output/x64/gstreamer/libgstshapewipe.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstsiren.dll b/Output/x64/gstreamer/libgstsiren.dll
deleted file mode 100644
index 4cdce371..00000000
Binary files a/Output/x64/gstreamer/libgstsiren.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstsmooth.dll b/Output/x64/gstreamer/libgstsmooth.dll
deleted file mode 100644
index ef4948b8..00000000
Binary files a/Output/x64/gstreamer/libgstsmooth.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstsmpte.dll b/Output/x64/gstreamer/libgstsmpte.dll
deleted file mode 100644
index a5dca248..00000000
Binary files a/Output/x64/gstreamer/libgstsmpte.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstsouphttpsrc.dll b/Output/x64/gstreamer/libgstsouphttpsrc.dll
deleted file mode 100644
index c0201bfd..00000000
Binary files a/Output/x64/gstreamer/libgstsouphttpsrc.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstspectrum.dll b/Output/x64/gstreamer/libgstspectrum.dll
deleted file mode 100644
index 4fa8ca1b..00000000
Binary files a/Output/x64/gstreamer/libgstspectrum.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstspeed.dll b/Output/x64/gstreamer/libgstspeed.dll
deleted file mode 100644
index 211bdb13..00000000
Binary files a/Output/x64/gstreamer/libgstspeed.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstspeex.dll b/Output/x64/gstreamer/libgstspeex.dll
deleted file mode 100644
index 43bedb83..00000000
Binary files a/Output/x64/gstreamer/libgstspeex.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstsubenc.dll b/Output/x64/gstreamer/libgstsubenc.dll
deleted file mode 100644
index 579ae262..00000000
Binary files a/Output/x64/gstreamer/libgstsubenc.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstsubparse.dll b/Output/x64/gstreamer/libgstsubparse.dll
deleted file mode 100644
index 76cf5e71..00000000
Binary files a/Output/x64/gstreamer/libgstsubparse.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgsttag-1.0-0.dll b/Output/x64/gstreamer/libgsttag-1.0-0.dll
deleted file mode 100644
index 7ce3bf6e..00000000
Binary files a/Output/x64/gstreamer/libgsttag-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgsttaglib.dll b/Output/x64/gstreamer/libgsttaglib.dll
deleted file mode 100644
index 9e21c5e7..00000000
Binary files a/Output/x64/gstreamer/libgsttaglib.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgsttcp.dll b/Output/x64/gstreamer/libgsttcp.dll
deleted file mode 100644
index 55c1080a..00000000
Binary files a/Output/x64/gstreamer/libgsttcp.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgsttheora.dll b/Output/x64/gstreamer/libgsttheora.dll
deleted file mode 100644
index 3f3e7164..00000000
Binary files a/Output/x64/gstreamer/libgsttheora.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgsttypefindfunctions.dll b/Output/x64/gstreamer/libgsttypefindfunctions.dll
deleted file mode 100644
index 927329dc..00000000
Binary files a/Output/x64/gstreamer/libgsttypefindfunctions.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstudp.dll b/Output/x64/gstreamer/libgstudp.dll
deleted file mode 100644
index c87365eb..00000000
Binary files a/Output/x64/gstreamer/libgstudp.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstvideo-1.0-0.dll b/Output/x64/gstreamer/libgstvideo-1.0-0.dll
deleted file mode 100644
index 4ef9ebf5..00000000
Binary files a/Output/x64/gstreamer/libgstvideo-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstvideobox.dll b/Output/x64/gstreamer/libgstvideobox.dll
deleted file mode 100644
index d3595eb5..00000000
Binary files a/Output/x64/gstreamer/libgstvideobox.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstvideoconvert.dll b/Output/x64/gstreamer/libgstvideoconvert.dll
deleted file mode 100644
index 2608d3e2..00000000
Binary files a/Output/x64/gstreamer/libgstvideoconvert.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstvideocrop.dll b/Output/x64/gstreamer/libgstvideocrop.dll
deleted file mode 100644
index 0534e404..00000000
Binary files a/Output/x64/gstreamer/libgstvideocrop.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstvideofilter.dll b/Output/x64/gstreamer/libgstvideofilter.dll
deleted file mode 100644
index b8e1bf6f..00000000
Binary files a/Output/x64/gstreamer/libgstvideofilter.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstvideomixer.dll b/Output/x64/gstreamer/libgstvideomixer.dll
deleted file mode 100644
index 94c88e5a..00000000
Binary files a/Output/x64/gstreamer/libgstvideomixer.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstvideoparsersbad.dll b/Output/x64/gstreamer/libgstvideoparsersbad.dll
deleted file mode 100644
index 8ff7eb69..00000000
Binary files a/Output/x64/gstreamer/libgstvideoparsersbad.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstvideorate.dll b/Output/x64/gstreamer/libgstvideorate.dll
deleted file mode 100644
index bb2d18a6..00000000
Binary files a/Output/x64/gstreamer/libgstvideorate.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstvideoscale.dll b/Output/x64/gstreamer/libgstvideoscale.dll
deleted file mode 100644
index c6f33fbb..00000000
Binary files a/Output/x64/gstreamer/libgstvideoscale.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstvideotestsrc.dll b/Output/x64/gstreamer/libgstvideotestsrc.dll
deleted file mode 100644
index 6cf64eb8..00000000
Binary files a/Output/x64/gstreamer/libgstvideotestsrc.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstvolume.dll b/Output/x64/gstreamer/libgstvolume.dll
deleted file mode 100644
index 3aae8f8a..00000000
Binary files a/Output/x64/gstreamer/libgstvolume.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstvorbis.dll b/Output/x64/gstreamer/libgstvorbis.dll
deleted file mode 100644
index 2bff4c72..00000000
Binary files a/Output/x64/gstreamer/libgstvorbis.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstvpx.dll b/Output/x64/gstreamer/libgstvpx.dll
deleted file mode 100644
index 33f4d1db..00000000
Binary files a/Output/x64/gstreamer/libgstvpx.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstwavenc.dll b/Output/x64/gstreamer/libgstwavenc.dll
deleted file mode 100644
index 5395f473..00000000
Binary files a/Output/x64/gstreamer/libgstwavenc.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstwavpack.dll b/Output/x64/gstreamer/libgstwavpack.dll
deleted file mode 100644
index ed6e6d07..00000000
Binary files a/Output/x64/gstreamer/libgstwavpack.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstwavparse.dll b/Output/x64/gstreamer/libgstwavparse.dll
deleted file mode 100644
index 04eb79b1..00000000
Binary files a/Output/x64/gstreamer/libgstwavparse.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstx264.dll b/Output/x64/gstreamer/libgstx264.dll
deleted file mode 100644
index c90b1f99..00000000
Binary files a/Output/x64/gstreamer/libgstx264.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgstxingmux.dll b/Output/x64/gstreamer/libgstxingmux.dll
deleted file mode 100644
index ca135b1e..00000000
Binary files a/Output/x64/gstreamer/libgstxingmux.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgsty4mdec.dll b/Output/x64/gstreamer/libgsty4mdec.dll
deleted file mode 100644
index 496e64bd..00000000
Binary files a/Output/x64/gstreamer/libgsty4mdec.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgsty4menc.dll b/Output/x64/gstreamer/libgsty4menc.dll
deleted file mode 100644
index 6a4de10c..00000000
Binary files a/Output/x64/gstreamer/libgsty4menc.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libgthread-2.0-0.dll b/Output/x64/gstreamer/libgthread-2.0-0.dll
deleted file mode 100644
index b148937b..00000000
Binary files a/Output/x64/gstreamer/libgthread-2.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libhogweed-2-2.dll b/Output/x64/gstreamer/libhogweed-2-2.dll
deleted file mode 100644
index f99fe527..00000000
Binary files a/Output/x64/gstreamer/libhogweed-2-2.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libiconv-2.dll b/Output/x64/gstreamer/libiconv-2.dll
deleted file mode 100644
index 525b96ee..00000000
Binary files a/Output/x64/gstreamer/libiconv-2.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libintl-8.dll b/Output/x64/gstreamer/libintl-8.dll
deleted file mode 100644
index c4f8427c..00000000
Binary files a/Output/x64/gstreamer/libintl-8.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libjpeg-8.dll b/Output/x64/gstreamer/libjpeg-8.dll
deleted file mode 100644
index 545f9efc..00000000
Binary files a/Output/x64/gstreamer/libjpeg-8.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libkate-1.dll b/Output/x64/gstreamer/libkate-1.dll
deleted file mode 100644
index c53dd128..00000000
Binary files a/Output/x64/gstreamer/libkate-1.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libmms-0.dll b/Output/x64/gstreamer/libmms-0.dll
deleted file mode 100644
index d510509f..00000000
Binary files a/Output/x64/gstreamer/libmms-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libmpeg2-0.dll b/Output/x64/gstreamer/libmpeg2-0.dll
deleted file mode 100644
index 1d2b87a8..00000000
Binary files a/Output/x64/gstreamer/libmpeg2-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libmpeg2convert-0.dll b/Output/x64/gstreamer/libmpeg2convert-0.dll
deleted file mode 100644
index f212e850..00000000
Binary files a/Output/x64/gstreamer/libmpeg2convert-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libnettle-4-4.dll b/Output/x64/gstreamer/libnettle-4-4.dll
deleted file mode 100644
index e991bad2..00000000
Binary files a/Output/x64/gstreamer/libnettle-4-4.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libogg-0.dll b/Output/x64/gstreamer/libogg-0.dll
deleted file mode 100644
index f247f6c6..00000000
Binary files a/Output/x64/gstreamer/libogg-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/liboggkate-1.dll b/Output/x64/gstreamer/liboggkate-1.dll
deleted file mode 100644
index 562c6586..00000000
Binary files a/Output/x64/gstreamer/liboggkate-1.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libopencore-amrnb-0.dll b/Output/x64/gstreamer/libopencore-amrnb-0.dll
deleted file mode 100644
index 408b4365..00000000
Binary files a/Output/x64/gstreamer/libopencore-amrnb-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libopencore-amrwb-0.dll b/Output/x64/gstreamer/libopencore-amrwb-0.dll
deleted file mode 100644
index 99f59d7d..00000000
Binary files a/Output/x64/gstreamer/libopencore-amrwb-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libopus-0.dll b/Output/x64/gstreamer/libopus-0.dll
deleted file mode 100644
index 95237c43..00000000
Binary files a/Output/x64/gstreamer/libopus-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/liborc-0.4-0.dll b/Output/x64/gstreamer/liborc-0.4-0.dll
deleted file mode 100644
index 78e956b9..00000000
Binary files a/Output/x64/gstreamer/liborc-0.4-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/liborc-test-0.4-0.dll b/Output/x64/gstreamer/liborc-test-0.4-0.dll
deleted file mode 100644
index ca7a35d3..00000000
Binary files a/Output/x64/gstreamer/liborc-test-0.4-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libpango-1.0-0.dll b/Output/x64/gstreamer/libpango-1.0-0.dll
deleted file mode 100644
index 5284e414..00000000
Binary files a/Output/x64/gstreamer/libpango-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libpangocairo-1.0-0.dll b/Output/x64/gstreamer/libpangocairo-1.0-0.dll
deleted file mode 100644
index 47e96ff3..00000000
Binary files a/Output/x64/gstreamer/libpangocairo-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libpangoft2-1.0-0.dll b/Output/x64/gstreamer/libpangoft2-1.0-0.dll
deleted file mode 100644
index b6c1a482..00000000
Binary files a/Output/x64/gstreamer/libpangoft2-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libpangowin32-1.0-0.dll b/Output/x64/gstreamer/libpangowin32-1.0-0.dll
deleted file mode 100644
index 8fd59964..00000000
Binary files a/Output/x64/gstreamer/libpangowin32-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libpixman-1-0.dll b/Output/x64/gstreamer/libpixman-1-0.dll
deleted file mode 100644
index 77861e8c..00000000
Binary files a/Output/x64/gstreamer/libpixman-1-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libpng15-15.dll b/Output/x64/gstreamer/libpng15-15.dll
deleted file mode 100644
index 365c1092..00000000
Binary files a/Output/x64/gstreamer/libpng15-15.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libschroedinger-1.0-0.dll b/Output/x64/gstreamer/libschroedinger-1.0-0.dll
deleted file mode 100644
index cde8841e..00000000
Binary files a/Output/x64/gstreamer/libschroedinger-1.0-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libsoup-2.4-1.dll b/Output/x64/gstreamer/libsoup-2.4-1.dll
deleted file mode 100644
index 49ff8507..00000000
Binary files a/Output/x64/gstreamer/libsoup-2.4-1.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libspeex-1.dll b/Output/x64/gstreamer/libspeex-1.dll
deleted file mode 100644
index c566a3d2..00000000
Binary files a/Output/x64/gstreamer/libspeex-1.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libspeexdsp-1.dll b/Output/x64/gstreamer/libspeexdsp-1.dll
deleted file mode 100644
index f129899a..00000000
Binary files a/Output/x64/gstreamer/libspeexdsp-1.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libstdc++-6.dll b/Output/x64/gstreamer/libstdc++-6.dll
deleted file mode 100644
index f21f9d04..00000000
Binary files a/Output/x64/gstreamer/libstdc++-6.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libtag.dll b/Output/x64/gstreamer/libtag.dll
deleted file mode 100644
index 51e98425..00000000
Binary files a/Output/x64/gstreamer/libtag.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libtag_c.dll b/Output/x64/gstreamer/libtag_c.dll
deleted file mode 100644
index 91edaab8..00000000
Binary files a/Output/x64/gstreamer/libtag_c.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libtasn1-3.dll b/Output/x64/gstreamer/libtasn1-3.dll
deleted file mode 100644
index 9d5e7c98..00000000
Binary files a/Output/x64/gstreamer/libtasn1-3.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libtheora-0.dll b/Output/x64/gstreamer/libtheora-0.dll
deleted file mode 100644
index 9444654c..00000000
Binary files a/Output/x64/gstreamer/libtheora-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libtheoradec-1.dll b/Output/x64/gstreamer/libtheoradec-1.dll
deleted file mode 100644
index 5695322d..00000000
Binary files a/Output/x64/gstreamer/libtheoradec-1.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libtheoraenc-1.dll b/Output/x64/gstreamer/libtheoraenc-1.dll
deleted file mode 100644
index 97f6d413..00000000
Binary files a/Output/x64/gstreamer/libtheoraenc-1.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libtiff-5.dll b/Output/x64/gstreamer/libtiff-5.dll
deleted file mode 100644
index 2946cbbf..00000000
Binary files a/Output/x64/gstreamer/libtiff-5.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libvisual-0.4-0.dll b/Output/x64/gstreamer/libvisual-0.4-0.dll
deleted file mode 100644
index 41380ba0..00000000
Binary files a/Output/x64/gstreamer/libvisual-0.4-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libvorbis-0.dll b/Output/x64/gstreamer/libvorbis-0.dll
deleted file mode 100644
index 16ed64eb..00000000
Binary files a/Output/x64/gstreamer/libvorbis-0.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libvorbisenc-2.dll b/Output/x64/gstreamer/libvorbisenc-2.dll
deleted file mode 100644
index 74076909..00000000
Binary files a/Output/x64/gstreamer/libvorbisenc-2.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libvorbisfile-3.dll b/Output/x64/gstreamer/libvorbisfile-3.dll
deleted file mode 100644
index f72cc6b7..00000000
Binary files a/Output/x64/gstreamer/libvorbisfile-3.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libwavpack-1.dll b/Output/x64/gstreamer/libwavpack-1.dll
deleted file mode 100644
index eda6f846..00000000
Binary files a/Output/x64/gstreamer/libwavpack-1.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libwinpthread-1.dll b/Output/x64/gstreamer/libwinpthread-1.dll
deleted file mode 100644
index e517c82d..00000000
Binary files a/Output/x64/gstreamer/libwinpthread-1.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libx264-125.dll b/Output/x64/gstreamer/libx264-125.dll
deleted file mode 100644
index 661089e3..00000000
Binary files a/Output/x64/gstreamer/libx264-125.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libxml2-2.dll b/Output/x64/gstreamer/libxml2-2.dll
deleted file mode 100644
index 6cea9673..00000000
Binary files a/Output/x64/gstreamer/libxml2-2.dll and /dev/null differ
diff --git a/Output/x64/gstreamer/libz.dll b/Output/x64/gstreamer/libz.dll
deleted file mode 100644
index 5daeaade..00000000
Binary files a/Output/x64/gstreamer/libz.dll and /dev/null differ
diff --git a/Output/x64/libgstreamersharpglue-1.0.0.dll b/Output/x64/libgstreamersharpglue-1.0.0.dll
new file mode 100644
index 00000000..22022133
Binary files /dev/null and b/Output/x64/libgstreamersharpglue-1.0.0.dll differ
diff --git a/Output/x86/gstreamer/libFLAC-8.dll b/Output/x86/gstreamer/libFLAC-8.dll
deleted file mode 100644
index f18d03ba..00000000
Binary files a/Output/x86/gstreamer/libFLAC-8.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/liba52-0.dll b/Output/x86/gstreamer/liba52-0.dll
deleted file mode 100644
index 0ca827a8..00000000
Binary files a/Output/x86/gstreamer/liba52-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libass-4.dll b/Output/x86/gstreamer/libass-4.dll
deleted file mode 100644
index 652e351c..00000000
Binary files a/Output/x86/gstreamer/libass-4.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libbz2.dll b/Output/x86/gstreamer/libbz2.dll
deleted file mode 100644
index bc4906bf..00000000
Binary files a/Output/x86/gstreamer/libbz2.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libcairo-2.dll b/Output/x86/gstreamer/libcairo-2.dll
deleted file mode 100644
index 41d46bab..00000000
Binary files a/Output/x86/gstreamer/libcairo-2.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libcairo-gobject-2.dll b/Output/x86/gstreamer/libcairo-gobject-2.dll
deleted file mode 100644
index 254ad744..00000000
Binary files a/Output/x86/gstreamer/libcairo-gobject-2.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libcairo-script-interpreter-2.dll b/Output/x86/gstreamer/libcairo-script-interpreter-2.dll
deleted file mode 100644
index cb94ab63..00000000
Binary files a/Output/x86/gstreamer/libcairo-script-interpreter-2.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libcharset-1.dll b/Output/x86/gstreamer/libcharset-1.dll
deleted file mode 100644
index adf7ff56..00000000
Binary files a/Output/x86/gstreamer/libcharset-1.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libdca-0.dll b/Output/x86/gstreamer/libdca-0.dll
deleted file mode 100644
index 810ec4ad..00000000
Binary files a/Output/x86/gstreamer/libdca-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libdv-4.dll b/Output/x86/gstreamer/libdv-4.dll
deleted file mode 100644
index f4550758..00000000
Binary files a/Output/x86/gstreamer/libdv-4.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libdvdnav-4.dll b/Output/x86/gstreamer/libdvdnav-4.dll
deleted file mode 100644
index 9d6b2708..00000000
Binary files a/Output/x86/gstreamer/libdvdnav-4.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libdvdnavmini-4.dll b/Output/x86/gstreamer/libdvdnavmini-4.dll
deleted file mode 100644
index 18b93733..00000000
Binary files a/Output/x86/gstreamer/libdvdnavmini-4.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libdvdread-4.dll b/Output/x86/gstreamer/libdvdread-4.dll
deleted file mode 100644
index 792db099..00000000
Binary files a/Output/x86/gstreamer/libdvdread-4.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libexpat-1.dll b/Output/x86/gstreamer/libexpat-1.dll
deleted file mode 100644
index 755a3191..00000000
Binary files a/Output/x86/gstreamer/libexpat-1.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libfaad-2.dll b/Output/x86/gstreamer/libfaad-2.dll
deleted file mode 100644
index 8b530f21..00000000
Binary files a/Output/x86/gstreamer/libfaad-2.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libffi-6.dll b/Output/x86/gstreamer/libffi-6.dll
deleted file mode 100644
index 3b439f96..00000000
Binary files a/Output/x86/gstreamer/libffi-6.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libfontconfig-1.dll b/Output/x86/gstreamer/libfontconfig-1.dll
deleted file mode 100644
index 12384b6b..00000000
Binary files a/Output/x86/gstreamer/libfontconfig-1.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libfreetype-6.dll b/Output/x86/gstreamer/libfreetype-6.dll
deleted file mode 100644
index 2681a07f..00000000
Binary files a/Output/x86/gstreamer/libfreetype-6.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libfribidi-0.dll b/Output/x86/gstreamer/libfribidi-0.dll
deleted file mode 100644
index 5ff8d465..00000000
Binary files a/Output/x86/gstreamer/libfribidi-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgcc_s_sjlj-1.dll b/Output/x86/gstreamer/libgcc_s_sjlj-1.dll
deleted file mode 100644
index d7d77a76..00000000
Binary files a/Output/x86/gstreamer/libgcc_s_sjlj-1.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgdk_pixbuf-2.0-0.dll b/Output/x86/gstreamer/libgdk_pixbuf-2.0-0.dll
deleted file mode 100644
index 70f3e79f..00000000
Binary files a/Output/x86/gstreamer/libgdk_pixbuf-2.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgio-2.0-0.dll b/Output/x86/gstreamer/libgio-2.0-0.dll
deleted file mode 100644
index d25be862..00000000
Binary files a/Output/x86/gstreamer/libgio-2.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgiognutls.dll b/Output/x86/gstreamer/libgiognutls.dll
deleted file mode 100644
index 1eb0bf5d..00000000
Binary files a/Output/x86/gstreamer/libgiognutls.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libglib-2.0-0.dll b/Output/x86/gstreamer/libglib-2.0-0.dll
deleted file mode 100644
index ce815096..00000000
Binary files a/Output/x86/gstreamer/libglib-2.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgmodule-2.0-0.dll b/Output/x86/gstreamer/libgmodule-2.0-0.dll
deleted file mode 100644
index 821f700e..00000000
Binary files a/Output/x86/gstreamer/libgmodule-2.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgnutls-28.dll b/Output/x86/gstreamer/libgnutls-28.dll
deleted file mode 100644
index a2fc2320..00000000
Binary files a/Output/x86/gstreamer/libgnutls-28.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgnutls-openssl-27.dll b/Output/x86/gstreamer/libgnutls-openssl-27.dll
deleted file mode 100644
index cff30817..00000000
Binary files a/Output/x86/gstreamer/libgnutls-openssl-27.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgnutlsxx-28.dll b/Output/x86/gstreamer/libgnutlsxx-28.dll
deleted file mode 100644
index cfbe9cdb..00000000
Binary files a/Output/x86/gstreamer/libgnutlsxx-28.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgobject-2.0-0.dll b/Output/x86/gstreamer/libgobject-2.0-0.dll
deleted file mode 100644
index 97cab67f..00000000
Binary files a/Output/x86/gstreamer/libgobject-2.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgomp-1.dll b/Output/x86/gstreamer/libgomp-1.dll
deleted file mode 100644
index 7a50d33b..00000000
Binary files a/Output/x86/gstreamer/libgomp-1.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgsta52dec.dll b/Output/x86/gstreamer/libgsta52dec.dll
deleted file mode 100644
index 6935143b..00000000
Binary files a/Output/x86/gstreamer/libgsta52dec.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstadder.dll b/Output/x86/gstreamer/libgstadder.dll
deleted file mode 100644
index 0f7c83af..00000000
Binary files a/Output/x86/gstreamer/libgstadder.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstadpcmdec.dll b/Output/x86/gstreamer/libgstadpcmdec.dll
deleted file mode 100644
index 275324e1..00000000
Binary files a/Output/x86/gstreamer/libgstadpcmdec.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstadpcmenc.dll b/Output/x86/gstreamer/libgstadpcmenc.dll
deleted file mode 100644
index 13555dd8..00000000
Binary files a/Output/x86/gstreamer/libgstadpcmenc.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstalaw.dll b/Output/x86/gstreamer/libgstalaw.dll
deleted file mode 100644
index 62610a9b..00000000
Binary files a/Output/x86/gstreamer/libgstalaw.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstalpha.dll b/Output/x86/gstreamer/libgstalpha.dll
deleted file mode 100644
index e8ab504c..00000000
Binary files a/Output/x86/gstreamer/libgstalpha.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstalphacolor.dll b/Output/x86/gstreamer/libgstalphacolor.dll
deleted file mode 100644
index bade1163..00000000
Binary files a/Output/x86/gstreamer/libgstalphacolor.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstamrnb.dll b/Output/x86/gstreamer/libgstamrnb.dll
deleted file mode 100644
index 98ce6e3e..00000000
Binary files a/Output/x86/gstreamer/libgstamrnb.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstamrwbdec.dll b/Output/x86/gstreamer/libgstamrwbdec.dll
deleted file mode 100644
index 7667849a..00000000
Binary files a/Output/x86/gstreamer/libgstamrwbdec.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstapetag.dll b/Output/x86/gstreamer/libgstapetag.dll
deleted file mode 100644
index a20ca052..00000000
Binary files a/Output/x86/gstreamer/libgstapetag.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstapp-1.0-0.dll b/Output/x86/gstreamer/libgstapp-1.0-0.dll
deleted file mode 100644
index d9adcc4a..00000000
Binary files a/Output/x86/gstreamer/libgstapp-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstapp.dll b/Output/x86/gstreamer/libgstapp.dll
deleted file mode 100644
index 6826d2a3..00000000
Binary files a/Output/x86/gstreamer/libgstapp.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstasf.dll b/Output/x86/gstreamer/libgstasf.dll
deleted file mode 100644
index f8560d52..00000000
Binary files a/Output/x86/gstreamer/libgstasf.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstasfmux.dll b/Output/x86/gstreamer/libgstasfmux.dll
deleted file mode 100644
index be272a55..00000000
Binary files a/Output/x86/gstreamer/libgstasfmux.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstassrender.dll b/Output/x86/gstreamer/libgstassrender.dll
deleted file mode 100644
index 9c052a3c..00000000
Binary files a/Output/x86/gstreamer/libgstassrender.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstaudio-1.0-0.dll b/Output/x86/gstreamer/libgstaudio-1.0-0.dll
deleted file mode 100644
index 9d37513b..00000000
Binary files a/Output/x86/gstreamer/libgstaudio-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstaudioconvert.dll b/Output/x86/gstreamer/libgstaudioconvert.dll
deleted file mode 100644
index 6424f8d9..00000000
Binary files a/Output/x86/gstreamer/libgstaudioconvert.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstaudiofx.dll b/Output/x86/gstreamer/libgstaudiofx.dll
deleted file mode 100644
index 512b5f37..00000000
Binary files a/Output/x86/gstreamer/libgstaudiofx.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstaudioparsers.dll b/Output/x86/gstreamer/libgstaudioparsers.dll
deleted file mode 100644
index 4203a34d..00000000
Binary files a/Output/x86/gstreamer/libgstaudioparsers.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstaudiorate.dll b/Output/x86/gstreamer/libgstaudiorate.dll
deleted file mode 100644
index 0ac4431b..00000000
Binary files a/Output/x86/gstreamer/libgstaudiorate.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstaudioresample.dll b/Output/x86/gstreamer/libgstaudioresample.dll
deleted file mode 100644
index b9cb623a..00000000
Binary files a/Output/x86/gstreamer/libgstaudioresample.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstaudiotestsrc.dll b/Output/x86/gstreamer/libgstaudiotestsrc.dll
deleted file mode 100644
index def73e32..00000000
Binary files a/Output/x86/gstreamer/libgstaudiotestsrc.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstaudiovisualizers.dll b/Output/x86/gstreamer/libgstaudiovisualizers.dll
deleted file mode 100644
index 36015556..00000000
Binary files a/Output/x86/gstreamer/libgstaudiovisualizers.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstauparse.dll b/Output/x86/gstreamer/libgstauparse.dll
deleted file mode 100644
index 732f6592..00000000
Binary files a/Output/x86/gstreamer/libgstauparse.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstautoconvert.dll b/Output/x86/gstreamer/libgstautoconvert.dll
deleted file mode 100644
index aaf8aa7f..00000000
Binary files a/Output/x86/gstreamer/libgstautoconvert.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstautodetect.dll b/Output/x86/gstreamer/libgstautodetect.dll
deleted file mode 100644
index deb759da..00000000
Binary files a/Output/x86/gstreamer/libgstautodetect.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstavi.dll b/Output/x86/gstreamer/libgstavi.dll
deleted file mode 100644
index 63d6d1f9..00000000
Binary files a/Output/x86/gstreamer/libgstavi.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstbase-1.0-0.dll b/Output/x86/gstreamer/libgstbase-1.0-0.dll
deleted file mode 100644
index aec94495..00000000
Binary files a/Output/x86/gstreamer/libgstbase-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstbasecamerabinsrc-1.0-0.dll b/Output/x86/gstreamer/libgstbasecamerabinsrc-1.0-0.dll
deleted file mode 100644
index 3e9b960e..00000000
Binary files a/Output/x86/gstreamer/libgstbasecamerabinsrc-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstbayer.dll b/Output/x86/gstreamer/libgstbayer.dll
deleted file mode 100644
index 723b288d..00000000
Binary files a/Output/x86/gstreamer/libgstbayer.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstcairo.dll b/Output/x86/gstreamer/libgstcairo.dll
deleted file mode 100644
index 5b286ca3..00000000
Binary files a/Output/x86/gstreamer/libgstcairo.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstcamerabin2.dll b/Output/x86/gstreamer/libgstcamerabin2.dll
deleted file mode 100644
index a724114f..00000000
Binary files a/Output/x86/gstreamer/libgstcamerabin2.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstcodecparsers-1.0-0.dll b/Output/x86/gstreamer/libgstcodecparsers-1.0-0.dll
deleted file mode 100644
index 79883023..00000000
Binary files a/Output/x86/gstreamer/libgstcodecparsers-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstcoloreffects.dll b/Output/x86/gstreamer/libgstcoloreffects.dll
deleted file mode 100644
index 6d4cbf1e..00000000
Binary files a/Output/x86/gstreamer/libgstcoloreffects.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstcontroller-1.0-0.dll b/Output/x86/gstreamer/libgstcontroller-1.0-0.dll
deleted file mode 100644
index 60d450ed..00000000
Binary files a/Output/x86/gstreamer/libgstcontroller-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstcoreelements.dll b/Output/x86/gstreamer/libgstcoreelements.dll
deleted file mode 100644
index 09f11b80..00000000
Binary files a/Output/x86/gstreamer/libgstcoreelements.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstcutter.dll b/Output/x86/gstreamer/libgstcutter.dll
deleted file mode 100644
index 68761d85..00000000
Binary files a/Output/x86/gstreamer/libgstcutter.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstd3dvideosink.dll b/Output/x86/gstreamer/libgstd3dvideosink.dll
deleted file mode 100644
index d4cd9a0e..00000000
Binary files a/Output/x86/gstreamer/libgstd3dvideosink.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstdataurisrc.dll b/Output/x86/gstreamer/libgstdataurisrc.dll
deleted file mode 100644
index 92907916..00000000
Binary files a/Output/x86/gstreamer/libgstdataurisrc.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstdebug.dll b/Output/x86/gstreamer/libgstdebug.dll
deleted file mode 100644
index bd768e6a..00000000
Binary files a/Output/x86/gstreamer/libgstdebug.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstdeinterlace.dll b/Output/x86/gstreamer/libgstdeinterlace.dll
deleted file mode 100644
index a7a3cec6..00000000
Binary files a/Output/x86/gstreamer/libgstdeinterlace.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstdirectsoundsink.dll b/Output/x86/gstreamer/libgstdirectsoundsink.dll
deleted file mode 100644
index e6c4474b..00000000
Binary files a/Output/x86/gstreamer/libgstdirectsoundsink.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstdtmf.dll b/Output/x86/gstreamer/libgstdtmf.dll
deleted file mode 100644
index b6a84f90..00000000
Binary files a/Output/x86/gstreamer/libgstdtmf.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstdtsdec.dll b/Output/x86/gstreamer/libgstdtsdec.dll
deleted file mode 100644
index 2ed5f4cc..00000000
Binary files a/Output/x86/gstreamer/libgstdtsdec.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstdv.dll b/Output/x86/gstreamer/libgstdv.dll
deleted file mode 100644
index cca47530..00000000
Binary files a/Output/x86/gstreamer/libgstdv.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstdvbsuboverlay.dll b/Output/x86/gstreamer/libgstdvbsuboverlay.dll
deleted file mode 100644
index 551b74f8..00000000
Binary files a/Output/x86/gstreamer/libgstdvbsuboverlay.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstdvdlpcmdec.dll b/Output/x86/gstreamer/libgstdvdlpcmdec.dll
deleted file mode 100644
index 026b9510..00000000
Binary files a/Output/x86/gstreamer/libgstdvdlpcmdec.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstdvdread.dll b/Output/x86/gstreamer/libgstdvdread.dll
deleted file mode 100644
index 71992132..00000000
Binary files a/Output/x86/gstreamer/libgstdvdread.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstdvdspu.dll b/Output/x86/gstreamer/libgstdvdspu.dll
deleted file mode 100644
index 0d450e0b..00000000
Binary files a/Output/x86/gstreamer/libgstdvdspu.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgsteffectv.dll b/Output/x86/gstreamer/libgsteffectv.dll
deleted file mode 100644
index dea2dfc1..00000000
Binary files a/Output/x86/gstreamer/libgsteffectv.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstencodebin.dll b/Output/x86/gstreamer/libgstencodebin.dll
deleted file mode 100644
index 04f897a0..00000000
Binary files a/Output/x86/gstreamer/libgstencodebin.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstequalizer.dll b/Output/x86/gstreamer/libgstequalizer.dll
deleted file mode 100644
index 71502973..00000000
Binary files a/Output/x86/gstreamer/libgstequalizer.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstfaad.dll b/Output/x86/gstreamer/libgstfaad.dll
deleted file mode 100644
index 21215363..00000000
Binary files a/Output/x86/gstreamer/libgstfaad.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstfft-1.0-0.dll b/Output/x86/gstreamer/libgstfft-1.0-0.dll
deleted file mode 100644
index e352b916..00000000
Binary files a/Output/x86/gstreamer/libgstfft-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstfieldanalysis.dll b/Output/x86/gstreamer/libgstfieldanalysis.dll
deleted file mode 100644
index 0409f03a..00000000
Binary files a/Output/x86/gstreamer/libgstfieldanalysis.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstflac.dll b/Output/x86/gstreamer/libgstflac.dll
deleted file mode 100644
index 0e95adeb..00000000
Binary files a/Output/x86/gstreamer/libgstflac.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstflv.dll b/Output/x86/gstreamer/libgstflv.dll
deleted file mode 100644
index 1d400bbe..00000000
Binary files a/Output/x86/gstreamer/libgstflv.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstflxdec.dll b/Output/x86/gstreamer/libgstflxdec.dll
deleted file mode 100644
index 849c48f7..00000000
Binary files a/Output/x86/gstreamer/libgstflxdec.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstfragmented.dll b/Output/x86/gstreamer/libgstfragmented.dll
deleted file mode 100644
index a1918e04..00000000
Binary files a/Output/x86/gstreamer/libgstfragmented.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstfrei0r.dll b/Output/x86/gstreamer/libgstfrei0r.dll
deleted file mode 100644
index f99ecf0e..00000000
Binary files a/Output/x86/gstreamer/libgstfrei0r.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstgaudieffects.dll b/Output/x86/gstreamer/libgstgaudieffects.dll
deleted file mode 100644
index 570c0943..00000000
Binary files a/Output/x86/gstreamer/libgstgaudieffects.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstgdkpixbuf.dll b/Output/x86/gstreamer/libgstgdkpixbuf.dll
deleted file mode 100644
index 6ad1fdc9..00000000
Binary files a/Output/x86/gstreamer/libgstgdkpixbuf.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstgeometrictransform.dll b/Output/x86/gstreamer/libgstgeometrictransform.dll
deleted file mode 100644
index a317340c..00000000
Binary files a/Output/x86/gstreamer/libgstgeometrictransform.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstgio.dll b/Output/x86/gstreamer/libgstgio.dll
deleted file mode 100644
index e7a63766..00000000
Binary files a/Output/x86/gstreamer/libgstgio.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstgoom.dll b/Output/x86/gstreamer/libgstgoom.dll
deleted file mode 100644
index 395c8faf..00000000
Binary files a/Output/x86/gstreamer/libgstgoom.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstgoom2k1.dll b/Output/x86/gstreamer/libgstgoom2k1.dll
deleted file mode 100644
index 0f6287f0..00000000
Binary files a/Output/x86/gstreamer/libgstgoom2k1.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgsticydemux.dll b/Output/x86/gstreamer/libgsticydemux.dll
deleted file mode 100644
index 27957fce..00000000
Binary files a/Output/x86/gstreamer/libgsticydemux.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstid3demux.dll b/Output/x86/gstreamer/libgstid3demux.dll
deleted file mode 100644
index 8328cbaa..00000000
Binary files a/Output/x86/gstreamer/libgstid3demux.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstid3tag.dll b/Output/x86/gstreamer/libgstid3tag.dll
deleted file mode 100644
index b26d26e9..00000000
Binary files a/Output/x86/gstreamer/libgstid3tag.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstimagefreeze.dll b/Output/x86/gstreamer/libgstimagefreeze.dll
deleted file mode 100644
index 3e16aa13..00000000
Binary files a/Output/x86/gstreamer/libgstimagefreeze.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstinterlace.dll b/Output/x86/gstreamer/libgstinterlace.dll
deleted file mode 100644
index a30d5efe..00000000
Binary files a/Output/x86/gstreamer/libgstinterlace.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstinterleave.dll b/Output/x86/gstreamer/libgstinterleave.dll
deleted file mode 100644
index afe5e982..00000000
Binary files a/Output/x86/gstreamer/libgstinterleave.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstisomp4.dll b/Output/x86/gstreamer/libgstisomp4.dll
deleted file mode 100644
index 380ccbf0..00000000
Binary files a/Output/x86/gstreamer/libgstisomp4.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstjpeg.dll b/Output/x86/gstreamer/libgstjpeg.dll
deleted file mode 100644
index 782b348b..00000000
Binary files a/Output/x86/gstreamer/libgstjpeg.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstjpegformat.dll b/Output/x86/gstreamer/libgstjpegformat.dll
deleted file mode 100644
index 27c86925..00000000
Binary files a/Output/x86/gstreamer/libgstjpegformat.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstlevel.dll b/Output/x86/gstreamer/libgstlevel.dll
deleted file mode 100644
index 9579b6f3..00000000
Binary files a/Output/x86/gstreamer/libgstlevel.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstlibav.dll b/Output/x86/gstreamer/libgstlibav.dll
deleted file mode 100644
index b9b00c10..00000000
Binary files a/Output/x86/gstreamer/libgstlibav.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstlibvisual.dll b/Output/x86/gstreamer/libgstlibvisual.dll
deleted file mode 100644
index 10336c13..00000000
Binary files a/Output/x86/gstreamer/libgstlibvisual.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstliveadder.dll b/Output/x86/gstreamer/libgstliveadder.dll
deleted file mode 100644
index 68e431e7..00000000
Binary files a/Output/x86/gstreamer/libgstliveadder.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstmad.dll b/Output/x86/gstreamer/libgstmad.dll
deleted file mode 100644
index 464049b5..00000000
Binary files a/Output/x86/gstreamer/libgstmad.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstmatroska.dll b/Output/x86/gstreamer/libgstmatroska.dll
deleted file mode 100644
index 95073d1c..00000000
Binary files a/Output/x86/gstreamer/libgstmatroska.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstmms.dll b/Output/x86/gstreamer/libgstmms.dll
deleted file mode 100644
index d8d35f08..00000000
Binary files a/Output/x86/gstreamer/libgstmms.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstmpeg2dec.dll b/Output/x86/gstreamer/libgstmpeg2dec.dll
deleted file mode 100644
index e4ea7e8d..00000000
Binary files a/Output/x86/gstreamer/libgstmpeg2dec.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstmpegpsdemux.dll b/Output/x86/gstreamer/libgstmpegpsdemux.dll
deleted file mode 100644
index c28f4e7b..00000000
Binary files a/Output/x86/gstreamer/libgstmpegpsdemux.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstmpegpsmux.dll b/Output/x86/gstreamer/libgstmpegpsmux.dll
deleted file mode 100644
index eb6def20..00000000
Binary files a/Output/x86/gstreamer/libgstmpegpsmux.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstmpegtsdemux.dll b/Output/x86/gstreamer/libgstmpegtsdemux.dll
deleted file mode 100644
index 5b6ad429..00000000
Binary files a/Output/x86/gstreamer/libgstmpegtsdemux.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstmpegtsmux.dll b/Output/x86/gstreamer/libgstmpegtsmux.dll
deleted file mode 100644
index dec705bc..00000000
Binary files a/Output/x86/gstreamer/libgstmpegtsmux.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstmulaw.dll b/Output/x86/gstreamer/libgstmulaw.dll
deleted file mode 100644
index 7b688c10..00000000
Binary files a/Output/x86/gstreamer/libgstmulaw.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstmultifile.dll b/Output/x86/gstreamer/libgstmultifile.dll
deleted file mode 100644
index d2382518..00000000
Binary files a/Output/x86/gstreamer/libgstmultifile.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstmultipart.dll b/Output/x86/gstreamer/libgstmultipart.dll
deleted file mode 100644
index 0bbdc65a..00000000
Binary files a/Output/x86/gstreamer/libgstmultipart.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstnet-1.0-0.dll b/Output/x86/gstreamer/libgstnet-1.0-0.dll
deleted file mode 100644
index 31fd83b4..00000000
Binary files a/Output/x86/gstreamer/libgstnet-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstogg.dll b/Output/x86/gstreamer/libgstogg.dll
deleted file mode 100644
index bee771b7..00000000
Binary files a/Output/x86/gstreamer/libgstogg.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstopus.dll b/Output/x86/gstreamer/libgstopus.dll
deleted file mode 100644
index 321c821e..00000000
Binary files a/Output/x86/gstreamer/libgstopus.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstpango.dll b/Output/x86/gstreamer/libgstpango.dll
deleted file mode 100644
index 8a07a701..00000000
Binary files a/Output/x86/gstreamer/libgstpango.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstpbutils-1.0-0.dll b/Output/x86/gstreamer/libgstpbutils-1.0-0.dll
deleted file mode 100644
index 7591f07b..00000000
Binary files a/Output/x86/gstreamer/libgstpbutils-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstpcapparse.dll b/Output/x86/gstreamer/libgstpcapparse.dll
deleted file mode 100644
index 0ac800b6..00000000
Binary files a/Output/x86/gstreamer/libgstpcapparse.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstphotography-1.0-0.dll b/Output/x86/gstreamer/libgstphotography-1.0-0.dll
deleted file mode 100644
index 803f779d..00000000
Binary files a/Output/x86/gstreamer/libgstphotography-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstplayback.dll b/Output/x86/gstreamer/libgstplayback.dll
deleted file mode 100644
index 0008c346..00000000
Binary files a/Output/x86/gstreamer/libgstplayback.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstpng.dll b/Output/x86/gstreamer/libgstpng.dll
deleted file mode 100644
index 7faafb3e..00000000
Binary files a/Output/x86/gstreamer/libgstpng.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstpnm.dll b/Output/x86/gstreamer/libgstpnm.dll
deleted file mode 100644
index f90b3ec3..00000000
Binary files a/Output/x86/gstreamer/libgstpnm.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstrawparse.dll b/Output/x86/gstreamer/libgstrawparse.dll
deleted file mode 100644
index 4011a741..00000000
Binary files a/Output/x86/gstreamer/libgstrawparse.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstreamer-1.0-0.dll b/Output/x86/gstreamer/libgstreamer-1.0-0.dll
deleted file mode 100644
index dfd18558..00000000
Binary files a/Output/x86/gstreamer/libgstreamer-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstreamersharpglue-1.0.0.dll b/Output/x86/gstreamer/libgstreamersharpglue-1.0.0.dll
deleted file mode 100644
index fee8dae0..00000000
Binary files a/Output/x86/gstreamer/libgstreamersharpglue-1.0.0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstremovesilence.dll b/Output/x86/gstreamer/libgstremovesilence.dll
deleted file mode 100644
index 74ea1b92..00000000
Binary files a/Output/x86/gstreamer/libgstremovesilence.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstreplaygain.dll b/Output/x86/gstreamer/libgstreplaygain.dll
deleted file mode 100644
index c9e77216..00000000
Binary files a/Output/x86/gstreamer/libgstreplaygain.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstresindvd.dll b/Output/x86/gstreamer/libgstresindvd.dll
deleted file mode 100644
index 49fab065..00000000
Binary files a/Output/x86/gstreamer/libgstresindvd.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstriff-1.0-0.dll b/Output/x86/gstreamer/libgstriff-1.0-0.dll
deleted file mode 100644
index 67a8dde4..00000000
Binary files a/Output/x86/gstreamer/libgstriff-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstrmdemux.dll b/Output/x86/gstreamer/libgstrmdemux.dll
deleted file mode 100644
index cffaa83f..00000000
Binary files a/Output/x86/gstreamer/libgstrmdemux.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstrtp-1.0-0.dll b/Output/x86/gstreamer/libgstrtp-1.0-0.dll
deleted file mode 100644
index a0de60e2..00000000
Binary files a/Output/x86/gstreamer/libgstrtp-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstrtp.dll b/Output/x86/gstreamer/libgstrtp.dll
deleted file mode 100644
index bad2ac0a..00000000
Binary files a/Output/x86/gstreamer/libgstrtp.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstrtpmanager.dll b/Output/x86/gstreamer/libgstrtpmanager.dll
deleted file mode 100644
index 30499b6c..00000000
Binary files a/Output/x86/gstreamer/libgstrtpmanager.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstrtsp-1.0-0.dll b/Output/x86/gstreamer/libgstrtsp-1.0-0.dll
deleted file mode 100644
index d1bc1db3..00000000
Binary files a/Output/x86/gstreamer/libgstrtsp-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstrtsp.dll b/Output/x86/gstreamer/libgstrtsp.dll
deleted file mode 100644
index f3f6235b..00000000
Binary files a/Output/x86/gstreamer/libgstrtsp.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstscaletempoplugin.dll b/Output/x86/gstreamer/libgstscaletempoplugin.dll
deleted file mode 100644
index bebc907e..00000000
Binary files a/Output/x86/gstreamer/libgstscaletempoplugin.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstschro.dll b/Output/x86/gstreamer/libgstschro.dll
deleted file mode 100644
index 2fa33e7d..00000000
Binary files a/Output/x86/gstreamer/libgstschro.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstsdp-1.0-0.dll b/Output/x86/gstreamer/libgstsdp-1.0-0.dll
deleted file mode 100644
index a158c2ba..00000000
Binary files a/Output/x86/gstreamer/libgstsdp-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstsdpelem.dll b/Output/x86/gstreamer/libgstsdpelem.dll
deleted file mode 100644
index 5b4887fa..00000000
Binary files a/Output/x86/gstreamer/libgstsdpelem.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstsegmentclip.dll b/Output/x86/gstreamer/libgstsegmentclip.dll
deleted file mode 100644
index 8dd51501..00000000
Binary files a/Output/x86/gstreamer/libgstsegmentclip.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstshapewipe.dll b/Output/x86/gstreamer/libgstshapewipe.dll
deleted file mode 100644
index feee0ab2..00000000
Binary files a/Output/x86/gstreamer/libgstshapewipe.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstsiren.dll b/Output/x86/gstreamer/libgstsiren.dll
deleted file mode 100644
index 9c776e17..00000000
Binary files a/Output/x86/gstreamer/libgstsiren.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstsmooth.dll b/Output/x86/gstreamer/libgstsmooth.dll
deleted file mode 100644
index 1a2a0c9b..00000000
Binary files a/Output/x86/gstreamer/libgstsmooth.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstsmpte.dll b/Output/x86/gstreamer/libgstsmpte.dll
deleted file mode 100644
index 01c51019..00000000
Binary files a/Output/x86/gstreamer/libgstsmpte.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstsouphttpsrc.dll b/Output/x86/gstreamer/libgstsouphttpsrc.dll
deleted file mode 100644
index 66f74e35..00000000
Binary files a/Output/x86/gstreamer/libgstsouphttpsrc.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstspectrum.dll b/Output/x86/gstreamer/libgstspectrum.dll
deleted file mode 100644
index 0184bcb7..00000000
Binary files a/Output/x86/gstreamer/libgstspectrum.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstspeed.dll b/Output/x86/gstreamer/libgstspeed.dll
deleted file mode 100644
index 028baf54..00000000
Binary files a/Output/x86/gstreamer/libgstspeed.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstspeex.dll b/Output/x86/gstreamer/libgstspeex.dll
deleted file mode 100644
index a82a92aa..00000000
Binary files a/Output/x86/gstreamer/libgstspeex.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstsubenc.dll b/Output/x86/gstreamer/libgstsubenc.dll
deleted file mode 100644
index 5149e54c..00000000
Binary files a/Output/x86/gstreamer/libgstsubenc.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstsubparse.dll b/Output/x86/gstreamer/libgstsubparse.dll
deleted file mode 100644
index 15e30386..00000000
Binary files a/Output/x86/gstreamer/libgstsubparse.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgsttag-1.0-0.dll b/Output/x86/gstreamer/libgsttag-1.0-0.dll
deleted file mode 100644
index 03bd7db0..00000000
Binary files a/Output/x86/gstreamer/libgsttag-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgsttaglib.dll b/Output/x86/gstreamer/libgsttaglib.dll
deleted file mode 100644
index d8c892c8..00000000
Binary files a/Output/x86/gstreamer/libgsttaglib.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgsttcp.dll b/Output/x86/gstreamer/libgsttcp.dll
deleted file mode 100644
index 4a9a61dc..00000000
Binary files a/Output/x86/gstreamer/libgsttcp.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgsttheora.dll b/Output/x86/gstreamer/libgsttheora.dll
deleted file mode 100644
index d5627b59..00000000
Binary files a/Output/x86/gstreamer/libgsttheora.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgsttypefindfunctions.dll b/Output/x86/gstreamer/libgsttypefindfunctions.dll
deleted file mode 100644
index dd01f0c1..00000000
Binary files a/Output/x86/gstreamer/libgsttypefindfunctions.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstudp.dll b/Output/x86/gstreamer/libgstudp.dll
deleted file mode 100644
index a35f33e9..00000000
Binary files a/Output/x86/gstreamer/libgstudp.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstvideo-1.0-0.dll b/Output/x86/gstreamer/libgstvideo-1.0-0.dll
deleted file mode 100644
index b09b44c4..00000000
Binary files a/Output/x86/gstreamer/libgstvideo-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstvideobox.dll b/Output/x86/gstreamer/libgstvideobox.dll
deleted file mode 100644
index 719a0857..00000000
Binary files a/Output/x86/gstreamer/libgstvideobox.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstvideoconvert.dll b/Output/x86/gstreamer/libgstvideoconvert.dll
deleted file mode 100644
index b6585297..00000000
Binary files a/Output/x86/gstreamer/libgstvideoconvert.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstvideocrop.dll b/Output/x86/gstreamer/libgstvideocrop.dll
deleted file mode 100644
index 222e072b..00000000
Binary files a/Output/x86/gstreamer/libgstvideocrop.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstvideofilter.dll b/Output/x86/gstreamer/libgstvideofilter.dll
deleted file mode 100644
index 89cca146..00000000
Binary files a/Output/x86/gstreamer/libgstvideofilter.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstvideomixer.dll b/Output/x86/gstreamer/libgstvideomixer.dll
deleted file mode 100644
index 349dea27..00000000
Binary files a/Output/x86/gstreamer/libgstvideomixer.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstvideoparsersbad.dll b/Output/x86/gstreamer/libgstvideoparsersbad.dll
deleted file mode 100644
index 1dff2865..00000000
Binary files a/Output/x86/gstreamer/libgstvideoparsersbad.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstvideorate.dll b/Output/x86/gstreamer/libgstvideorate.dll
deleted file mode 100644
index 7bec823c..00000000
Binary files a/Output/x86/gstreamer/libgstvideorate.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstvideoscale.dll b/Output/x86/gstreamer/libgstvideoscale.dll
deleted file mode 100644
index 9190d1e1..00000000
Binary files a/Output/x86/gstreamer/libgstvideoscale.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstvideotestsrc.dll b/Output/x86/gstreamer/libgstvideotestsrc.dll
deleted file mode 100644
index 10737d05..00000000
Binary files a/Output/x86/gstreamer/libgstvideotestsrc.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstvolume.dll b/Output/x86/gstreamer/libgstvolume.dll
deleted file mode 100644
index 82d486d5..00000000
Binary files a/Output/x86/gstreamer/libgstvolume.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstvorbis.dll b/Output/x86/gstreamer/libgstvorbis.dll
deleted file mode 100644
index fbc886d0..00000000
Binary files a/Output/x86/gstreamer/libgstvorbis.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstvpx.dll b/Output/x86/gstreamer/libgstvpx.dll
deleted file mode 100644
index 2eaaef28..00000000
Binary files a/Output/x86/gstreamer/libgstvpx.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstwavenc.dll b/Output/x86/gstreamer/libgstwavenc.dll
deleted file mode 100644
index 5a0eaabf..00000000
Binary files a/Output/x86/gstreamer/libgstwavenc.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstwavpack.dll b/Output/x86/gstreamer/libgstwavpack.dll
deleted file mode 100644
index e176cb80..00000000
Binary files a/Output/x86/gstreamer/libgstwavpack.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstwavparse.dll b/Output/x86/gstreamer/libgstwavparse.dll
deleted file mode 100644
index 92071ac7..00000000
Binary files a/Output/x86/gstreamer/libgstwavparse.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstx264.dll b/Output/x86/gstreamer/libgstx264.dll
deleted file mode 100644
index eda314dd..00000000
Binary files a/Output/x86/gstreamer/libgstx264.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgstxingmux.dll b/Output/x86/gstreamer/libgstxingmux.dll
deleted file mode 100644
index c93ac1f6..00000000
Binary files a/Output/x86/gstreamer/libgstxingmux.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgsty4mdec.dll b/Output/x86/gstreamer/libgsty4mdec.dll
deleted file mode 100644
index 94d4ba85..00000000
Binary files a/Output/x86/gstreamer/libgsty4mdec.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgsty4menc.dll b/Output/x86/gstreamer/libgsty4menc.dll
deleted file mode 100644
index a3bdd6a6..00000000
Binary files a/Output/x86/gstreamer/libgsty4menc.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libgthread-2.0-0.dll b/Output/x86/gstreamer/libgthread-2.0-0.dll
deleted file mode 100644
index c4716e47..00000000
Binary files a/Output/x86/gstreamer/libgthread-2.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libhogweed-2-2.dll b/Output/x86/gstreamer/libhogweed-2-2.dll
deleted file mode 100644
index 04cec47f..00000000
Binary files a/Output/x86/gstreamer/libhogweed-2-2.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libiconv-2.dll b/Output/x86/gstreamer/libiconv-2.dll
deleted file mode 100644
index 98b3e824..00000000
Binary files a/Output/x86/gstreamer/libiconv-2.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libintl-8.dll b/Output/x86/gstreamer/libintl-8.dll
deleted file mode 100644
index 76b00225..00000000
Binary files a/Output/x86/gstreamer/libintl-8.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libjpeg-8.dll b/Output/x86/gstreamer/libjpeg-8.dll
deleted file mode 100644
index e4f52bad..00000000
Binary files a/Output/x86/gstreamer/libjpeg-8.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libkate-1.dll b/Output/x86/gstreamer/libkate-1.dll
deleted file mode 100644
index e6bc08bf..00000000
Binary files a/Output/x86/gstreamer/libkate-1.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libmms-0.dll b/Output/x86/gstreamer/libmms-0.dll
deleted file mode 100644
index 495397cc..00000000
Binary files a/Output/x86/gstreamer/libmms-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libmpeg2-0.dll b/Output/x86/gstreamer/libmpeg2-0.dll
deleted file mode 100644
index 03d4d18d..00000000
Binary files a/Output/x86/gstreamer/libmpeg2-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libmpeg2convert-0.dll b/Output/x86/gstreamer/libmpeg2convert-0.dll
deleted file mode 100644
index 68ffc517..00000000
Binary files a/Output/x86/gstreamer/libmpeg2convert-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libnettle-4-4.dll b/Output/x86/gstreamer/libnettle-4-4.dll
deleted file mode 100644
index 5eb48dae..00000000
Binary files a/Output/x86/gstreamer/libnettle-4-4.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libogg-0.dll b/Output/x86/gstreamer/libogg-0.dll
deleted file mode 100644
index e0053c58..00000000
Binary files a/Output/x86/gstreamer/libogg-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/liboggkate-1.dll b/Output/x86/gstreamer/liboggkate-1.dll
deleted file mode 100644
index 3ffe1994..00000000
Binary files a/Output/x86/gstreamer/liboggkate-1.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libopencore-amrnb-0.dll b/Output/x86/gstreamer/libopencore-amrnb-0.dll
deleted file mode 100644
index 1eef9151..00000000
Binary files a/Output/x86/gstreamer/libopencore-amrnb-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libopencore-amrwb-0.dll b/Output/x86/gstreamer/libopencore-amrwb-0.dll
deleted file mode 100644
index 09f6d1c2..00000000
Binary files a/Output/x86/gstreamer/libopencore-amrwb-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libopus-0.dll b/Output/x86/gstreamer/libopus-0.dll
deleted file mode 100644
index 4c37357f..00000000
Binary files a/Output/x86/gstreamer/libopus-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/liborc-0.4-0.dll b/Output/x86/gstreamer/liborc-0.4-0.dll
deleted file mode 100644
index 60861bdd..00000000
Binary files a/Output/x86/gstreamer/liborc-0.4-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/liborc-test-0.4-0.dll b/Output/x86/gstreamer/liborc-test-0.4-0.dll
deleted file mode 100644
index 03d611f7..00000000
Binary files a/Output/x86/gstreamer/liborc-test-0.4-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libpango-1.0-0.dll b/Output/x86/gstreamer/libpango-1.0-0.dll
deleted file mode 100644
index 3bc7dbd2..00000000
Binary files a/Output/x86/gstreamer/libpango-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libpangocairo-1.0-0.dll b/Output/x86/gstreamer/libpangocairo-1.0-0.dll
deleted file mode 100644
index a230677a..00000000
Binary files a/Output/x86/gstreamer/libpangocairo-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libpangoft2-1.0-0.dll b/Output/x86/gstreamer/libpangoft2-1.0-0.dll
deleted file mode 100644
index 972fc2b3..00000000
Binary files a/Output/x86/gstreamer/libpangoft2-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libpangowin32-1.0-0.dll b/Output/x86/gstreamer/libpangowin32-1.0-0.dll
deleted file mode 100644
index a8ca6052..00000000
Binary files a/Output/x86/gstreamer/libpangowin32-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libpixman-1-0.dll b/Output/x86/gstreamer/libpixman-1-0.dll
deleted file mode 100644
index 8b0e7510..00000000
Binary files a/Output/x86/gstreamer/libpixman-1-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libpng15-15.dll b/Output/x86/gstreamer/libpng15-15.dll
deleted file mode 100644
index 25b86025..00000000
Binary files a/Output/x86/gstreamer/libpng15-15.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libschroedinger-1.0-0.dll b/Output/x86/gstreamer/libschroedinger-1.0-0.dll
deleted file mode 100644
index 5b550844..00000000
Binary files a/Output/x86/gstreamer/libschroedinger-1.0-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libsoup-2.4-1.dll b/Output/x86/gstreamer/libsoup-2.4-1.dll
deleted file mode 100644
index 3f9d3f5b..00000000
Binary files a/Output/x86/gstreamer/libsoup-2.4-1.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libspeex-1.dll b/Output/x86/gstreamer/libspeex-1.dll
deleted file mode 100644
index e20e3aeb..00000000
Binary files a/Output/x86/gstreamer/libspeex-1.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libspeexdsp-1.dll b/Output/x86/gstreamer/libspeexdsp-1.dll
deleted file mode 100644
index b8c4c07f..00000000
Binary files a/Output/x86/gstreamer/libspeexdsp-1.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libstdc++-6.dll b/Output/x86/gstreamer/libstdc++-6.dll
deleted file mode 100644
index dcd41a9d..00000000
Binary files a/Output/x86/gstreamer/libstdc++-6.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libtag.dll b/Output/x86/gstreamer/libtag.dll
deleted file mode 100644
index 302fb280..00000000
Binary files a/Output/x86/gstreamer/libtag.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libtag_c.dll b/Output/x86/gstreamer/libtag_c.dll
deleted file mode 100644
index f9b18a5a..00000000
Binary files a/Output/x86/gstreamer/libtag_c.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libtasn1-3.dll b/Output/x86/gstreamer/libtasn1-3.dll
deleted file mode 100644
index 3efd4c60..00000000
Binary files a/Output/x86/gstreamer/libtasn1-3.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libtheora-0.dll b/Output/x86/gstreamer/libtheora-0.dll
deleted file mode 100644
index 97ef40c8..00000000
Binary files a/Output/x86/gstreamer/libtheora-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libtheoradec-1.dll b/Output/x86/gstreamer/libtheoradec-1.dll
deleted file mode 100644
index 7136909b..00000000
Binary files a/Output/x86/gstreamer/libtheoradec-1.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libtheoraenc-1.dll b/Output/x86/gstreamer/libtheoraenc-1.dll
deleted file mode 100644
index 38a7187a..00000000
Binary files a/Output/x86/gstreamer/libtheoraenc-1.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libtiff-5.dll b/Output/x86/gstreamer/libtiff-5.dll
deleted file mode 100644
index 4f64c71c..00000000
Binary files a/Output/x86/gstreamer/libtiff-5.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libvisual-0.4-0.dll b/Output/x86/gstreamer/libvisual-0.4-0.dll
deleted file mode 100644
index e25b19f2..00000000
Binary files a/Output/x86/gstreamer/libvisual-0.4-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libvorbis-0.dll b/Output/x86/gstreamer/libvorbis-0.dll
deleted file mode 100644
index dc0bed93..00000000
Binary files a/Output/x86/gstreamer/libvorbis-0.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libvorbisenc-2.dll b/Output/x86/gstreamer/libvorbisenc-2.dll
deleted file mode 100644
index 695beb90..00000000
Binary files a/Output/x86/gstreamer/libvorbisenc-2.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libvorbisfile-3.dll b/Output/x86/gstreamer/libvorbisfile-3.dll
deleted file mode 100644
index eae3fda5..00000000
Binary files a/Output/x86/gstreamer/libvorbisfile-3.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libwavpack-1.dll b/Output/x86/gstreamer/libwavpack-1.dll
deleted file mode 100644
index 7f5ece56..00000000
Binary files a/Output/x86/gstreamer/libwavpack-1.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libwinpthread-1.dll b/Output/x86/gstreamer/libwinpthread-1.dll
deleted file mode 100644
index e27a40c6..00000000
Binary files a/Output/x86/gstreamer/libwinpthread-1.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libx264-125.dll b/Output/x86/gstreamer/libx264-125.dll
deleted file mode 100644
index caf83228..00000000
Binary files a/Output/x86/gstreamer/libx264-125.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libxml2-2.dll b/Output/x86/gstreamer/libxml2-2.dll
deleted file mode 100644
index 70e68238..00000000
Binary files a/Output/x86/gstreamer/libxml2-2.dll and /dev/null differ
diff --git a/Output/x86/gstreamer/libz.dll b/Output/x86/gstreamer/libz.dll
deleted file mode 100644
index 49dd02aa..00000000
Binary files a/Output/x86/gstreamer/libz.dll and /dev/null differ
diff --git a/Output/x86/libgstreamersharpglue-1.0.0.dll b/Output/x86/libgstreamersharpglue-1.0.0.dll
new file mode 100644
index 00000000..37ddbf48
Binary files /dev/null and b/Output/x86/libgstreamersharpglue-1.0.0.dll differ
diff --git a/PartyModes/PartyModeChallengeMedley/CPartyModeChallengeMedley.cs b/PartyModes/PartyModeChallengeMedley/CPartyModeChallengeMedley.cs
index c6f0d619..623681b6 100644
--- a/PartyModes/PartyModeChallengeMedley/CPartyModeChallengeMedley.cs
+++ b/PartyModes/PartyModeChallengeMedley/CPartyModeChallengeMedley.cs
@@ -457,7 +457,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
public override void LeavingHighscore()
{
- for (int i = 0; i < CBase.Game.GetNumSongs();i++ )
+ for (int i = 0; i < CBase.Game.GetNumSongs(); i++)
CBase.Songs.AddPartySongSung(CBase.Game.GetSong(i).ID);
_GameData.CurrentRoundNr++;
CBase.Graphics.FadeTo(EScreens.ScreenPartyDummy);
@@ -588,12 +588,6 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
{
CProfile[] profiles = CBase.Profiles.GetProfiles();
- if (profiles == null)
- {
- _ScreenSongOptions.Selection.TeamNames = new string[] {"foo", "bar"};
- return;
- }
-
if (_GameData.NumPlayerAtOnce < 1 || _GameData.ProfileIDs.Count < _GameData.NumPlayerAtOnce || profiles.Length < _GameData.NumPlayerAtOnce)
{
_ScreenSongOptions.Selection.TeamNames = new string[] {"foo", "bar"};
diff --git a/Vocaluxe/Base/CBackgroundMusic.cs b/Vocaluxe/Base/CBackgroundMusic.cs
index d34d5432..396eda6d 100644
--- a/Vocaluxe/Base/CBackgroundMusic.cs
+++ b/Vocaluxe/Base/CBackgroundMusic.cs
@@ -52,25 +52,26 @@ namespace Vocaluxe.Base
public static bool VideoEnabled
{
get { return _PlaysPreview ? _PreviewPlayer.VideoEnabled : _SongPlayer.VideoEnabled; }
- set {
- if(_PlaysPreview)
+ set
+ {
+ if (_PlaysPreview)
_PreviewPlayer.VideoEnabled = value;
- else
+ else
_SongPlayer.VideoEnabled = value;
}
}
- public static bool CanSing
- {
- get
+ public static bool CanSing
+ {
+ get
{
if (_PlaysPreview)
return false;
+ else if (_BGMusicFiles.Contains(_CurrentPlaylistElement))
+ return false;
else
- if (_BGMusicFiles.Contains(_CurrentPlaylistElement))
- return false;
- else return true;
- }
+ return true;
+ }
}
public static bool Disabled
@@ -85,7 +86,8 @@ namespace Vocaluxe.Base
}
}
- public static bool RepeatSong {
+ public static bool RepeatSong
+ {
get { return _SongPlayer.RepeatSong; }
set { _SongPlayer.RepeatSong = value; }
}
@@ -100,13 +102,20 @@ namespace Vocaluxe.Base
get { return _SongPlayer.SongHasVideo; }
}
- public static bool IsPlaying { get { return _PlaysPreview ? _PreviewPlayer.IsPlaying : _SongPlayer.IsPlaying; } }
+ public static bool IsPlaying
+ {
+ get { return _PlaysPreview ? _PreviewPlayer.IsPlaying : _SongPlayer.IsPlaying; }
+ }
- public static bool IsPlayingPreview { get { return _PlaysPreview; } }
+ public static bool IsPlayingPreview
+ {
+ get { return _PlaysPreview; }
+ }
public static string ArtistAndTitle
{
- get {
+ get
+ {
if (_PlaysPreview)
return _PreviewPlayer.ArtistAndTitle;
else
@@ -119,7 +128,7 @@ namespace Vocaluxe.Base
get { return _PlaysPreview ? _PreviewPlayer.Length : _SongPlayer.Length; }
}
- public static CTexture Cover
+ public static CTextureRef Cover
{
get { return _PlaysPreview ? _PreviewPlayer.Cover : _SongPlayer.Cover; }
}
@@ -184,12 +193,14 @@ namespace Vocaluxe.Base
if (_PlaysPreview)
_PreviewPlayer.Play();
- else if(CConfig.BackgroundMusic == EBackgroundMusicOffOn.TR_CONFIG_OFF)
+ else if (CConfig.BackgroundMusic == EBackgroundMusicOffOn.TR_CONFIG_OFF)
+ {
if (_SongPlayer.SongLoaded)
//Resume
_SongPlayer.TogglePause();
else
Next();
+ }
}
public static void Stop()
@@ -278,7 +289,7 @@ namespace Vocaluxe.Base
public static void Update()
{
- if (!IsPlaying && (!_SongPlayer.SongLoaded || !_PreviewPlayer.SongLoaded) )
+ if (!IsPlaying && (!_SongPlayer.SongLoaded || !_PreviewPlayer.SongLoaded))
return;
if (_PlaysPreview)
@@ -291,7 +302,7 @@ namespace Vocaluxe.Base
}
}
- public static CTexture GetVideoTexture()
+ public static CTextureRef GetVideoTexture()
{
return _PlaysPreview ? _PreviewPlayer.GetVideoTexture() : _SongPlayer.GetVideoTexture();
}
@@ -439,6 +450,5 @@ namespace Vocaluxe.Base
{
return _BGMusicFiles.Contains(element);
}
-
}
}
\ No newline at end of file
diff --git a/Vocaluxe/Base/CConfig.cs b/Vocaluxe/Base/CConfig.cs
index 5b42d5aa..12d913a0 100644
--- a/Vocaluxe/Base/CConfig.cs
+++ b/Vocaluxe/Base/CConfig.cs
@@ -72,6 +72,8 @@ namespace Vocaluxe.Base
public static int BorderTop;
public static int BorderBottom;
+ public static EGeneralAlignment ScreenAlignment = EGeneralAlignment.Middle;
+
public static EAntiAliasingModes AAMode = EAntiAliasingModes.X0;
public static EOffOn VSync = EOffOn.TR_CONFIG_ON;
@@ -91,6 +93,7 @@ namespace Vocaluxe.Base
public static EFadePlayerInfo FadePlayerInfo = EFadePlayerInfo.TR_CONFIG_FADEPLAYERINFO_OFF;
public static ECoverLoading CoverLoading = ECoverLoading.TR_CONFIG_COVERLOADING_DYNAMIC;
public static ELyricStyle LyricStyle = ELyricStyle.Slide;
+ public static bool LoadOldThemeFiles = false;
// Sound
public static EPlaybackLib PlayBackLib = EPlaybackLib.GstreamerSharp;
@@ -225,6 +228,8 @@ namespace Vocaluxe.Base
xmlReader.TryGetIntValue("//root/Graphics/ScreenW", ref ScreenW);
xmlReader.TryGetIntValue("//root/Graphics/ScreenH", ref ScreenH);
+ xmlReader.TryGetEnumValue("//root/Graphics/ScreenAlignment", ref ScreenAlignment);
+
xmlReader.TryGetIntValue("//root/Graphics/BorderLeft", ref BorderLeft);
xmlReader.TryGetIntValue("//root/Graphics/BorderRight", ref BorderRight);
xmlReader.TryGetIntValue("//root/Graphics/BorderTop", ref BorderTop);
@@ -403,6 +408,8 @@ namespace Vocaluxe.Base
writer.WriteElementString("ScreenW", ScreenW.ToString());
writer.WriteElementString("ScreenH", ScreenH.ToString());
+ writer.WriteElementString("ScreenAlignment", Enum.GetName(typeof(EGeneralAlignment), ScreenAlignment));
+
writer.WriteComment("Screen borders (pixels)");
writer.WriteElementString("BorderLeft", BorderLeft.ToString());
writer.WriteElementString("BorderRight", BorderRight.ToString());
@@ -831,6 +838,11 @@ namespace Vocaluxe.Base
ProfileFolders.Clear();
ProfileFolders.Add(value);
break;
+
+ case "oldtheme":
+ if(value == "yes")
+ LoadOldThemeFiles = true;
+ break;
}
}
}
@@ -888,7 +900,7 @@ namespace Vocaluxe.Base
for (int j = 0; j < CSettings.MaxNumPlayer; j++)
{
CGame.Players[j].ProfileID = -1;
- if (Players[j] == "" || profiles == null)
+ if (Players[j] == "")
continue;
foreach (CProfile profile in profiles)
diff --git a/Vocaluxe/Base/CCover.cs b/Vocaluxe/Base/CCover.cs
index 177444d8..8e589265 100644
--- a/Vocaluxe/Base/CCover.cs
+++ b/Vocaluxe/Base/CCover.cs
@@ -36,11 +36,11 @@ namespace Vocaluxe.Base
private const string _NoCoverName = "No Cover";
private const string _NoCoverNameAlt = "NoCover";
private const string _DefaultTypeName = "Default";
- private static readonly Dictionary _Covers = new Dictionary();
+ private static readonly Dictionary _Covers = new Dictionary();
private static readonly Dictionary _NoCoverThemes = new Dictionary();
private static readonly List _CoverThemes = new List();
- public static CTexture NoCover { get; private set; }
+ public static CTextureRef NoCover { get; private set; }
public static void Init()
{
@@ -86,7 +86,7 @@ namespace Vocaluxe.Base
///
/// Returns a STexture for a given cover name. Returns "NoCover" if the cover does not exist.
///
- public static CTexture Cover(string name)
+ public static CTextureRef Cover(string name)
{
lock (_Covers)
{
@@ -97,10 +97,10 @@ namespace Vocaluxe.Base
}
}
- public static CTexture GenerateCover(string text, ESongSorting sorting, CCategory category)
+ public static CTextureRef GenerateCover(string text, ESongSorting sorting, CCategory category)
{
CSong firstSong = category.GetSong(0);
- CTexture cover = _NoCoverThemes[_SongSortingToType(sorting)].GetCover(text, firstSong != null ? Path.Combine(firstSong.Folder, firstSong.CoverFileName) : null);
+ CTextureRef cover = _NoCoverThemes[_SongSortingToType(sorting)].GetCover(text, firstSong != null ? Path.Combine(firstSong.Folder, firstSong.CoverFileName) : null);
if (cover == null)
cover = _NoCoverThemes[_DefaultTypeName].GetCover(text, firstSong != null ? Path.Combine(firstSong.Folder, firstSong.CoverFileName) : null);
if (cover == null)
@@ -139,7 +139,7 @@ namespace Vocaluxe.Base
{
foreach (string key in _Covers.Keys)
{
- CTexture texture = _Covers[key];
+ CTextureRef texture = _Covers[key];
CDraw.RemoveTexture(ref texture);
}
_Covers.Clear();
diff --git a/Vocaluxe/Base/CCursor.cs b/Vocaluxe/Base/CCursor.cs
index 46a6e2b1..01ede32b 100644
--- a/Vocaluxe/Base/CCursor.cs
+++ b/Vocaluxe/Base/CCursor.cs
@@ -27,7 +27,7 @@ namespace Vocaluxe.Base
{
private int _MouseMoveDiffMin = CSettings.MouseMoveDiffMinActive;
private CFading _Fading;
- private CTexture _Cursor;
+ private CTextureRef _Cursor;
private Point _LastDiffPos;
private readonly Stopwatch _Movetimer = new Stopwatch();
diff --git a/Vocaluxe/Base/CDataBase.cs b/Vocaluxe/Base/CDataBase.cs
index 6297433e..a3e6397d 100644
--- a/Vocaluxe/Base/CDataBase.cs
+++ b/Vocaluxe/Base/CDataBase.cs
@@ -93,7 +93,7 @@ namespace Vocaluxe.Base
_HighscoreDB.IncreaseSongCounter(dataBaseSongID);
}
- public static bool GetCover(string fileName, ref CTexture tex, int maxSize)
+ public static bool GetCover(string fileName, ref CTextureRef tex, int maxSize)
{
return _CoverDB.GetCover(fileName, ref tex, maxSize);
}
@@ -103,7 +103,7 @@ namespace Vocaluxe.Base
_CoverDB.CommitCovers();
}
- public static bool GetCreditsRessource(string fileName, ref CTexture tex)
+ public static bool GetCreditsRessource(string fileName, ref CTextureRef tex)
{
return _ResourceDB.GetCreditsRessource(fileName, ref tex);
}
diff --git a/Vocaluxe/Base/CDraw.cs b/Vocaluxe/Base/CDraw.cs
index f109645b..4a9d50e6 100644
--- a/Vocaluxe/Base/CDraw.cs
+++ b/Vocaluxe/Base/CDraw.cs
@@ -20,7 +20,6 @@ using System.Drawing;
using Vocaluxe.Lib.Draw;
using VocaluxeLib;
using VocaluxeLib.Draw;
-using VocaluxeLib.Menu;
namespace Vocaluxe.Base
{
@@ -28,6 +27,10 @@ namespace Vocaluxe.Base
{
private static IDraw _Draw;
+ ///
+ /// Initializes the Driver selected in the config
+ ///
+ ///
public static bool Init()
{
if (_Draw != null)
@@ -74,12 +77,20 @@ namespace Vocaluxe.Base
return _Draw.Init();
}
+ ///
+ /// Has to be called to start rendering
+ /// Will only return if program is closed
+ /// Also inits the first screen
+ ///
public static void MainLoop()
{
CGraphics.InitFirstScreen();
_Draw.MainLoop();
}
+ ///
+ /// Unloads the current driver, e.g. to switch to another one
+ ///
public static void Unload()
{
if (_Draw != null)
@@ -89,143 +100,302 @@ namespace Vocaluxe.Base
}
}
+ ///
+ /// Gets the width of the rendering area
+ ///
+ ///
public static int GetScreenWidth()
{
return _Draw.GetScreenWidth();
}
+ ///
+ /// Gets the height of the rendering area
+ ///
+ ///
public static int GetScreenHeight()
{
return _Draw.GetScreenHeight();
}
- public static void DrawLine(int a, int r, int g, int b, int w, int x1, int y1, int x2, int y2)
- {
- _Draw.DrawLine(a, r, g, b, w, x1, y1, x2, y2);
- }
-
- public static void DrawRect(SColorF color, SRectF rect, float thickness)
- {
- if (thickness <= 0f)
- return;
-
- _Draw.DrawColor(color, new SRectF(rect.X - thickness / 2, rect.Y - thickness / 2, rect.W + thickness, thickness, rect.Z));
- _Draw.DrawColor(color, new SRectF(rect.X - thickness / 2, rect.Y + rect.H - thickness / 2, rect.W + thickness, thickness, rect.Z));
- _Draw.DrawColor(color, new SRectF(rect.X - thickness / 2, rect.Y - thickness / 2, thickness, rect.H + thickness, rect.Z));
- _Draw.DrawColor(color, new SRectF(rect.X + rect.W - thickness / 2, rect.Y - thickness / 2, thickness, rect.H + thickness, rect.Z));
- }
-
- public static void DrawColor(SColorF color, SRectF rect)
- {
- _Draw.DrawColor(color, rect);
- }
-
- public static void DrawColorReflection(SColorF color, SRectF rect, float space, float height)
- {
- _Draw.DrawColorReflection(color, rect, space, height);
- }
-
- public static void ClearScreen()
- {
- _Draw.ClearScreen();
- }
-
- public static CTexture CopyScreen()
- {
- return _Draw.CopyScreen();
- }
-
- public static void CopyScreen(ref CTexture texture)
- {
- _Draw.CopyScreen(ref texture);
- }
-
+ ///
+ /// Takes a screenshot and saves it to the Screenshot folder
+ ///
public static void MakeScreenShot()
{
_Draw.MakeScreenShot();
}
- public static CTexture AddTexture(Bitmap bitmap)
+ ///
+ /// Gets the current screen content as a texture
+ ///
+ ///
+ public static CTextureRef CopyScreen()
+ {
+ return _Draw.CopyScreen();
+ }
+
+ ///
+ /// Gets the current screen content updating the given texture
+ ///
+ ///
+ public static void CopyScreen(ref CTextureRef texture)
+ {
+ _Draw.CopyScreen(ref texture);
+ }
+
+ ///
+ /// Adds a texture from a Bitmap and returns a reference to it
+ /// Must be called from main thread!
+ ///
+ ///
+ /// Reference to texture
+ public static CTextureRef AddTexture(Bitmap bitmap)
{
return _Draw.AddTexture(bitmap);
}
- public static CTexture AddTexture(string texturePath)
+ ///
+ /// Adds a texture from an image file given by its file path
+ /// Must be called from main thread!
+ ///
+ ///
+ /// Reference to texture or null on error
+ public static CTextureRef AddTexture(string texturePath)
{
return _Draw.AddTexture(texturePath);
}
- public static CTexture AddTexture(int w, int h, byte[] data)
+ ///
+ /// Adds a texture from a byte array
+ /// Must be called from main thread!
+ ///
+ /// Width of the image
+ /// Height of the image
+ /// Array of 4 byte values for each pixel
+ /// Reference to texture
+ public static CTextureRef AddTexture(int w, int h, byte[] data)
{
return _Draw.AddTexture(w, h, data);
}
- public static CTexture EnqueueTexture(int w, int h, byte[] data)
+ ///
+ /// Requests aadding a texture from a byte array
+ /// Use this if you add textures from another thread or don't need it immediatelly
+ ///
+ /// Width of the image
+ /// Height of the image
+ /// Array of 4 byte values for each pixel
+ /// Reference to texture
+ public static CTextureRef EnqueueTexture(int w, int h, byte[] data)
{
return _Draw.EnqueueTexture(w, h, data);
}
- public static bool UpdateTexture(CTexture texture, int w, int h, byte[] data)
+ ///
+ /// Requests adding a texture from a bitmap
+ /// Use this if you add textures from another thread or don't need it immediatelly
+ ///
+ /// Bitmap to add, gets disposed after adding!
+ /// Reference to texture
+ public static CTextureRef EnqueueTexture(Bitmap bmp)
{
- return _Draw.UpdateTexture(texture, w, h, data);
+ return _Draw.EnqueueTexture(bmp);
}
- public static bool UpdateOrAddTexture(ref CTexture texture, int w, int h, byte[] data)
+ ///
+ /// Requests adding a texture from a file
+ /// Use this if you add textures from another thread or don't need it immediatelly
+ ///
+ /// Full path to the image file
+ /// Reference to texture
+ public static CTextureRef EnqueueTexture(String texturePath)
{
- return _Draw.UpdateOrAddTexture(ref texture, w, h, data);
+ return _Draw.EnqueueTexture(texturePath);
}
- public static void RemoveTexture(ref CTexture texture)
+ ///
+ /// Requests updating a texture from a bitmap
+ /// Use this if you add textures from another thread or don't need it immediatelly
+ ///
+ /// Reference to the texture to update
+ ///
+ public static void EnqueueTextureUpdate(CTextureRef textureRef, Bitmap bmp)
{
- _Draw.RemoveTexture(ref texture);
+ _Draw.EnqueueTextureUpdate(textureRef, bmp);
}
- public static void DrawTexture(CTexture texture)
+ ///
+ /// Creates a copy of the texture
+ /// Updates to the copy do not affect the original texture
+ ///
+ /// Original texture reference
+ /// New texture reference of the copy
+ public static CTextureRef CopyTexture(CTextureRef textureRef)
{
- _Draw.DrawTexture(texture);
+ return _Draw.CopyTexture(textureRef);
}
- public static void DrawTexture(CTexture texture, SRectF rect)
+ ///
+ /// Updates a texture, filling it with the new data
+ ///
+ ///
+ /// Width of the image
+ /// Height of the image
+ /// Array of 4 byte values for each pixel
+ public static void UpdateTexture(CTextureRef textureRef, int w, int h, byte[] data)
{
- _Draw.DrawTexture(texture, rect);
+ _Draw.UpdateTexture(textureRef, w, h, data);
}
- public static void DrawTexture(CTexture texture, SRectF rect, SColorF color, bool mirrored = false)
+ ///
+ /// Updates a texture, filling it with the new data from the bitmap
+ ///
+ ///
+ ///
+ public static void UpdateTexture(CTextureRef textureRef, Bitmap bmp)
{
- _Draw.DrawTexture(texture, rect, color, mirrored);
+ _Draw.UpdateTexture(textureRef, bmp);
}
- public static void DrawTexture(CTexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false)
+ ///
+ /// Removes a texture from the VRAM and sets it to null to avoid accidential usage
+ /// Note: You can also use its Dispose method to do the same as this gets automaticly called from the Dispose method and destructor of a texture reference
+ ///
+ ///
+ public static void RemoveTexture(ref CTextureRef texture)
{
- _Draw.DrawTexture(texture, rect, color, bounds, mirrored);
- }
-
- public static void DrawTexture(CTexture texture, SRectF rect, SColorF color, float begin, float end)
- {
- _Draw.DrawTexture(texture, rect, color, begin, end);
- }
-
- public static void DrawTexture(CStatic staticBounds, CTexture texture, EAspect aspect)
- {
- if (texture == null)
- return;
-
- var bounds = new RectangleF(staticBounds.Rect.X, staticBounds.Rect.Y, staticBounds.Rect.W, staticBounds.Rect.H);
- RectangleF rect;
-
- CHelper.SetRect(bounds, out rect, texture.OrigAspect, aspect);
- DrawTexture(texture, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, staticBounds.Rect.Z),
- texture.Color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f));
- }
-
- public static void DrawTextureReflection(CTexture texture, SRectF rect, SColorF color, SRectF bounds, float space, float height)
- {
- _Draw.DrawTextureReflection(texture, rect, color, bounds, space, height);
+ // Disposed textures call this, possibly at program end!
+ if (_Draw != null)
+ _Draw.RemoveTexture(ref texture);
}
+ ///
+ /// Returns the number of textures in the VRAM (textures might get reused so this might not be the actual number of textures in use)
+ ///
+ ///
public static int TextureCount()
{
return _Draw.GetTextureCount();
}
+
+ ///
+ /// Draws a simple (filled) rectangle with the given color
+ ///
+ ///
+ ///
+ public static void DrawRect(SColorF color, SRectF rect)
+ {
+ _Draw.DrawRect(color, rect);
+ }
+
+ ///
+ /// Draws the reflection of a filled rectangle with the given color
+ ///
+ ///
+ /// (Original) rectangle to draw the reflection for
+ /// Spacing between the rect and the reflection
+ /// Height of the reflection
+ public static void DrawRectReflection(SColorF color, SRectF rect, float space, float height)
+ {
+ _Draw.DrawRectReflection(color, rect, space, height);
+ }
+
+ ///
+ /// Draws a texture at its position and with its color
+ ///
+ /// The texture to be drawn
+ public static void DrawTexture(CTextureRef texture)
+ {
+ DrawTexture(texture, texture.Rect);
+ }
+
+ ///
+ /// Draws a texture with its color at the given position
+ ///
+ /// The texture to be drawn
+ /// A rectangle with the destination coordinates
+ public static void DrawTexture(CTextureRef textureRef, SRectF rect)
+ {
+ DrawTexture(textureRef, rect, textureRef.Color);
+ }
+
+ ///
+ /// Draws a texture at the given position with the given color
+ ///
+ ///
+ ///
+ ///
+ /// True to mirror the texture on the y axis
+ public static void DrawTexture(CTextureRef textureRef, SRectF rect, SColorF color, bool mirrored = false)
+ {
+ _Draw.DrawTexture(textureRef, rect, color, mirrored);
+ }
+
+ ///
+ /// Draws a texture at the given position with the given color
+ ///
+ ///
+ ///
+ ///
+ /// Bounds to draw the texture in (rest gets cropped off)
+ /// True to mirror the texture on the y axis
+ public static void DrawTexture(CTextureRef textureRef, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false)
+ {
+ _Draw.DrawTexture(textureRef, rect, color, bounds, mirrored);
+ }
+
+ ///
+ /// Draws a part of a texture at the given position with the given color
+ ///
+ ///
+ ///
+ ///
+ /// Normalized start x-coordinate (0..1)
+ /// Normalized end x-coordinate (0..1)
+ public static void DrawTexture(CTextureRef textureRef, SRectF rect, SColorF color, float begin, float end)
+ {
+ _Draw.DrawTexture(textureRef, rect, color, begin, end);
+ }
+
+ ///
+ /// Draws a texture fitting it within the given bounds with the method specified by aspect
+ ///
+ ///
+ /// Where to draw the texture
+ /// How to fit a texture in the bounds if the size differs
+ public static void DrawTexture(CTextureRef textureRef, SRectF bounds, EAspect aspect)
+ {
+ DrawTexture(textureRef, bounds, aspect, textureRef.Color);
+ }
+
+ ///
+ /// Draws a texture fitting it within the given color and bounds with the method specified by aspect
+ ///
+ ///
+ /// Where to draw the texture
+ /// How to fit a texture in the bounds if the size differs
+ /// Color to use
+ public static void DrawTexture(CTextureRef textureRef, SRectF bounds, EAspect aspect, SColorF color)
+ {
+ if (textureRef == null)
+ return;
+
+ SRectF rect = CHelper.FitInBounds(bounds, textureRef.OrigAspect, aspect);
+ DrawTexture(textureRef, rect, color);
+ }
+
+ ///
+ /// Draws the reflection of a texture at the given position and with the given color
+ ///
+ ///
+ /// (Original) rectangle to draw the reflection for
+ ///
+ /// Spacing between the rect and the reflection
+ /// Height of the reflection
+ public static void DrawTextureReflection(CTextureRef textureRef, SRectF rect, SColorF color, float space, float height)
+ {
+ _Draw.DrawTextureReflection(textureRef, rect, color, space, height);
+ }
}
}
\ No newline at end of file
diff --git a/Vocaluxe/Base/CGraphics.cs b/Vocaluxe/Base/CGraphics.cs
index d73274a1..6ec89672 100644
--- a/Vocaluxe/Base/CGraphics.cs
+++ b/Vocaluxe/Base/CGraphics.cs
@@ -20,6 +20,8 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Windows.Forms;
+using System.IO;
+using System.Xml.Serialization;
using Vocaluxe.Base.Fonts;
using Vocaluxe.Screens;
using VocaluxeLib;
@@ -160,11 +162,18 @@ namespace Vocaluxe.Base
public static void SaveTheme()
{
CTheme.SaveTheme();
- foreach (IMenu screen in _Screens)
+ foreach (CMenu screen in _Screens)
+ {
+ if (screen.ThemePath == null || screen.ThemeName == "ScreenTest")
+ continue;
+
screen.SaveTheme();
+ }
foreach (IMenu popup in _PopupScreens)
popup.SaveTheme();
+
+ CParty.SaveThemes();
}
public static void InitFirstScreen()
@@ -187,9 +196,6 @@ namespace Vocaluxe.Base
CController.Update();
CProfiles.Update();
- if (CConfig.CoverLoading == ECoverLoading.TR_CONFIG_COVERLOADING_DYNAMIC && _CurrentScreen != EScreens.ScreenSing)
- CSongs.LoadCover();
-
if (CSettings.ProgramState != EProgramState.EditTheme)
{
run &= _HandleInputs(keys, mouse);
@@ -353,32 +359,55 @@ namespace Vocaluxe.Base
if (!eventsAvailable)
keyEvent = inputKeyEvent;
- if (keyEvent.IsArrowKey() || keyEvent.Key == Keys.NumPad0 || keyEvent.Key == Keys.D0)
+ if (keyEvent.IsArrowKey() || keyEvent.Key == Keys.NumPad0 || keyEvent.Key == Keys.D0 || keyEvent.Key == Keys.Add)
{
_Cursor.Deactivate();
- if (keyEvent.ModAlt && keyEvent.ModCtrl && keyEvent.ModShift)
+ if (keyEvent.ModAlt && keyEvent.ModCtrl)
{
switch (keyEvent.Key)
{
- case Keys.Left:
- CConfig.BorderLeft -= 1;
- CConfig.BorderRight -= 1;
- CConfig.BorderTop -= 1;
- CConfig.BorderBottom -= 1;
- break;
case Keys.Right:
- CConfig.BorderLeft += 1;
- CConfig.BorderRight += 1;
- CConfig.BorderTop += 1;
- CConfig.BorderBottom += 1;
+ if (keyEvent.ModShift)
+ CConfig.BorderLeft++;
+ else
+ CConfig.BorderRight--;
+ break;
+ case Keys.Left:
+ if (keyEvent.ModShift)
+ CConfig.BorderLeft--;
+ else
+ CConfig.BorderRight++;
+ break;
+ case Keys.Down:
+ if (keyEvent.ModShift)
+ CConfig.BorderTop++;
+ else
+ CConfig.BorderBottom--;
+ break;
+ case Keys.Up:
+ if (keyEvent.ModShift)
+ CConfig.BorderTop--;
+ else
+ CConfig.BorderBottom++;
break;
case Keys.D0:
case Keys.NumPad0:
- CConfig.BorderLeft = 0;
- CConfig.BorderRight = 0;
- CConfig.BorderTop = 0;
- CConfig.BorderBottom = 0;
+ CConfig.BorderLeft = CConfig.BorderRight = CConfig.BorderTop = CConfig.BorderBottom = 0;
+ break;
+ case Keys.Add:
+ switch (CConfig.ScreenAlignment)
+ {
+ case EGeneralAlignment.Middle:
+ CConfig.ScreenAlignment = EGeneralAlignment.End;
+ break;
+ case EGeneralAlignment.End:
+ CConfig.ScreenAlignment = EGeneralAlignment.Start;
+ break;
+ default:
+ CConfig.ScreenAlignment = EGeneralAlignment.Middle;
+ break;
+ }
break;
}
CConfig.SaveConfig();
@@ -636,7 +665,7 @@ namespace Vocaluxe.Base
{
float textWidth = CFonts.GetTextWidth(txt, font);
RectangleF rect = new RectangleF(CSettings.RenderW - textWidth, y, textWidth, CFonts.GetTextHeight(txt,font));
- CDraw.DrawColor(gray, new SRectF(rect.X, rect.Top, rect.Width, rect.Height, CSettings.ZNear));
+ CDraw.DrawRect(gray, new SRectF(rect.X, rect.Top, rect.Width, rect.Height, CSettings.ZNear));
CFonts.DrawText(txt, font, rect.X, rect.Y, CSettings.ZNear);
y += rect.Height;
}
diff --git a/Vocaluxe/Base/CMain.cs b/Vocaluxe/Base/CMain.cs
index 919afea7..36fa3aa5 100644
--- a/Vocaluxe/Base/CMain.cs
+++ b/Vocaluxe/Base/CMain.cs
@@ -155,6 +155,11 @@ namespace Vocaluxe.Base
{
return CConfig.XMLSettings;
}
+
+ public bool GetLoadOldThemeFiles()
+ {
+ return CConfig.LoadOldThemeFiles;
+ }
}
class CBsettings : ISettings
@@ -267,12 +272,12 @@ namespace Vocaluxe.Base
return CTheme.GetSkinIndex(partyModeID);
}
- public CTexture GetSkinTexture(string textureName, int partyModeID)
+ public CTextureRef GetSkinTexture(string textureName, int partyModeID)
{
return CTheme.GetSkinTexture(textureName, partyModeID);
}
- public CTexture GetSkinVideoTexture(string videoName, int partyModeID)
+ public CTextureRef GetSkinVideoTexture(string videoName, int partyModeID)
{
return CTheme.GetSkinVideoTexture(videoName, partyModeID);
}
@@ -400,7 +405,7 @@ namespace Vocaluxe.Base
CBackgroundMusic.StopPreview();
}
- public CTexture GetVideoTexture()
+ public CTextureRef GetVideoTexture()
{
return CBackgroundMusic.GetVideoTexture();
}
@@ -408,44 +413,54 @@ namespace Vocaluxe.Base
class CBdraw : IDrawing
{
- public void DrawTexture(CTexture texture, SRectF rect)
+ public void DrawTexture(CTextureRef texture, SRectF rect)
{
CDraw.DrawTexture(texture, rect);
}
- public void DrawTexture(CTexture texture, SRectF rect, SColorF color)
+ public void DrawTexture(CTextureRef texture, SRectF rect, SColorF color)
{
CDraw.DrawTexture(texture, rect, color);
}
- public void DrawTexture(CTexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false)
+ public void DrawTexture(CTextureRef texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false)
{
CDraw.DrawTexture(texture, rect, color, bounds, mirrored);
}
- public void DrawTextureReflection(CTexture texture, SRectF rect, SColorF color, SRectF bounds, float reflectionSpace, float reflectionHeight)
+ public void DrawTexture(CTextureRef textureRef, SRectF bounds, EAspect aspect)
{
- CDraw.DrawTextureReflection(texture, rect, color, bounds, reflectionSpace, reflectionHeight);
+ CDraw.DrawTexture(textureRef, bounds, aspect);
}
- public CTexture AddTexture(string fileName)
+ public void DrawTexture(CTextureRef textureRef, SRectF bounds, EAspect aspect, SColorF color)
+ {
+ CDraw.DrawTexture(textureRef, bounds, aspect, color);
+ }
+
+ public void DrawTextureReflection(CTextureRef texture, SRectF rect, SColorF color, float reflectionSpace, float reflectionHeight)
+ {
+ CDraw.DrawTextureReflection(texture, rect, color, reflectionSpace, reflectionHeight);
+ }
+
+ public CTextureRef AddTexture(string fileName)
{
return CDraw.AddTexture(fileName);
}
- public void RemoveTexture(ref CTexture texture)
+ public void RemoveTexture(ref CTextureRef texture)
{
CDraw.RemoveTexture(ref texture);
}
- public void DrawColor(SColorF color, SRectF rect)
+ public void DrawRect(SColorF color, SRectF rect)
{
- CDraw.DrawColor(color, rect);
+ CDraw.DrawRect(color, rect);
}
- public void DrawColorReflection(SColorF color, SRectF rect, float space, float height)
+ public void DrawRectReflection(SColorF color, SRectF rect, float space, float height)
{
- CDraw.DrawColorReflection(color, rect, space, height);
+ CDraw.DrawRectReflection(color, rect, space, height);
}
}
@@ -636,7 +651,7 @@ namespace Vocaluxe.Base
return CProfiles.GetPlayerName(profileID, playerNum);
}
- public CTexture GetAvatar(int profileID)
+ public CTextureRef GetAvatar(int profileID)
{
return CProfiles.GetAvatarTextureFromProfile(profileID);
}
@@ -795,7 +810,7 @@ namespace Vocaluxe.Base
return CVideo.Skip(videoStream, startPosition, videoGap);
}
- public bool GetFrame(int videoStream, ref CTexture videoTexture, float time, out float videoTime)
+ public bool GetFrame(int videoStream, ref CTextureRef videoTexture, float time, out float videoTime)
{
return CVideo.GetFrame(videoStream, ref videoTexture, time, out videoTime);
}
@@ -876,7 +891,7 @@ namespace Vocaluxe.Base
class CBcover : ICover
{
- public CTexture GetNoCover()
+ public CTextureRef GetNoCover()
{
return CCover.NoCover;
}
@@ -884,7 +899,7 @@ namespace Vocaluxe.Base
class CBdataBase : IDataBase
{
- public bool GetCover(string fileName, ref CTexture texture, int coverSize)
+ public bool GetCover(string fileName, ref CTextureRef texture, int coverSize)
{
return CDataBase.GetCover(fileName, ref texture, coverSize);
}
diff --git a/Vocaluxe/Base/CParty.cs b/Vocaluxe/Base/CParty.cs
index 22bc3b33..469e8af9 100644
--- a/Vocaluxe/Base/CParty.cs
+++ b/Vocaluxe/Base/CParty.cs
@@ -93,6 +93,13 @@ namespace Vocaluxe.Base
get { return _PartyModes.Count; }
}
+ public static void SaveThemes()
+ {
+ foreach (KeyValuePair pair in _PartyModes)
+ pair.Value.PartyMode.SaveScreens();
+ }
+
+
public static List GetPartyModeInfos()
{
var infos = new List();
diff --git a/Vocaluxe/Base/CPlaylistElement.cs b/Vocaluxe/Base/CPlaylistElement.cs
index 3b6588de..eec209c1 100644
--- a/Vocaluxe/Base/CPlaylistElement.cs
+++ b/Vocaluxe/Base/CPlaylistElement.cs
@@ -61,7 +61,7 @@ namespace Vocaluxe.Base
get { return _Song != null ? _Song.Finish : 0f; }
}
- public CTexture Cover
+ public CTextureRef Cover
{
get { return _Song != null ? _Song.CoverTextureSmall : CCover.NoCover; }
}
diff --git a/Vocaluxe/Base/CProfiles.cs b/Vocaluxe/Base/CProfiles.cs
index 8c5c9887..8cc7d8b5 100644
--- a/Vocaluxe/Base/CProfiles.cs
+++ b/Vocaluxe/Base/CProfiles.cs
@@ -297,7 +297,7 @@ namespace Vocaluxe.Base
public static CProfile[] GetProfiles()
{
if (_Profiles.Count == 0)
- return null;
+ return new CProfile[0];
var list = new List(_Profiles.Values);
list.Sort(_CompareByPlayerName);
@@ -504,7 +504,7 @@ namespace Vocaluxe.Base
#endregion profile properties
#region avatar texture
- public static CTexture GetAvatarTexture(int avatarID)
+ public static CTextureRef GetAvatarTexture(int avatarID)
{
if (!IsAvatarIDValid(avatarID))
return null;
@@ -512,7 +512,7 @@ namespace Vocaluxe.Base
return _Avatars[avatarID].Texture;
}
- public static CTexture GetAvatarTextureFromProfile(int profileID)
+ public static CTextureRef GetAvatarTextureFromProfile(int profileID)
{
if (!IsProfileIDValid(profileID) || _Profiles[profileID].Avatar == null)
return null;
diff --git a/Vocaluxe/Base/CSongs.cs b/Vocaluxe/Base/CSongs.cs
index 2bf74681..2216f63b 100644
--- a/Vocaluxe/Base/CSongs.cs
+++ b/Vocaluxe/Base/CSongs.cs
@@ -21,6 +21,7 @@ using System.Collections.ObjectModel;
using System.Linq;
using System.Threading;
using System.IO;
+using System.Threading.Tasks;
using VocaluxeLib;
using VocaluxeLib.Songs;
@@ -134,23 +135,13 @@ namespace Vocaluxe.Base
Category--;
}
- public static int GetNextSongWithoutCover(ref CSong song)
+ private static int _NumSongsWithCoverLoaded;
+ public static int NumSongsWithCoverLoaded
{
- if (!SongsLoaded)
- return -1;
-
- if (NumSongsWithCoverLoaded < _Songs.Count)
- {
- song = _Songs[NumSongsWithCoverLoaded];
- NumSongsWithCoverLoaded++;
- return NumSongsWithCoverLoaded;
- }
-
- return -2;
+ get { return _NumSongsWithCoverLoaded; }
+ private set { _NumSongsWithCoverLoaded = value; }
}
- public static int NumSongsWithCoverLoaded { get; private set; }
-
public static string GetCurrentCategoryName()
{
return _IsCatIndexValid(_CatIndex) ? Categories[_CatIndex].Name : "";
@@ -371,59 +362,50 @@ namespace Vocaluxe.Base
Category = -1;
SongsLoaded = true;
- if (CConfig.CoverLoading == ECoverLoading.TR_CONFIG_COVERLOADING_ATSTART)
+ switch (CConfig.CoverLoading)
{
- CLog.StartBenchmark("Load Covers/Notes");
- _LoadCover();
- CLog.StopBenchmark("Load Covers/Notes");
+ case ECoverLoading.TR_CONFIG_COVERLOADING_ATSTART:
+ _LoadCovers();
+ break;
+ case ECoverLoading.TR_CONFIG_COVERLOADING_DYNAMIC:
+ _LoadCoversAsync();
+ break;
}
- CLog.StopBenchmark("Load Songs ");
+ CLog.StopBenchmark("Load Songs");
}
- public static void LoadCover()
+ private static void _LoadCoversAsync()
{
- if (CConfig.Renderer == ERenderer.TR_CONFIG_SOFTWARE)
- return; //should be removed as soon as the other renderer are ready for queue
-
if (!SongsLoaded || CoverLoaded)
return;
if (_CoverLoaderThread != null)
return;
- _CoverLoaderThread = new Thread(_LoadCover) {Name = "CoverLoader", Priority = ThreadPriority.BelowNormal, IsBackground = true};
+ _CoverLoaderThread = new Thread(_LoadCovers) {Name = "CoverLoader", Priority = ThreadPriority.BelowNormal, IsBackground = true};
_CoverLoaderThread.Start();
-
- /*
- if (_CoverLoadTimer.ElapsedMilliseconds >= WaitTime)
- {
- for (int i = 0; i < NumLoads; i++)
- {
- CSong song = null;
- int n = GetNextSongWithoutCover(ref song);
-
- if (n < 0)
- return;
-
- song.LoadSmallCover();
-
- if (n == NumAllSongs)
- CDataBase.CommitCovers();
- }
- _CoverLoadTimer.Reset();
- _CoverLoadTimer.Start();
- }
- * */
}
- private static void _LoadCover()
+ private static void _LoadCovers()
{
+ CLog.StartBenchmark("Load Covers");
+ int songCount = _Songs.Count;
+ AutoResetEvent ev = new AutoResetEvent(songCount == 0);
+
+ NumSongsWithCoverLoaded = 0;
foreach (CSong song in _Songs)
{
- song.LoadSmallCover();
- NumSongsWithCoverLoaded++;
+ CSong tmp = song;
+ Task.Factory.StartNew(() =>
+ {
+ tmp.LoadSmallCover();
+ if (Interlocked.Increment(ref _NumSongsWithCoverLoaded) >= songCount)
+ ev.Set();
+ });
}
+ ev.WaitOne();
_CoverLoaded = true;
CDataBase.CommitCovers();
+ CLog.StopBenchmark("Load Covers");
}
}
}
\ No newline at end of file
diff --git a/Vocaluxe/Base/CTheme.cs b/Vocaluxe/Base/CTheme.cs
index e884384f..8c8e9068 100644
--- a/Vocaluxe/Base/CTheme.cs
+++ b/Vocaluxe/Base/CTheme.cs
@@ -44,7 +44,7 @@ namespace Vocaluxe.Base
class CSkinElement
{
public string Value;
- public CTexture Texture;
+ public CTextureRef Texture;
}
class CVideoSkinElement : CSkinElement
@@ -554,7 +554,7 @@ namespace Vocaluxe.Base
return path;
}
- public static CTexture GetSkinTexture(string textureName, int partyModeID)
+ public static CTextureRef GetSkinTexture(string textureName, int partyModeID)
{
int skinIndex = GetSkinIndex(partyModeID);
CSkinElement sk;
@@ -597,7 +597,7 @@ namespace Vocaluxe.Base
return null;
}
- public static CTexture GetSkinVideoTexture(string videoName, int partyModeID)
+ public static CTextureRef GetSkinVideoTexture(string videoName, int partyModeID)
{
CVideoSkinElement sk = GetSkinVideo(videoName, partyModeID);
if (sk == null)
diff --git a/Vocaluxe/Base/CVideo.cs b/Vocaluxe/Base/CVideo.cs
index 3d57cbd3..9b127eae 100644
--- a/Vocaluxe/Base/CVideo.cs
+++ b/Vocaluxe/Base/CVideo.cs
@@ -75,7 +75,7 @@ namespace Vocaluxe.Base
return _VideoDecoder.GetLength(streamID);
}
- public static bool GetFrame(int streamID, ref CTexture frame, float time, out float videoTime)
+ public static bool GetFrame(int streamID, ref CTextureRef frame, float time, out float videoTime)
{
return _VideoDecoder.GetFrame(streamID, ref frame, time, out videoTime);
}
diff --git a/Vocaluxe/Base/CVideoPlayer.cs b/Vocaluxe/Base/CVideoPlayer.cs
index 8dd47d4b..0838ae7c 100644
--- a/Vocaluxe/Base/CVideoPlayer.cs
+++ b/Vocaluxe/Base/CVideoPlayer.cs
@@ -7,7 +7,7 @@ namespace Vocaluxe.Base
{
class CVideoPlayer
{
- private CTexture _VideoTexture;
+ private CTextureRef _VideoTexture;
private int _VideoStream;
private readonly Stopwatch _VideoTimer = new Stopwatch();
private bool _Finished;
@@ -62,11 +62,8 @@ namespace Vocaluxe.Base
}
if (_VideoTexture == null)
return;
- var bounds = new RectangleF(0f, 0f, CSettings.RenderW, CSettings.RenderH);
- RectangleF rect;
- CHelper.SetRect(bounds, out rect, _VideoTexture.OrigAspect, EAspect.Crop);
- CDraw.DrawTexture(_VideoTexture, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, CSettings.ZFar / 4));
+ CDraw.DrawTexture(_VideoTexture, new SRectF(0, 0, CSettings.RenderW, CSettings.RenderH, CSettings.ZFar / 4), EAspect.Crop);
}
public void PreLoad()
diff --git a/Vocaluxe/Base/CWebcam.cs b/Vocaluxe/Base/CWebcam.cs
index af66025a..980c6f58 100644
--- a/Vocaluxe/Base/CWebcam.cs
+++ b/Vocaluxe/Base/CWebcam.cs
@@ -57,7 +57,7 @@ namespace Vocaluxe.Base
_Webcam = null;
}
- public static bool GetFrame(ref CTexture tex)
+ public static bool GetFrame(ref CTextureRef tex)
{
return _Webcam != null && _Webcam.GetFrame(ref tex);
}
diff --git a/Vocaluxe/Base/Fonts/CFontStyle.cs b/Vocaluxe/Base/Fonts/CFontStyle.cs
index 0c80c0c1..a71c949f 100644
--- a/Vocaluxe/Base/Fonts/CFontStyle.cs
+++ b/Vocaluxe/Base/Fonts/CFontStyle.cs
@@ -101,7 +101,7 @@ namespace Vocaluxe.Base.Fonts
public void DrawGlyph(char chr, float fontHeight, float x, float y, float z, SColorF color)
{
- CTexture texture;
+ CTextureRef texture;
SRectF rect;
GetOrAddGlyph(chr, fontHeight).GetTextureAndRect(fontHeight, x, y, z, out texture, out rect);
CDraw.DrawTexture(texture, rect, color);
@@ -109,7 +109,7 @@ namespace Vocaluxe.Base.Fonts
public void DrawGlyph(char chr, float fontHeight, float x, float y, float z, SColorF color, float begin, float end)
{
- CTexture texture;
+ CTextureRef texture;
SRectF rect;
GetOrAddGlyph(chr, fontHeight).GetTextureAndRect(fontHeight, x, y, z, out texture, out rect);
CDraw.DrawTexture(texture, rect, color, begin, end);
@@ -117,10 +117,10 @@ namespace Vocaluxe.Base.Fonts
public void DrawGlyphReflection(char chr, float fontHeight, float x, float y, float z, SColorF color, float rspace, float rheight)
{
- CTexture texture;
+ CTextureRef texture;
SRectF rect;
GetOrAddGlyph(chr, fontHeight).GetTextureAndRect(fontHeight, x, y, z, out texture, out rect);
- CDraw.DrawTextureReflection(texture, rect, color, rect, rspace, rheight);
+ CDraw.DrawTextureReflection(texture, rect, color, rspace, rheight);
}
public float GetWidth(char chr, float height)
diff --git a/Vocaluxe/Base/Fonts/CGlyph.cs b/Vocaluxe/Base/Fonts/CGlyph.cs
index dcc2bff3..6b949903 100644
--- a/Vocaluxe/Base/Fonts/CGlyph.cs
+++ b/Vocaluxe/Base/Fonts/CGlyph.cs
@@ -31,7 +31,7 @@ namespace Vocaluxe.Base.Fonts
{
class CGlyph
{
- private CTexture _Texture;
+ private CTextureRef _Texture;
private readonly SizeF _BoundingBox;
private readonly RectangleF _DrawBounding;
public readonly float MaxHeight;
@@ -143,7 +143,7 @@ namespace Vocaluxe.Base.Fonts
return _BoundingBox.Height * _GetFactor(fontHeight);
}
- public void GetTextureAndRect(float fontHeight, float x, float y, float z, out CTexture texture, out SRectF rect)
+ public void GetTextureAndRect(float fontHeight, float x, float y, float z, out CTextureRef texture, out SRectF rect)
{
texture = _Texture;
float factor = _GetFactor(fontHeight);
@@ -157,7 +157,7 @@ namespace Vocaluxe.Base.Fonts
private static Rectangle _GetRealBounds(Bitmap bmp)
{
int minX = 0, maxX = bmp.Width - 1, minY = 0;
- BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
+ BitmapData bmpData = bmp.LockBits(bmp.GetRect(), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
int values = bmpData.Width * bmp.Height;
var rgbValues = new Int32[values];
Marshal.Copy(bmpData.Scan0, rgbValues, 0, values);
diff --git a/Vocaluxe/COSFunctions.cs b/Vocaluxe/COSFunctions.cs
index d8aec79a..33faab37 100644
--- a/Vocaluxe/COSFunctions.cs
+++ b/Vocaluxe/COSFunctions.cs
@@ -16,6 +16,7 @@
#endregion
using System;
+using System.Drawing;
using System.Runtime.InteropServices;
namespace Vocaluxe
@@ -59,40 +60,6 @@ namespace Vocaluxe
Environment.SetEnvironmentVariable("PATH", newPath);
}
- public static void AddLibrarySearchpath(string path)
- {
-#if WIN
- if (!_DefaultDllDirSet)
- {
- try
- {
- CWindowsFunctions.SetDefaultDllDirectories(CWindowsFunctions.LOAD_LIBRARY_SEARCH_DEFAULT_DIRS);
- }
- catch (Exception)
- {
- _UsePath = true;
- _UseSetDllDir = true;
- }
- _DefaultDllDirSet = true;
- }
- if (_UsePath)
- AddEnvironmentPath(path);
- if (!_UseSetDllDir)
- {
- try
- {
- CWindowsFunctions.AddDllDirectory(path);
- }
- catch (Exception)
- {
- _UseSetDllDir = true;
- }
- }
- if (_UseSetDllDir)
- CWindowsFunctions.SetDllDirectory(path);
-#endif
- }
-
public static void SetForegroundWindow(IntPtr hWnd)
{
#if WIN
diff --git a/Vocaluxe/CProgrammHelper.cs b/Vocaluxe/CProgrammHelper.cs
index 800b907a..651ef8bf 100644
--- a/Vocaluxe/CProgrammHelper.cs
+++ b/Vocaluxe/CProgrammHelper.cs
@@ -132,8 +132,7 @@ namespace Vocaluxe
string path = "x64";
#endif
path = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + Path.DirectorySeparatorChar + path;
- COSFunctions.AddLibrarySearchpath(path);
- COSFunctions.AddLibrarySearchpath(path + Path.DirectorySeparatorChar + "gstreamer");
+ COSFunctions.AddEnvironmentPath(path);
}
}
}
\ No newline at end of file
diff --git a/Vocaluxe/Lib/Database/CCoverDB.cs b/Vocaluxe/Lib/Database/CCoverDB.cs
index 7723e2d4..efd33c13 100644
--- a/Vocaluxe/Lib/Database/CCoverDB.cs
+++ b/Vocaluxe/Lib/Database/CCoverDB.cs
@@ -22,6 +22,7 @@ using System.Drawing.Imaging;
using System.IO;
using System.Runtime.InteropServices;
using Vocaluxe.Base;
+using VocaluxeLib;
using VocaluxeLib.Draw;
#if WIN
using System.Data.SQLite;
@@ -34,28 +35,29 @@ namespace Vocaluxe.Lib.Database
{
public class CCoverDB : CDatabaseBase
{
- //You have to lock all actions using cover connection or transaction, otherwhise order is not guaranted
- private readonly object _CoverMutex = new object();
private SQLiteTransaction _TransactionCover;
public CCoverDB(string filePath) : base(filePath) {}
public override bool Init()
{
- if (!base.Init())
- return false;
+ lock (_Mutex)
+ {
+ if (!base.Init())
+ return false;
- if (_Version < 0)
- return _CreateCoverDB();
- if (_Version < CSettings.DatabaseCoverVersion)
- throw new NotImplementedException("Upgrading of cover DB not implemented");
+ if (_Version < 0)
+ return _CreateCoverDB();
+ if (_Version < CSettings.DatabaseCoverVersion)
+ throw new NotImplementedException("Upgrading of cover DB not implemented");
+ }
return true;
}
public override void Close()
{
//Do commit and close atomicly otherwhise we may loose changes
- lock (_CoverMutex)
+ lock (_Mutex)
{
_CommitCovers();
@@ -63,7 +65,7 @@ namespace Vocaluxe.Lib.Database
}
}
- public bool GetCover(string coverPath, ref CTexture tex, int maxSize)
+ public bool GetCover(string coverPath, ref CTextureRef tex, int maxSize)
{
if (_Connection == null)
return false;
@@ -73,7 +75,7 @@ namespace Vocaluxe.Lib.Database
return false;
}
- lock (_CoverMutex)
+ lock (_Mutex)
{
//Double check here because we may have just closed our connection
if (_Connection == null)
@@ -81,7 +83,7 @@ namespace Vocaluxe.Lib.Database
using (var command = new SQLiteCommand(_Connection))
{
command.CommandText = "SELECT id, width, height FROM Cover WHERE [Path] = @path";
- command.Parameters.Add("@path", DbType.String, 0).Value = coverPath;
+ command.Parameters.Add("@path", DbType.String).Value = coverPath;
SQLiteDataReader reader = command.ExecuteReader();
@@ -100,81 +102,81 @@ namespace Vocaluxe.Lib.Database
if (reader.HasRows)
{
reader.Read();
- byte[] data = _GetBytes(reader);
+ byte[] data2 = _GetBytes(reader);
reader.Dispose();
- tex = CDraw.EnqueueTexture(w, h, data);
+ tex = CDraw.EnqueueTexture(w, h, data2);
return true;
}
- }
- else
- {
- if (reader != null)
- reader.Close();
-
- if (_TransactionCover == null)
- _TransactionCover = _Connection.BeginTransaction();
-
- Bitmap origin;
- try
- {
- origin = new Bitmap(coverPath);
- }
- catch (Exception)
- {
- CLog.LogError("Error loading Texture: " + coverPath);
- return false;
- }
-
- int w = maxSize;
- int h = maxSize;
- byte[] data;
-
- try
- {
- if (origin.Width >= origin.Height && origin.Width > w)
- h = (int)Math.Round((float)w / origin.Width * origin.Height);
- else if (origin.Height > origin.Width && origin.Height > h)
- w = (int)Math.Round((float)h / origin.Height * origin.Width);
-
- using (var bmp = new Bitmap(w, h))
- {
- using (Graphics g = Graphics.FromImage(bmp))
- g.DrawImage(origin, new Rectangle(0, 0, w, h));
-
- data = new byte[w * h * 4];
- BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
- Marshal.Copy(bmpData.Scan0, data, 0, w * h * 4);
- bmp.UnlockBits(bmpData);
- }
- }
- finally
- {
- origin.Dispose();
- }
-
- tex = CDraw.EnqueueTexture(w, h, data);
-
- command.CommandText = "INSERT INTO Cover (Path, width, height) VALUES (@path, @w, @h)";
- command.Parameters.Add("@w", DbType.Int32).Value = w;
- command.Parameters.Add("@h", DbType.Int32).Value = h;
- command.Parameters.Add("@path", DbType.String, 0).Value = coverPath;
+ command.CommandText = "DELETE FROM Cover WHERE id = @id";
+ command.Parameters.Add("@id", DbType.Int32).Value = id;
command.ExecuteNonQuery();
+ }
+ if (reader != null)
+ reader.Close();
+ }
+ }
- command.CommandText = "SELECT id FROM Cover WHERE [Path] = @path";
- command.Parameters.Add("@path", DbType.String, 0).Value = coverPath;
- reader = command.ExecuteReader();
+ // At this point we do not have a mathing entry in the CoverDB (either no Data found and deleted or nothing at all)
+ // We break out of the lock to do the bitmap loading and resizing here to allow multithreaded loading
- if (reader != null)
- {
- reader.Read();
- int id = reader.GetInt32(0);
- reader.Dispose();
- command.CommandText = "INSERT INTO CoverData (CoverID, Data) VALUES (@id, @data)";
- command.Parameters.Add("@id", DbType.Int32).Value = id;
- command.Parameters.Add("@data", DbType.Binary, 20).Value = data;
- command.ExecuteReader();
- return true;
- }
+ Bitmap origin = CHelper.LoadBitmap(coverPath);
+ if (origin == null)
+ return false;
+
+ Size size = origin.GetSize();
+ if (size.Width > maxSize || size.Height > maxSize)
+ {
+ size = CHelper.FitInBounds(new SRectF(0, 0, maxSize, maxSize, 0), (float)size.Width / size.Height, EAspect.LetterBox).SizeI;
+ Bitmap tmp = origin.Resize(size);
+ origin.Dispose();
+ origin = tmp;
+ }
+
+ byte[] data;
+
+ try
+ {
+ data = new byte[size.Width * size.Height * 4];
+ BitmapData bmpData = origin.LockBits(origin.GetRect(), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
+ Marshal.Copy(bmpData.Scan0, data, 0, data.Length);
+ origin.UnlockBits(bmpData);
+ }
+ finally
+ {
+ origin.Dispose();
+ }
+
+ tex = CDraw.EnqueueTexture(size.Width, size.Height, data);
+
+ lock (_Mutex)
+ {
+ //Double check here because we may have just closed our connection
+ if (_Connection == null)
+ return false;
+ if (_TransactionCover == null)
+ _TransactionCover = _Connection.BeginTransaction();
+ using (var command = new SQLiteCommand(_Connection))
+ {
+ command.CommandText = "INSERT INTO Cover (Path, width, height) VALUES (@path, @w, @h)";
+ command.Parameters.Add("@w", DbType.Int32).Value = size.Width;
+ command.Parameters.Add("@h", DbType.Int32).Value = size.Height;
+ command.Parameters.Add("@path", DbType.String).Value = coverPath;
+ command.ExecuteNonQuery();
+
+ command.CommandText = "SELECT id FROM Cover WHERE [Path] = @path";
+ command.Parameters.Add("@path", DbType.String).Value = coverPath;
+ SQLiteDataReader reader = command.ExecuteReader();
+
+ if (reader != null)
+ {
+ reader.Read();
+ int id = reader.GetInt32(0);
+ reader.Dispose();
+ command.CommandText = "INSERT INTO CoverData (CoverID, Data) VALUES (@id, @data)";
+ command.Parameters.Add("@id", DbType.Int32).Value = id;
+ command.Parameters.Add("@data", DbType.Binary).Value = data;
+ command.ExecuteNonQuery();
+ return true;
}
}
}
@@ -183,7 +185,7 @@ namespace Vocaluxe.Lib.Database
public void CommitCovers()
{
- lock (_CoverMutex)
+ lock (_Mutex)
{
_CommitCovers();
}
diff --git a/Vocaluxe/Lib/Database/CDatabaseBase.cs b/Vocaluxe/Lib/Database/CDatabaseBase.cs
index 068530e5..bbe0f026 100644
--- a/Vocaluxe/Lib/Database/CDatabaseBase.cs
+++ b/Vocaluxe/Lib/Database/CDatabaseBase.cs
@@ -17,7 +17,6 @@
using System;
using System.IO;
-using Vocaluxe.Base;
#if WIN
using System.Data.SQLite;
@@ -27,61 +26,72 @@ using Mono.Data.Sqlite;
namespace Vocaluxe.Lib.Database
{
- public class CDatabaseBase
+ public abstract class CDatabaseBase
{
protected readonly string _FilePath;
protected SQLiteConnection _Connection;
+ //You have to lock all actions using connection or transaction, otherwhise order is not guaranted
+ protected readonly object _Mutex = new object();
+
protected int _Version; //Version of the database (value of row "Value" in table "Version") or -1 if none
- public CDatabaseBase(string filePath)
+ protected CDatabaseBase(string filePath)
{
_FilePath = filePath;
}
public virtual bool Init()
{
- _Connection = new SQLiteConnection("Data Source=" + _FilePath);
- try
+ lock (_Mutex)
{
- _Connection.Open();
- }
- catch (Exception)
- {
- _Connection.Dispose();
- _Connection = null;
- return false;
- }
-
- using (var command = new SQLiteCommand(_Connection))
- {
- command.CommandText = "SELECT Value FROM Version";
-
- SQLiteDataReader reader = null;
-
+ if (_Connection != null)
+ return false;
+ _Connection = new SQLiteConnection("Data Source=" + _FilePath);
try
{
- reader = command.ExecuteReader();
+ _Connection.Open();
+ }
+ catch (Exception)
+ {
+ _Connection.Dispose();
+ _Connection = null;
+ return false;
}
- catch (Exception) {}
- if (reader == null || !reader.Read() || reader.FieldCount == 0)
- _Version = -1;
- else
- _Version = reader.GetInt32(0);
+ using (var command = new SQLiteCommand(_Connection))
+ {
+ command.CommandText = "SELECT Value FROM Version";
- if (reader != null)
- reader.Dispose();
+ SQLiteDataReader reader = null;
+
+ try
+ {
+ reader = command.ExecuteReader();
+ }
+ catch (Exception) {}
+
+ if (reader == null || !reader.Read() || reader.FieldCount == 0)
+ _Version = -1;
+ else
+ _Version = reader.GetInt32(0);
+
+ if (reader != null)
+ reader.Dispose();
+ }
}
return true;
}
public virtual void Close()
{
- if (_Connection != null)
+ lock (_Mutex)
{
- _Connection.Dispose();
- _Connection = null;
+ if (_Connection != null)
+ {
+ _Connection.Dispose();
+ _Connection = null;
+ }
}
}
@@ -92,6 +102,13 @@ namespace Vocaluxe.Lib.Database
return t70.Ticks;
}
+ ///
+ /// Reads the contents of a field as a byte array
+ /// Assumes you did the locking!
+ ///
+ ///
+ /// Field number to read from (default=first)
+ ///
protected static byte[] _GetBytes(SQLiteDataReader reader, int field = 0)
{
const int chunkSize = 2 * 1024;
diff --git a/Vocaluxe/Lib/Database/CResourceDB.cs b/Vocaluxe/Lib/Database/CResourceDB.cs
index 4891a19e..77d9c455 100644
--- a/Vocaluxe/Lib/Database/CResourceDB.cs
+++ b/Vocaluxe/Lib/Database/CResourceDB.cs
@@ -66,7 +66,7 @@ namespace Vocaluxe.Lib.Database
return true;
}
- public bool GetCreditsRessource(string fileName, ref CTexture tex)
+ public bool GetCreditsRessource(string fileName, ref CTextureRef tex)
{
if (_Connection == null)
return false;
diff --git a/Vocaluxe/Lib/Draw/CDirect3D.cs b/Vocaluxe/Lib/Draw/CDirect3D.cs
index 1c04f6fd..682905bc 100644
--- a/Vocaluxe/Lib/Draw/CDirect3D.cs
+++ b/Vocaluxe/Lib/Draw/CDirect3D.cs
@@ -15,13 +15,10 @@
// along with Vocaluxe. If not, see .
#endregion
-using System.Drawing.Drawing2D;
-using System.Threading;
using SlimDX;
using SlimDX.Direct3D9;
using System;
using System.Collections.Generic;
-using System.ComponentModel;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
@@ -34,49 +31,56 @@ using VocaluxeLib.Draw;
namespace Vocaluxe.Lib.Draw
{
- class CDirect3D : RenderForm, IDraw
+ class CRenderFormHook : RenderForm, IFormHook
+ {
+ public MessageEventHandler OnMessage { private get; set; }
+
+ protected override void WndProc(ref Message m)
+ {
+ if (OnMessage == null || OnMessage(ref m))
+ base.WndProc(ref m);
+ }
+ }
+
+ class CD3DTexture : CTextureBase
+ {
+ public readonly Texture D3DTexture;
+
+ public CD3DTexture(Device device, Size dataSize, int texWidth = 0, int texHeight = 0) : base(dataSize, texWidth, texHeight)
+ {
+ //Create a new texture in the managed pool, which does not need to be recreated on a lost device
+ //because a copy of the texture is hold in the Ram
+ D3DTexture = device == null ? null : new Texture(device, W2, H2, 0, Usage.AutoGenerateMipMap, Format.A8R8G8B8, Pool.Managed);
+ }
+
+ public override bool IsLoaded
+ {
+ get { return D3DTexture != null; }
+ }
+
+ public override void Dispose()
+ {
+ base.Dispose();
+ if (D3DTexture != null)
+ D3DTexture.Dispose();
+ }
+ }
+
+ class CDirect3D : CDrawBaseWindows, IDraw
{
#region private vars
- private const int _MaxID = 100000;
-
- private readonly CKeys _Keys;
- private readonly CMouse _Mouse;
- private bool _Run;
-
private readonly Direct3D _D3D;
private readonly Device _Device;
private readonly PresentParameters _PresentParameters;
- private bool _Fullscreen;
- private Size _OldSize;
- private Size _SizeBeforeMinimize;
-
- private readonly Dictionary _D3DTextures = new Dictionary();
- private readonly Queue _TexturesToLoad = new Queue();
- private readonly Queue _IDs = new Queue(_MaxID);
-
- private readonly Object _MutexTexture = new Object();
-
private VertexBuffer _VertexBuffer;
private IndexBuffer _IndexBuffer;
- private int _H = 1;
- private int _W = 1;
- private int _Y;
- private int _X;
-
- private int _BorderLeft;
- private int _BorderRight;
- private int _BorderTop;
- private int _BorderBottom;
-
- private CTexture _BlankTexture;
+ private CTextureRef _BlankTexture;
private readonly Queue _Vertices = new Queue();
private readonly Queue _VerticesTextures = new Queue();
- private readonly Queue _VerticesRotationMatrices = new Queue();
-
- private readonly bool _NonPowerOf2TextureSupported;
+ private readonly Queue _VerticesRotationMatrices = new Queue();
#endregion private vars
///
@@ -84,13 +88,8 @@ namespace Vocaluxe.Lib.Draw
///
public CDirect3D()
{
- Icon = new Icon(Path.Combine(CSettings.ProgramFolder, CSettings.FileNameIcon));
+ _Form = new CRenderFormHook {ClientSize = new Size(CConfig.ScreenW, CConfig.ScreenH)};
- //Fill Queue with 100000 IDs
- for (int i = 0; i < _MaxID; i++)
- _IDs.Enqueue(i);
-
- _Keys = new CKeys();
try
{
_D3D = new Direct3D();
@@ -100,25 +99,17 @@ namespace Vocaluxe.Lib.Draw
CLog.LogError("No DirectX runtimes were found, please download and install them from http://www.microsoft.com/download/en/details.aspx?id=8109", true, true, e);
}
- Paint += _OnPaintEvent;
- Closing += _OnClosingEvent;
- Resize += _OnResizeEvent;
+ _Form.KeyDown += _OnKeyDown;
+ _Form.PreviewKeyDown += _OnPreviewKeyDown;
+ _Form.KeyPress += _OnKeyPress;
+ _Form.KeyUp += _OnKeyUp;
- KeyDown += _OnKeyDown;
- PreviewKeyDown += _OnPreviewKeyDown;
- KeyPress += _OnKeyPress;
- KeyUp += _OnKeyUp;
-
- _Mouse = new CMouse();
- MouseMove += _OnMouseMove;
- MouseWheel += _OnMouseWheel;
- MouseDown += _OnMouseDown;
- MouseUp += _OnMouseUp;
- MouseLeave += _OnMouseLeave;
- MouseEnter += _OnMouseEnter;
-
- ClientSize = new Size(CConfig.ScreenW, CConfig.ScreenH);
- _SizeBeforeMinimize = ClientSize;
+ _Form.MouseMove += _OnMouseMove;
+ _Form.MouseWheel += _OnMouseWheel;
+ _Form.MouseDown += _OnMouseDown;
+ _Form.MouseUp += _OnMouseUp;
+ _Form.MouseLeave += _OnMouseLeave;
+ _Form.MouseEnter += _OnMouseEnter;
_PresentParameters = new PresentParameters
{
@@ -184,7 +175,11 @@ namespace Vocaluxe.Lib.Draw
try
{
- _Device = new Device(_D3D, _D3D.Adapters.DefaultAdapter.Adapter, DeviceType.Hardware, Handle, flags, _PresentParameters);
+ _Device = new Device(_D3D, _D3D.Adapters.DefaultAdapter.Adapter, DeviceType.Hardware, _Form.Handle, flags, _PresentParameters);
+ }
+ catch (Exception e)
+ {
+ CLog.LogError("Error during D3D device creation.", false, false, e);
}
finally
{
@@ -195,213 +190,87 @@ namespace Vocaluxe.Lib.Draw
true, true);
}
}
-
- CenterToScreen();
}
- #region form events
- private void _OnPaintEvent(object sender, PaintEventArgs e) {}
-
- private void _OnResizeEvent(object sender, EventArgs e) {}
-
- private void _OnClosingEvent(object sender, CancelEventArgs e)
- {
- _Run = false;
- }
-
- protected override void OnLoad(EventArgs e)
- {
- _Device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Black, 1.0f, 0);
- }
-
- protected override void OnResize(EventArgs e)
- {
- base.OnResize(e);
- _DoResize();
- }
-
- protected override void WndProc(ref Message m)
- {
- switch (m.Msg)
- {
- case 0x112: // WM_SYSCOMMAND
- switch ((int)m.WParam & 0xFFF0)
- {
- case 0xF100: // SC_KEYMENU
- m.Result = IntPtr.Zero;
- break;
- case 0xF140: // SC_SCREENSAVER
- case 0xF170: // SC_MONITORPOWER
- break;
- default:
- base.WndProc(ref m);
- break;
- }
- break;
- default:
- base.WndProc(ref m);
- break;
- }
- }
- #endregion form events
-
#region resize
///
/// Resizes the viewport
///
- private void _DoResize()
+ protected override void _DoResize()
{
// The window was minimized, so restore it to the last known size
- if (ClientSize.Width == 0 || ClientSize.Height == 0)
- ClientSize = _SizeBeforeMinimize;
- if (!_Run)
- return;
- _H = ClientSize.Height;
- _W = ClientSize.Width;
- _Y = 0;
- _X = 0;
+ if (_Form.ClientSize.Width == 0 || _Form.ClientSize.Height == 0)
+ _Form.ClientSize = _SizeBeforeMinimize;
- if (_W / (float)_H > CSettings.GetRenderAspect())
- {
- //The windows's width is too big
- _W = (int)Math.Round(_H * CSettings.GetRenderAspect());
- _X = (ClientSize.Width - _W) / 2;
- }
- else
- {
- //The windows's height is too big
- _H = (int)Math.Round(_W / CSettings.GetRenderAspect());
- _Y = (ClientSize.Height - _H) / 2;
- }
+ if (_H == _Form.ClientSize.Height && _W == _Form.ClientSize.Width && CConfig.ScreenAlignment == _CurrentAlignment)
+ return;
+
+ _CurrentAlignment = CConfig.ScreenAlignment;
+ _H = _Form.ClientSize.Height;
+ _W = _Form.ClientSize.Width;
+
+ _AdjustAspect(false);
//Apply the new sizes to the PresentParameters
- _PresentParameters.BackBufferWidth = ClientSize.Width;
- _PresentParameters.BackBufferHeight = ClientSize.Height;
- ClearScreen();
- //To set new PresentParameters the device has to be resetted
- _Reset();
- //All configurations got flushed due to Reset(), so apply them again
- Init();
+ _PresentParameters.BackBufferWidth = _Form.ClientSize.Width;
+ _PresentParameters.BackBufferHeight = _Form.ClientSize.Height;
+ if (_Run)
+ {
+ _ClearScreen();
+ //To set new PresentParameters the device has to be resetted
+ _Reset();
+ //All configurations got flushed due to Reset(), so apply them again
+ _InitDevice();
+ _Device.Viewport = new Viewport(_X, _Y, _W, _H);
+ }
- //Set the new Viewport
- _Device.Viewport = new Viewport(_X, _Y, _W, _H);
//Store size so it can get restored after the window gets minimized
- _SizeBeforeMinimize = ClientSize;
+ _SizeBeforeMinimize = _Form.ClientSize;
}
+ // ReSharper disable RedundantOverridenMember
///
/// Triggers the Fullscreen mode
///
- private void _EnterFullScreen()
+ protected override void _EnterFullScreen()
{
//This currently not using real fullscreen mode but a borderless window
//Real fullscreen could be gained setting _PresentParameters.Windowed = true
//And calling Reset() and Init() after
- _OldSize = ClientSize;
-
- int screenNr = 0;
- for (int i = 0; i < Screen.AllScreens.Length; i++)
- {
- Screen scr = Screen.AllScreens[i];
- if (scr.Bounds.Top <= Top && scr.Bounds.Left <= Left)
- screenNr = i;
- }
-
- ClientSize = new Size(Screen.AllScreens[screenNr].Bounds.Width, Screen.AllScreens[screenNr].Bounds.Height);
- FormBorderStyle = FormBorderStyle.None;
- CenterToScreen();
- _Fullscreen = true;
-
- if (WindowState == FormWindowState.Maximized)
- {
- WindowState = FormWindowState.Normal;
- _DoResize();
- WindowState = FormWindowState.Maximized;
- }
- else
- _DoResize();
+ base._EnterFullScreen();
}
- ///
- /// Triggers the windowed mode
- ///
- private void _LeaveFullScreen()
- {
- ClientSize = _OldSize;
- FormBorderStyle = FormBorderStyle.Sizable;
- CenterToScreen();
- _Fullscreen = false;
- }
+ // ReSharper restore RedundantOverridenMember
#endregion resize
- #region mouse event handlers
- private void _OnMouseMove(object sender, MouseEventArgs e)
- {
- _Mouse.MouseMove(e);
- }
-
- private void _OnMouseWheel(object sender, MouseEventArgs e)
- {
- _Mouse.MouseWheel(e);
- }
-
- private void _OnMouseDown(object sender, MouseEventArgs e)
- {
- _Mouse.MouseDown(e);
- }
-
- private void _OnMouseUp(object sender, MouseEventArgs e)
- {
- _Mouse.MouseUp(e);
- }
-
- private void _OnMouseLeave(object sender, EventArgs e)
- {
- _Mouse.Visible = false;
- Cursor.Show();
- }
-
- private void _OnMouseEnter(object sender, EventArgs e)
- {
- Cursor.Hide();
- _Mouse.Visible = true;
- }
- #endregion
-
- #region keyboard event handlers
- private void _OnPreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
- {
- _OnKeyDown(sender, new KeyEventArgs(e.KeyData));
- }
-
- private void _OnKeyDown(object sender, KeyEventArgs e)
- {
- _Keys.KeyDown(e);
- }
-
- private void _OnKeyPress(object sender, KeyPressEventArgs e)
- {
- _Keys.KeyPress(e);
- }
-
- private void _OnKeyUp(object sender, KeyEventArgs e)
- {
- _Keys.KeyUp(e);
- }
- #endregion keyboard event handlers
-
- #region implementation
-
#region main stuff
///
/// Inits the Device
///
/// True if it succeeded else false
- public bool Init()
+ public override bool Init()
{
+ if (!base.Init())
+ return false;
+
if (_Device.Disposed)
return false;
- Text = CSettings.GetFullVersionText();
+
+ _InitDevice();
+
+ //This creates a new white texture and adds it to the texture pool
+ //This texture is used for the DrawRect method
+ using (var blankMap = new Bitmap(1, 1))
+ using (Graphics g = Graphics.FromImage(blankMap))
+ {
+ g.Clear(Color.White);
+ _BlankTexture = AddTexture(blankMap);
+ }
+ return true;
+ }
+
+ private void _InitDevice()
+ {
_AdjustNewBorders();
_VertexBuffer = new VertexBuffer(_Device, CSettings.VertexBufferElements * (4 * Marshal.SizeOf(typeof(STexturedColoredVertex))), Usage.WriteOnly | Usage.Dynamic,
@@ -417,9 +286,9 @@ namespace Vocaluxe.Lib.Draw
CLog.LogError("Failed to enable alpha blending");
if (_Device.SetRenderState(RenderState.Lighting, false).IsFailure)
CLog.LogError("Failed to disable lighting");
- if (_Device.SetRenderState(RenderState.DestinationBlend, SlimDX.Direct3D9.Blend.InverseSourceAlpha).IsFailure)
+ if (_Device.SetRenderState(RenderState.DestinationBlend, Blend.InverseSourceAlpha).IsFailure)
CLog.LogError("Failed to set destination blend");
- if (_Device.SetRenderState(RenderState.SourceBlend, SlimDX.Direct3D9.Blend.SourceAlpha).IsFailure)
+ if (_Device.SetRenderState(RenderState.SourceBlend, Blend.SourceAlpha).IsFailure)
CLog.LogError("Failed to set source blend");
if (_PresentParameters.Multisample != MultisampleType.None)
{
@@ -457,99 +326,37 @@ namespace Vocaluxe.Lib.Draw
stream.WriteRange(indices);
_IndexBuffer.Unlock();
_Device.Indices = _IndexBuffer;
-
- //This creates a new white texture and adds it to the texture pool
- //This texture is used for the DrawRect method
- using (var blankMap = new Bitmap(1, 1))
- {
- Graphics g = Graphics.FromImage(blankMap);
- g.Clear(Color.White);
- g.Dispose();
- _BlankTexture = AddTexture(blankMap);
- }
- return true;
}
- ///
- /// Starts the rendering
- ///
- public void MainLoop()
+ protected override void _OnBeforeDraw()
{
- _Run = true;
- int delay = 0;
- Show();
+ if (_Device.BeginScene().IsFailure)
+ CLog.LogError("Failed to begin scene");
+ }
- if (CConfig.FullScreen == EOffOn.TR_CONFIG_ON)
- _EnterFullScreen();
-
- //Resize window if aspect ratio is incorrect
- if (Math.Abs(_W / (float)_H - CSettings.GetRenderAspect()) > 0.01)
- _DoResize();
-
- while (_Run)
+ protected override void _OnAfterDraw()
+ {
+ _RenderVertexBuffer();
+ if (_Device.EndScene().IsFailure)
+ CLog.LogError("Failed to end scene");
+ try
{
- Application.DoEvents();
- //Clear the previous Frame
- ClearScreen();
- //We want to begin drawing
- if (_Device.BeginScene().IsFailure)
- CLog.LogError("Failed to begin scene");
- _CheckQueue();
- if (!CGraphics.Draw())
- _Run = false;
- _RenderVertexBuffer();
- //We finished drawing the frame
- if (_Device.EndScene().IsFailure)
- CLog.LogError("Failed to end scene");
- if (!CGraphics.UpdateGameLogic(_Keys, _Mouse))
- _Run = false;
- try
- {
- //Now push the frame to the Viewport
- _Device.Present();
- }
- catch (Direct3D9Exception)
- {
- //In Direct3D devices can get lost.
- //This happens for example when opening the Task Manager in Vista/Windows 7 or if a UAC message is opening
- //We need to reset the device to get it to workable state again
- //After a reset Init() needs to be called because all data in the Direct3D default pool are lost and need to be recreated
- if (_Device.TestCooperativeLevel() == ResultCode.DeviceNotReset)
- {
- _Reset();
- Init();
- }
- }
- //Apply fullscreen mode
- if ((CConfig.FullScreen == EOffOn.TR_CONFIG_ON) != _Fullscreen)
- {
- if (!_Fullscreen)
- _EnterFullScreen();
- else
- _LeaveFullScreen();
- }
-
- //Apply border changes
- if (_BorderLeft != CConfig.BorderLeft || _BorderRight != CConfig.BorderRight || _BorderTop != CConfig.BorderTop || _BorderBottom != CConfig.BorderBottom)
- {
- _BorderLeft = CConfig.BorderLeft;
- _BorderRight = CConfig.BorderRight;
- _BorderTop = CConfig.BorderTop;
- _BorderBottom = CConfig.BorderBottom;
-
- _AdjustNewBorders();
- }
-
- if (CTime.IsRunning())
- delay = (int)Math.Floor(CConfig.CalcCycleTime() - CTime.GetMilliseconds());
-
- if (delay >= 1 && CConfig.VSync == EOffOn.TR_CONFIG_OFF)
- Thread.Sleep(delay);
- //Calculate the FPS Rate and restart the timer after a frame
- CTime.CalculateFPS();
- CTime.Restart();
+ //Now push the frame to the Viewport
+ _Device.Present();
}
- Close();
+ catch (Direct3D9Exception)
+ {
+ //In Direct3D devices can get lost.
+ //This happens for example when opening the Task Manager in Vista/Windows 7 or if a UAC message is opening
+ //We need to reset the device to get it to workable state again
+ //After a reset Init() needs to be called because all data in the Direct3D default pool are lost and need to be recreated
+ if (_Device.TestCooperativeLevel() == ResultCode.DeviceNotReset)
+ {
+ _Reset();
+ _InitDevice();
+ }
+ }
+ Application.DoEvents();
}
///
@@ -565,12 +372,14 @@ namespace Vocaluxe.Lib.Draw
CLog.LogError("Failed to reset the device");
}
- private void _AdjustNewBorders()
+ protected override void _AdjustNewBorders()
{
- SlimDX.Matrix translate = SlimDX.Matrix.Translation(new Vector3(-(float)CSettings.RenderW / 2, (float)CSettings.RenderH / 2, 0));
- SlimDX.Matrix projection = SlimDX.Matrix.OrthoOffCenterLH(
- -(float)CSettings.RenderW / 2 - _BorderLeft, (float)CSettings.RenderW / 2 + _BorderRight,
- -(float)CSettings.RenderH / 2 - _BorderBottom, (float)CSettings.RenderH / 2 + _BorderTop,
+ const float dx = (float)CSettings.RenderW / 2;
+ const float dy = (float)CSettings.RenderH / 2;
+ Matrix translate = Matrix.Translation(new Vector3(-dx, dy, 0));
+ Matrix projection = Matrix.OrthoOffCenterLH(
+ -dx - _BorderLeft, dx + _BorderRight,
+ -dy - _BorderBottom, dy + _BorderTop,
CSettings.ZNear, CSettings.ZFar);
if (_Device.SetTransform(TransformState.Projection, projection).IsFailure)
@@ -583,21 +392,10 @@ namespace Vocaluxe.Lib.Draw
/// Unloads all Textures and other objects used by Direct3D for rendering
///
///
- public void Unload()
+ public override void Unload()
{
- try
- {
- Close();
- }
- catch {}
- //Dispose all textures
- foreach (Texture texture in _D3DTextures.Values)
- {
- if (texture != null)
- texture.Dispose();
- }
-
- STexturedColoredVertex.GetDeclaration(_Device).Dispose();
+ base.Unload();
+ STexturedColoredVertex.DisposeDeclaration();
_VertexBuffer.Dispose();
_IndexBuffer.Dispose();
_Device.Dispose();
@@ -628,7 +426,7 @@ namespace Vocaluxe.Lib.Draw
/// A TexturedColoredVertex array containg 4 vertices
/// The texture the vertex should be textured with
/// The vertices' rotation
- private void _AddToVertexBuffer(STexturedColoredVertex[] vertices, Texture tex, SlimDX.Matrix rotation)
+ private void _AddToVertexBuffer(STexturedColoredVertex[] vertices, Texture tex, Matrix rotation)
{
//The vertexbuffer is full, so we need to flush it before we can continue
if (_Vertices.Count >= CSettings.VertexBufferElements)
@@ -677,7 +475,7 @@ namespace Vocaluxe.Lib.Draw
///
/// Removes all textures from the screen
///
- public void ClearScreen()
+ protected override void _ClearScreen()
{
if (_Device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Black, 1.0f, 0).IsFailure)
CLog.LogError("Failed to clear the backbuffer");
@@ -687,41 +485,35 @@ namespace Vocaluxe.Lib.Draw
/// Copies the current frame into a texture
/// A texture holding the current frame
///
- public CTexture CopyScreen()
+ public CTextureRef CopyScreen()
{
- CTexture texture = _GetNewTexture(_W, _H);
-
+ CD3DTexture tex = _CreateTexture(new Size(_W, _H));
Surface backbufferSurface = _Device.GetBackBuffer(0, 0);
- var tex = new Texture(_Device, texture.W2, texture.H2, 0, Usage.AutoGenerateMipMap, Format.A8R8G8B8, Pool.Managed);
- Surface textureSurface = tex.GetSurfaceLevel(0);
+ Surface textureSurface = tex.D3DTexture.GetSurfaceLevel(0);
Surface.FromSurface(textureSurface, backbufferSurface, Filter.Default, 0, new Rectangle(0, 0, _W, _H), new Rectangle(0, 0, _W, _H));
backbufferSurface.Dispose();
- lock (_MutexTexture)
- {
- texture.ID = _IDs.Dequeue();
- _D3DTextures.Add(texture.ID, tex);
- return texture;
- }
+ return _GetTextureReference(_W, _H, tex);
}
///
/// Copies the current frame into a texture
///
- /// The texture in which the frame is copied to
- public void CopyScreen(ref CTexture texture)
+ /// The texture in which the frame is copied to
+ public void CopyScreen(ref CTextureRef textureRef)
{
- //Check for actual texture sizes! (W2/H2) as it may be up/downsized compared to OrigSize
- if (!_TextureExists(texture) || texture.W2 != GetScreenWidth() || texture.H2 != GetScreenHeight())
+ CD3DTexture texture;
+ if (!_GetTexture(textureRef, out texture) || texture.DataSize.Width != GetScreenWidth() || texture.DataSize.Height != GetScreenHeight())
{
- RemoveTexture(ref texture);
- texture = CopyScreen();
+ RemoveTexture(ref textureRef);
+ textureRef = CopyScreen();
}
else
{
Surface backbufferSurface = _Device.GetBackBuffer(0, 0);
- Surface textureSurface = _D3DTextures[texture.ID].GetSurfaceLevel(0);
+ Surface textureSurface = texture.D3DTexture.GetSurfaceLevel(0);
Surface.FromSurface(textureSurface, backbufferSurface, Filter.Default, 0);
+ backbufferSurface.Dispose();
}
}
@@ -741,36 +533,12 @@ namespace Vocaluxe.Lib.Draw
}
}
- ///
- /// Draws a line
- ///
- /// The alpha value from 0-255
- /// The red value from 0-255
- /// The red value from 0-255
- /// The red value from 0-255
- /// The width of the line
- /// The start x-value
- /// The start y-value
- /// The end x-value
- /// The end y-value
- public void DrawLine(int a, int r, int g, int b, int w, int x1, int y1, int x2, int y2)
- {
- var lineVector = new Vector2[] {new Vector2(x1, y1), new Vector2(x2, y2)};
- using (var line = new Line(_Device))
- {
- line.Antialias = true;
- line.Begin();
- line.Draw(lineVector, new Color4((float)a / 255, (float)r / 255, (float)g / 255, (float)b / 255));
- line.End();
- }
- }
-
///
/// Draws a colored rectangle
///
/// The color in which the rectangle will be drawn in
/// The coordinates in a SRectF struct
- public void DrawColor(SColorF color, SRectF rect)
+ public void DrawRect(SColorF color, SRectF rect)
{
DrawTexture(_BlankTexture, rect, color);
}
@@ -782,154 +550,25 @@ namespace Vocaluxe.Lib.Draw
/// The coordinates in a SRectF struct
/// The space between the texture and the reflection
/// The height of the reflection
- public void DrawColorReflection(SColorF color, SRectF rect, float space, float height)
+ public void DrawRectReflection(SColorF color, SRectF rect, float space, float height)
{
- DrawTextureReflection(_BlankTexture, rect, color, rect, space, height);
+ DrawTextureReflection(_BlankTexture, rect, color, space, height);
}
#endregion Basic Draw Methods
#region Textures
-
- #region adding
- ///
- /// Adds a texture and stores it in the VRam
- ///
- /// The texture's filepath
- /// A STexture object containing the added texture
- public CTexture AddTexture(string texturePath)
+ protected override CD3DTexture _CreateTexture(Size dataSize)
{
- if (!File.Exists(texturePath))
- {
- CLog.LogError("Can't find File: " + texturePath);
- return null;
- }
- Bitmap bmp;
- try
- {
- bmp = new Bitmap(texturePath);
- }
- catch (Exception)
- {
- CLog.LogError("Error loading Texture: " + texturePath);
- return null;
- }
- CTexture s;
- try
- {
- s = AddTexture(bmp);
- }
- finally
- {
- bmp.Dispose();
- }
- return s;
+ if (dataSize.Width < 0)
+ return new CD3DTexture(null, dataSize);
+ return new CD3DTexture(_Device, dataSize, _CheckForNextPowerOf2(dataSize.Width), _CheckForNextPowerOf2(dataSize.Height));
}
- ///
- /// Adds a texture and stores it in the Vram
- ///
- /// The Bitmap of which the texure will be created from
- /// A STexture object containing the added texture
- public CTexture AddTexture(Bitmap bmp)
- {
- if (bmp.Height == 0 || bmp.Width == 0)
- return null;
- int maxSize;
- //Apply the right max size
- switch (CConfig.TextureQuality)
- {
- case ETextureQuality.TR_CONFIG_TEXTURE_LOWEST:
- maxSize = 128;
- break;
- case ETextureQuality.TR_CONFIG_TEXTURE_LOW:
- maxSize = 256;
- break;
- case ETextureQuality.TR_CONFIG_TEXTURE_MEDIUM:
- maxSize = 512;
- break;
- case ETextureQuality.TR_CONFIG_TEXTURE_HIGH:
- maxSize = 1024;
- break;
- case ETextureQuality.TR_CONFIG_TEXTURE_HIGHEST:
- maxSize = 2048;
- break;
- default:
- maxSize = 512;
- break;
- }
-
- int w = Math.Min(bmp.Width, maxSize);
- int h = Math.Min(bmp.Height, maxSize);
- w = _CheckForNextPowerOf2(w);
- h = _CheckForNextPowerOf2(h);
-
- var texture = new CTexture(bmp.Width, bmp.Height, w, h, true);
-
- Bitmap bmp2 = null;
- byte[] data;
- try
- {
- if (bmp.Width != w || bmp.Height != h)
- {
- //Create a new Bitmap with the new sizes
- bmp2 = new Bitmap(w, h);
- //Scale the texture
- using (Graphics g = Graphics.FromImage(bmp2))
- {
- g.InterpolationMode = InterpolationMode.HighQualityBicubic;
- g.SmoothingMode = SmoothingMode.HighQuality;
- g.DrawImage(bmp, new Rectangle(0, 0, bmp2.Width, bmp2.Height));
- }
- bmp = bmp2;
- }
-
- //Fill the new Bitmap with the texture data
- BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
- data = new byte[4 * w * h];
- Marshal.Copy(bmpData.Scan0, data, 0, data.Length);
- bmp.UnlockBits(bmpData);
- }
- finally
- {
- if (bmp2 != null)
- bmp2.Dispose();
- }
-
- return _AddTexture(texture, w, data);
- }
-
- public CTexture AddTexture(int w, int h, byte[] data)
- {
- CTexture texture = _GetNewTexture(w, h);
- return _AddTexture(texture, w, data);
- }
-
- private CTexture _AddTexture(CTexture texture, int w, byte[] data)
- {
- Texture t = _CreateTexture(texture.W2, texture.H2, w, data);
-
- lock (_MutexTexture)
- {
- texture.ID = _IDs.Dequeue();
- _D3DTextures.Add(texture.ID, t);
- }
- return texture;
- }
-
- private Texture _CreateTexture(int textureW, int textureH, int w, byte[] data)
- {
- //Create a new texture in the managed pool, which does not need to be recreated on a lost device
- //because a copy of the texture is hold in the Ram
- var t = new Texture(_Device, textureW, textureH, 0, Usage.AutoGenerateMipMap, Format.A8R8G8B8, Pool.Managed);
- _WriteDataToTexture(t, w, data);
- return t;
- }
-
- private static void _WriteDataToTexture(Texture t, int w, byte[] data)
+ protected override void _WriteDataToTexture(CD3DTexture texture, byte[] data)
{
//Lock the texture and fill it with the data
- DataRectangle rect = t.LockRectangle(0, LockFlags.Discard);
- int rowWidth = 4 * w;
+ DataRectangle rect = texture.D3DTexture.LockRectangle(0, LockFlags.Discard);
+ int rowWidth = 4 * texture.DataSize.Width;
if (rowWidth == rect.Pitch)
rect.Data.Write(data, 0, data.Length);
else
@@ -941,141 +580,78 @@ namespace Vocaluxe.Lib.Draw
rect.Data.Position = rect.Data.Position - rowWidth + rect.Pitch;
}
}
- t.UnlockRectangle(0);
- }
-
- public CTexture EnqueueTexture(int w, int h, byte[] data)
- {
- CTexture texture = _GetNewTexture(w, h);
-
- lock (_MutexTexture)
- {
- texture.ID = _IDs.Dequeue();
- _D3DTextures.Add(texture.ID, null);
- var queue = new STextureQueue(texture.ID, texture.W2, texture.H2, w, h, data);
- _TexturesToLoad.Enqueue(queue);
- }
- return texture;
- }
-
- private CTexture _GetNewTexture(int w, int h)
- {
- return new CTexture(w, h, _CheckForNextPowerOf2(w), _CheckForNextPowerOf2(h));
- }
- #endregion adding
-
- #region updating
- ///
- /// Updates the data of a texture
- ///
- /// The texture to update
- ///
- ///
- /// A byte array containing the new texture's data
- /// True if succeeded
- public bool UpdateTexture(CTexture texture, int w, int h, byte[] data)
- {
- //Check if texture exists and extend matches
- if (!_TextureExists(texture) || texture.UsedWidth != w || texture.UsedHeight != h)
- return false;
- lock (_MutexTexture)
- {
- _WriteDataToTexture(_D3DTextures[texture.ID], w, data);
- }
- return true;
- }
-
- public bool UpdateOrAddTexture(ref CTexture texture, int w, int h, byte[] data)
- {
- if (!UpdateTexture(texture, w, h, data))
- {
- RemoveTexture(ref texture);
- texture = AddTexture(w, h, data);
- }
- return true;
- }
- #endregion updating
-
- ///
- /// Checks if a texture exists
- ///
- /// The texture to check
- /// True if the texture exists
- private bool _TextureExists(CTexture texture)
- {
- lock (_MutexTexture)
- {
- return texture != null && _D3DTextures.ContainsKey(texture.ID);
- }
- }
-
- ///
- /// Removes a texture from the Vram
- ///
- /// The texture to be removed
- public void RemoveTexture(ref CTexture texture)
- {
- if (_TextureExists(texture))
- {
- lock (_MutexTexture)
- {
- _D3DTextures[texture.ID].Dispose();
- _D3DTextures.Remove(texture.ID);
- _IDs.Enqueue(texture.ID);
- }
- }
- texture = null;
+ texture.D3DTexture.UnlockRectangle(0);
}
#region drawing
///
/// Draws a texture
///
- /// The texture to be drawn
- public void DrawTexture(CTexture texture)
- {
- if (texture == null)
- return;
- DrawTexture(texture, texture.Rect, texture.Color);
- }
-
- ///
- /// Draws a texture
- ///
- /// The texture to be drawn
- /// A SRectF struct containing the destination coordinates
- public void DrawTexture(CTexture texture, SRectF rect)
- {
- if (texture == null)
- return;
- DrawTexture(texture, rect, texture.Color);
- }
-
- ///
- /// Draws a texture
- ///
- /// The texture to be drawn
+ /// The texture to be drawn
/// A SRectF struct containing the destination coordinates
/// A SColorF struct containing a color which the texture will be colored in
/// True if the texture should be mirrored
- public void DrawTexture(CTexture texture, SRectF rect, SColorF color, bool mirrored = false)
+ public void DrawTexture(CTextureRef textureRef, SRectF rect, SColorF color, bool mirrored = false)
{
- DrawTexture(texture, rect, color, new SRectF(0, 0, CSettings.RenderW, CSettings.RenderH, rect.Z), mirrored);
+ if (rect.W < 1 || rect.H < 1)
+ return;
+
+ CD3DTexture texture;
+ if (!_GetTexture(textureRef, out texture))
+ return;
+
+ //Calculate the position
+ const float x1 = 0;
+ float x2 = texture.WidthRatio;
+ float y1 = 0;
+ float y2 = texture.HeightRatio;
+
+ //Calculate the size
+ float rx1 = rect.X;
+ float rx2 = rect.X + rect.W;
+ float ry1 = rect.Y;
+ float ry2 = rect.Y + rect.H;
+
+ color.A *= CGraphics.GlobalAlpha;
+
+ Color c = color.AsColor();
+
+ if (mirrored)
+ {
+ float tmp = y2;
+ y2 = y1;
+ y1 = tmp;
+ }
+ var vert = new STexturedColoredVertex[4];
+ vert[0] = new STexturedColoredVertex(new Vector3(rx1, -ry1, rect.Z + CGraphics.ZOffset), new Vector2(x1, y1), c.ToArgb());
+ vert[1] = new STexturedColoredVertex(new Vector3(rx1, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x1, y2), c.ToArgb());
+ vert[2] = new STexturedColoredVertex(new Vector3(rx2, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x2, y2), c.ToArgb());
+ vert[3] = new STexturedColoredVertex(new Vector3(rx2, -ry1, rect.Z + CGraphics.ZOffset), new Vector2(x2, y1), c.ToArgb());
+ _AddToVertexBuffer(vert, texture.D3DTexture, _CalculateRotationMatrix(rect.Rotation, rx1, rx2, ry1, ry2));
}
///
/// Draws a texture
///
- /// The texture to be drawn
+ /// The texture to be drawn
/// A SRectF struct containing the destination coordinates
/// A SColorF struct containing a color which the texture will be colored in
/// A SRectF struct containing which part of the texture should be drawn
/// True if the texture should be mirrored
- public void DrawTexture(CTexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false)
+ public void DrawTexture(CTextureRef textureRef, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false)
{
- if (!_TextureExists(texture))
+ if (Math.Abs(rect.W) < 1 || Math.Abs(rect.H) < 1 || Math.Abs(bounds.H) < 1 || Math.Abs(bounds.W) < 1 ||
+ Math.Abs(color.A) < 0.01)
return;
- if (_D3DTextures[texture.ID] == null)
+
+ if (bounds.X > rect.X + rect.W || bounds.X + bounds.W < rect.X)
+ return;
+
+ if (bounds.Y > rect.Y + rect.H || bounds.Y + bounds.H < rect.Y)
+ return;
+
+ CD3DTexture texture;
+ if (!_GetTexture(textureRef, out texture))
return;
//Calculate the position
@@ -1114,58 +690,35 @@ namespace Vocaluxe.Lib.Draw
if (ry2 > bounds.Y + bounds.H)
ry2 = bounds.Y + bounds.H;
- //Align the pixels because Direct3D expects the pixels to be the left top corner
- rx1 -= 0.5f;
- ry1 -= 0.5f;
- rx2 -= 0.5f;
- ry2 -= 0.5f;
-
color.A *= CGraphics.GlobalAlpha;
- if (color.A > 1)
- color.A = 1;
- if (color.R > 1)
- color.R = 1;
- if (color.G > 1)
- color.G = 1;
- if (color.B > 1)
- color.B = 1;
-
Color c = color.AsColor();
- if (!mirrored)
+ if (mirrored)
{
- var vert = new STexturedColoredVertex[4];
- vert[0] = new STexturedColoredVertex(new Vector3(rx1, -ry1, rect.Z + CGraphics.ZOffset), new Vector2(x1, y1), c.ToArgb());
- vert[1] = new STexturedColoredVertex(new Vector3(rx1, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x1, y2), c.ToArgb());
- vert[2] = new STexturedColoredVertex(new Vector3(rx2, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x2, y2), c.ToArgb());
- vert[3] = new STexturedColoredVertex(new Vector3(rx2, -ry1, rect.Z + CGraphics.ZOffset), new Vector2(x2, y1), c.ToArgb());
- _AddToVertexBuffer(vert, _D3DTextures[texture.ID], _CalculateRotationMatrix(rect.Rotation, rx1, rx2, ry1, ry2));
- }
- else
- {
- var vert = new STexturedColoredVertex[4];
- vert[0] = new STexturedColoredVertex(new Vector3(rx1, -ry1, rect.Z + CGraphics.ZOffset), new Vector2(x1, -y1), c.ToArgb());
- vert[1] = new STexturedColoredVertex(new Vector3(rx1, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x1, -y2), c.ToArgb());
- vert[2] = new STexturedColoredVertex(new Vector3(rx2, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x2, -y2), c.ToArgb());
- vert[3] = new STexturedColoredVertex(new Vector3(rx2, -ry1, rect.Z + CGraphics.ZOffset), new Vector2(x2, -y1), c.ToArgb());
- _AddToVertexBuffer(vert, _D3DTextures[texture.ID], _CalculateRotationMatrix(rect.Rotation, rx1, rx2, ry1, ry2));
+ y1 = -y1;
+ y2 = -y2;
}
+ var vert = new STexturedColoredVertex[4];
+ vert[0] = new STexturedColoredVertex(new Vector3(rx1, -ry1, rect.Z + CGraphics.ZOffset), new Vector2(x1, y1), c.ToArgb());
+ vert[1] = new STexturedColoredVertex(new Vector3(rx1, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x1, y2), c.ToArgb());
+ vert[2] = new STexturedColoredVertex(new Vector3(rx2, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x2, y2), c.ToArgb());
+ vert[3] = new STexturedColoredVertex(new Vector3(rx2, -ry1, rect.Z + CGraphics.ZOffset), new Vector2(x2, y1), c.ToArgb());
+ _AddToVertexBuffer(vert, texture.D3DTexture, _CalculateRotationMatrix(rect.Rotation, rx1, rx2, ry1, ry2));
}
///
/// Draws a texture
///
- /// The texture to be drawn
+ /// The texture to be drawn
/// A SRectF struct containing the destination coordinates
/// A SColorF struct containing a color which the texture will be colored in
/// A Value ranging from 0 to 1 containing the beginning of the texture
/// A Value ranging from 0 to 1 containing the ending of the texture
- public void DrawTexture(CTexture texture, SRectF rect, SColorF color, float begin, float end)
+ public void DrawTexture(CTextureRef textureRef, SRectF rect, SColorF color, float begin, float end)
{
- if (!_TextureExists(texture))
- return;
- if (_D3DTextures[texture.ID] == null)
+ CD3DTexture texture;
+ if (!_GetTexture(textureRef, out texture))
return;
float x1 = 0f + begin * texture.WidthRatio;
@@ -1193,73 +746,39 @@ namespace Vocaluxe.Lib.Draw
vert[1] = new STexturedColoredVertex(new Vector3(rx1, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x1, y2), c.ToArgb());
vert[2] = new STexturedColoredVertex(new Vector3(rx2, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x2, y2), c.ToArgb());
vert[3] = new STexturedColoredVertex(new Vector3(rx2, -ry1, rect.Z + CGraphics.ZOffset), new Vector2(x2, y1), c.ToArgb());
- _AddToVertexBuffer(vert, _D3DTextures[texture.ID], _CalculateRotationMatrix(rect.Rotation, rx1, rx2, ry1, ry2));
+ _AddToVertexBuffer(vert, texture.D3DTexture, _CalculateRotationMatrix(rect.Rotation, rx1, rx2, ry1, ry2));
}
///
/// Draws a reflection of a texture
///
- /// The texture of which a reflection should be drawn
+ /// The texture of which a reflection should be drawn
/// A SRectF struct containing the destination coordinates
/// A SColorF struct containing a color which the texture will be colored in
- /// A SRectF struct containing which part of the texture should be drawn
/// The space between the texture and the reflection
/// The height of the reflection
- public void DrawTextureReflection(CTexture texture, SRectF rect, SColorF color, SRectF bounds, float space, float height)
+ public void DrawTextureReflection(CTextureRef textureRef, SRectF rect, SColorF color, float space, float height)
{
- if (!_TextureExists(texture))
- return;
- if (_D3DTextures[texture.ID] == null)
+ CD3DTexture texture;
+ if (!_GetTexture(textureRef, out texture))
return;
- if (Math.Abs(rect.W) < float.Epsilon || Math.Abs(rect.H) < float.Epsilon || Math.Abs(bounds.H) < float.Epsilon || Math.Abs(bounds.W) < float.Epsilon ||
- Math.Abs(color.A) < float.Epsilon || height <= 0f)
+ if (Math.Abs(rect.W) < float.Epsilon || Math.Abs(rect.H) < float.Epsilon || Math.Abs(color.A) < float.Epsilon || height <= 0f)
return;
- if (bounds.X > rect.X + rect.W || bounds.X + bounds.W < rect.X)
- return;
-
- if (bounds.Y > rect.Y + rect.H || bounds.Y + bounds.H < rect.Y)
- return;
-
- if (height > bounds.H)
- height = bounds.H;
-
- float x1 = (bounds.X - rect.X) / rect.W * texture.WidthRatio;
- float x2 = (bounds.X + bounds.W - rect.X) / rect.W * texture.WidthRatio;
- float y1 = (bounds.Y - rect.Y + rect.H - height) / rect.H * texture.HeightRatio;
- float y2 = (bounds.Y + bounds.H - rect.Y) / rect.H * texture.HeightRatio;
-
- if (x1 < 0)
- x1 = 0f;
-
- if (x2 > texture.WidthRatio)
- x2 = texture.WidthRatio;
-
- if (y1 < 0)
- y1 = 0f;
-
- if (y2 > texture.HeightRatio)
- y2 = texture.HeightRatio;
+ if (height > rect.H)
+ height = rect.H;
+ const float x1 = 0;
+ float x2 = texture.WidthRatio;
+ float y1 = (rect.H - height) / rect.H * texture.HeightRatio;
+ float y2 = texture.HeightRatio;
float rx1 = rect.X;
float rx2 = rect.X + rect.W;
float ry1 = rect.Y + rect.H + space;
float ry2 = rect.Y + rect.H + space + height;
- if (rx1 < bounds.X)
- rx1 = bounds.X;
-
- if (rx2 > bounds.X + bounds.W)
- rx2 = bounds.X + bounds.W;
-
- if (ry1 < bounds.Y + space)
- ry1 = bounds.Y + space;
-
- if (ry2 > bounds.Y + bounds.H + space + height)
- ry2 = bounds.Y + bounds.H + space + height;
-
//Align the pixels because Direct3D expects the pixels to be the left top corner
rx1 -= 0.5f;
ry1 -= 0.5f;
@@ -1276,79 +795,35 @@ namespace Vocaluxe.Lib.Draw
vert[1] = new STexturedColoredVertex(new Vector3(rx1, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x1, y1), transparent.ToArgb());
vert[2] = new STexturedColoredVertex(new Vector3(rx2, -ry2, rect.Z + CGraphics.ZOffset), new Vector2(x2, y1), transparent.ToArgb());
vert[3] = new STexturedColoredVertex(new Vector3(rx2, -ry1, rect.Z + CGraphics.ZOffset), new Vector2(x2, y2), c.ToArgb());
- _AddToVertexBuffer(vert, _D3DTextures[texture.ID], _CalculateRotationMatrix(rect.Rotation, rx1, rx2, ry1, ry2));
+ _AddToVertexBuffer(vert, texture.D3DTexture, _CalculateRotationMatrix(rect.Rotation, rx1, rx2, ry1, ry2));
}
#endregion drawing
- private void _CheckQueue()
- {
- lock (_MutexTexture)
- {
- while (_TexturesToLoad.Count > 0)
- {
- STextureQueue q = _TexturesToLoad.Dequeue();
- Texture t;
- if (_D3DTextures.TryGetValue(q.ID, out t) && t != null)
- continue;
-
- t = _CreateTexture(q.TextureWidth, q.TextureHeight, q.DataWidth, q.Data);
- _D3DTextures[q.ID] = t;
- }
- }
- }
-
- ///
- /// Gets the count of current textures
- ///
- /// The amount of textures
- public int GetTextureCount()
- {
- return _D3DTextures.Count;
- }
#endregion Textures
- #endregion implementation
-
- #region utility
- ///
- /// Calculates the next power of two if the device has the POW2 flag set
- ///
- /// The value of which the next power of two will be calculated
- /// The next power of two
- private int _CheckForNextPowerOf2(int n)
+ private static Matrix _CalculateRotationMatrix(float rot, float rx1, float rx2, float ry1, float ry2)
{
- if (_NonPowerOf2TextureSupported)
- return n;
- if (n < 0)
- throw new ArgumentOutOfRangeException("n", "Must be positive.");
- return (int)Math.Pow(2, Math.Ceiling(Math.Log(n, 2)));
- }
-
- private SlimDX.Matrix _CalculateRotationMatrix(float rot, float rx1, float rx2, float ry1, float ry2)
- {
- SlimDX.Matrix originTranslation = SlimDX.Matrix.Translation(new Vector3(-(float)CSettings.RenderW / 2, (float)CSettings.RenderH / 2, 0));
+ Matrix originTranslation = Matrix.Translation(new Vector3(-(float)CSettings.RenderW / 2, (float)CSettings.RenderH / 2, 0));
if (Math.Abs(rot) > float.Epsilon)
{
float rotation = rot * (float)Math.PI / 180;
float centerX = (rx1 + rx2) / 2f;
float centerY = -(ry1 + ry2) / 2f;
- SlimDX.Matrix translationA = SlimDX.Matrix.Translation(-centerX, -centerY, 0);
- SlimDX.Matrix rotationMat = SlimDX.Matrix.RotationZ(-rotation);
- SlimDX.Matrix translationB = SlimDX.Matrix.Translation(centerX, centerY, 0);
+ Matrix translationA = Matrix.Translation(-centerX, -centerY, 0);
+ Matrix rotationMat = Matrix.RotationZ(-rotation);
+ Matrix translationB = Matrix.Translation(centerX, centerY, 0);
//Multiplicate the matrices to get the real world matrix,
//First shift the texture into the center
//Rotate it and shift it back to the origin position
//Apply the originTranslation after
- SlimDX.Matrix result = translationA * rotationMat * translationB * originTranslation;
+ Matrix result = translationA * rotationMat * translationB * originTranslation;
return result;
}
return originTranslation;
}
- #endregion utility
- #region TexturedColoredVertex
private struct STexturedColoredVertex
{
private static VertexDeclaration _Declaration;
@@ -1380,7 +855,15 @@ namespace Vocaluxe.Lib.Draw
return _Declaration;
}
+
+ public static void DisposeDeclaration()
+ {
+ if (_Declaration != null && !_Declaration.Disposed)
+ {
+ _Declaration.Dispose();
+ _Declaration = null;
+ }
+ }
}
- #endregion TexturedColoredVertex
}
}
\ No newline at end of file
diff --git a/Vocaluxe/Lib/Draw/CDrawBase.cs b/Vocaluxe/Lib/Draw/CDrawBase.cs
new file mode 100644
index 00000000..3a8eeed2
--- /dev/null
+++ b/Vocaluxe/Lib/Draw/CDrawBase.cs
@@ -0,0 +1,1004 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Drawing.Imaging;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Threading;
+using System.Threading.Tasks;
+using Vocaluxe.Base;
+using VocaluxeLib;
+using VocaluxeLib.Draw;
+using System.Diagnostics;
+
+namespace Vocaluxe.Lib.Draw
+{
+ ///
+ /// Base class for graphic drivers
+ /// A few notes:
+ /// Writes to textures (TTextureType) should only be done in the main thread
+ /// Writes to the RefCount of existing textures should only be done in the main thread and guarded by _Textures lock
+ ///
+ ///
+ abstract class CDrawBase where TTextureType : CTextureBase, IDisposable
+ {
+ private enum EQueueAction
+ {
+ Add,
+ Update,
+ Delete
+ }
+
+ private struct STextureQueue
+ {
+ public readonly object TextureOrRef;
+ ///
+ /// Only valid if Data is byte[]
+ ///
+ public readonly Size DataSize;
+ public readonly object Data;
+ public readonly EQueueAction Action;
+
+ ///
+ /// Creates a new Queue entry
+ ///
+ /// TTextureType or CTextureRef
+ ///
+ /// Texture data as a bitmap
+ public STextureQueue(object textureOrRef, EQueueAction action, Bitmap data)
+ {
+ TextureOrRef = textureOrRef;
+ Action = action;
+ Data = data;
+ DataSize = new Size();
+ }
+
+ ///
+ /// Creates a new Queue entry
+ ///
+ /// TTextureType or CTextureRef
+ ///
+ /// Size of data
+ /// Texture data
+ public STextureQueue(object textureOrRef, EQueueAction action, Size dataSize, byte[] data)
+ {
+ TextureOrRef = textureOrRef;
+ Action = action;
+ DataSize = dataSize;
+ Data = data;
+ }
+ }
+
+ private struct STextureCacheEntry
+ {
+ public TTextureType Texture;
+ ///
+ /// Size of original image (e.g. of bmp)
+ ///
+ public Size OrigSize;
+ }
+
+ protected bool _NonPowerOf2TextureSupported;
+ protected bool _Fullscreen;
+
+ protected bool _Run;
+
+ protected readonly CKeys _Keys = new CKeys();
+ protected readonly CMouse _Mouse = new CMouse();
+
+ private int _NextID;
+ private readonly Object _MutexID = new object();
+
+ // Maps texture IDs to textures. Multiple IDs can be mapped to one texture (-->texture.RefCount>1)
+ private readonly Dictionary _Textures = new Dictionary();
+ // Maps texturePaths to textures. Texture may have already been disposed (RefCount<=0)
+ private readonly Dictionary _TextureCache = new Dictionary();
+ private readonly Queue _TextureQueue = new Queue();
+ private readonly Dictionary> _BitmapsLoading = new Dictionary>();
+ private int _TextureCount;
+
+ protected int _H;
+ protected int _W;
+ protected int _Y;
+ protected int _X;
+
+ protected int _BorderLeft;
+ protected int _BorderRight;
+ protected int _BorderTop;
+ protected int _BorderBottom;
+ protected EGeneralAlignment _CurrentAlignment = EGeneralAlignment.Middle;
+
+ private int _MainThreadID;
+
+ protected abstract void _ClearScreen();
+ protected abstract void _AdjustNewBorders();
+ protected abstract void _LeaveFullScreen();
+
+ protected abstract void _OnAfterDraw();
+
+ protected abstract void _OnBeforeDraw();
+
+ protected abstract void _DoResize();
+
+ protected abstract void _EnterFullScreen();
+
+ public virtual bool Init()
+ {
+ _MainThreadID = Thread.CurrentThread.ManagedThreadId;
+ return true;
+ }
+
+ ///
+ /// This makes sure, the function is called from within the main thread
+ ///
+ private void _EnsureMainThread()
+ {
+ Debug.Assert(_MainThreadID == Thread.CurrentThread.ManagedThreadId);
+ }
+
+ public virtual void Unload()
+ {
+ _EnsureMainThread();
+ lock (_Textures)
+ {
+ //Dispose all textures
+ foreach (TTextureType texture in _Textures.Values)
+ {
+ if (texture != null && --texture.RefCount <= 0)
+ texture.Dispose();
+ }
+ _Textures.Clear();
+ _TextureCache.Clear();
+ }
+ }
+
+ protected void _AdjustAspect(bool reverse)
+ {
+ if (_W / (float)_H > CSettings.GetRenderAspect())
+ {
+ _Y = 0;
+ //The windows width is too big
+ int old = _W;
+ _W = (int)Math.Round(_H * CSettings.GetRenderAspect());
+ int diff = old - _W;
+ switch (_CurrentAlignment)
+ {
+ case EGeneralAlignment.Start:
+ _X = 0;
+ break;
+ case EGeneralAlignment.Middle:
+ _X = diff / 2;
+ break;
+ case EGeneralAlignment.End:
+ _X = diff;
+ break;
+ }
+ }
+ else
+ {
+ _X = 0;
+ //The windows height is too big
+ int old = _H;
+ _H = (int)Math.Round(_W / CSettings.GetRenderAspect());
+ int diff = old - _H;
+ switch (_CurrentAlignment)
+ {
+ case EGeneralAlignment.Start:
+ _Y = reverse ? diff : 0;
+ break;
+ case EGeneralAlignment.Middle:
+ _Y = diff / 2;
+ break;
+ case EGeneralAlignment.End:
+ _Y = reverse ? 0 : diff;
+ break;
+ }
+ }
+ }
+
+ ///
+ /// Calculates the next power of two if the device has the POW2 flag set
+ ///
+ /// The value of which the next power of two will be calculated
+ /// The next power of two
+ protected int _CheckForNextPowerOf2(int n)
+ {
+ if (_NonPowerOf2TextureSupported)
+ return n;
+ if (n < 0)
+ throw new ArgumentOutOfRangeException("n", "Must be positive.");
+ return (int)Math.Pow(2, Math.Ceiling(Math.Log(n, 2)));
+ }
+
+ #region Textures
+
+ #region private/protected
+ ///
+ /// Returns the maximum area allowed for a texture based on the current quality
+ ///
+ ///
+ private static int _GetMaxTextureArea()
+ {
+ switch (CConfig.TextureQuality)
+ {
+ case ETextureQuality.TR_CONFIG_TEXTURE_LOWEST:
+ return 128 * 128;
+ case ETextureQuality.TR_CONFIG_TEXTURE_LOW:
+ return 256 * 128;
+ case ETextureQuality.TR_CONFIG_TEXTURE_MEDIUM:
+ return 512 * 256;
+ case ETextureQuality.TR_CONFIG_TEXTURE_HIGH:
+ return 1024 * 512;
+ case ETextureQuality.TR_CONFIG_TEXTURE_HIGHEST:
+ return CSettings.RenderW * CSettings.RenderH;
+ default:
+ throw new ArgumentException();
+ }
+ }
+
+ ///
+ /// Returns true if a texture with the given size needs to be resized
+ ///
+ ///
+ ///
+ private static bool _RequiresResize(Size size)
+ {
+ int maxArea = _GetMaxTextureArea();
+ int curArea = size.Width * size.Height;
+ return curArea > maxArea;
+ }
+
+ ///
+ /// Calculates the size for a new texture using the quality and smart values for rescaling
+ ///
+ /// New size for the texture
+ private Size _GetNewTextureSize(Size size)
+ {
+ Debug.Assert(size.Width > 0 && size.Height > 0);
+ int maxArea = _GetMaxTextureArea();
+ int curArea = size.Width * size.Height;
+ if (curArea <= maxArea)
+ return size;
+ Debug.Assert(_RequiresResize(size));
+ double factor = Math.Sqrt((double)maxArea / curArea);
+ Size newSize = new Size((int)(size.Width * factor), (int)(size.Height * factor));
+ if (!_NonPowerOf2TextureSupported)
+ {
+ if (size.Width < size.Height)
+ {
+ newSize.Width = _CheckForNextPowerOf2(newSize.Width);
+ newSize.Height = _CheckForNextPowerOf2(maxArea / newSize.Width);
+ if (newSize.Width * newSize.Height > maxArea)
+ newSize.Height /= 2;
+ }
+ else
+ {
+ newSize.Height = _CheckForNextPowerOf2(newSize.Height);
+ newSize.Width = _CheckForNextPowerOf2(maxArea / newSize.Height);
+ if (newSize.Width * newSize.Height > maxArea)
+ newSize.Width /= 2;
+ }
+ }
+ Debug.Assert(newSize.Width * newSize.Height <= maxArea);
+ return newSize;
+ }
+
+ protected abstract void _WriteDataToTexture(TTextureType texture, byte[] data);
+
+ protected virtual void _WriteDataToTexture(TTextureType texture, IntPtr data)
+ {
+ byte[] dataArray = new byte[4 * texture.DataSize.Width * texture.DataSize.Height];
+ Marshal.Copy(data, dataArray, 0, dataArray.Length);
+ _WriteDataToTexture(texture, dataArray);
+ }
+
+ ///
+ /// Factory method to create a texture of the actual type
+ /// The implementer has to create an invalid texture (IsLoaded=false) if dataSize=(-1,-1)
+ ///
+ ///
+ ///
+ protected abstract TTextureType _CreateTexture(Size dataSize);
+
+ ///
+ /// Creates the texture specified by the reference and fills it with the given data
+ ///
+ ///
+ ///
+ ///
+ private TTextureType _CreateAndFillTexture(Size dataSize, byte[] data)
+ {
+ TTextureType texture = _CreateTexture(dataSize);
+ _WriteDataToTexture(texture, data);
+ return texture;
+ }
+
+ ///
+ /// Writes the specified bitmap to the texture, creating it if null
+ /// Also does the resizing if required
+ ///
+ ///
+ ///
+ private void _WriteBitmapToTexture(ref TTextureType texture, Bitmap bmp)
+ {
+ Bitmap bmp2 = null;
+ try
+ {
+ Size size = _GetNewTextureSize(bmp.GetSize());
+ if (!size.Equals(bmp.GetSize()))
+ {
+ bmp2 = bmp.Resize(size);
+ bmp = bmp2;
+ }
+
+ //Fill the new Bitmap with the texture data
+ BitmapData bmpData = bmp.LockBits(bmp.GetRect(), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
+ if (texture == null)
+ texture = _CreateTexture(size);
+ else
+ texture.DataSize = size;
+ _WriteDataToTexture(texture, bmpData.Scan0);
+ bmp.UnlockBits(bmpData);
+ }
+ finally
+ {
+ if (bmp2 != null)
+ bmp2.Dispose();
+ }
+ }
+
+ ///
+ /// Adds the texture to the cache
+ /// Asserts that the cache entry does not exist yet. So make Get/Add cache atomic through use of _TextureCache lock!
+ /// Thread safe
+ ///
+ ///
+ ///
+ ///
+ private void _AddToCache(TTextureType texture, Size origSize, string texturePath)
+ {
+ if (String.IsNullOrEmpty(texturePath))
+ return;
+ Debug.Assert(texture != null);
+ lock (_Textures)
+ {
+ Debug.Assert(!_TextureCache.ContainsKey(texturePath));
+ texture.TexturePath = texturePath;
+ STextureCacheEntry cacheEntry = new STextureCacheEntry {OrigSize = origSize, Texture = texture};
+ _TextureCache.Add(texturePath, cacheEntry);
+ }
+ }
+
+ ///
+ /// Gets a new texture reference from the cache
+ /// Thread safe
+ ///
+ ///
+ /// Task that loads the texture or null if not loading
+ ///
+ private CTextureRef _GetFromCache(string texturePath, out Task loader)
+ {
+ loader = null;
+ if (String.IsNullOrEmpty(texturePath))
+ return null;
+ lock (_TextureCache)
+ lock (_Textures)
+ {
+ STextureCacheEntry cacheEntry;
+ if (_TextureCache.TryGetValue(texturePath, out cacheEntry))
+ {
+ if (cacheEntry.Texture.RefCount <= 0)
+ _TextureCache.Remove(texturePath);
+ else
+ {
+ if (cacheEntry.OrigSize.Width < 0)
+ {
+ lock (_BitmapsLoading)
+ {
+ loader = _BitmapsLoading[texturePath];
+ }
+ }
+ return _GetTextureReference(cacheEntry.OrigSize, cacheEntry.Texture);
+ }
+ }
+ }
+ return null;
+ }
+
+ ///
+ /// Method used to add a texture to the texture list and return a TextureRef to it
+ /// If you are using an already used texture, you have to hold the _Textures lock or call from the main thread!
+ /// Thread safe
+ ///
+ ///
+ ///
+ ///
+ protected CTextureRef _GetTextureReference(Size origSize, TTextureType texture)
+ {
+ Debug.Assert(origSize.Width > 0 && origSize.Height > 0);
+ Debug.Assert(texture != null);
+ int id;
+ lock (_MutexID)
+ {
+ id = _NextID++;
+ }
+ CTextureRef textureRef = new CTextureRef(id, origSize);
+ lock (_Textures)
+ {
+ if (texture.RefCount == 0)
+ _TextureCount++;
+ texture.RefCount++;
+ _Textures.Add(id, texture);
+ }
+ return textureRef;
+ }
+
+ ///
+ /// Method used to add a texture to the texture list and return a TextureRef to it
+ /// Thread safe
+ /// Convenience method
+ ///
+ ///
+ ///
+ ///
+ ///
+ protected CTextureRef _GetTextureReference(int origWidth, int origHeight, TTextureType texture)
+ {
+ return _GetTextureReference(new Size(origWidth, origHeight), texture);
+ }
+
+ private static bool _IsTextureUsable(TTextureType texture, int dataWidth, int dataHeight)
+ {
+ if (texture == null)
+ return false;
+ if (texture.DataSize.Width != dataWidth || texture.DataSize.Height != dataHeight)
+ {
+ if (texture.W2 > dataWidth || texture.H2 > dataHeight)
+ return false; // Texture memory to small
+ if (texture.W2 * 0.9 < dataWidth || texture.H2 * 0.9 < dataHeight)
+ return false; // Texture memory to big
+ }
+ return true;
+ }
+
+ protected bool _GetTexture(CTextureRef textureRef, out TTextureType texture, bool checkDrawable = true)
+ {
+ if (textureRef == null)
+ {
+ texture = null;
+ return false;
+ }
+ lock (_Textures)
+ {
+ return _Textures.TryGetValue(textureRef.ID, out texture) && (!checkDrawable || texture.IsLoaded);
+ }
+ }
+
+ ///
+ /// Decreases the RefCount of a texture and disposes it if necessary
+ ///
+ ///
+ private void _DisposeTexture(TTextureType texture)
+ {
+ _EnsureMainThread();
+ lock (_Textures)
+ {
+ if (texture != null && --texture.RefCount <= 0)
+ {
+ if (texture.TexturePath != null)
+ _TextureCache.Remove(texture.TexturePath);
+ texture.Dispose();
+ _TextureCount--;
+ }
+ }
+ }
+
+ private void _CheckQueue()
+ {
+ _EnsureMainThread();
+ lock (_TextureQueue)
+ {
+ while (_TextureQueue.Count > 0)
+ {
+ STextureQueue q = _TextureQueue.Dequeue();
+
+ if (q.Action == EQueueAction.Add)
+ {
+ TTextureType oldTexture = q.TextureOrRef as TTextureType;
+ Debug.Assert(oldTexture != null, "Queued type is wrong");
+ Debug.Assert(!oldTexture.IsLoaded);
+ if (oldTexture.RefCount <= 0)
+ continue;
+ TTextureType texture = null;
+ // ReSharper disable CanBeReplacedWithTryCastAndCheckForNull
+ if (q.Data is Bitmap)
+ _WriteBitmapToTexture(ref texture, (Bitmap)q.Data);
+ else if (q.Data is byte[])
+ texture = _CreateAndFillTexture(q.DataSize, (byte[])q.Data);
+ else
+ throw new ArgumentException("q.Data is of invalid type");
+ // ReSharper restore CanBeReplacedWithTryCastAndCheckForNull
+ _MergeTextures(oldTexture, texture);
+ }
+ else
+ {
+ CTextureRef textureRef = q.TextureOrRef as CTextureRef;
+ Debug.Assert(textureRef != null, "Queued type is wrong");
+ if (!_Textures.ContainsKey(textureRef.ID))
+ continue;
+ if (q.Action == EQueueAction.Update)
+ {
+ // ReSharper disable CanBeReplacedWithTryCastAndCheckForNull
+ if (q.Data is Bitmap)
+ UpdateTexture(textureRef, (Bitmap)q.Data);
+ else if (q.Data is byte[])
+ UpdateTexture(textureRef, q.DataSize.Width, q.DataSize.Height, (byte[])q.Data);
+ else
+ throw new ArgumentException("q.Data is of invalid type");
+ // ReSharper restore CanBeReplacedWithTryCastAndCheckForNull
+ }
+ else if (q.Action == EQueueAction.Delete)
+ RemoveTexture(ref textureRef);
+ }
+ }
+ }
+ }
+
+ ///
+ /// Replaces one oldTexture by newTexture summing the refCounts. Also disposes oldTexture
+ ///
+ ///
+ ///
+ private void _MergeTextures(TTextureType oldTexture, TTextureType newTexture)
+ {
+ _EnsureMainThread();
+ Debug.Assert(oldTexture.RefCount > 0);
+ lock (_Textures)
+ {
+ newTexture.RefCount += oldTexture.RefCount;
+ IEnumerable oldKeys = _Textures.Where(pair => pair.Value == oldTexture).Select(pair => pair.Key).ToArray();
+ foreach (int key in oldKeys)
+ _Textures[key] = newTexture;
+ if (!String.IsNullOrEmpty(oldTexture.TexturePath))
+ {
+ newTexture.TexturePath = oldTexture.TexturePath;
+ STextureCacheEntry cacheEntry;
+ if (_TextureCache.TryGetValue(newTexture.TexturePath, out cacheEntry))
+ {
+ cacheEntry.Texture = newTexture;
+ _TextureCache[newTexture.TexturePath] = cacheEntry;
+ }
+ }
+ oldTexture.Dispose();
+ }
+ }
+ #endregion private/protected
+
+ ///
+ /// Adds a texture and stores it in the VRam
+ ///
+ /// The texture's filepath
+ /// A STexture object containing the added texture
+ public CTextureRef AddTexture(string texturePath)
+ {
+ _EnsureMainThread();
+ CTextureRef textureRef;
+ Task loader;
+ lock (_TextureCache)
+ {
+ textureRef = _GetFromCache(texturePath, out loader);
+ }
+ if (textureRef != null)
+ {
+ if (loader != null)
+ textureRef.OrigSize = loader.Result;
+ Debug.Assert(textureRef.OrigSize.Width > 0);
+ return textureRef;
+ }
+
+ Bitmap bmp = CHelper.LoadBitmap(texturePath);
+ if (bmp == null)
+ return null;
+ try
+ {
+ textureRef = AddTexture(bmp, texturePath);
+ }
+ finally
+ {
+ bmp.Dispose();
+ }
+ return textureRef;
+ }
+
+ public CTextureRef AddTexture(Bitmap bmp)
+ {
+ _EnsureMainThread();
+ return AddTexture(bmp, null);
+ }
+
+ ///
+ /// Adds a texture and stores it in the Vram
+ ///
+ /// The Bitmap of which the texure will be created from
+ ///
+ /// A reference to the texture
+ public CTextureRef AddTexture(Bitmap bmp, string texturePath)
+ {
+ _EnsureMainThread();
+ if (bmp.Height == 0 || bmp.Width == 0)
+ return null;
+
+ CTextureRef textureRef;
+ Size origSize = bmp.GetSize();
+ TTextureType texture = null;
+ Task loader;
+ // Make the Get/Add Cache methods atomic
+ lock (_TextureCache)
+ {
+ textureRef = _GetFromCache(texturePath, out loader);
+ if (textureRef == null)
+ {
+ _WriteBitmapToTexture(ref texture, bmp);
+
+ _AddToCache(texture, origSize, texturePath);
+ }
+ }
+ if (textureRef == null)
+ textureRef = _GetTextureReference(origSize, texture);
+ else if (loader != null)
+ textureRef.OrigSize = loader.Result;
+ Debug.Assert(textureRef.OrigSize.Width > 0);
+ return textureRef;
+ }
+
+ public CTextureRef AddTexture(int w, int h, byte[] data)
+ {
+ _EnsureMainThread();
+ TTextureType texture = _CreateAndFillTexture(new Size(w, h), data);
+ return _GetTextureReference(w, h, texture);
+ }
+
+ public CTextureRef EnqueueTexture(int w, int h, byte[] data)
+ {
+ lock (_TextureQueue)
+ {
+ TTextureType texture = _CreateTexture(new Size(-1, -1));
+ CTextureRef textureRef = _GetTextureReference(w, h, texture);
+ _TextureQueue.Enqueue(new STextureQueue(texture, EQueueAction.Add, new Size(w, h), data));
+ return textureRef;
+ }
+ }
+
+ ///
+ /// Enqueues a bitmap to add or update the texture
+ ///
+ /// TTextureType (Add) or CTextureRef(Update)
+ ///
+ ///
+ /// True if resizing should be done in an extra thread
+ private void _EnqueueTextureAddOrUpdate(Object texture, Bitmap bmp, EQueueAction action, bool asyncResize)
+ {
+ Debug.Assert(action == EQueueAction.Add || action == EQueueAction.Update);
+ Debug.Assert(action != EQueueAction.Add || texture is TTextureType);
+ Debug.Assert(action != EQueueAction.Update || texture is CTextureRef);
+ if (_RequiresResize(bmp.GetSize()))
+ {
+ if (asyncResize)
+ Task.Factory.StartNew(() => _ResizeTextureAndEnqueue(texture, bmp, action));
+ else
+ _ResizeTextureAndEnqueue(texture, bmp, action);
+ }
+ else
+ {
+ lock (_TextureQueue)
+ {
+ _TextureQueue.Enqueue(new STextureQueue(texture, action, bmp));
+ }
+ }
+ }
+
+ ///
+ /// Helper function to resize a bitmap and enqueue it
+ ///
+ ///
+ ///
+ ///
+ private void _ResizeTextureAndEnqueue(object texture, Bitmap bmp, EQueueAction action)
+ {
+ Bitmap bmp2 = bmp.Resize(_GetNewTextureSize(bmp.Size));
+ bmp.Dispose();
+ lock (_TextureQueue)
+ {
+ _TextureQueue.Enqueue(new STextureQueue(texture, action, bmp2));
+ }
+ }
+
+ public CTextureRef EnqueueTexture(Bitmap bmp)
+ {
+ TTextureType texture = _CreateTexture(new Size(-1, -1));
+ CTextureRef textureRef = _GetTextureReference(bmp.GetSize(), texture);
+ _EnqueueTextureAddOrUpdate(texture, bmp, EQueueAction.Add, true);
+
+ return textureRef;
+ }
+
+ public CTextureRef EnqueueTexture(String filePath)
+ {
+ // 3 important scenarios: (+ means after, || means in parallel)
+ // 1) EnqueueTexture(fileA) (+ or ||) EnqueueTexture(fileA) --> No block on 2nd call and same texture returned
+ // 2) EnqueueTexture(fileA) + AddTexture(fileA) before texture is loaded --> Wait in AddTexture for this to finish
+ // 3) a) AddTexture(fileA) || b) EnqueueTexture(fileA) with a)getFromCache + b)getFromCache + a)addToCache + b)addToCache --> Only keep one copy
+ // All solved with atomic get/add cache and _WaitForTextureLoaded
+
+ CTextureRef textureRef;
+ TTextureType texture = null;
+ Task loader;
+ // Make Get/Add cache atomic
+ lock (_TextureCache)
+ {
+ textureRef = _GetFromCache(filePath, out loader);
+ if (textureRef == null)
+ {
+ Debug.Assert(loader == null);
+ Size invalidSize = new Size(-1, -1);
+ texture = _CreateTexture(invalidSize);
+ // This cache entry has to be updated once the real origSize is available
+ _AddToCache(texture, invalidSize, filePath);
+ textureRef = _GetTextureReference(invalidSize, texture);
+ // Add the loader to the dictionary in the same lock as the add cache call
+ // Avoids that we get a cache entry in AddTexture but no Task
+ loader = new Task(() => _LoadAndEnqueueBitmap(filePath, textureRef, texture));
+ lock (_BitmapsLoading)
+ {
+ _BitmapsLoading.Add(filePath, loader);
+ }
+ }
+ }
+
+ if (texture == null)
+ {
+ // Found in cache
+ CTextureRef tmp = textureRef; // Workaround for implicitly captured closure warning (false positive)
+ if (loader != null)
+ Task.Factory.StartNew(() => tmp.OrigSize = loader.Result);
+ return textureRef;
+ }
+
+ Debug.Assert(loader != null);
+ Debug.Assert(texture != null);
+ loader.Start();
+ return textureRef;
+ }
+
+ ///
+ /// Helper function for loading a bitmap in a task
+ ///
+ ///
+ ///
+ ///
+ ///
+ private Size _LoadAndEnqueueBitmap(string filePath, CTextureRef textureRef, TTextureType texture)
+ {
+ Bitmap bmp = CHelper.LoadBitmap(filePath);
+ if (bmp == null)
+ {
+ RemoveTexture(ref textureRef); // Done asynchonously in the function
+ lock (_Textures)
+ {
+ _TextureCache.Remove(filePath);
+ lock (_BitmapsLoading)
+ {
+ _BitmapsLoading.Remove(filePath);
+ }
+ }
+ return new Size(-1, -1);
+ }
+ Size origSize = bmp.GetSize();
+ textureRef.OrigSize = origSize;
+ // Update cache, use the same lock as in add/get cache methods
+ lock (_Textures)
+ {
+ STextureCacheEntry cacheEntry;
+ if (_TextureCache.TryGetValue(filePath, out cacheEntry))
+ {
+ cacheEntry.OrigSize = origSize;
+ _TextureCache[filePath] = cacheEntry;
+ }
+ lock (_BitmapsLoading)
+ {
+ _BitmapsLoading.Remove(filePath);
+ }
+ }
+ _EnqueueTextureAddOrUpdate(texture, bmp, EQueueAction.Add, false);
+ return origSize;
+ }
+
+ public void EnqueueTextureUpdate(CTextureRef textureRef, Bitmap bmp)
+ {
+ _EnqueueTextureAddOrUpdate(textureRef, bmp, EQueueAction.Update, true);
+ }
+
+ ///
+ /// Updates the data of a texture
+ ///
+ /// The texture to update
+ ///
+ ///
+ /// A byte array containing the new texture's data
+ /// True if succeeded
+ public void UpdateTexture(CTextureRef textureRef, int w, int h, byte[] data)
+ {
+ _EnsureMainThread();
+ TTextureType texture;
+ if (!_GetTexture(textureRef, out texture, false))
+ return;
+ bool reuseTexture = _IsTextureUsable(texture, w, h);
+ if (reuseTexture && texture.RefCount == 1)
+ {
+ texture.DataSize = new Size(w, h);
+ _WriteDataToTexture(texture, data);
+ }
+ else
+ {
+ _DisposeTexture(texture);
+ texture = _CreateAndFillTexture(new Size(w, h), data);
+ texture.RefCount = 1;
+ _Textures[textureRef.ID] = texture;
+ }
+ }
+
+ public void UpdateTexture(CTextureRef textureRef, Bitmap bmp)
+ {
+ _EnsureMainThread();
+ TTextureType texture;
+ if (!_GetTexture(textureRef, out texture, false))
+ return;
+ bool reuseTexture = _IsTextureUsable(texture, bmp.Width, bmp.Height);
+ if (reuseTexture && texture.RefCount == 1)
+ _WriteBitmapToTexture(ref texture, bmp);
+ else
+ {
+ _DisposeTexture(texture);
+ texture = null;
+ _WriteBitmapToTexture(ref texture, bmp);
+ texture.RefCount = 1;
+ _Textures[textureRef.ID] = texture;
+ }
+ }
+
+ public CTextureRef CopyTexture(CTextureRef textureRef)
+ {
+ _EnsureMainThread();
+ TTextureType texture;
+ if (!_GetTexture(textureRef, out texture, false))
+ return null;
+ // If bitmap is not yet loaded, wait for it
+ if (!String.IsNullOrEmpty(texture.TexturePath))
+ {
+ Task loader;
+ lock (_BitmapsLoading)
+ {
+ _BitmapsLoading.TryGetValue(texture.TexturePath, out loader);
+ }
+ if (loader != null)
+ textureRef.OrigSize = loader.Result;
+ }
+ Debug.Assert(textureRef.OrigSize.Width > 0);
+ return _GetTextureReference(textureRef.OrigSize, texture);
+ }
+
+ ///
+ /// Removes a texture from the Vram
+ ///
+ /// The texture to be removed
+ public void RemoveTexture(ref CTextureRef textureRef)
+ {
+ if (textureRef == null)
+ return;
+ if (textureRef.ID > 0)
+ {
+ if (_MainThreadID != Thread.CurrentThread.ManagedThreadId)
+ {
+ lock (_TextureQueue)
+ {
+ _TextureQueue.Enqueue(new STextureQueue(textureRef, EQueueAction.Delete, null));
+ }
+ textureRef = null;
+ return;
+ }
+ lock (_Textures)
+ {
+ TTextureType t;
+ if (_Textures.TryGetValue(textureRef.ID, out t))
+ {
+ _DisposeTexture(t);
+ _Textures.Remove(textureRef.ID);
+ }
+ textureRef.SetRemoved();
+ }
+ }
+ textureRef = null;
+ }
+
+ public int GetTextureCount()
+ {
+ return _TextureCount;
+ }
+ #endregion
+
+ // Resharper doesn't get that this is used -.-
+ // ReSharper disable UnusedMemberHiearchy.Global
+ ///
+ /// Starts the rendering
+ ///
+ public virtual void MainLoop()
+ {
+ // ReSharper restore UnusedMemberHiearchy.Global
+ _EnsureMainThread();
+ _Run = true;
+
+ _Fullscreen = false;
+ if (CConfig.FullScreen == EOffOn.TR_CONFIG_ON)
+ _EnterFullScreen();
+ else
+ _DoResize(); //Resize window if aspect ratio is incorrect
+
+ while (_Run)
+ {
+ _CheckQueue();
+
+ //We want to begin drawing
+ _OnBeforeDraw();
+
+ //Clear the previous Frame
+ _ClearScreen();
+ if (!CGraphics.Draw())
+ _Run = false;
+ _OnAfterDraw();
+
+ if (!CGraphics.UpdateGameLogic(_Keys, _Mouse))
+ _Run = false;
+
+ //Apply fullscreen mode
+ if ((CConfig.FullScreen == EOffOn.TR_CONFIG_ON) != _Fullscreen)
+ _ToggleFullScreen();
+
+ //Apply border changes
+ if (_BorderLeft != CConfig.BorderLeft || _BorderRight != CConfig.BorderRight || _BorderTop != CConfig.BorderTop || _BorderBottom != CConfig.BorderBottom)
+ {
+ _BorderLeft = CConfig.BorderLeft;
+ _BorderRight = CConfig.BorderRight;
+ _BorderTop = CConfig.BorderTop;
+ _BorderBottom = CConfig.BorderBottom;
+
+ _AdjustNewBorders();
+ }
+
+ if (_CurrentAlignment != CConfig.ScreenAlignment)
+ _DoResize();
+
+ if (CConfig.VSync == EOffOn.TR_CONFIG_OFF)
+ {
+ if (CTime.IsRunning())
+ {
+ int delay = (int)Math.Floor(CConfig.CalcCycleTime() - CTime.GetMilliseconds());
+
+ if (delay >= 1 && delay < 500)
+ Thread.Sleep(delay);
+ }
+ }
+ //Calculate the FPS Rate and restart the timer after a frame
+ CTime.CalculateFPS();
+ CTime.Restart();
+ }
+ }
+
+ private void _ToggleFullScreen()
+ {
+ if (!_Fullscreen)
+ _EnterFullScreen();
+ else
+ _LeaveFullScreen();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Vocaluxe/Lib/Draw/CDrawBaseWindows.cs b/Vocaluxe/Lib/Draw/CDrawBaseWindows.cs
new file mode 100644
index 00000000..8ac494e8
--- /dev/null
+++ b/Vocaluxe/Lib/Draw/CDrawBaseWindows.cs
@@ -0,0 +1,198 @@
+using System;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Drawing;
+using System.IO;
+using System.Windows.Forms;
+using Vocaluxe.Base;
+
+namespace Vocaluxe.Lib.Draw
+{
+ public delegate bool MessageEventHandler(ref Message m);
+
+ public interface IFormHook
+ {
+ MessageEventHandler OnMessage { set; }
+ }
+
+ abstract class CDrawBaseWindows : CDrawBase where TTextureType : CTextureBase, IDisposable
+ {
+ private struct SClientRect
+ {
+ public Point Location;
+ public int Width;
+ public int Height;
+ }
+
+ protected Form _Form;
+ private SClientRect _Restore;
+ protected Size _SizeBeforeMinimize;
+
+ public override void Unload()
+ {
+ base.Unload();
+ try
+ {
+ _Form.Close();
+ }
+ catch {}
+ }
+
+ protected void _CenterToScreen()
+ {
+ Screen screen = Screen.FromControl(_Form);
+ _Form.Location = new Point((screen.WorkingArea.Width - _Form.Width) / 2,
+ (screen.WorkingArea.Height - _Form.Height) / 2);
+ }
+
+ private static bool _OnMessageAvoidScreenOff(ref Message m)
+ {
+ switch (m.Msg)
+ {
+ case 0x112: // WM_SYSCOMMAND
+ switch ((int)m.WParam & 0xFFF0)
+ {
+ case 0xF100: // SC_KEYMENU
+ m.Result = IntPtr.Zero;
+ return false;
+ case 0xF140: // SC_SCREENSAVER
+ case 0xF170: // SC_MONITORPOWER
+ return false;
+ }
+ break;
+ }
+ return true;
+ }
+
+ protected override void _EnterFullScreen()
+ {
+ Debug.Assert(!_Fullscreen);
+ _Fullscreen = true;
+
+ _Restore.Location = _Form.Location;
+ _Restore.Width = _Form.Width;
+ _Restore.Height = _Form.Height;
+
+ _Form.FormBorderStyle = FormBorderStyle.None;
+
+ Screen screen = Screen.FromControl(_Form);
+ _Form.DesktopBounds = new Rectangle(screen.Bounds.Location, new Size(screen.Bounds.Width, screen.Bounds.Height));
+
+ if (_Form.WindowState == FormWindowState.Maximized)
+ {
+ _Form.WindowState = FormWindowState.Normal;
+ _DoResize();
+ _Form.WindowState = FormWindowState.Maximized;
+ }
+ else
+ _DoResize();
+ }
+
+ protected override void _LeaveFullScreen()
+ {
+ Debug.Assert(_Fullscreen);
+ _Fullscreen = false;
+
+ _Form.FormBorderStyle = FormBorderStyle.Sizable;
+ _Form.DesktopBounds = new Rectangle(_Restore.Location, new Size(_Restore.Width, _Restore.Height));
+ }
+
+ #region form event handlers
+ private void _OnClose(object sender, CancelEventArgs e)
+ {
+ _Run = false;
+ }
+
+ private void _OnLoad(object sender, EventArgs e)
+ {
+ _ClearScreen();
+ }
+
+ protected virtual void _OnResize(object sender, EventArgs e)
+ {
+ _DoResize();
+ }
+
+ #region mouse event handlers
+ protected void _OnMouseMove(object sender, MouseEventArgs e)
+ {
+ _Mouse.MouseMove(e);
+ }
+
+ protected void _OnMouseWheel(object sender, MouseEventArgs e)
+ {
+ _Mouse.MouseWheel(e);
+ }
+
+ protected void _OnMouseDown(object sender, MouseEventArgs e)
+ {
+ _Mouse.MouseDown(e);
+ }
+
+ protected void _OnMouseUp(object sender, MouseEventArgs e)
+ {
+ _Mouse.MouseUp(e);
+ }
+
+ protected void _OnMouseLeave(object sender, EventArgs e)
+ {
+ _Mouse.Visible = false;
+ Cursor.Show();
+ }
+
+ protected void _OnMouseEnter(object sender, EventArgs e)
+ {
+ Cursor.Hide();
+ _Mouse.Visible = true;
+ }
+ #endregion
+
+ #region keyboard event handlers
+ protected void _OnPreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
+ {
+ _OnKeyDown(sender, new KeyEventArgs(e.KeyData));
+ }
+
+ protected void _OnKeyDown(object sender, KeyEventArgs e)
+ {
+ _Keys.KeyDown(e);
+ }
+
+ protected void _OnKeyPress(object sender, KeyPressEventArgs e)
+ {
+ _Keys.KeyPress(e);
+ }
+
+ protected void _OnKeyUp(object sender, KeyEventArgs e)
+ {
+ _Keys.KeyUp(e);
+ }
+ #endregion keyboard event handlers
+
+ #endregion
+
+ public override bool Init()
+ {
+ if (!base.Init())
+ return false;
+ _Form.Icon = new Icon(Path.Combine(CSettings.ProgramFolder, CSettings.FileNameIcon));
+ _Form.Text = CSettings.GetFullVersionText();
+ ((IFormHook)_Form).OnMessage = _OnMessageAvoidScreenOff;
+ _Form.Closing += _OnClose;
+ _Form.Resize += _OnResize;
+ _Form.Load += _OnLoad;
+
+ _SizeBeforeMinimize = _Form.ClientSize;
+ _CenterToScreen();
+
+ return true;
+ }
+
+ public override void MainLoop()
+ {
+ _Form.Show();
+ base.MainLoop();
+ _Form.Hide();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Vocaluxe/Lib/Draw/CDrawWinForm.cs b/Vocaluxe/Lib/Draw/CDrawWinForm.cs
index 08720117..0c9cb5c4 100644
--- a/Vocaluxe/Lib/Draw/CDrawWinForm.cs
+++ b/Vocaluxe/Lib/Draw/CDrawWinForm.cs
@@ -44,7 +44,8 @@ namespace Vocaluxe.Lib.Draw
private bool _TopMost;
private Rectangle _Bounds;
- private readonly Dictionary _Textures = new Dictionary();
+ private readonly Dictionary _Textures = new Dictionary();
+ private readonly Dictionary _TextureCache = new Dictionary();
private readonly List _Bitmaps = new List();
private readonly Color _ClearColor = Color.DarkBlue;
@@ -64,7 +65,6 @@ namespace Vocaluxe.Lib.Draw
_G = Graphics.FromImage(_Backbuffer);
_G.Clear(Color.DarkBlue);
- Paint += _OnPaintEvent;
Closing += _OnClosingEvent;
KeyDown += _OnKeyDownEvent;
KeyPress += _OnKeyPressEvent;
@@ -107,8 +107,6 @@ namespace Vocaluxe.Lib.Draw
frontBuffer.DrawImage(_Backbuffer, new Rectangle(x, y, w, h), new Rectangle(0, 0, _Backbuffer.Width, _Backbuffer.Height), GraphicsUnit.Pixel);
}
- private void _OnPaintEvent(object sender, PaintEventArgs e) {}
-
#region FullScreenStuff
private void _ToggleFullScreen()
{
@@ -234,6 +232,7 @@ namespace Vocaluxe.Lib.Draw
if (_Run)
{
+ ClearScreen();
_Run = _Run && CGraphics.Draw();
_Run = CGraphics.UpdateGameLogic(_Keys, _Mouse);
_FlipBuffer();
@@ -279,11 +278,11 @@ namespace Vocaluxe.Lib.Draw
_G.Clear(_ClearColor);
}
- public CTexture CopyScreen()
+ public CTextureRef CopyScreen()
{
var bmp = new Bitmap(_Backbuffer);
_Bitmaps.Add(bmp);
- CTexture texture = _GetNewTexture(bmp.Width, bmp.Height);
+ CTextureRef texture = _GetNewTexture(bmp.GetSize());
// Add to Texture List
_Textures[texture.ID] = texture;
@@ -291,9 +290,9 @@ namespace Vocaluxe.Lib.Draw
return texture;
}
- public void CopyScreen(ref CTexture texture)
+ public void CopyScreen(ref CTextureRef texture)
{
- if (!_TextureExists(texture) || texture.W2 != GetScreenWidth() || texture.H2 != GetScreenHeight())
+ if (!_TextureExists(texture) || texture.OrigSize.Width != GetScreenWidth() || texture.OrigSize.Height != GetScreenHeight())
{
RemoveTexture(ref texture);
texture = CopyScreen();
@@ -309,20 +308,15 @@ namespace Vocaluxe.Lib.Draw
_Backbuffer.Save(file, ImageFormat.Png);
}
- public void DrawLine(int a, int r, int g, int b, int w, int x1, int y1, int x2, int y2)
- {
- _G.DrawLine(new Pen(Color.FromArgb(a, r, g, b), w), new Point(x1, y1), new Point(x2, y2));
- }
+ public void DrawRect(SColorF color, SRectF rect) {}
- public void DrawColor(SColorF color, SRectF rect) {}
+ public void DrawRectReflection(SColorF color, SRectF rect, float space, float height) {}
- public void DrawColorReflection(SColorF color, SRectF rect, float space, float height) {}
-
- public CTexture AddTexture(Bitmap bmp)
+ public CTextureRef AddTexture(Bitmap bmp)
{
var bmp2 = new Bitmap(bmp);
_Bitmaps.Add(bmp2);
- CTexture texture = _GetNewTexture(bmp.Width, bmp.Height);
+ CTextureRef texture = _GetNewTexture(bmp.GetSize());
// Add to Texture List
_Textures[texture.ID] = texture;
@@ -330,62 +324,84 @@ namespace Vocaluxe.Lib.Draw
return texture;
}
- private CTexture _GetNewTexture(int w, int h)
+ private CTextureRef _GetNewTexture(Size size)
{
- return new CTexture(w, h) {ID = _Bitmaps.Count - 1};
+ return new CTextureRef(_Bitmaps.Count - 1, size);
}
- public CTexture AddTexture(string texturePath)
+ public CTextureRef AddTexture(string texturePath)
{
if (File.Exists(texturePath))
{
- foreach (CTexture tex in _Textures.Values)
- {
- if (tex.TexturePath == texturePath)
- return tex;
- }
+ CTextureRef texture;
+ if (_TextureCache.TryGetValue(texturePath, out texture))
+ return texture;
using (var bmp = new Bitmap(texturePath))
{
- CTexture texture = AddTexture(bmp);
- texture.TexturePath = texturePath;
+ texture = AddTexture(bmp);
+ _TextureCache.Add(texturePath, texture);
}
+ return texture;
}
return null;
}
- private bool _TextureExists(CTexture texture)
+ private bool _TextureExists(CTextureRef texture)
{
return texture != null && _Textures.ContainsKey(texture.ID);
}
- public void RemoveTexture(ref CTexture texture)
+ public CTextureRef CopyTexture(CTextureRef textureRef)
+ {
+ if (_TextureExists(textureRef))
+ return AddTexture(_Bitmaps[textureRef.ID]);
+ return null;
+ }
+
+ public void RemoveTexture(ref CTextureRef texture)
{
if (_TextureExists(texture))
{
_Bitmaps[texture.ID].Dispose();
_Textures.Remove(texture.ID);
+ texture.SetRemoved();
}
texture = null;
}
- public CTexture EnqueueTexture(int w, int h, byte[] data)
+ public CTextureRef EnqueueTexture(int w, int h, byte[] data)
{
return AddTexture(w, h, data);
}
- public CTexture AddTexture(int w, int h, byte[] data)
+ public CTextureRef EnqueueTexture(string texturePath)
+ {
+ return AddTexture(texturePath);
+ }
+
+ public CTextureRef EnqueueTexture(Bitmap bmp)
+ {
+ return AddTexture(bmp);
+ }
+
+ public void EnqueueTextureUpdate(CTextureRef textureRef, Bitmap bmp)
+ {
+ UpdateTexture(textureRef, bmp);
+ }
+
+ public CTextureRef AddTexture(int w, int h, byte[] data)
{
using (var bmp = new Bitmap(w, h))
{
- BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
+ BitmapData bmpData = bmp.LockBits(bmp.GetRect(), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
Marshal.Copy(data, 0, bmpData.Scan0, data.Length);
bmp.UnlockBits(bmpData);
return AddTexture(bmp);
}
}
- public bool UpdateTexture(CTexture texture, int w, int h, byte[] data)
+ public void UpdateTexture(CTextureRef texture, int w, int h, byte[] data)
{
if (_TextureExists(texture))
{
@@ -393,40 +409,22 @@ namespace Vocaluxe.Lib.Draw
ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb);
Marshal.Copy(data, 0, bmpData.Scan0, data.Length);
_Bitmaps[texture.ID].UnlockBits(bmpData);
- return true;
}
- return false;
}
- public bool UpdateOrAddTexture(ref CTexture texture, int w, int h, byte[] data)
+ public void UpdateTexture(CTextureRef textureRef, Bitmap bmp)
{
- if (!UpdateTexture(texture, w, h, data))
- {
- RemoveTexture(ref texture);
- texture = AddTexture(w, h, data);
- }
- return true;
+ if (_TextureExists(textureRef))
+ _Bitmaps[textureRef.ID] = bmp;
}
- public void DrawTexture(CTexture texture)
- {
- if (texture != null)
- DrawTexture(texture, texture.Rect, texture.Color);
- }
-
- public void DrawTexture(CTexture texture, SRectF rect)
- {
- if (texture != null)
- DrawTexture(texture, rect, texture.Color);
- }
-
- public void DrawTexture(CTexture texture, SRectF rect, SColorF color, bool mirrored = false)
+ public void DrawTexture(CTextureRef texture, SRectF rect, SColorF color, bool mirrored = false)
{
if (texture != null)
DrawTexture(texture, rect, color, rect, mirrored);
}
- public void DrawTexture(CTexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false)
+ public void DrawTexture(CTextureRef texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false)
{
if (!_TextureExists(texture))
return;
@@ -435,9 +433,9 @@ namespace Vocaluxe.Lib.Draw
coloredBitmap.Dispose();
}
- public void DrawTexture(CTexture texture, SRectF rect, SColorF color, float begin, float end) {}
+ public void DrawTexture(CTextureRef texture, SRectF rect, SColorF color, float begin, float end) {}
- public void DrawTextureReflection(CTexture texture, SRectF rect, SColorF color, SRectF bounds, float space, float height) {}
+ public void DrawTextureReflection(CTextureRef texture, SRectF rect, SColorF color, float space, float height) {}
public int GetTextureCount()
{
diff --git a/Vocaluxe/Lib/Draw/COpenGL.cs b/Vocaluxe/Lib/Draw/COpenGL.cs
index 43ba70c2..94f0b63d 100644
--- a/Vocaluxe/Lib/Draw/COpenGL.cs
+++ b/Vocaluxe/Lib/Draw/COpenGL.cs
@@ -15,17 +15,12 @@
// along with Vocaluxe. If not, see .
#endregion
-using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
-using System.Threading;
using OpenTK;
using OpenTK.Graphics;
using System;
-using System.Collections.Generic;
-using System.ComponentModel;
using System.Drawing;
using System.IO;
-using System.Runtime.InteropServices;
using System.Windows.Forms;
using Vocaluxe.Base;
using VocaluxeLib;
@@ -33,15 +28,11 @@ using VocaluxeLib.Draw;
using BeginMode = OpenTK.Graphics.OpenGL.BeginMode;
using BlendingFactorDest = OpenTK.Graphics.OpenGL.BlendingFactorDest;
using BlendingFactorSrc = OpenTK.Graphics.OpenGL.BlendingFactorSrc;
-using BufferAccess = OpenTK.Graphics.OpenGL.BufferAccess;
-using BufferTarget = OpenTK.Graphics.OpenGL.BufferTarget;
-using BufferUsageHint = OpenTK.Graphics.OpenGL.BufferUsageHint;
using ClearBufferMask = OpenTK.Graphics.OpenGL.ClearBufferMask;
using DepthFunction = OpenTK.Graphics.OpenGL.DepthFunction;
using EnableCap = OpenTK.Graphics.OpenGL.EnableCap;
using GL = OpenTK.Graphics.OpenGL.GL;
using GenerateMipmapTarget = OpenTK.Graphics.OpenGL.GenerateMipmapTarget;
-using KeyPressEventArgs = System.Windows.Forms.KeyPressEventArgs;
using MatrixMode = OpenTK.Graphics.OpenGL.MatrixMode;
using PixelFormat = OpenTK.Graphics.OpenGL.PixelFormat;
using PixelInternalFormat = OpenTK.Graphics.OpenGL.PixelInternalFormat;
@@ -54,67 +45,61 @@ using TextureTarget = OpenTK.Graphics.OpenGL.TextureTarget;
namespace Vocaluxe.Lib.Draw
{
- struct SClientRect
+ class CFormHook : Form, IFormHook
{
- public Point Location;
- public int Width;
- public int Height;
- };
+ public MessageEventHandler OnMessage { private get; set; }
- struct STextureQueue
- {
- public readonly int ID;
- public readonly int TextureWidth;
- public readonly int TextureHeight;
- public readonly int DataWidth;
- public readonly int DataHeight;
- public readonly byte[] Data;
-
- public STextureQueue(int id, int textureWidth, int textureHeight, int dataWidth, int dataHeight, byte[] data)
+ protected override void WndProc(ref Message m)
{
- ID = id;
- TextureWidth = textureWidth;
- TextureHeight = textureHeight;
- DataWidth = dataWidth;
- DataHeight = dataHeight;
- Data = data;
+ if (OnMessage == null || OnMessage(ref m))
+ base.WndProc(ref m);
}
}
- class COpenGL : Form, IDraw
+ class COGLTexture : CTextureBase
+ {
+ //The texture "name" according to the specs
+ public readonly int Name;
+
+ public COGLTexture(int name, Size dataSize, int texWidth = 0, int texHeight = 0) : base(dataSize, texWidth, texHeight)
+ {
+ Name = name;
+ if (name == 0)
+ return;
+ GL.BindTexture(TextureTarget.Texture2D, Name);
+
+ GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, W2, H2, 0, PixelFormat.Bgra, PixelType.UnsignedByte, IntPtr.Zero);
+
+ GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)TextureWrapMode.ClampToEdge);
+ GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)TextureWrapMode.ClampToEdge);
+ GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);
+ GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.LinearMipmapLinear);
+
+ GL.BindTexture(TextureTarget.Texture2D, 0);
+ }
+
+ public override bool IsLoaded
+ {
+ get { return Name != 0; }
+ }
+
+ public override void Dispose()
+ {
+ base.Dispose();
+ if (Name != 0)
+ GL.DeleteTexture(Name);
+ }
+ }
+
+ class COpenGL : CDrawBaseWindows, IDraw
{
#region private vars
- private const int _MaxID = 100000;
-
- private readonly CKeys _Keys;
- private readonly CMouse _Mouse;
- private bool _Run;
-
private readonly GLControl _Control;
-
- private SClientRect _Restore;
- private bool _Fullscreen;
-
- private readonly Dictionary _Textures = new Dictionary();
- private readonly Queue _IDs = new Queue(_MaxID);
- private readonly Queue _TexturesToLoad = new Queue();
-
- private readonly Object _MutexTexture = new Object();
-
- private int _H = 1;
- private int _W = 1;
- private int _Y;
- private int _X;
-
- private bool _UsePBO;
#endregion private vars
public COpenGL()
{
- Icon = new Icon(Path.Combine(CSettings.ProgramFolder, CSettings.FileNameIcon));
-
- for (int i = 1; i < _MaxID; i++)
- _IDs.Enqueue(i);
+ _Form = new CFormHook();
//Check AA Mode
CConfig.AAMode = (EAntiAliasingModes)_CheckAntiAliasingMode((int)CConfig.AAMode);
@@ -138,20 +123,13 @@ namespace Vocaluxe.Lib.Draw
_Control.MakeCurrent();
_Control.VSync = CConfig.VSync == EOffOn.TR_CONFIG_ON;
- Controls.Add(_Control);
+ _Form.Controls.Add(_Control);
+ _Control.KeyDown += _OnKeyDown;
+ _Control.PreviewKeyDown += _OnPreviewKeyDown;
+ _Control.KeyPress += _OnKeyPress;
+ _Control.KeyUp += _OnKeyUp;
- _Keys = new CKeys();
- Paint += _OnPaintEvent;
- Closing += _OnClosingEvent;
- Resize += _OnResizeEvent;
-
- _Control.KeyDown += _OnKeyDownEvent;
- _Control.PreviewKeyDown += _OnPreviewKeyDownEvent;
- _Control.KeyPress += _OnKeyPressEvent;
- _Control.KeyUp += _OnKeyUpEvent;
-
- _Mouse = new CMouse();
_Control.MouseMove += _OnMouseMove;
_Control.MouseWheel += _OnMouseWheel;
_Control.MouseDown += _OnMouseDown;
@@ -159,12 +137,11 @@ namespace Vocaluxe.Lib.Draw
_Control.MouseLeave += _OnMouseLeave;
_Control.MouseEnter += _OnMouseEnter;
- ClientSize = new Size(CConfig.ScreenW, CConfig.ScreenH);
- CenterToScreen();
+ _NonPowerOf2TextureSupported = false;
}
#region Helpers
- private int _CheckAntiAliasingMode(int setValue)
+ private static int _CheckAntiAliasingMode(int setValue)
{
int samples = 0;
@@ -223,189 +200,37 @@ namespace Vocaluxe.Lib.Draw
return result - 8;
}
*/
-
- private void _ToggleFullScreen()
- {
- if (!_Fullscreen)
- _EnterFullScreen();
- else
- _LeaveFullScreen();
- }
-
- private void _EnterFullScreen()
- {
- _Fullscreen = true;
-
- _Restore.Location = Location;
- _Restore.Width = Width;
- _Restore.Height = Height;
-
- FormBorderStyle = FormBorderStyle.None;
-
- int screenNr = 0;
- for (int i = 0; i < Screen.AllScreens.Length; i++)
- {
- Screen scr = Screen.AllScreens[i];
- if (scr.Bounds.Top <= Top && scr.Bounds.Left <= Left)
- screenNr = i;
- }
-
- DesktopBounds = new Rectangle(Screen.AllScreens[screenNr].Bounds.Location, new Size(Screen.AllScreens[screenNr].Bounds.Width, Screen.AllScreens[screenNr].Bounds.Height));
-
- if (WindowState == FormWindowState.Maximized)
- {
- WindowState = FormWindowState.Normal;
- _DoResize();
- WindowState = FormWindowState.Maximized;
- }
- else
- _DoResize();
- }
-
- private void _LeaveFullScreen()
- {
- _Fullscreen = false;
-
- FormBorderStyle = FormBorderStyle.Sizable;
- DesktopBounds = new Rectangle(_Restore.Location, new Size(_Restore.Width, _Restore.Height));
- }
#endregion Helpers
#region form events
- private void _OnPaintEvent(object sender, PaintEventArgs e) {}
-
- private void _OnResizeEvent(object sender, EventArgs e) {}
-
- private void _OnClosingEvent(object sender, CancelEventArgs e)
+ protected override void _OnResize(object sender, EventArgs e)
{
- _Run = false;
- }
-
- protected override void OnLoad(EventArgs e)
- {
- GL.ClearColor(Color.Black);
- }
-
- protected override void OnResize(EventArgs e)
- {
- base.OnResize(e);
-
- _Control.ClientSize = ClientSize;
- _DoResize();
- }
-
- protected override void WndProc(ref Message m)
- {
- switch (m.Msg)
- {
- case 0x112: // WM_SYSCOMMAND
- switch ((int)m.WParam & 0xFFF0)
- {
- case 0xF100: // SC_KEYMENU
- m.Result = IntPtr.Zero;
- break;
- case 0xF140: // SC_SCREENSAVER
- case 0xF170: // SC_MONITORPOWER
- break;
- default:
- base.WndProc(ref m);
- break;
- }
- break;
- default:
- base.WndProc(ref m);
- break;
- }
+ _Control.ClientSize = _Form.ClientSize;
+ base._OnResize(sender, e);
}
#endregion form events
- #region mouse event handlers
- private void _OnMouseMove(object sender, MouseEventArgs e)
- {
- _Mouse.MouseMove(e);
- }
-
- private void _OnMouseWheel(object sender, MouseEventArgs e)
- {
- _Mouse.MouseWheel(e);
- }
-
- private void _OnMouseDown(object sender, MouseEventArgs e)
- {
- _Mouse.MouseDown(e);
- }
-
- private void _OnMouseUp(object sender, MouseEventArgs e)
- {
- _Mouse.MouseUp(e);
- }
-
- private void _OnMouseLeave(object sender, EventArgs e)
- {
- _Mouse.Visible = false;
- Cursor.Show();
- }
-
- private void _OnMouseEnter(object sender, EventArgs e)
- {
- Cursor.Hide();
- _Mouse.Visible = true;
- }
- #endregion
-
- #region keyboard event handlers
- private void _OnPreviewKeyDownEvent(object sender, PreviewKeyDownEventArgs e)
- {
- _OnKeyDownEvent(sender, new KeyEventArgs(e.KeyData));
- }
-
- private void _OnKeyDownEvent(object sender, KeyEventArgs e)
- {
- _Keys.KeyDown(e);
- }
-
- private void _OnKeyPressEvent(object sender, KeyPressEventArgs e)
- {
- _Keys.KeyPress(e);
- }
-
- private void _OnKeyUpEvent(object sender, KeyEventArgs e)
- {
- _Keys.KeyUp(e);
- }
- #endregion keyboard event handlers
-
- private void _DoResize()
+ protected override void _DoResize()
{
_H = _Control.Height;
_W = _Control.Width;
- _Y = 0;
- _X = 0;
+ _CurrentAlignment = CConfig.ScreenAlignment;
-
- if (_W / (float)_H > CSettings.GetRenderAspect())
- {
- _W = (int)Math.Round(_H * CSettings.GetRenderAspect());
- _X = (_Control.Width - _W) / 2;
- }
- else
- {
- _H = (int)Math.Round(_W / CSettings.GetRenderAspect());
- _Y = (_Control.Height - _H) / 2;
- }
-
- GL.MatrixMode(MatrixMode.Projection);
- GL.LoadIdentity();
- GL.Ortho(0, CSettings.RenderW, CSettings.RenderH, 0, CSettings.ZNear, CSettings.ZFar);
+ _AdjustAspect(true);
+ _AdjustNewBorders();
GL.Viewport(_X, _Y, _W, _H);
}
#region implementation
#region main stuff
- public bool Init()
+ public override bool Init()
{
- Text = CSettings.GetFullVersionText();
+ if (!base.Init())
+ return false;
+
+ //OpenGL needs that here but D3D needs it in the constructor, so do NOT unify!
+ _Form.ClientSize = new Size(CConfig.ScreenW, CConfig.ScreenH);
// Init Texturing
GL.Enable(EnableCap.Texture2D);
@@ -416,59 +241,20 @@ namespace Vocaluxe.Lib.Draw
GL.DepthRange(CSettings.ZFar, CSettings.ZNear);
GL.DepthFunc(DepthFunction.Lequal);
GL.Enable(EnableCap.DepthTest);
+ GL.ClearColor(Color.Black);
return true;
}
- public void MainLoop()
+ protected override void _OnBeforeDraw()
{
- _Run = true;
- int delay = 0;
- Show();
-
- if (CConfig.FullScreen == EOffOn.TR_CONFIG_ON)
- _EnterFullScreen();
-
- while (_Run)
- {
- ClearScreen();
- if (!CGraphics.Draw())
- _Run = false;
- if (!CGraphics.UpdateGameLogic(_Keys, _Mouse))
- _Run = false;
-
- _Control.SwapBuffers();
-
- if ((CConfig.FullScreen == EOffOn.TR_CONFIG_ON) != _Fullscreen)
- _ToggleFullScreen();
-
- _CheckQueue();
-
- if (CTime.IsRunning())
- delay = (int)Math.Floor(CConfig.CalcCycleTime() - CTime.GetMilliseconds());
-
- if (delay >= 1 && CConfig.VSync == EOffOn.TR_CONFIG_OFF)
- Thread.Sleep(delay);
-
- CTime.CalculateFPS();
- CTime.Restart();
-
- Application.DoEvents();
- }
- Close();
+ //Nothing to do
}
- public void Unload()
+ protected override void _OnAfterDraw()
{
- try
- {
- Close();
- }
- catch {}
- var textures = new CTexture[_Textures.Count];
- _Textures.Values.CopyTo(textures, 0);
- for (int i = 0; i < _Textures.Count; i++)
- RemoveTexture(ref textures[i]);
+ _Control.SwapBuffers();
+ Application.DoEvents();
}
public int GetScreenWidth()
@@ -480,56 +266,17 @@ namespace Vocaluxe.Lib.Draw
{
return _Control.Height;
}
- #endregion main stuff
- #region Basic Draw Methods
- public void ClearScreen()
+ protected override void _ClearScreen()
{
GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);
}
- public CTexture CopyScreen()
+ protected override void _AdjustNewBorders()
{
- CTexture texture = _GetNewTexture(_W, _H);
-
- texture.Name = GL.GenTexture();
- GL.BindTexture(TextureTarget.Texture2D, texture.Name);
-
- GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, texture.W2, texture.H2, 0, PixelFormat.Bgra, PixelType.UnsignedByte, IntPtr.Zero);
- GL.CopyTexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, _X, _Y, _W, _H);
-
- GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);
- GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear);
-
- GL.BindTexture(TextureTarget.Texture2D, 0);
-
- // Add to Texture List
-
- lock (_MutexTexture)
- {
- texture.ID = _IDs.Dequeue();
- _Textures[texture.ID] = texture;
- }
-
- return texture;
- }
-
- public void CopyScreen(ref CTexture texture)
- {
- //Check for actual texture sizes as it may be downsized compared to OrigSize
- if (!_TextureExists(texture) || texture.UsedWidth != GetScreenWidth() || texture.UsedHeight != GetScreenHeight())
- {
- RemoveTexture(ref texture);
- texture = CopyScreen();
- }
- else
- {
- GL.BindTexture(TextureTarget.Texture2D, texture.Name);
-
- GL.CopyTexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, 0, 0, GetScreenWidth(), GetScreenHeight());
-
- GL.BindTexture(TextureTarget.Texture2D, 0);
- }
+ GL.MatrixMode(MatrixMode.Projection);
+ GL.LoadIdentity();
+ GL.Ortho(-CConfig.BorderLeft, CConfig.BorderRight + CSettings.RenderW, CConfig.BorderBottom + CSettings.RenderH, -CConfig.BorderTop, CSettings.ZNear, CSettings.ZFar);
}
public void MakeScreenShot()
@@ -550,36 +297,63 @@ namespace Vocaluxe.Lib.Draw
screen.Save(file, ImageFormat.Bmp);
}
}
+ #endregion main stuff
- public void DrawLine(int a, int r, int g, int b, int w, int x1, int y1, int x2, int y2)
+ #region Basic Draw Methods
+ public CTextureRef CopyScreen()
{
- GL.Enable(EnableCap.Blend);
- GL.Color4(r, g, b, a * CGraphics.GlobalAlpha);
+ //TODO: Check if _W,_H needs to be used or not
+ Size size = new Size(GetScreenWidth(), GetScreenHeight());
+ COGLTexture texture = _CreateTexture(size);
- GL.Begin(BeginMode.Lines);
- GL.Vertex3(x1, y1, CGraphics.ZOffset);
- GL.Vertex3(x2, y2, CGraphics.ZOffset);
- GL.End();
+ GL.BindTexture(TextureTarget.Texture2D, texture.Name);
+ GL.CopyTexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, 0, 0, size.Width, size.Height); //TODO: Use _X,_Y and _W,_H?
+ GL.BindTexture(TextureTarget.Texture2D, 0);
- GL.Disable(EnableCap.Blend);
+ return _GetTextureReference(size, texture);
}
- public void DrawColor(SColorF color, SRectF rect)
+ public void CopyScreen(ref CTextureRef textureRef)
+ {
+ COGLTexture texture;
+ //Check for actual texture sizes as it may be downsized compared to OrigSize
+ if (!_GetTexture(textureRef, out texture) || texture.DataSize.Width != GetScreenWidth() || texture.DataSize.Height != GetScreenHeight())
+ {
+ RemoveTexture(ref textureRef);
+ textureRef = CopyScreen();
+ }
+ else
+ {
+ GL.BindTexture(TextureTarget.Texture2D, texture.Name);
+ GL.CopyTexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, 0, 0, GetScreenWidth(), GetScreenHeight());
+ GL.BindTexture(TextureTarget.Texture2D, 0);
+ }
+ }
+
+ public void DrawRect(SColorF color, SRectF rect)
{
GL.Enable(EnableCap.Blend);
GL.Color4(color.R, color.G, color.B, color.A * CGraphics.GlobalAlpha);
GL.Begin(BeginMode.Quads);
+ GL.MatrixMode(MatrixMode.Color);
+ GL.PushMatrix();
+ if (Math.Abs(rect.Rotation) > 0.001)
+ {
+ GL.Translate(0.5f, 0.5f, 0);
+ GL.Rotate(-rect.Rotation, 0f, 0f, 1f);
+ GL.Translate(-0.5f, -0.5f, 0);
+ }
GL.Vertex3(rect.X, rect.Y, rect.Z + CGraphics.ZOffset);
GL.Vertex3(rect.X, rect.Y + rect.H, rect.Z + CGraphics.ZOffset);
GL.Vertex3(rect.X + rect.W, rect.Y + rect.H, rect.Z + CGraphics.ZOffset);
GL.Vertex3(rect.X + rect.W, rect.Y, rect.Z + CGraphics.ZOffset);
GL.End();
-
+ GL.PopMatrix();
GL.Disable(EnableCap.Blend);
}
- public void DrawColorReflection(SColorF color, SRectF rect, float space, float height)
+ public void DrawRectReflection(SColorF color, SRectF rect, float space, float height)
{
if (rect.H < height)
height = rect.H;
@@ -603,7 +377,8 @@ namespace Vocaluxe.Lib.Draw
GL.Enable(EnableCap.Blend);
-
+ GL.MatrixMode(MatrixMode.Texture);
+ GL.PushMatrix();
if (Math.Abs(rect.Rotation) > 0.001)
{
GL.Translate(0.5f, 0.5f, 0);
@@ -626,299 +401,113 @@ namespace Vocaluxe.Lib.Draw
GL.Vertex3(rx1, ry1, rect.Z + CGraphics.ZOffset);
GL.End();
-
+ GL.PopMatrix();
GL.Disable(EnableCap.Blend);
}
#endregion Basic Draw Methods
#region Textures
-
- #region adding
- public CTexture AddTexture(string texturePath)
+ protected override COGLTexture _CreateTexture(Size dataSize)
{
- if (!File.Exists(texturePath))
- {
- CLog.LogError("Can't find File: " + texturePath);
- return null;
- }
- Bitmap bmp;
- try
- {
- bmp = new Bitmap(texturePath);
- }
- catch (Exception)
- {
- CLog.LogError("Error loading Texture: " + texturePath);
- return null;
- }
- try
- {
- return AddTexture(bmp);
- }
- finally
- {
- bmp.Dispose();
- }
- }
-
- public CTexture AddTexture(Bitmap bmp)
- {
- if (bmp.Height == 0 || bmp.Width == 0)
- return null;
-
- int maxSize;
- switch (CConfig.TextureQuality)
- {
- case ETextureQuality.TR_CONFIG_TEXTURE_LOWEST:
- maxSize = 128;
- break;
- case ETextureQuality.TR_CONFIG_TEXTURE_LOW:
- maxSize = 256;
- break;
- case ETextureQuality.TR_CONFIG_TEXTURE_MEDIUM:
- maxSize = 512;
- break;
- case ETextureQuality.TR_CONFIG_TEXTURE_HIGH:
- maxSize = 1024;
- break;
- case ETextureQuality.TR_CONFIG_TEXTURE_HIGHEST:
- maxSize = 2048;
- break;
- default:
- maxSize = 512;
- break;
- }
-
- int w = Math.Min(bmp.Width, maxSize);
- int h = Math.Min(bmp.Height, maxSize);
- w = MathHelper.NextPowerOfTwo(w);
- h = MathHelper.NextPowerOfTwo(h);
-
- var texture = new CTexture(bmp.Width, bmp.Height, w, h, true) {Name = GL.GenTexture()};
-
- GL.BindTexture(TextureTarget.Texture2D, texture.Name);
- Bitmap bmp2 = null;
- try
- {
- if (bmp.Width != w || bmp.Height != h)
- {
- //Create a new Bitmap with the new sizes
- bmp2 = new Bitmap(w, h);
- //Scale the texture
- using (Graphics g = Graphics.FromImage(bmp2))
- {
- g.InterpolationMode = InterpolationMode.HighQualityBicubic;
- g.SmoothingMode = SmoothingMode.HighQuality;
- g.DrawImage(bmp, new Rectangle(0, 0, bmp2.Width, bmp2.Height));
- }
- bmp = bmp2;
- }
-
- BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
- GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, texture.W2, texture.H2, 0, PixelFormat.Bgra, PixelType.UnsignedByte, IntPtr.Zero);
- GL.TexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, bmpData.Width, bmpData.Height, PixelFormat.Bgra, PixelType.UnsignedByte, bmpData.Scan0);
- bmp.UnlockBits(bmpData);
- }
- finally
- {
- if (bmp2 != null)
- bmp2.Dispose();
- }
-
- GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)TextureParameterName.ClampToEdge);
- GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)TextureParameterName.ClampToEdge);
-
- GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);
- GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.LinearMipmapLinear);
- GL.Ext.GenerateMipmap(GenerateMipmapTarget.Texture2D);
-
- GL.BindTexture(TextureTarget.Texture2D, 0);
- // Add to Texture List
- texture.TexturePath = String.Empty;
-
- lock (_MutexTexture)
- {
- texture.ID = _IDs.Dequeue();
- _Textures[texture.ID] = texture;
- }
+ if (dataSize.Width < 0)
+ return new COGLTexture(0, dataSize);
+ COGLTexture texture = new COGLTexture(GL.GenTexture(), dataSize, _CheckForNextPowerOf2(dataSize.Width), _CheckForNextPowerOf2(dataSize.Height));
return texture;
}
- public CTexture AddTexture(int w, int h, byte[] data)
+ protected override void _WriteDataToTexture(COGLTexture texture, byte[] data)
{
- CTexture texture = _GetNewTexture(w, h);
-
- _CreateTexture(texture, w, h, data);
-
- lock (_MutexTexture)
- {
- texture.ID = _IDs.Dequeue();
- _Textures[texture.ID] = texture;
- }
-
- return texture;
- }
-
- private void _CreateTexture(CTexture texture, int w, int h, byte[] data)
- {
- if (_UsePBO)
- {
- try
- {
- GL.GenBuffers(1, out texture.PBO);
- GL.BindBuffer(BufferTarget.PixelUnpackBuffer, texture.PBO);
- GL.BufferData(BufferTarget.PixelUnpackBuffer, (IntPtr)data.Length, IntPtr.Zero, BufferUsageHint.StreamDraw);
- GL.BindBuffer(BufferTarget.PixelUnpackBuffer, 0);
- }
- catch (Exception)
- {
- //throw;
- _UsePBO = false;
- }
- }
-
- texture.Name = GL.GenTexture();
GL.BindTexture(TextureTarget.Texture2D, texture.Name);
- GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, texture.W2, texture.H2, 0, PixelFormat.Bgra, PixelType.UnsignedByte, IntPtr.Zero);
- GL.TexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, w, h, PixelFormat.Bgra, PixelType.UnsignedByte, data);
-
- GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)TextureParameterName.ClampToEdge);
- GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)TextureParameterName.ClampToEdge);
- GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);
- GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.LinearMipmapLinear);
+ GL.TexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, texture.DataSize.Width, texture.DataSize.Height, PixelFormat.Bgra, PixelType.UnsignedByte, data);
GL.Ext.GenerateMipmap(GenerateMipmapTarget.Texture2D);
GL.BindTexture(TextureTarget.Texture2D, 0);
}
- public CTexture EnqueueTexture(int w, int h, byte[] data)
+ protected override void _WriteDataToTexture(COGLTexture texture, IntPtr data)
{
- CTexture texture = _GetNewTexture(w, h);
-
- lock (_MutexTexture)
- {
- texture.ID = _IDs.Dequeue();
- var queue = new STextureQueue(texture.ID, texture.W2, texture.H2, w, h, data);
- _TexturesToLoad.Enqueue(queue);
- _Textures[texture.ID] = texture;
- }
-
- return texture;
- }
-
- private static CTexture _GetNewTexture(int w, int h)
- {
- return new CTexture(w, h, MathHelper.NextPowerOfTwo(w), MathHelper.NextPowerOfTwo(h));
- }
- #endregion adding
-
- #region updating
- public bool UpdateTexture(CTexture texture, int w, int h, byte[] data)
- {
- //Check if texture exists and extend matches
- if (!_TextureExists(texture) || texture.UsedWidth != w || texture.UsedHeight != h)
- return false;
- if (_UsePBO)
- {
- GL.BindBuffer(BufferTarget.PixelUnpackBuffer, texture.PBO);
-
- IntPtr buffer = GL.MapBuffer(BufferTarget.PixelUnpackBuffer, BufferAccess.WriteOnly);
- Marshal.Copy(data, 0, buffer, data.Length);
-
- GL.UnmapBuffer(BufferTarget.PixelUnpackBuffer);
-
- GL.BindTexture(TextureTarget.Texture2D, texture.Name);
-
- GL.TexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, w, h, PixelFormat.Bgra, PixelType.UnsignedByte, IntPtr.Zero);
-
- GL.Ext.GenerateMipmap(GenerateMipmapTarget.Texture2D);
-
- GL.BindTexture(TextureTarget.Texture2D, 0);
- GL.BindBuffer(BufferTarget.PixelUnpackBuffer, 0);
-
- return true;
- }
-
GL.BindTexture(TextureTarget.Texture2D, texture.Name);
- GL.TexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, w, h, PixelFormat.Bgra, PixelType.UnsignedByte, data);
-
+ GL.TexSubImage2D(TextureTarget.Texture2D, 0, 0, 0, texture.DataSize.Width, texture.DataSize.Height, PixelFormat.Bgra, PixelType.UnsignedByte, data);
GL.Ext.GenerateMipmap(GenerateMipmapTarget.Texture2D);
GL.BindTexture(TextureTarget.Texture2D, 0);
-
- return true;
- }
-
- public bool UpdateOrAddTexture(ref CTexture texture, int w, int h, byte[] data)
- {
- if (!UpdateTexture(texture, w, h, data))
- {
- RemoveTexture(ref texture);
- texture = AddTexture(w, h, data);
- }
- return true;
- }
- #endregion updating
-
- public void RemoveTexture(ref CTexture texture)
- {
- if (_TextureExists(texture, false))
- {
- lock (_MutexTexture)
- {
- _IDs.Enqueue(texture.ID);
- GL.DeleteTexture(texture.Name);
- if (texture.PBO > 0)
- GL.DeleteBuffers(1, ref texture.PBO);
- _Textures.Remove(texture.ID);
- }
- }
- texture = null;
- }
-
- private bool _TextureExists(CTexture texture, bool checkIfLoaded = true)
- {
- lock (_MutexTexture)
- {
- if (texture != null && _Textures.ContainsKey(texture.ID))
- {
- if (!checkIfLoaded || _Textures[texture.ID].Name > 0)
- return true;
- }
- }
- return false;
}
#region drawing
- public void DrawTexture(CTexture texture)
+ public void DrawTexture(CTextureRef textureRef, SRectF rect, SColorF color, bool mirrored = false)
{
- if (texture == null)
- return;
- DrawTexture(texture, texture.Rect, texture.Color);
- }
-
- public void DrawTexture(CTexture texture, SRectF rect)
- {
- if (texture == null)
- return;
- DrawTexture(texture, rect, texture.Color);
- }
-
- public void DrawTexture(CTexture texture, SRectF rect, SColorF color, bool mirrored = false)
- {
- DrawTexture(texture, rect, color, new SRectF(0, 0, CSettings.RenderW, CSettings.RenderH, rect.Z), mirrored);
- }
-
- public void DrawTexture(CTexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false)
- {
- if (!_TextureExists(texture))
+ COGLTexture texture;
+ if (!_GetTexture(textureRef, out texture))
return;
- if (Math.Abs(rect.W) < float.Epsilon || Math.Abs(rect.H) < float.Epsilon || Math.Abs(bounds.H) < float.Epsilon || Math.Abs(bounds.W) < float.Epsilon ||
- Math.Abs(color.A) < float.Epsilon)
+ if (Math.Abs(rect.W) < 1 || Math.Abs(rect.H) < 1 || Math.Abs(color.A) < 0.01)
+ return;
+
+ GL.BindTexture(TextureTarget.Texture2D, texture.Name);
+
+ const float x1 = 0;
+ float x2 = texture.WidthRatio;
+ float y1 = 0;
+ float y2 = texture.HeightRatio;
+
+ float rx1 = rect.X;
+ float rx2 = rect.X + rect.W;
+ float ry1 = rect.Y;
+ float ry2 = rect.Y + rect.H;
+
+ GL.Enable(EnableCap.Blend);
+ GL.Color4(color.R, color.G, color.B, color.A * CGraphics.GlobalAlpha);
+
+ GL.MatrixMode(MatrixMode.Texture);
+ GL.PushMatrix();
+
+ if (Math.Abs(rect.Rotation) > float.Epsilon)
+ {
+ GL.Translate(0.5f, 0.5f, 0);
+ GL.Rotate(-rect.Rotation, 0f, 0f, 1f);
+ GL.Translate(-0.5f, -0.5f, 0);
+ }
+
+ if (mirrored)
+ {
+ float tmp = y2;
+ y2 = y1;
+ y1 = tmp;
+ }
+
+ GL.Begin(BeginMode.Quads);
+
+ GL.TexCoord2(x1, y1);
+ GL.Vertex3(rx1, ry1, rect.Z + CGraphics.ZOffset);
+
+ GL.TexCoord2(x1, y2);
+ GL.Vertex3(rx1, ry2, rect.Z + CGraphics.ZOffset);
+
+ GL.TexCoord2(x2, y2);
+ GL.Vertex3(rx2, ry2, rect.Z + CGraphics.ZOffset);
+
+ GL.TexCoord2(x2, y1);
+ GL.Vertex3(rx2, ry1, rect.Z + CGraphics.ZOffset);
+
+ GL.End();
+
+ GL.PopMatrix();
+
+ GL.Disable(EnableCap.Blend);
+ GL.BindTexture(TextureTarget.Texture2D, 0);
+ }
+
+ public void DrawTexture(CTextureRef textureRef, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false)
+ {
+ COGLTexture texture;
+ if (!_GetTexture(textureRef, out texture))
+ return;
+
+ if (Math.Abs(rect.W) < 1 || Math.Abs(rect.H) < 1 || Math.Abs(bounds.H) < 1 || Math.Abs(bounds.W) < 1 ||
+ Math.Abs(color.A) < 0.01)
return;
if (bounds.X > rect.X + rect.W || bounds.X + bounds.W < rect.X)
@@ -977,42 +566,28 @@ namespace Vocaluxe.Lib.Draw
GL.Translate(-0.5f, -0.5f, 0);
}
- if (!mirrored)
+ if (mirrored)
{
- GL.Begin(BeginMode.Quads);
-
- GL.TexCoord2(x1, y1);
- GL.Vertex3(rx1, ry1, rect.Z + CGraphics.ZOffset);
-
- GL.TexCoord2(x1, y2);
- GL.Vertex3(rx1, ry2, rect.Z + CGraphics.ZOffset);
-
- GL.TexCoord2(x2, y2);
- GL.Vertex3(rx2, ry2, rect.Z + CGraphics.ZOffset);
-
- GL.TexCoord2(x2, y1);
- GL.Vertex3(rx2, ry1, rect.Z + CGraphics.ZOffset);
-
- GL.End();
+ float tmp = y2;
+ y2 = y1;
+ y1 = tmp;
}
- else
- {
- GL.Begin(BeginMode.Quads);
- GL.TexCoord2(x2, y2);
- GL.Vertex3(rx2, ry1, rect.Z + CGraphics.ZOffset);
+ GL.Begin(BeginMode.Quads);
- GL.TexCoord2(x2, y1);
- GL.Vertex3(rx2, ry2, rect.Z + CGraphics.ZOffset);
+ GL.TexCoord2(x1, y1);
+ GL.Vertex3(rx1, ry1, rect.Z + CGraphics.ZOffset);
- GL.TexCoord2(x1, y1);
- GL.Vertex3(rx1, ry2, rect.Z + CGraphics.ZOffset);
+ GL.TexCoord2(x1, y2);
+ GL.Vertex3(rx1, ry2, rect.Z + CGraphics.ZOffset);
- GL.TexCoord2(x1, y2);
- GL.Vertex3(rx1, ry1, rect.Z + CGraphics.ZOffset);
+ GL.TexCoord2(x2, y2);
+ GL.Vertex3(rx2, ry2, rect.Z + CGraphics.ZOffset);
- GL.End();
- }
+ GL.TexCoord2(x2, y1);
+ GL.Vertex3(rx2, ry1, rect.Z + CGraphics.ZOffset);
+
+ GL.End();
GL.PopMatrix();
@@ -1020,10 +595,12 @@ namespace Vocaluxe.Lib.Draw
GL.BindTexture(TextureTarget.Texture2D, 0);
}
- public void DrawTexture(CTexture texture, SRectF rect, SColorF color, float begin, float end)
+ public void DrawTexture(CTextureRef textureRef, SRectF rect, SColorF color, float begin, float end)
{
- if (!_TextureExists(texture))
+ COGLTexture texture;
+ if (!_GetTexture(textureRef, out texture))
return;
+
GL.BindTexture(TextureTarget.Texture2D, texture.Name);
GL.Enable(EnableCap.Blend);
@@ -1046,47 +623,28 @@ namespace Vocaluxe.Lib.Draw
GL.End();
-
GL.Disable(EnableCap.Blend);
GL.BindTexture(TextureTarget.Texture2D, 0);
}
- public void DrawTextureReflection(CTexture texture, SRectF rect, SColorF color, SRectF bounds, float space, float height)
+ public void DrawTextureReflection(CTextureRef textureRef, SRectF rect, SColorF color, float space, float height)
{
- if (!_TextureExists(texture))
+ COGLTexture texture;
+ if (!_GetTexture(textureRef, out texture))
return;
- if (Math.Abs(rect.W) < float.Epsilon || Math.Abs(rect.H) < float.Epsilon || Math.Abs(bounds.H) < float.Epsilon || Math.Abs(bounds.W) < float.Epsilon ||
- Math.Abs(color.A) < float.Epsilon || height <= float.Epsilon)
+ if (Math.Abs(rect.W) < float.Epsilon || Math.Abs(rect.H) < float.Epsilon || Math.Abs(color.A) < float.Epsilon || height <= float.Epsilon)
return;
- if (bounds.X > rect.X + rect.W || bounds.X + bounds.W < rect.X)
- return;
-
- if (bounds.Y > rect.Y + rect.H || bounds.Y + bounds.H < rect.Y)
- return;
-
- if (height > bounds.H)
- height = bounds.H;
+ if (height > rect.H)
+ height = rect.H;
GL.BindTexture(TextureTarget.Texture2D, texture.Name);
- float x1 = (bounds.X - rect.X) / rect.W * texture.WidthRatio;
- float x2 = (bounds.X + bounds.W - rect.X) / rect.W * texture.WidthRatio;
- float y1 = (bounds.Y - rect.Y + rect.H - height) / rect.H * texture.HeightRatio;
- float y2 = (bounds.Y + bounds.H - rect.Y) / rect.H * texture.HeightRatio;
-
- if (x1 < 0)
- x1 = 0f;
-
- if (x2 > texture.WidthRatio)
- x2 = texture.WidthRatio;
-
- if (y1 < 0)
- y1 = 0f;
-
- if (y2 > texture.HeightRatio)
- y2 = texture.HeightRatio;
+ const float x1 = 0;
+ float x2 = texture.WidthRatio;
+ float y1 = (rect.H - height) / rect.H * texture.HeightRatio;
+ float y2 = texture.HeightRatio;
float rx1 = rect.X;
@@ -1094,18 +652,6 @@ namespace Vocaluxe.Lib.Draw
float ry1 = rect.Y + rect.H + space;
float ry2 = rect.Y + rect.H + space + height;
- if (rx1 < bounds.X)
- rx1 = bounds.X;
-
- if (rx2 > bounds.X + bounds.W)
- rx2 = bounds.X + bounds.W;
-
- if (ry1 < bounds.Y + space)
- ry1 = bounds.Y + space;
-
- if (ry2 > bounds.Y + bounds.H + space + height)
- ry2 = bounds.Y + bounds.H + space + height;
-
GL.Enable(EnableCap.Blend);
GL.MatrixMode(MatrixMode.Texture);
@@ -1118,7 +664,6 @@ namespace Vocaluxe.Lib.Draw
GL.Translate(-0.5f, -0.5f, 0);
}
-
GL.Begin(BeginMode.Quads);
GL.Color4(color.R, color.G, color.B, color.A * CGraphics.GlobalAlpha);
@@ -1139,7 +684,6 @@ namespace Vocaluxe.Lib.Draw
GL.End();
-
GL.PopMatrix();
GL.Disable(EnableCap.Blend);
@@ -1147,26 +691,6 @@ namespace Vocaluxe.Lib.Draw
}
#endregion drawing
- public int GetTextureCount()
- {
- return _Textures.Count;
- }
-
- private void _CheckQueue()
- {
- lock (_MutexTexture)
- {
- while (_TexturesToLoad.Count > 0)
- {
- STextureQueue q = _TexturesToLoad.Dequeue();
- CTexture texture;
- if (!_Textures.TryGetValue(q.ID, out texture))
- continue;
-
- _CreateTexture(texture, q.DataWidth, q.DataHeight, q.Data);
- }
- }
- }
#endregion Textures
#endregion implementation
diff --git a/Vocaluxe/Lib/Draw/CTextureBase.cs b/Vocaluxe/Lib/Draw/CTextureBase.cs
new file mode 100644
index 00000000..eb9d11bf
--- /dev/null
+++ b/Vocaluxe/Lib/Draw/CTextureBase.cs
@@ -0,0 +1,96 @@
+using System;
+using System.Drawing;
+
+namespace Vocaluxe.Lib.Draw
+{
+ abstract class CTextureBase : IDisposable
+ {
+ public int RefCount;
+ public string TexturePath;
+
+ private Size _DataSize;
+ ///
+ /// Size of data used (mostly equal to OrigSize but due to resizing this might change)
+ ///
+ public Size DataSize
+ {
+ get { return _DataSize; }
+ set
+ {
+ _DataSize = value;
+ _CalcRatios();
+ }
+ }
+
+ ///
+ /// texture width (on device), a power of 2 if necessary
+ ///
+ public int W2 { get; protected set; }
+ ///
+ /// texture height (on device), a power of 2 if necessary
+ ///
+ public int H2 { get; protected set; }
+
+ ///
+ /// Specifies which part of texture memory is actually used
+ ///
+ public float WidthRatio { get; private set; }
+ ///
+ /// Specifies which part of texture memory is actually used
+ ///
+ public float HeightRatio { get; private set; }
+
+ ///
+ /// True if the texture contains usefull data
+ ///
+ public abstract bool IsLoaded { get; }
+
+ ///
+ /// Creates a new texture
+ ///
+ /// Size of the data used
+ /// Width in video memory
+ /// Height in video memory
+ protected CTextureBase(Size dataSize, int texWidth = 0, int texHeight = 0)
+ {
+ _DataSize = dataSize;
+ W2 = (texWidth > 0) ? texWidth : dataSize.Width;
+ H2 = (texHeight > 0) ? texHeight : dataSize.Height;
+
+ _CalcRatios();
+ }
+
+ private void _CalcRatios()
+ {
+ // OpenGL has a problem with partial (NPOT) textures, so we remove 1 pixel
+ if (_DataSize.Width == W2)
+ WidthRatio = 1f;
+ else
+ {
+ int mod = 0;
+ if (_DataSize.Width > 1)
+ mod = -1;
+ WidthRatio = (float)(_DataSize.Width + mod) / W2;
+ }
+ if (_DataSize.Height == H2)
+ HeightRatio = 1f;
+ else
+ {
+ int mod = 0;
+ if (_DataSize.Height > 1)
+ mod = -1;
+ HeightRatio = (float)(_DataSize.Height + mod) / H2;
+ }
+ }
+
+ private bool _IsDisposed;
+
+ public virtual void Dispose()
+ {
+ if (_IsDisposed)
+ throw new ObjectDisposedException(GetType().Name);
+ RefCount = 0;
+ _IsDisposed = true;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Vocaluxe/Lib/Draw/IDraw.cs b/Vocaluxe/Lib/Draw/IDraw.cs
index f5e3fad3..0b2421ff 100644
--- a/Vocaluxe/Lib/Draw/IDraw.cs
+++ b/Vocaluxe/Lib/Draw/IDraw.cs
@@ -32,30 +32,30 @@ namespace Vocaluxe.Lib.Draw
int GetTextureCount();
- void ClearScreen();
- CTexture CopyScreen();
- void CopyScreen(ref CTexture texture);
+ CTextureRef CopyScreen();
+ void CopyScreen(ref CTextureRef texture);
void MakeScreenShot();
- CTexture AddTexture(string texturePath);
- CTexture AddTexture(Bitmap bitmap);
- CTexture AddTexture(int w, int h, byte[] data);
- CTexture EnqueueTexture(int w, int h, byte[] data);
- bool UpdateTexture(CTexture texture, int w, int h, byte[] data);
- bool UpdateOrAddTexture(ref CTexture texture, int w, int h, byte[] data);
- void RemoveTexture(ref CTexture texture);
+ CTextureRef AddTexture(string texturePath);
+ CTextureRef AddTexture(Bitmap bitmap);
+ CTextureRef AddTexture(int w, int h, byte[] data);
+ void UpdateTexture(CTextureRef texture, Bitmap bmp);
+ void UpdateTexture(CTextureRef texture, int w, int h, byte[] data);
+ CTextureRef EnqueueTexture(string texturePath);
+ CTextureRef EnqueueTexture(Bitmap bmp);
+ CTextureRef EnqueueTexture(int w, int h, byte[] data);
+ void EnqueueTextureUpdate(CTextureRef textureRef, Bitmap bmp);
+ CTextureRef CopyTexture(CTextureRef textureRef);
+ void RemoveTexture(ref CTextureRef texture);
// Basic Draw Methods
- void DrawLine(int a, int r, int g, int b, int w, int x1, int y1, int x2, int y2);
- void DrawColor(SColorF color, SRectF rect);
- void DrawColorReflection(SColorF color, SRectF rect, float space, float height);
+ void DrawRect(SColorF color, SRectF rect);
+ void DrawRectReflection(SColorF color, SRectF rect, float space, float height);
- void DrawTexture(CTexture texture);
- void DrawTexture(CTexture texture, SRectF rect);
- void DrawTexture(CTexture texture, SRectF rect, SColorF color, bool mirrored = false);
- void DrawTexture(CTexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false);
- void DrawTexture(CTexture texture, SRectF rect, SColorF color, float begin, float end);
+ void DrawTexture(CTextureRef texture, SRectF rect, SColorF color, bool mirrored = false);
+ void DrawTexture(CTextureRef texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false);
+ void DrawTexture(CTextureRef texture, SRectF rect, SColorF color, float begin, float end);
- void DrawTextureReflection(CTexture texture, SRectF rect, SColorF color, SRectF bounds, float space, float height);
+ void DrawTextureReflection(CTextureRef texture, SRectF rect, SColorF color, float space, float height);
}
}
\ No newline at end of file
diff --git a/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudio.cs b/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudio.cs
index 651dcd21..e32d3795 100644
--- a/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudio.cs
+++ b/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudio.cs
@@ -16,6 +16,8 @@
#endregion
using Gst;
+using System;
+using Vocaluxe.Base;
namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp
{
@@ -25,16 +27,23 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp
{
if (_Initialized)
return false;
+
#if ARCH_X86
- const string path = ".\\x86\\gstreamer";
+ const string varName = "GSTREAMER_1_0_ROOT_X86";
#endif
#if ARCH_X64
- const string path = ".\\x64\\gstreamer";
+ const string varName = "GSTREAMER_1_0_ROOT_X86_64";
#endif
- //SetDllDirectory(path);
+ string gstreamerEnvVar = Environment.GetEnvironmentVariable(varName, EnvironmentVariableTarget.User);
+ if (gstreamerEnvVar == null)
+ {
+ CLog.LogError("Gstreamer not found! Make sure you installed it correctly and if it set the environment variable '" + varName + "'!", true);
+ return false;
+ }
+ string dllDirectory = gstreamerEnvVar + "bin\\";
+ COSFunctions.AddEnvironmentPath(dllDirectory);
+
Application.Init();
- Registry reg = Registry.Get();
- reg.ScanPath(path);
_Initialized = Application.IsInitialized;
return _Initialized;
diff --git a/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudioStream.cs b/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudioStream.cs
index d7ac9f72..2ecd795a 100644
--- a/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudioStream.cs
+++ b/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudioStream.cs
@@ -253,7 +253,7 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp
_UpdateDuration();
break;
}
- msg.Unref();
+ msg.Dispose();
}
public override void Update()
diff --git a/Vocaluxe/Lib/Video/Acinerella/CDecoder.cs b/Vocaluxe/Lib/Video/Acinerella/CDecoder.cs
index 9203b118..823c5290 100644
--- a/Vocaluxe/Lib/Video/Acinerella/CDecoder.cs
+++ b/Vocaluxe/Lib/Video/Acinerella/CDecoder.cs
@@ -102,7 +102,7 @@ namespace Vocaluxe.Lib.Video.Acinerella
Finished = true;
}
- public bool GetFrame(ref CTexture frame, float time, out float videoTime)
+ public bool GetFrame(ref CTextureRef frame, float time, out float videoTime)
{
if (Finished)
{
diff --git a/Vocaluxe/Lib/Video/Acinerella/CDecoderThread.cs b/Vocaluxe/Lib/Video/Acinerella/CDecoderThread.cs
index 0ff06799..78707644 100644
--- a/Vocaluxe/Lib/Video/Acinerella/CDecoderThread.cs
+++ b/Vocaluxe/Lib/Video/Acinerella/CDecoderThread.cs
@@ -193,7 +193,7 @@ namespace Vocaluxe.Lib.Video.Acinerella
/// Maximum start time for frame
/// Set to whether there are no more frames (stream finished, no loop, future calls will always return false)
/// True if a new frame was gotten
- public bool GetFrame(ref CTexture frame, ref float time, out bool finished)
+ public bool GetFrame(ref CTextureRef frame, ref float time, out bool finished)
{
bool result;
if (Math.Abs(_LastShownTime - time) < _FrameDuration && frame != null) //Check 1 frame difference
@@ -206,7 +206,10 @@ namespace Vocaluxe.Lib.Video.Acinerella
CFramebuffer.CFrame curFrame = _FindFrame(time);
if (curFrame != null)
{
- CDraw.UpdateOrAddTexture(ref frame, _Width, _Height, curFrame.Data);
+ if (frame == null)
+ frame = CDraw.AddTexture(_Width, _Height, curFrame.Data);
+ else
+ CDraw.UpdateTexture(frame, _Width, _Height, curFrame.Data);
if (!_Paused)
curFrame.SetRead();
time = curFrame.Time;
diff --git a/Vocaluxe/Lib/Video/CVideoDecoderFFmpeg.cs b/Vocaluxe/Lib/Video/CVideoDecoderFFmpeg.cs
index 27f2baeb..045a6344 100644
--- a/Vocaluxe/Lib/Video/CVideoDecoderFFmpeg.cs
+++ b/Vocaluxe/Lib/Video/CVideoDecoderFFmpeg.cs
@@ -69,7 +69,7 @@ namespace Vocaluxe.Lib.Video
return _Decoder.Count;
}
- public bool GetFrame(int streamID, ref CTexture frame, float time, out float videoTime)
+ public bool GetFrame(int streamID, ref CTextureRef frame, float time, out float videoTime)
{
CDecoder decoder;
if (_Decoder.TryGetValue(streamID, out decoder))
diff --git a/Vocaluxe/Lib/Video/IVideoDecoder.cs b/Vocaluxe/Lib/Video/IVideoDecoder.cs
index b1da1feb..ebf5e575 100644
--- a/Vocaluxe/Lib/Video/IVideoDecoder.cs
+++ b/Vocaluxe/Lib/Video/IVideoDecoder.cs
@@ -73,7 +73,7 @@ namespace Vocaluxe.Lib.Video
///
/// The actual position in s of the returned frame. Should be ~ time+VideoGap
/// True if frame is valid, false: frame and videoTime might be unchanged or invalid
- bool GetFrame(int streamID, ref CTexture frame, float time, out float videoTime);
+ bool GetFrame(int streamID, ref CTextureRef frame, float time, out float videoTime);
///
/// Seeks to given position
diff --git a/Vocaluxe/Lib/Webcam/CAForgeNet.cs b/Vocaluxe/Lib/Webcam/CAForgeNet.cs
index 13bc4d20..0d6e9918 100644
--- a/Vocaluxe/Lib/Webcam/CAForgeNet.cs
+++ b/Vocaluxe/Lib/Webcam/CAForgeNet.cs
@@ -201,13 +201,16 @@ namespace Vocaluxe.Lib.Webcam
}
}
- public bool GetFrame(ref CTexture frame)
+ public bool GetFrame(ref CTextureRef frame)
{
lock (_MutexData)
{
if (_Data != null && _Data.Length == _Width * _Height * 4 && _NewFrameAvailable)
{
- CDraw.UpdateOrAddTexture(ref frame, _Width, _Height, _Data);
+ if (frame == null)
+ frame = CDraw.AddTexture(_Width, _Height, _Data);
+ else
+ CDraw.UpdateTexture(frame, _Width, _Height, _Data);
_NewFrameAvailable = false;
return true;
}
diff --git a/Vocaluxe/Lib/Webcam/IWebcam.cs b/Vocaluxe/Lib/Webcam/IWebcam.cs
index 98ae1804..9960b979 100644
--- a/Vocaluxe/Lib/Webcam/IWebcam.cs
+++ b/Vocaluxe/Lib/Webcam/IWebcam.cs
@@ -58,7 +58,7 @@ namespace Vocaluxe.Lib.Webcam
///
///
///
- bool GetFrame(ref CTexture frame);
+ bool GetFrame(ref CTextureRef frame);
///
/// Gets the last captured frame as a bitma
diff --git a/Vocaluxe/Program.cs b/Vocaluxe/Program.cs
index 6f8390e2..65e9a06d 100644
--- a/Vocaluxe/Program.cs
+++ b/Vocaluxe/Program.cs
@@ -81,7 +81,7 @@ namespace Vocaluxe
{
// Init Log
CLog.Init();
-
+ CLog.StartBenchmark("Init Program");
if (!CProgrammHelper.CheckRequirements())
return;
CProgrammHelper.Init();
@@ -236,6 +236,7 @@ namespace Vocaluxe
//Only reasonable point to call GC.Collect() because initialization may cause lots of garbage
//Rely on GC doing its job afterwards and call Dispose methods where appropriate
GC.Collect();
+ CLog.StopBenchmark("Init Program");
}
catch (Exception e)
{
@@ -251,7 +252,6 @@ namespace Vocaluxe
// Start Main Loop
if (_SplashScreen != null)
_SplashScreen.Close();
- CVocaluxeServer.Start();
CDraw.MainLoop();
}
diff --git a/Vocaluxe/Screens/CPopupScreenPlayerControl.cs b/Vocaluxe/Screens/CPopupScreenPlayerControl.cs
index e0c1cdf2..4475e1da 100644
--- a/Vocaluxe/Screens/CPopupScreenPlayerControl.cs
+++ b/Vocaluxe/Screens/CPopupScreenPlayerControl.cs
@@ -195,7 +195,7 @@ namespace Vocaluxe.Screens
return false;
_Statics[_StaticCover].Texture = CBackgroundMusic.Cover;
if (CBackgroundMusic.VideoEnabled && _VideoPreview && CBackgroundMusic.SongHasVideo)
- CDraw.DrawTexture(_Statics[_StaticCover], CBackgroundMusic.GetVideoTexture(), EAspect.Crop);
+ CDraw.DrawTexture(CBackgroundMusic.GetVideoTexture(), _Statics[_StaticCover].Rect, EAspect.Crop);
_Buttons[_ButtonPause].Visible = CBackgroundMusic.IsPlaying;
_Buttons[_ButtonPlay].Visible = !CBackgroundMusic.IsPlaying;
_Texts[_TextCurrentSong].Text = CBackgroundMusic.ArtistAndTitle;
diff --git a/Vocaluxe/Screens/CPopupScreenServerQR.cs b/Vocaluxe/Screens/CPopupScreenServerQR.cs
index febb08a2..e6d4beeb 100644
--- a/Vocaluxe/Screens/CPopupScreenServerQR.cs
+++ b/Vocaluxe/Screens/CPopupScreenServerQR.cs
@@ -33,11 +33,11 @@ namespace Vocaluxe.Screens
get { return 1; }
}
- private CTexture _QRServerAddress;
- private CTexture _QRAndroidLink;
- private CTexture _QRSymbianLink;
- private CTexture _QRWebOSLink;
- private CTexture _QRWindowsPhoneLink;
+ private CTextureRef _QRServerAddress;
+ private CTextureRef _QRAndroidLink;
+ private CTextureRef _QRSymbianLink;
+ private CTextureRef _QRWebOSLink;
+ private CTextureRef _QRWindowsPhoneLink;
private const string _StaticQRServer = "StaticQRServer";
private const string _StaticQRAndroid = "StaticQRAndroid";
diff --git a/Vocaluxe/Screens/CScreenCredits.cs b/Vocaluxe/Screens/CScreenCredits.cs
index 7c340a7a..dc9904fc 100644
--- a/Vocaluxe/Screens/CScreenCredits.cs
+++ b/Vocaluxe/Screens/CScreenCredits.cs
@@ -106,7 +106,7 @@ namespace Vocaluxe.Screens
}
}
- class CScreenCredits : CMenu
+ public class CScreenCredits : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
@@ -126,21 +126,21 @@ namespace Vocaluxe.Screens
private List _Paragraphs;
private List _ParagraphTexts;
- private CTexture _TexLogo;
- private CTexture _TexPerfectNoteStar;
+ private CTextureRef _TexLogo;
+ private CTextureRef _TexPerfectNoteStar;
- private CTexture _TexRedDot;
- private CTexture _TexBlueDot;
+ private CTextureRef _TexRedDot;
+ private CTextureRef _TexBlueDot;
- private CTexture _TexNameBrunzel;
- private CTexture _TexNameDarkice;
- private CTexture _TexNameFlokuep;
- private CTexture _TexNameFlamefire;
- private CTexture _TexNameMesand;
- private CTexture _TexNameBohning;
- private CTexture _TexNameBabene03;
- private CTexture _TexNamePantero;
- private CTexture _TexNamePinky007;
+ private CTextureRef _TexNameBrunzel;
+ private CTextureRef _TexNameDarkice;
+ private CTextureRef _TexNameFlokuep;
+ private CTextureRef _TexNameFlamefire;
+ private CTextureRef _TexNameMesand;
+ private CTextureRef _TexNameBohning;
+ private CTextureRef _TexNameBabene03;
+ private CTextureRef _TexNamePantero;
+ private CTextureRef _TexNamePinky007;
public override void Init()
{
@@ -286,12 +286,12 @@ namespace Vocaluxe.Screens
return GetNewParticleEffect(numStars, partColor, rect, _TexPerfectNoteStar, partSize, EParticleType.Star);
}
- private void _AddNewCreditName(CTexture texture, int particleOffsetX, int particleOffsetY, bool bigParticles)
+ private void _AddNewCreditName(CTextureRef texture, int particleOffsetX, int particleOffsetY, bool bigParticles)
{
bool isRight = _CreditNames.Count % 2 == 0;
int partRectSize = bigParticles ? 25 : 20;
int partCount = bigParticles ? 8 : 6;
- CTexture texDot = isRight ? _TexRedDot : _TexBlueDot;
+ CTextureRef texDot = isRight ? _TexRedDot : _TexBlueDot;
CStatic image = GetNewStatic(texture, new SColorF(1, 1, 1, 1), new SRectF(-1, -1, 400, 120, -4));
@@ -360,7 +360,7 @@ namespace Vocaluxe.Screens
base.Draw();
//Draw background
- CDraw.DrawColor(new SColorF(0, 0.18f, 0.474f, 1), new SRectF(0, 0, CSettings.RenderW, CSettings.RenderH, 0));
+ CDraw.DrawRect(new SColorF(0, 0.18f, 0.474f, 1), new SRectF(0, 0, CSettings.RenderW, CSettings.RenderH, 0));
//Draw stars
_StarsBlue.Draw();
diff --git a/Vocaluxe/Screens/CScreenHighscore.cs b/Vocaluxe/Screens/CScreenHighscore.cs
index 010a3cce..6f0f5913 100644
--- a/Vocaluxe/Screens/CScreenHighscore.cs
+++ b/Vocaluxe/Screens/CScreenHighscore.cs
@@ -27,7 +27,7 @@ using VocaluxeLib.Songs;
namespace Vocaluxe.Screens
{
- class CScreenHighscore : CMenu
+ public class CScreenHighscore : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
diff --git a/Vocaluxe/Screens/CScreenLoad.cs b/Vocaluxe/Screens/CScreenLoad.cs
index 50c57008..1aa190d3 100644
--- a/Vocaluxe/Screens/CScreenLoad.cs
+++ b/Vocaluxe/Screens/CScreenLoad.cs
@@ -23,7 +23,7 @@ using VocaluxeLib.Menu;
namespace Vocaluxe.Screens
{
- class CScreenLoad : CMenu
+ public class CScreenLoad : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
diff --git a/Vocaluxe/Screens/CScreenMain.cs b/Vocaluxe/Screens/CScreenMain.cs
index 6cd878bc..c932a1d6 100644
--- a/Vocaluxe/Screens/CScreenMain.cs
+++ b/Vocaluxe/Screens/CScreenMain.cs
@@ -22,12 +22,12 @@ using VocaluxeLib.Menu;
namespace Vocaluxe.Screens
{
- class CScreenMain : CMenu
+ public class CScreenMain : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
{
- get { return 1; }
+ get { return 2; }
}
private const string _ButtonSing = "ButtonSing";
@@ -35,23 +35,30 @@ namespace Vocaluxe.Screens
private const string _ButtonOptions = "ButtonOptions";
private const string _ButtonProfiles = "ButtonProfiles";
private const string _ButtonExit = "ButtonExit";
-
- private CText _ReleaseText;
+ private const string _StaticWarningProfiles = "StaticWarningProfiles";
+ private const string _TextWarningProfiles = "TextWarningProfiles";
+ private const string _TextRelease = "TextRelease";
//CParticleEffect Snowflakes;
public override void Init()
{
base.Init();
- _ThemeStatics = new string[] {"StaticMenuBar"};
+ _ThemeStatics = new string[] {"StaticMenuBar", _StaticWarningProfiles};
_ThemeButtons = new string[] {_ButtonSing, _ButtonParty, _ButtonOptions, _ButtonProfiles, _ButtonExit};
+ _ThemeTexts = new string[] {_TextRelease, _TextWarningProfiles};
}
public override void LoadTheme(string xmlPath)
{
base.LoadTheme(xmlPath);
- _ReleaseText = GetNewText(10, 690, -1, 15, -1, EAlignment.Left, EStyle.Normal, "Normal", new SColorF(1f, 1f, 1f, 1f), CSettings.GetFullVersionText());
+ _Texts[_TextRelease].Text = CSettings.GetFullVersionText();
+ // ReSharper disable ConditionIsAlwaysTrueOrFalse
+ _Texts[_TextRelease].Visible = CSettings.VersionRevision != ERevision.Release;
+ // ReSharper restore ConditionIsAlwaysTrueOrFalse
+ _Statics[_StaticWarningProfiles].Visible = false;
+ _Texts[_TextWarningProfiles].Visible = false;
}
public override bool HandleInput(SKeyEvent keyEvent)
@@ -68,7 +75,8 @@ namespace Vocaluxe.Screens
break;
case Keys.S:
- CGraphics.FadeTo(EScreens.ScreenSong);
+ if (CProfiles.NumProfiles > 0)
+ CGraphics.FadeTo(EScreens.ScreenSong);
break;
case Keys.C:
@@ -145,6 +153,11 @@ namespace Vocaluxe.Screens
public override bool UpdateGame()
{
+ bool profileOK = CProfiles.NumProfiles > 0;
+ _Statics[_StaticWarningProfiles].Visible = !profileOK;
+ _Texts[_TextWarningProfiles].Visible = !profileOK;
+ _Buttons[_ButtonSing].Enabled = profileOK;
+ _Buttons[_ButtonParty].Enabled = profileOK;
return true;
}
@@ -159,11 +172,6 @@ namespace Vocaluxe.Screens
//Snowflakes.Draw();
_DrawFG();
- // ReSharper disable ConditionIsAlwaysTrueOrFalse
- if (CSettings.VersionRevision != ERevision.Release)
- // ReSharper restore ConditionIsAlwaysTrueOrFalse
- _ReleaseText.Draw();
-
return true;
}
diff --git a/Vocaluxe/Screens/CScreenNames.cs b/Vocaluxe/Screens/CScreenNames.cs
index 945e6731..4e9b3b06 100644
--- a/Vocaluxe/Screens/CScreenNames.cs
+++ b/Vocaluxe/Screens/CScreenNames.cs
@@ -27,7 +27,7 @@ using VocaluxeLib.Profile;
namespace Vocaluxe.Screens
{
- class CScreenNames : CMenu
+ public class CScreenNames : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
@@ -55,7 +55,7 @@ namespace Vocaluxe.Screens
{"EqualizerPlayer1", "EqualizerPlayer2", "EqualizerPlayer3", "EqualizerPlayer4", "EqualizerPlayer5", "EqualizerPlayer6"};
private readonly string[] _SelectSlideDuetPlayer = new string[]
{"SelectSlideDuetPlayer1", "SelectSlideDuetPlayer2", "SelectSlideDuetPlayer3", "SelectSlideDuetPlayer4", "SelectSlideDuetPlayer5", "SelectSlideDuetPlayer6"};
- private readonly CTexture[] _OriginalPlayerAvatarTextures = new CTexture[CSettings.MaxNumPlayer];
+ private readonly CTextureRef[] _OriginalPlayerAvatarTextures = new CTextureRef[CSettings.MaxNumPlayer];
private bool _SelectingKeyboardActive;
private bool _SelectingFast;
diff --git a/Vocaluxe/Screens/CScreenOptions.cs b/Vocaluxe/Screens/CScreenOptions.cs
index 627b6027..12fba76d 100644
--- a/Vocaluxe/Screens/CScreenOptions.cs
+++ b/Vocaluxe/Screens/CScreenOptions.cs
@@ -22,7 +22,7 @@ using VocaluxeLib.Menu;
namespace Vocaluxe.Screens
{
- class CScreenOptions : CMenu
+ public class CScreenOptions : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
diff --git a/Vocaluxe/Screens/CScreenOptionsGame.cs b/Vocaluxe/Screens/CScreenOptionsGame.cs
index 4ed5c752..aec51f65 100644
--- a/Vocaluxe/Screens/CScreenOptionsGame.cs
+++ b/Vocaluxe/Screens/CScreenOptionsGame.cs
@@ -22,7 +22,7 @@ using VocaluxeLib.Menu;
namespace Vocaluxe.Screens
{
- class CScreenOptionsGame : CMenu
+ public class CScreenOptionsGame : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
diff --git a/Vocaluxe/Screens/CScreenOptionsLyrics.cs b/Vocaluxe/Screens/CScreenOptionsLyrics.cs
index e2093af4..6a7f6c79 100644
--- a/Vocaluxe/Screens/CScreenOptionsLyrics.cs
+++ b/Vocaluxe/Screens/CScreenOptionsLyrics.cs
@@ -22,7 +22,7 @@ using VocaluxeLib.Menu;
namespace Vocaluxe.Screens
{
- class CScreenOptionsLyrics : CMenu
+ public class CScreenOptionsLyrics : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
diff --git a/Vocaluxe/Screens/CScreenOptionsRecord.cs b/Vocaluxe/Screens/CScreenOptionsRecord.cs
index 1a658fe5..59044c04 100644
--- a/Vocaluxe/Screens/CScreenOptionsRecord.cs
+++ b/Vocaluxe/Screens/CScreenOptionsRecord.cs
@@ -25,7 +25,7 @@ using VocaluxeLib.Menu;
namespace Vocaluxe.Screens
{
- class CScreenOptionsRecord : CMenu
+ public class CScreenOptionsRecord : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
diff --git a/Vocaluxe/Screens/CScreenOptionsSound.cs b/Vocaluxe/Screens/CScreenOptionsSound.cs
index 0d711fd0..1976d3ca 100644
--- a/Vocaluxe/Screens/CScreenOptionsSound.cs
+++ b/Vocaluxe/Screens/CScreenOptionsSound.cs
@@ -22,7 +22,7 @@ using VocaluxeLib.Menu;
namespace Vocaluxe.Screens
{
- class CScreenOptionsSound : CMenu
+ public class CScreenOptionsSound : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
diff --git a/Vocaluxe/Screens/CScreenOptionsTheme.cs b/Vocaluxe/Screens/CScreenOptionsTheme.cs
index a58226a8..e692728b 100644
--- a/Vocaluxe/Screens/CScreenOptionsTheme.cs
+++ b/Vocaluxe/Screens/CScreenOptionsTheme.cs
@@ -23,7 +23,7 @@ using VocaluxeLib.Menu;
namespace Vocaluxe.Screens
{
- class CScreenOptionsTheme : CMenu
+ public class CScreenOptionsTheme : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
diff --git a/Vocaluxe/Screens/CScreenOptionsVideo.cs b/Vocaluxe/Screens/CScreenOptionsVideo.cs
index a2bf330d..81fdb4eb 100644
--- a/Vocaluxe/Screens/CScreenOptionsVideo.cs
+++ b/Vocaluxe/Screens/CScreenOptionsVideo.cs
@@ -25,7 +25,7 @@ using VocaluxeLib.Draw;
namespace Vocaluxe.Screens
{
- class CScreenOptionsVideo : CMenu
+ public class CScreenOptionsVideo : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
@@ -49,7 +49,7 @@ namespace Vocaluxe.Screens
private const string _TextWebcamResolution = "TextWebcamResolution";
private SWebcamConfig _Config;
- private CTexture _WebcamTexture;
+ private CTextureRef _WebcamTexture;
private int _DeviceNr;
private int _CapabilityNr;
diff --git a/Vocaluxe/Screens/CScreenOptionsVideoAdjustments.cs b/Vocaluxe/Screens/CScreenOptionsVideoAdjustments.cs
index 6c22392b..5759652c 100644
--- a/Vocaluxe/Screens/CScreenOptionsVideoAdjustments.cs
+++ b/Vocaluxe/Screens/CScreenOptionsVideoAdjustments.cs
@@ -22,7 +22,7 @@ using VocaluxeLib.Menu;
namespace Vocaluxe.Screens
{
- class CScreenOptionsVideoAdjustments : CMenu
+ public class CScreenOptionsVideoAdjustments : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
diff --git a/Vocaluxe/Screens/CScreenParty.cs b/Vocaluxe/Screens/CScreenParty.cs
index ab6d5131..6465b65c 100644
--- a/Vocaluxe/Screens/CScreenParty.cs
+++ b/Vocaluxe/Screens/CScreenParty.cs
@@ -23,7 +23,7 @@ using VocaluxeLib.Menu;
namespace Vocaluxe.Screens
{
- class CScreenParty : CMenu
+ public class CScreenParty : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
diff --git a/Vocaluxe/Screens/CScreenProfiles.cs b/Vocaluxe/Screens/CScreenProfiles.cs
index c8fdacfb..532f3a8a 100644
--- a/Vocaluxe/Screens/CScreenProfiles.cs
+++ b/Vocaluxe/Screens/CScreenProfiles.cs
@@ -35,7 +35,7 @@ namespace Vocaluxe.Screens
PlayerName
}
- class CScreenProfiles : CMenu
+ public class CScreenProfiles : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
@@ -64,7 +64,7 @@ namespace Vocaluxe.Screens
private EEditMode _EditMode;
- private CTexture _WebcamTexture;
+ private CTextureRef _WebcamTexture;
private Bitmap _Snapshot;
public override void Init()
diff --git a/Vocaluxe/Screens/CScreenScore.cs b/Vocaluxe/Screens/CScreenScore.cs
index bbf4aaf4..a0f7e64d 100644
--- a/Vocaluxe/Screens/CScreenScore.cs
+++ b/Vocaluxe/Screens/CScreenScore.cs
@@ -28,7 +28,7 @@ using VocaluxeLib.Songs;
namespace Vocaluxe.Screens
{
- class CScreenScore : CMenu
+ public class CScreenScore : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
diff --git a/Vocaluxe/Screens/CScreenSing.cs b/Vocaluxe/Screens/CScreenSing.cs
index 7bdb548d..5e3183d6 100644
--- a/Vocaluxe/Screens/CScreenSing.cs
+++ b/Vocaluxe/Screens/CScreenSing.cs
@@ -31,7 +31,7 @@ using VocaluxeLib.Songs;
namespace Vocaluxe.Screens
{
- class CScreenSing : CMenu
+ public class CScreenSing : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
@@ -99,9 +99,9 @@ namespace Vocaluxe.Screens
private const float _Volume = 100f;
private int _CurrentVideo = -1;
private EAspect _VideoAspect = EAspect.Crop;
- private CTexture _CurrentVideoTexture;
- private CTexture _CurrentWebcamFrameTexture;
- private CTexture _Background;
+ private CTextureRef _CurrentVideoTexture;
+ private CTextureRef _CurrentWebcamFrameTexture;
+ private CTextureRef _Background;
private float _CurrentTime;
private float _FinishTime;
@@ -271,6 +271,19 @@ namespace Vocaluxe.Screens
CSound.SetGlobalVolume(CConfig.GameMusicVolume);
}
break;
+
+ case Keys.V:
+ if (_VideoAspect == EAspect.Zoom2)
+ _VideoAspect = EAspect.Crop;
+ else
+ _VideoAspect++;
+
+ CSong song = CGame.GetSong();
+ song.VideoAspect = _VideoAspect;
+
+ if (CConfig.SaveModifiedSongs == EOffOn.TR_CONFIG_ON)
+ song.Save();
+ break;
}
}
@@ -450,7 +463,7 @@ namespace Vocaluxe.Screens
{
if (_Active)
{
- CTexture background;
+ CTextureRef background;
var aspect = EAspect.Crop;
if (_CurrentVideo != -1 && CConfig.VideosInSongs == EOffOn.TR_CONFIG_ON && !_Webcam)
{
@@ -466,11 +479,8 @@ namespace Vocaluxe.Screens
background = _Background;
if (background != null)
{
- var bounds = new RectangleF(0, 0, CSettings.RenderW, CSettings.RenderH);
- RectangleF rect;
- CHelper.SetRect(bounds, out rect, background.OrigAspect, aspect);
- CDraw.DrawTexture(background, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, 0f),
- background.Color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f));
+ var bounds = new SRectF(0, 0, CSettings.RenderW, CSettings.RenderH, 0);
+ CDraw.DrawTexture(background, bounds, aspect, background.Color);
}
else if (_SlideShow != null)
_SlideShow.Draw();
@@ -1203,8 +1213,8 @@ namespace Vocaluxe.Screens
}
else
{
- _Statics[_StaticSongText].Color.A = 10f - t / 3f;
- _Texts[_TextSongName].Color.A = 10f - t / 3f;
+ _Statics[_StaticSongText].Color.A = (10f - t) / 3f;
+ _Texts[_TextSongName].Color.A = (10f - t) / 3f;
}
}
else
diff --git a/Vocaluxe/Screens/CScreenSong.cs b/Vocaluxe/Screens/CScreenSong.cs
index ace7503d..b55968fd 100644
--- a/Vocaluxe/Screens/CScreenSong.cs
+++ b/Vocaluxe/Screens/CScreenSong.cs
@@ -29,7 +29,7 @@ using VocaluxeLib.Songs;
namespace Vocaluxe.Screens
{
- class CScreenSong : CMenu
+ public class CScreenSong : CMenu
{
private enum ESongOptionsView
{
@@ -413,7 +413,7 @@ namespace Vocaluxe.Screens
_SongMenu.Active = !_PlaylistActive;
_ToggleSongOptions(ESongOptionsView.None);
}
- else if (CHelper.IsInBounds(_SongMenu.Rect, mouseEvent.X, mouseEvent.Y))
+ else if (CHelper.IsInBounds(_SongMenu.Rect, mouseEvent))
{
_PlaylistActive = false;
_Playlist.Selected = _PlaylistActive;
diff --git a/Vocaluxe/Screens/CScreenTest.cs b/Vocaluxe/Screens/CScreenTest.cs
index 1d571be9..7ccc303d 100644
--- a/Vocaluxe/Screens/CScreenTest.cs
+++ b/Vocaluxe/Screens/CScreenTest.cs
@@ -23,7 +23,7 @@ using VocaluxeLib.Menu;
namespace Vocaluxe.Screens
{
- class CScreenTest : CMenu
+ public class CScreenTest : CMenu
{
// Version number for theme files. Increment it, if you've changed something on the theme files!
protected override int _ScreenVersion
diff --git a/Vocaluxe/Vocaluxe.csproj b/Vocaluxe/Vocaluxe.csproj
index 3f2feb0d..48110d1e 100644
--- a/Vocaluxe/Vocaluxe.csproj
+++ b/Vocaluxe/Vocaluxe.csproj
@@ -225,6 +225,9 @@
+
+
+
diff --git a/VocaluxeLib/CEncoding.cs b/VocaluxeLib/CEncoding.cs
new file mode 100644
index 00000000..7b763d5b
--- /dev/null
+++ b/VocaluxeLib/CEncoding.cs
@@ -0,0 +1,39 @@
+using System.Text;
+
+namespace VocaluxeLib
+{
+ static class CEncoding
+ {
+ public static Encoding GetEncoding(this string encodingName)
+ {
+ switch (encodingName)
+ {
+ case "AUTO":
+ return Encoding.Default;
+ case "CP1250":
+ return Encoding.GetEncoding(1250);
+ case "CP1252":
+ return Encoding.GetEncoding(1252);
+ case "LOCALE":
+ return Encoding.Default;
+ case "UTF8":
+ return Encoding.UTF8;
+ default:
+ return Encoding.Default;
+ }
+ }
+
+ public static string GetEncodingName(this Encoding enc)
+ {
+ string result = "UTF8";
+
+ if (enc.CodePage == 1250)
+ result = "CP1250";
+
+ if (enc.CodePage == 1252)
+ result = "CP1252";
+
+ return result;
+ }
+ }
+}
\ No newline at end of file
diff --git a/VocaluxeLib/CHelper.cs b/VocaluxeLib/CHelper.cs
index aaadf7bc..d54a2d00 100644
--- a/VocaluxeLib/CHelper.cs
+++ b/VocaluxeLib/CHelper.cs
@@ -17,11 +17,9 @@
using System;
using System.Collections.Generic;
-using System.Diagnostics;
using System.Drawing;
using System.Globalization;
using System.IO;
-using System.Text;
namespace VocaluxeLib
{
@@ -64,52 +62,6 @@ namespace VocaluxeLib
return (int)result;
}
- public static bool InRange(this T val, T min, T max) where T : IComparable
- {
- Debug.Assert(min.CompareTo(max) <= 0);
- return val.CompareTo(min) >= 0 && val.CompareTo(max) <= 0;
- }
-
- ///
- /// Makes sure val is between min and max
- /// Asserts that min<=max
- ///
- ///
- ///
- ///
- ///
- /// Clamped value
- public static T Clamp(this T val, T min, T max) where T : IComparable
- {
- Debug.Assert(min.CompareTo(max) <= 0);
- if (val.CompareTo(min) < 0)
- return min;
- if (val.CompareTo(max) > 0)
- return max;
- return val;
- }
-
- ///
- /// Makes sure val is between min and max but also handles the case where min>max
- ///
- ///
- ///
- ///
- ///
- ///
- /// Clamped value
- public static T Clamp(this T val, T min, T max, bool preferMin) where T : IComparable
- {
- if (min.CompareTo(max) > 0)
- {
- if (preferMin)
- max = min;
- else
- min = max;
- }
- return Clamp(val, min, max);
- }
-
///
/// Concat strings into one string with ", " as separator.
///
@@ -126,66 +78,88 @@ namespace VocaluxeLib
return result;
}
- public static void SetRect(SRectF bounds, out SRectF rect, float rectAspect, EAspect aspect)
+ ///
+ /// Places a rect within the bounds maintaining the aspectRatio and using the given aspect
+ ///
+ /// Bounds to fit the rect in
+ /// The original aspectRatio of the rect/image/...
+ ///
+ /// Crop: Fit fully in bounds cutting off overhanging parts (same on both sides)
+ /// LetterBox: Fit the long side possibly leaving some space on the other (rect will be centered)
+ /// StretcH: Just fit the rect in the bounds (rect=bounds)
+ ///
+ public static SRectF FitInBounds(SRectF bounds, float aspectRatio, EAspect aspect)
{
- var bounds2 = new RectangleF(bounds.X, bounds.Y, bounds.W, bounds.H);
- RectangleF rect2;
- SetRect(bounds2, out rect2, rectAspect, aspect);
+ if (aspect == EAspect.Stretch)
+ return bounds;
- rect = new SRectF(rect2.X, rect2.Y, rect2.Width, rect2.Height, bounds.Z);
- }
+ float boundsAspectRatio = bounds.W / bounds.H;
- public static void SetRect(RectangleF bounds, out RectangleF rect, float rectAspect, EAspect aspect)
- {
- float boundsW = bounds.Width;
- float boundsH = bounds.Height;
- float boundsAspect = boundsW / boundsH;
-
- float scaledWidth;
- float scaledHeight;
+ float scaledWidth, scaledHeight;
switch (aspect)
{
case EAspect.Crop:
- if (boundsAspect >= rectAspect)
+ if (boundsAspectRatio >= aspectRatio)
{
- scaledWidth = boundsW;
- scaledHeight = boundsW / rectAspect;
+ scaledWidth = bounds.W;
+ scaledHeight = bounds.W / aspectRatio;
}
else
{
- scaledHeight = boundsH;
- scaledWidth = boundsH * rectAspect;
+ scaledHeight = bounds.H;
+ scaledWidth = bounds.H * aspectRatio;
+ }
+ break;
+ case EAspect.Zoom1:
+ if (boundsAspectRatio >= aspectRatio)
+ {
+ scaledWidth = bounds.W * 1.33f;
+ scaledHeight = bounds.W * 1.33f / aspectRatio;
+ }
+ else
+ {
+ scaledHeight = bounds.H / 1.33f;
+ scaledWidth = bounds.H / 1.33f * aspectRatio;
+ }
+ break;
+ case EAspect.Zoom2:
+ if (boundsAspectRatio >= aspectRatio)
+ {
+ scaledWidth = bounds.W * 1.17f;
+ scaledHeight = bounds.W * 1.17f / aspectRatio;
+ }
+ else
+ {
+ scaledHeight = bounds.H / 1.17f;
+ scaledWidth = bounds.H / 1.17f * aspectRatio;
}
break;
case EAspect.LetterBox:
- if (boundsAspect <= rectAspect)
+ if (boundsAspectRatio <= aspectRatio)
{
- scaledWidth = boundsW;
- scaledHeight = boundsW / rectAspect;
+ scaledWidth = bounds.W;
+ scaledHeight = bounds.W / aspectRatio;
}
else
{
- scaledHeight = boundsH;
- scaledWidth = boundsH * rectAspect;
+ scaledHeight = bounds.H;
+ scaledWidth = bounds.H * aspectRatio;
}
break;
default:
- scaledWidth = boundsW;
- scaledHeight = boundsH;
- break;
+ return bounds;
}
+ float left = (bounds.W - scaledWidth) / 2 + bounds.X;
+ float top = (bounds.H - scaledHeight) / 2 + bounds.Y;
- float left = (boundsW - scaledWidth) / 2 + bounds.Left;
- float upper = (boundsH - scaledHeight) / 2 + bounds.Top;
-
- rect = new RectangleF(left, upper, scaledWidth, scaledHeight);
+ return new SRectF(left, top, scaledWidth, scaledHeight, bounds.Z);
}
///
/// Returns a list with all files in the given path that match a given pattern
///
- /// Path to search for
+ /// Path to search
/// Pattern to match (e.g. "*.jpg")
/// Search directories recursively
/// False for just file names, True for full path
@@ -283,7 +257,7 @@ namespace VocaluxeLib
public static bool IsInBounds(SRectF bounds, int x, int y)
{
- return (bounds.X <= x) && (bounds.X + bounds.W >= x) && (bounds.Y <= y) && (bounds.Y + bounds.H >= y);
+ return ((float)x).IsInRange(bounds.X, bounds.X + bounds.W) && ((float)y).IsInRange(bounds.Y, bounds.Y + bounds.H);
}
///
@@ -308,40 +282,35 @@ namespace VocaluxeLib
filename = Path.Combine(path, filename);
return filename + ext;
}
- }
- static class CEncoding
- {
- public static Encoding GetEncoding(this string encodingName)
+ public static int Sum(int n)
{
- switch (encodingName)
- {
- case "AUTO":
- return Encoding.Default;
- case "CP1250":
- return Encoding.GetEncoding(1250);
- case "CP1252":
- return Encoding.GetEncoding(1252);
- case "LOCALE":
- return Encoding.Default;
- case "UTF8":
- return Encoding.UTF8;
- default:
- return Encoding.Default;
- }
+ return (n * n + n) / 2;
}
- public static string GetEncodingName(this Encoding enc)
+ ///
+ /// Loads a bitmap from a file logging errors
+ ///
+ /// Full path to image file
+ /// Bitmap or null on error
+ public static Bitmap LoadBitmap(string filePath)
{
- string result = "UTF8";
-
- if (enc.CodePage == 1250)
- result = "CP1250";
-
- if (enc.CodePage == 1252)
- result = "CP1252";
-
- return result;
+ if (!File.Exists(filePath))
+ {
+ CBase.Log.LogError("Can't find File: " + filePath);
+ return null;
+ }
+ Bitmap bmp;
+ try
+ {
+ bmp = new Bitmap(filePath);
+ }
+ catch (Exception)
+ {
+ CBase.Log.LogError("Error loading bitmap: " + filePath);
+ return null;
+ }
+ return bmp;
}
}
}
\ No newline at end of file
diff --git a/VocaluxeLib/CXMLReader.cs b/VocaluxeLib/CXMLReader.cs
index 8ebf0d19..3f06c661 100644
--- a/VocaluxeLib/CXMLReader.cs
+++ b/VocaluxeLib/CXMLReader.cs
@@ -97,7 +97,7 @@ namespace VocaluxeLib
public bool TryGetNormalizedFloatValue(string xPath, ref float value)
{
string val;
- return GetValue(xPath, out val, value.ToString()) && CHelper.TryParse(val, out value) && value.InRange(0f, 1f);
+ return GetValue(xPath, out val, value.ToString()) && CHelper.TryParse(val, out value) && value.IsInRange(0f, 1f);
}
public bool TryGetColorFromRGBA(string xPath, ref SColorF value)
diff --git a/VocaluxeLib/Draw/CTexture.cs b/VocaluxeLib/Draw/CTexture.cs
deleted file mode 100644
index 76a03818..00000000
--- a/VocaluxeLib/Draw/CTexture.cs
+++ /dev/null
@@ -1,149 +0,0 @@
-#region license
-// This file is part of Vocaluxe.
-//
-// Vocaluxe is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// Vocaluxe is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with Vocaluxe. If not, see .
-#endregion
-
-using System.Drawing;
-
-namespace VocaluxeLib.Draw
-{
- public class CTexture
- {
- public int ID = -1;
- public int PBO;
- //Only used by OpenGL (the texture "name" according to the specs)
- public int Name = -1;
-
- public string TexturePath = "";
-
- ///
- /// Original size (e.g. of bmp)
- ///
- public readonly Size OrigSize;
- public float OrigAspect
- {
- get { return (float)OrigSize.Width / OrigSize.Height; }
- }
-
- ///
- /// Current size when drawn
- ///
- public SRectF Rect;
-
- public SColorF Color = new SColorF(1f, 1f, 1f, 1f);
-
- private int _W2, _H2;
- private readonly bool _UseFullTexture;
- ///
- /// Internal texture width (on device), a power of 2 if necessary
- ///
- public int W2
- {
- get { return _W2; }
- set
- {
- _W2 = value;
- if (_UseFullTexture)
- WidthRatio = 1;
- else
- WidthRatio = (float)OrigSize.Width / _W2;
- }
- }
- ///
- /// Internal texture height (on device), a power of 2 if necessary
- ///
- public int H2
- {
- get { return _H2; }
- set
- {
- _H2 = value;
- if (_UseFullTexture)
- HeightRatio = 1;
- else
- HeightRatio = (float)OrigSize.Height / _H2;
- }
- }
-
- ///
- /// Internal use. Specifies which part of texture memory is actually used
- ///
- public float WidthRatio { get; private set; }
- ///
- /// Internal use. Specifies which part of texture memory is actually used
- ///
- public float HeightRatio { get; private set; }
-
- ///
- /// Actual texture space used in x direction
- ///
- public int UsedWidth
- {
- get { return (int)(_W2 * WidthRatio); }
- }
-
- ///
- /// Actual texture space used in y direction
- ///
- public int UsedHeight
- {
- get { return (int)(_H2 * HeightRatio); }
- }
-
- /*
- ///
- /// Internal use. Specifies if full texture memory should be used
- /// Set to true if you resized the original image to the maximum
- ///
- public bool UseFullTexture
- {
- get { return _UseFullTexture; }
- set
- {
- _UseFullTexture = value;
- if (value)
- {
- WidthRatio = 1;
- HeightRatio = 1;
- }
- else
- {
- WidthRatio = (float)OrigSize.Width / _W2;
- HeightRatio = (float)OrigSize.Height / _H2;
- }
- }
- }
-*/
-
- ///
- /// Creates a new texture reference
- ///
- /// Original width (Bitmap size)
- /// Original height (Bitmap size)
- /// Width in video memory
- /// Height in video memory
- /// True if it is using the full size of the video memory (no blank parts due to Pow-2-Issue)
- public CTexture(int origWidth, int origHeight, int texWidth = 0, int texHeight = 0, bool useFullTexture = false)
- {
- OrigSize = new Size(origWidth, origHeight);
- Rect = new SRectF(0f, 0f, origWidth, origHeight, 0f);
- _UseFullTexture = useFullTexture;
-
- //IMPORTANT: Use setter here to calculate ratios!
- W2 = (texWidth > 0) ? texWidth : origWidth;
- H2 = (texHeight > 0) ? texHeight : origHeight;
- }
- }
-}
\ No newline at end of file
diff --git a/VocaluxeLib/Draw/CTextureRef.cs b/VocaluxeLib/Draw/CTextureRef.cs
new file mode 100644
index 00000000..d593cb12
--- /dev/null
+++ b/VocaluxeLib/Draw/CTextureRef.cs
@@ -0,0 +1,87 @@
+#region license
+// This file is part of Vocaluxe.
+//
+// Vocaluxe is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Vocaluxe is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Vocaluxe. If not, see .
+#endregion
+
+using System;
+using System.Drawing;
+
+namespace VocaluxeLib.Draw
+{
+ ///
+ /// Reference to a texture in the drawing driver
+ ///
+ public class CTextureRef : IDisposable
+ {
+ public int ID { get; private set; }
+ ///
+ /// Size of original image (e.g. of bmp)
+ ///
+ public Size OrigSize;
+
+ public float OrigAspect
+ {
+ get { return (float)OrigSize.Width / OrigSize.Height; }
+ }
+
+ ///
+ /// Current size when drawn
+ ///
+ public SRectF Rect;
+
+ public SColorF Color = new SColorF(1f, 1f, 1f, 1f);
+
+ ///
+ /// Creates a new texture reference
+ ///
+ /// ID of the texture
+ /// Original size (Bitmap size)
+ public CTextureRef(int id, Size origSize)
+ {
+ ID = id;
+ OrigSize = origSize;
+
+ Rect = new SRectF(0f, 0f, origSize.Width, origSize.Height, 0f);
+ }
+
+ ~CTextureRef()
+ {
+ Dispose();
+ }
+
+ public void Dispose()
+ {
+ if (ID >= 0)
+ {
+ //Free textures that are no longer referenced
+ CTextureRef tmp = this;
+ CBase.Drawing.RemoveTexture(ref tmp);
+ }
+ SetRemoved();
+ }
+
+ ///
+ /// Call this from the graphics driver to denote that this reference is remove and no longer valid
+ /// This avoids the finalizer
+ ///
+ public void SetRemoved()
+ {
+ if (ID < 0)
+ throw new ObjectDisposedException(GetType().Name);
+ ID = -1;
+ GC.SuppressFinalize(this);
+ }
+ }
+}
\ No newline at end of file
diff --git a/VocaluxeLib/Enums.cs b/VocaluxeLib/Enums.cs
index 4db6424c..5a7b4005 100644
--- a/VocaluxeLib/Enums.cs
+++ b/VocaluxeLib/Enums.cs
@@ -43,7 +43,16 @@ namespace VocaluxeLib
{
Crop,
LetterBox,
- Stretch
+ Stretch,
+ Zoom1,
+ Zoom2
+ }
+
+ public enum EGeneralAlignment
+ {
+ Middle,
+ Start,
+ End
}
public enum EAlignment
diff --git a/VocaluxeLib/Extensions.cs b/VocaluxeLib/Extensions.cs
index ae3f9c4c..12f06137 100644
--- a/VocaluxeLib/Extensions.cs
+++ b/VocaluxeLib/Extensions.cs
@@ -17,6 +17,9 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics;
+using System.Drawing;
+using System.Drawing.Drawing2D;
using System.Globalization;
using System.Linq;
using System.Text.RegularExpressions;
@@ -25,6 +28,60 @@ namespace VocaluxeLib
{
public static class CExtensions
{
+ ///
+ /// Makes sure val is between min and max
+ /// Asserts that min<=max
+ ///
+ ///
+ ///
+ ///
+ ///
+ /// Clamped value
+ public static T Clamp(this T val, T min, T max) where T : IComparable
+ {
+ Debug.Assert(min.CompareTo(max) <= 0);
+ if (val.CompareTo(min) < 0)
+ return min;
+ if (val.CompareTo(max) > 0)
+ return max;
+ return val;
+ }
+
+ ///
+ /// Makes sure val is between min and max but also handles the case where min>max
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ /// Clamped value
+ public static T Clamp(this T val, T min, T max, bool preferMin) where T : IComparable
+ {
+ if (min.CompareTo(max) > 0)
+ {
+ if (preferMin)
+ max = min;
+ else
+ min = max;
+ }
+ return Clamp(val, min, max);
+ }
+
+ ///
+ /// Checks if the value is in the specified range
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static bool IsInRange(this T val, T min, T max) where T : IComparable
+ {
+ Debug.Assert(min.CompareTo(max) <= 0);
+ return min.CompareTo(val) <= 0 && max.CompareTo(val) >= 0;
+ }
+
///
/// Resizes the given list to the given size. Removes elements or adds default values
///
@@ -120,5 +177,47 @@ namespace VocaluxeLib
rect.H + 2 * rect.H * (scale - 1f),
rect.Z);
}
+
+ public static Size GetSize(this Bitmap bmp)
+ {
+ return new Size(bmp.Width, bmp.Height);
+ }
+
+ public static Rectangle GetRect(this Bitmap bmp)
+ {
+ return Rectangle.Round(new Rectangle(0, 0, bmp.Width, bmp.Height));
+ }
+
+ ///
+ /// Resizes the bitmap to the given size creating a copy of it
+ ///
+ ///
+ ///
+ /// Resized bitmap or null on error
+ public static Bitmap Resize(this Bitmap bmp, Size newSize)
+ {
+ Bitmap result = null;
+ try
+ {
+ //Create a new Bitmap with the new sizes
+ result = new Bitmap(newSize.Width, newSize.Height);
+ //Scale the texture
+ using (Graphics g = Graphics.FromImage(result))
+ {
+ g.InterpolationMode = InterpolationMode.HighQualityBicubic;
+ g.SmoothingMode = SmoothingMode.HighQuality;
+ g.DrawImage(bmp, result.GetRect());
+ }
+ }
+ catch (Exception)
+ {
+ if (result != null)
+ {
+ result.Dispose();
+ result = null;
+ }
+ }
+ return result;
+ }
}
}
\ No newline at end of file
diff --git a/VocaluxeLib/IBasic.cs b/VocaluxeLib/IBasic.cs
index 3e26bb56..f58ec27b 100644
--- a/VocaluxeLib/IBasic.cs
+++ b/VocaluxeLib/IBasic.cs
@@ -62,6 +62,8 @@ namespace VocaluxeLib
/// Get the uniform settings for writing XML files. ALWAYS use this!
///
XmlWriterSettings GetXMLSettings();
+
+ bool GetLoadOldThemeFiles();
}
public interface ISettings
@@ -99,8 +101,8 @@ namespace VocaluxeLib
{
string GetThemeScreensPath(int partyModeID);
int GetSkinIndex(int partyModeID);
- CTexture GetSkinTexture(string textureName, int partyModeID);
- CTexture GetSkinVideoTexture(string videoName, int partyModeID);
+ CTextureRef GetSkinTexture(string textureName, int partyModeID);
+ CTextureRef GetSkinVideoTexture(string videoName, int partyModeID);
void SkinVideoResume(string videoName, int partyModeID);
void SkinVideoPause(string videoName, int partyModeID);
@@ -131,26 +133,27 @@ namespace VocaluxeLib
void Play();
void Stop();
- CTexture GetVideoTexture();
+ CTextureRef GetVideoTexture();
void LoadPreview(CSong song, float start = 0f);
void PlayPreview(float start = -1f);
void StopPreview();
-
}
public interface IDrawing
{
- void DrawTexture(CTexture texture, SRectF rect);
- void DrawTexture(CTexture texture, SRectF rect, SColorF color);
- void DrawTexture(CTexture texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false);
- void DrawTextureReflection(CTexture texture, SRectF rect, SColorF color, SRectF bounds, float reflectionSpace, float reflectionHeight);
+ void DrawTexture(CTextureRef texture, SRectF rect);
+ void DrawTexture(CTextureRef texture, SRectF rect, SColorF color);
+ void DrawTexture(CTextureRef texture, SRectF rect, SColorF color, SRectF bounds, bool mirrored = false);
+ void DrawTexture(CTextureRef textureRef, SRectF bounds, EAspect aspect);
+ void DrawTexture(CTextureRef textureRef, SRectF bounds, EAspect aspect, SColorF color);
+ void DrawTextureReflection(CTextureRef texture, SRectF rect, SColorF color, float reflectionSpace, float reflectionHeight);
- CTexture AddTexture(string fileName);
- void RemoveTexture(ref CTexture texture);
+ CTextureRef AddTexture(string fileName);
+ void RemoveTexture(ref CTextureRef texture);
- void DrawColor(SColorF color, SRectF rect);
- void DrawColorReflection(SColorF color, SRectF rect, float space, float height);
+ void DrawRect(SColorF color, SRectF rect);
+ void DrawRectReflection(SColorF color, SRectF rect, float space, float height);
}
public interface IGraphics
@@ -220,7 +223,7 @@ namespace VocaluxeLib
CProfile[] GetProfiles();
EGameDifficulty GetDifficulty(int profileID);
string GetPlayerName(int profileID, int playerNum = 0);
- CTexture GetAvatar(int profileID);
+ CTextureRef GetAvatar(int profileID);
CAvatar GetAvatarByFilename(string fileName);
bool IsProfileIDValid(int profileID);
bool IsGuest(int profileID);
@@ -261,7 +264,7 @@ namespace VocaluxeLib
{
int Load(string videoFileName);
bool Skip(int streamID, float startPosition, float videoGap);
- bool GetFrame(int streamID, ref CTexture videoTexture, float time, out float videoTime);
+ bool GetFrame(int streamID, ref CTextureRef videoTexture, float time, out float videoTime);
bool IsFinished(int streamID);
bool Close(int streamID);
void SetLoop(int streamID, bool loop = true);
@@ -286,12 +289,12 @@ namespace VocaluxeLib
public interface ICover
{
- CTexture GetNoCover();
+ CTextureRef GetNoCover();
}
public interface IDataBase
{
- bool GetCover(string fileName, ref CTexture texture, int coverSize);
+ bool GetCover(string fileName, ref CTextureRef texture, int coverSize);
bool GetDataBaseSongInfos(string artist, string title, out int numPlayed, out DateTime dateAdded, out int highscoreID);
}
@@ -330,10 +333,9 @@ namespace VocaluxeLib
void Load(CSong song, float start = 0f);
void Stop();
void TogglePause();
- CTexture GetCover();
- CTexture GetVideoTexture();
+ CTextureRef GetCover();
+ CTextureRef GetVideoTexture();
bool IsPlaying();
float GetLength();
-
}
}
\ No newline at end of file
diff --git a/VocaluxeLib/Menu/CBackground.cs b/VocaluxeLib/Menu/CBackground.cs
index 67ba0755..9faeb4c9 100644
--- a/VocaluxeLib/Menu/CBackground.cs
+++ b/VocaluxeLib/Menu/CBackground.cs
@@ -16,8 +16,8 @@
#endregion
using System;
-using System.Drawing;
using System.Xml;
+using System.Xml.Serialization;
using System.Diagnostics;
using System.Collections.Generic;
using VocaluxeLib.Draw;
@@ -33,18 +33,20 @@ namespace VocaluxeLib.Menu
Video
}
- struct SThemeBackground
+ [XmlType("Background")]
+ public struct SThemeBackground
{
+ [XmlAttributeAttribute(AttributeName = "Name")]
public string Name;
-
+ [XmlElement("Type")]
public EBackgroundTypes Type;
-
+ [XmlArray]
public List SlideShowTextures;
-
+ [XmlElement("Video")]
public string VideoName;
+ [XmlElement("Skin")]
public string TextureName;
-
- public string ColorName;
+ public SThemeColor Color;
}
public class CBackground : IMenuElement
@@ -55,9 +57,13 @@ namespace VocaluxeLib.Menu
private int _SlideShowCurrent;
private readonly Stopwatch _SlideShowTimer = new Stopwatch();
- private readonly List _SlideShowTextures = new List();
+ private readonly List _SlideShowTextures = new List();
public SColorF Color;
+ public bool ThemeLoaded
+ {
+ get { return _ThemeLoaded; }
+ }
public string GetThemeName()
{
@@ -73,6 +79,14 @@ namespace VocaluxeLib.Menu
Color = new SColorF(0f, 0f, 0f, 1f);
}
+
+ public CBackground(SThemeBackground theme, int partyModeID)
+ {
+ _Theme = theme;
+ _PartyModeID = partyModeID;
+
+ LoadTextures();
+ }
#endregion Constructors
#region public
@@ -87,8 +101,8 @@ namespace VocaluxeLib.Menu
bool tex = xmlReader.GetValue(item + "/Skin", out _Theme.TextureName, String.Empty);
_ThemeLoaded &= vid || tex || _Theme.Type == EBackgroundTypes.None;
- if (xmlReader.GetValue(item + "/Color", out _Theme.ColorName, String.Empty))
- _ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out Color);
+ if (xmlReader.GetValue(item + "/Color", out _Theme.Color.Name, String.Empty))
+ _ThemeLoaded &= CBase.Theme.GetColor(_Theme.Color.Name, skinIndex, out Color);
else
{
bool success = true;
@@ -101,6 +115,8 @@ namespace VocaluxeLib.Menu
_ThemeLoaded &= success;
}
+ _Theme.Color.Color = new SColorF(Color);
+
int i = 1;
while (xmlReader.ItemExists(item + "/SlideShow" + i))
@@ -120,46 +136,6 @@ namespace VocaluxeLib.Menu
return _ThemeLoaded;
}
- public bool SaveTheme(XmlWriter writer)
- {
- if (_ThemeLoaded)
- {
- writer.WriteStartElement(_Theme.Name);
-
- writer.WriteComment(": Background type: " + CHelper.ListStrings(Enum.GetNames(typeof(EBackgroundTypes))));
- writer.WriteElementString("Type", Enum.GetName(typeof(EBackgroundTypes), _Theme.Type));
-
- writer.WriteComment("