Merge branch 'develop' of https://github.com/Vocaluxe/Vocaluxe into wiimote
This commit is contained in:
commit
33d3631754
64 files changed
+2097
-124
No files matched your search
Binary file not shown.
Binary file not shown.
@@ -18,6 +18,7 @@
|
||||
<TR_DEBUG_TEXTURES>Textures</TR_DEBUG_TEXTURES>
|
||||
<TR_DEBUG_TONE_ABS>ToneAbs</TR_DEBUG_TONE_ABS>
|
||||
<TR_DEBUG_MAX_VOLUME>Max. Volume</TR_DEBUG_MAX_VOLUME>
|
||||
<TR_DEBUG_SONGS>Geladene Songs</TR_DEBUG_SONGS>
|
||||
<TR_DEBUG_MOUSE>Maus</TR_DEBUG_MOUSE>
|
||||
<!--General: Game-Modes-->
|
||||
<TR_GAMEMODE_NORMAL>Normal</TR_GAMEMODE_NORMAL>
|
||||
@@ -159,10 +160,14 @@
|
||||
<TR_SCREENPROFILES_ACTIVE>Aktiv</TR_SCREENPROFILES_ACTIVE>
|
||||
<TR_SCREENPROFILES_BUTTON_NEW>Neu</TR_SCREENPROFILES_BUTTON_NEW>
|
||||
<TR_SCREENPROFILES_BUTTON_DELETE>Löschen</TR_SCREENPROFILES_BUTTON_DELETE>
|
||||
<TR_SCREENPROFILES_BUTTON_TAKESNAPSHOT>Snapshot</TR_SCREENPROFILES_BUTTON_TAKESNAPSHOT>
|
||||
<TR_SCREENPROFILES_BUTTON_SAVESNAPSHOT>Snapshot speichern</TR_SCREENPROFILES_BUTTON_SAVESNAPSHOT>
|
||||
<TR_SCREENPROFILES_BUTTON_DISCARDSNAPSHOT>Snapshot löschen</TR_SCREENPROFILES_BUTTON_DISCARDSNAPSHOT>
|
||||
<TR_SCREENPROFILES_BUTTON_WEBCAM>Webcam</TR_SCREENPROFILES_BUTTON_WEBCAM>
|
||||
<!--ScreenOptions-->
|
||||
<TR_SCREENO_OPTIONS>Einstellungen</TR_SCREENO_OPTIONS>
|
||||
<TR_SCREENO_BUTTON_GAME>Spiel</TR_SCREENO_BUTTON_GAME>
|
||||
<TR_SCRENNO_BUTTON_SOUND>Sound</TR_SCRENNO_BUTTON_SOUND>
|
||||
<TR_SCREENO_BUTTON_SOUND>Sound</TR_SCREENO_BUTTON_SOUND>
|
||||
<TR_SCREENO_BUTTON_RECORD>Aufnahme</TR_SCREENO_BUTTON_RECORD>
|
||||
<TR_SCREENO_BUTTON_VIDEO>Video</TR_SCREENO_BUTTON_VIDEO>
|
||||
<TR_SCREENO_BUTTON_LYRICS>Songtext</TR_SCREENO_BUTTON_LYRICS>
|
||||
@@ -190,6 +195,8 @@
|
||||
<TR_SCREENOSOUND_BACKGROUNDMUSIC>Hintergrundmusik</TR_SCREENOSOUND_BACKGROUNDMUSIC>
|
||||
<TR_SCREENOSOUND_BACKGROUNDMUSICVOLUME>Hintergrundmusiklautstärke</TR_SCREENOSOUND_BACKGROUNDMUSICVOLUME>
|
||||
<TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE>Hintergrundmusikquelle</TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE>
|
||||
<TR_SCREENOSOUND_PREVIEWMUSICVOLUME>Vorschaulautstärke</TR_SCREENOSOUND_PREVIEWMUSICVOLUME>
|
||||
<TR_SCREENOSOUND_GAMEMUSICVOLUME>Spiellautstärke</TR_SCREENOSOUND_GAMEMUSICVOLUME>
|
||||
<!--ScreenOptionsTheme-->
|
||||
<TR_SCREENOTHEME_OPTIONS>Designeinstellungen</TR_SCREENOTHEME_OPTIONS>
|
||||
<TR_SCREENOTHEME_THEME>Design</TR_SCREENOTHEME_THEME>
|
||||
@@ -210,5 +217,9 @@
|
||||
<TR_SCREENOVIDEO_VIDEOPREVIEW>Video-Vorschau</TR_SCREENOVIDEO_VIDEOPREVIEW>
|
||||
<TR_SCREENOVIDEO_VIDEOINSONGS>Videos während des Singens</TR_SCREENOVIDEO_VIDEOINSONGS>
|
||||
<TR_SCREENO_VIDEO_VIDEOSTOBACKGROUND>Videos der Hintergrundmusik</TR_SCREENO_VIDEO_VIDEOSTOBACKGROUND>
|
||||
<TR_SCREENO_VIDEO_WEBCAMDEVICES>Webcams</TR_SCREENO_VIDEO_WEBCAMDEVICES>
|
||||
<TR_SCREENO_VIDEO_WEBCAMCAPABILITIES>Webcamfähigkeiten</TR_SCREENO_VIDEO_WEBCAMCAPABILITIES>
|
||||
<!--ScreenPopupVolumeControl-->
|
||||
<TR_SCREENPVOLUMECONTROL_VOLUME>Lautstärke</TR_SCREENPVOLUMECONTROL_VOLUME>
|
||||
</Texts>
|
||||
</root>
|
||||
@@ -18,6 +18,7 @@
|
||||
<TR_DEBUG_TEXTURES>Textures</TR_DEBUG_TEXTURES>
|
||||
<TR_DEBUG_TONE_ABS>ToneAbs</TR_DEBUG_TONE_ABS>
|
||||
<TR_DEBUG_MAX_VOLUME>Max Volume</TR_DEBUG_MAX_VOLUME>
|
||||
<TR_DEBUG_SONGS>Loaded songs</TR_DEBUG_SONGS>
|
||||
<TR_DEBUG_MOUSE>Mouse</TR_DEBUG_MOUSE>
|
||||
<!--General: Game-Modes-->
|
||||
<TR_GAMEMODE_NORMAL>Normal</TR_GAMEMODE_NORMAL>
|
||||
@@ -159,10 +160,14 @@
|
||||
<TR_SCREENPROFILES_ACTIVE>Active</TR_SCREENPROFILES_ACTIVE>
|
||||
<TR_SCREENPROFILES_BUTTON_NEW>New</TR_SCREENPROFILES_BUTTON_NEW>
|
||||
<TR_SCREENPROFILES_BUTTON_DELETE>Delete</TR_SCREENPROFILES_BUTTON_DELETE>
|
||||
<TR_SCREENPROFILES_BUTTON_TAKESNAPSHOT>Take Snapshot</TR_SCREENPROFILES_BUTTON_TAKESNAPSHOT>
|
||||
<TR_SCREENPROFILES_BUTTON_SAVESNAPSHOT>Save Snapshot</TR_SCREENPROFILES_BUTTON_SAVESNAPSHOT>
|
||||
<TR_SCREENPROFILES_BUTTON_DISCARDSNAPSHOT>Delete Snapshot</TR_SCREENPROFILES_BUTTON_DISCARDSNAPSHOT>
|
||||
<TR_SCREENPROFILES_BUTTON_WEBCAM>Webcam</TR_SCREENPROFILES_BUTTON_WEBCAM>
|
||||
<!--ScreenOptions-->
|
||||
<TR_SCREENO_OPTIONS>Menu Options</TR_SCREENO_OPTIONS>
|
||||
<TR_SCREENO_BUTTON_GAME>Game</TR_SCREENO_BUTTON_GAME>
|
||||
<TR_SCRENNO_BUTTON_SOUND>Sound</TR_SCRENNO_BUTTON_SOUND>
|
||||
<TR_SCREENO_BUTTON_SOUND>Sound</TR_SCREENO_BUTTON_SOUND>
|
||||
<TR_SCREENO_BUTTON_RECORD>Record</TR_SCREENO_BUTTON_RECORD>
|
||||
<TR_SCREENO_BUTTON_VIDEO>Video</TR_SCREENO_BUTTON_VIDEO>
|
||||
<TR_SCREENO_BUTTON_LYRICS>Lyrics</TR_SCREENO_BUTTON_LYRICS>
|
||||
@@ -190,6 +195,8 @@
|
||||
<TR_SCREENOSOUND_BACKGROUNDMUSIC>Background Music</TR_SCREENOSOUND_BACKGROUNDMUSIC>
|
||||
<TR_SCREENOSOUND_BACKGROUNDMUSICVOLUME>Background Music Volume</TR_SCREENOSOUND_BACKGROUNDMUSICVOLUME>
|
||||
<TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE>Background Music Source</TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE>
|
||||
<TR_SCREENOSOUND_PREVIEWMUSICVOLUME>Preview Music Volume</TR_SCREENOSOUND_PREVIEWMUSICVOLUME>
|
||||
<TR_SCREENOSOUND_GAMEMUSICVOLUME>Game Music Volume</TR_SCREENOSOUND_GAMEMUSICVOLUME>
|
||||
<!--ScreenOptionsTheme-->
|
||||
<TR_SCREENOTHEME_OPTIONS>Theme Options</TR_SCREENOTHEME_OPTIONS>
|
||||
<TR_SCREENOTHEME_THEME>Theme</TR_SCREENOTHEME_THEME>
|
||||
@@ -210,5 +217,9 @@
|
||||
<TR_SCREENOVIDEO_VIDEOPREVIEW>Video Preview</TR_SCREENOVIDEO_VIDEOPREVIEW>
|
||||
<TR_SCREENOVIDEO_VIDEOINSONGS>Videos while singing</TR_SCREENOVIDEO_VIDEOINSONGS>
|
||||
<TR_SCREENO_VIDEO_VIDEOSTOBACKGROUND>Display current backgroundmusic video</TR_SCREENO_VIDEO_VIDEOSTOBACKGROUND>
|
||||
<TR_SCREENO_VIDEO_WEBCAMDEVICES>Webcams</TR_SCREENO_VIDEO_WEBCAMDEVICES>
|
||||
<TR_SCREENO_VIDEO_WEBCAMCAPABILITIES>Webcamcapabilities</TR_SCREENO_VIDEO_WEBCAMCAPABILITIES>
|
||||
<!--ScreenPopupVolumeControl-->
|
||||
<TR_SCREENPVOLUMECONTROL_VOLUME>Volume</TR_SCREENPVOLUMECONTROL_VOLUME>
|
||||
</Texts>
|
||||
</root>
|
||||
@@ -18,11 +18,13 @@
|
||||
<TR_DEBUG_TEXTURES>Textures</TR_DEBUG_TEXTURES>
|
||||
<TR_DEBUG_TONE_ABS>ToneAbs</TR_DEBUG_TONE_ABS>
|
||||
<TR_DEBUG_MAX_VOLUME>Volume Max</TR_DEBUG_MAX_VOLUME>
|
||||
<TR_DEBUG_SONGS>Chansons chargées</TR_DEBUG_SONGS>
|
||||
<TR_DEBUG_MOUSE>Souris</TR_DEBUG_MOUSE>
|
||||
<!--General: Game-Modes-->
|
||||
<TR_GAMEMODE_NORMAL>Normal</TR_GAMEMODE_NORMAL>
|
||||
<TR_GAMEMODE_DUET>Duo</TR_GAMEMODE_DUET>
|
||||
<TR_GAMEMODE_MEDLEY>Medley</TR_GAMEMODE_MEDLEY>
|
||||
<TR_GAMEMODE_SHORTSONG>Version courte</TR_GAMEMODE_SHORTSONG>
|
||||
<!--General: Ratings-->
|
||||
<TR_RATING_VOCAL_HERO>Vocal Hero</TR_RATING_VOCAL_HERO>
|
||||
<TR_RATING_SUPERSTAR>Superstar</TR_RATING_SUPERSTAR>
|
||||
@@ -88,6 +90,10 @@
|
||||
<TR_CONFIG_OWN_MUSIC>Musique personnelle et Musique de fond</TR_CONFIG_OWN_MUSIC>
|
||||
<TR_CONFIG_NO_OWN_MUSIC>Pas de Musique personnelle</TR_CONFIG_NO_OWN_MUSIC>
|
||||
<TR_CONFIG_ONLY_OWN_MUSIC>Seulement la Musique personnelle</TR_CONFIG_ONLY_OWN_MUSIC>
|
||||
<!--Config: FadePlayerInfo-->
|
||||
<TR_CONFIG_FADEPLAYERINFO_ALL>Tout</TR_CONFIG_FADEPLAYERINFO_ALL>
|
||||
<TR_CONFIG_FADEPLAYERINFO_INFO>Seulement noms et avatars</TR_CONFIG_FADEPLAYERINFO_INFO>
|
||||
<TR_CONFIG_FADEPLAYERINFO_OFF>Rien</TR_CONFIG_FADEPLAYERINFO_OFF>
|
||||
<!--Screens-->
|
||||
<!--ScreenLoad-->
|
||||
<TR_SCREENLOAD_LOADING>Chargement</TR_SCREENLOAD_LOADING>
|
||||
@@ -114,10 +120,19 @@
|
||||
<TR_SCREENNAMES_WARNING_PROFILES_PL>Attention: Aucun profils n'est assigné aux joueurs %v!</TR_SCREENNAMES_WARNING_PROFILES_PL>
|
||||
<!--ScreenSong-->
|
||||
<TR_SCREENSONG_MENU>Choix de la chanson</TR_SCREENSONG_MENU>
|
||||
<TR_SCREENSONG_BUTTON_SING>Chanter</TR_SCREENSONG_BUTTON_SING>
|
||||
<TR_SCREENSONG_BUTTON_PLAYLIST>Ajouter à la playlist</TR_SCREENSONG_BUTTON_PLAYLIST>
|
||||
<TR_SCREENSONG_BUTTON_CANCEL>Annuler</TR_SCREENSONG_BUTTON_CANCEL>
|
||||
<TR_SCREENSONG_BUTTON_RANDOM>Choisir une chanson aléatoire</TR_SCREENSONG_BUTTON_RANDOM>
|
||||
<TR_SCREENSONG_BUTTON_RANDOMCAT>Choisir une catégorie aléatoire</TR_SCREENSONG_BUTTON_RANDOMCAT>
|
||||
<TR_SCREENSONG_BUTTON_SINGALL>Chanter toutes les chansons</TR_SCREENSONG_BUTTON_SINGALL>
|
||||
<TR_SCREENSONG_BUTTON_SINGALLVISIBLE>Chanter toutes les chansons visibles</TR_SCREENSONG_BUTTON_SINGALLVISIBLE>
|
||||
<TR_SCREENSONG_BUTTON_OPENPLAYLIST>Ouvrir une playlist</TR_SCREENSONG_BUTTON_OPENPLAYLIST>
|
||||
<TR_SCREENSONG_NEWPLAYLIST>Nouvelle playlist</TR_SCREENSONG_NEWPLAYLIST>
|
||||
<TR_SCREENSONG_SONGOPTIONS>Option de la chanson</TR_SCREENSONG_SONGOPTIONS>
|
||||
<TR_SCREENSONG_SEARCH>Rechercher:</TR_SCREENSONG_SEARCH>
|
||||
<TR_SCREENSONG_NOLANGUAGE>Pas de Langue</TR_SCREENSONG_NOLANGUAGE>
|
||||
<TR_SCREENSONG_NOYEAR>Pas d'Année</TR_SCREENSONG_NOYEAR>
|
||||
<TR_SCREENSONG_NEWPLAYLIST>TODO: New Playlist</TR_SCREENSONG_NEWPLAYLIST>
|
||||
<TR_SCREENSONG_NOGENRE>Pas de Genre</TR_SCREENSONG_NOGENRE>
|
||||
<TR_SCREENSONG_NOEDITION>Pas d'Edition</TR_SCREENSONG_NOEDITION>
|
||||
<TR_SCREENSONG_ALLSONGS>Toutes les chansons</TR_SCREENSONG_ALLSONGS>
|
||||
@@ -126,12 +141,14 @@
|
||||
<!--ScreenSing-->
|
||||
<TR_SCREENSING_PAUSE>Pause</TR_SCREENSING_PAUSE>
|
||||
<TR_SCREENSING_BUTTON_CANCEL>Arrêter de chanter</TR_SCREENSING_BUTTON_CANCEL>
|
||||
<TR_SCREENSING_BUTTON_CONTINUE>Continuer</TR_SCREENSING_BUTTON_CONTINUE>
|
||||
<TR_SCREENSING_BUTTON_CONTINUE>Continuer</TR_SCREENSING_BUTTON_CONTINUE>
|
||||
<TR_SCREENSING_BUTTON_SKIP>Passer cette chanson</TR_SCREENSING_BUTTON_SKIP>
|
||||
<!--ScreenScore-->
|
||||
<TR_SCREENSCORE_SCORES>Scores</TR_SCREENSCORE_SCORES>
|
||||
<TR_SCREENSCORE_RATING>Note</TR_SCREENSCORE_RATING>
|
||||
<TR_SCREENSCORE_POINTS>Points</TR_SCREENSCORE_POINTS>
|
||||
<TR_SCREENSCORE_GAMEDIFFICULTY>Difficulté</TR_SCREENSCORE_GAMEDIFFICULTY>
|
||||
<TR_SCREENSCORE_OVERALLSCORE>Score total</TR_SCREENSCORE_OVERALLSCORE>
|
||||
<!--ScreenHighscore-->
|
||||
<TR_SCREENHIGHSCORE_HIGHSCORE>Meilleurs Scores</TR_SCREENHIGHSCORE_HIGHSCORE>
|
||||
<!--ScreenProfiles-->
|
||||
@@ -143,12 +160,17 @@
|
||||
<TR_SCREENPROFILES_ACTIVE>Actif</TR_SCREENPROFILES_ACTIVE>
|
||||
<TR_SCREENPROFILES_BUTTON_NEW>Nouveau</TR_SCREENPROFILES_BUTTON_NEW>
|
||||
<TR_SCREENPROFILES_BUTTON_DELETE>Supprimer</TR_SCREENPROFILES_BUTTON_DELETE>
|
||||
<TR_SCREENPROFILES_BUTTON_TAKESNAPSHOT>Prendre une photo</TR_SCREENPROFILES_BUTTON_TAKESNAPSHOT>
|
||||
<TR_SCREENPROFILES_BUTTON_SAVESNAPSHOT>Sauvegarder la photo</TR_SCREENPROFILES_BUTTON_SAVESNAPSHOT>
|
||||
<TR_SCREENPROFILES_BUTTON_DISCARDSNAPSHOT>Supprimer la photo</TR_SCREENPROFILES_BUTTON_DISCARDSNAPSHOT>
|
||||
<TR_SCREENPROFILES_BUTTON_WEBCAM>Webcam</TR_SCREENPROFILES_BUTTON_WEBCAM>
|
||||
<!--ScreenOptions-->
|
||||
<TR_SCREENO_OPTIONS>Menu des Options</TR_SCREENO_OPTIONS>
|
||||
<TR_SCREENO_BUTTON_GAME>Jeu</TR_SCREENO_BUTTON_GAME>
|
||||
<TR_SCRENNO_BUTTON_SOUND>Son</TR_SCRENNO_BUTTON_SOUND>
|
||||
<TR_SCREENO_BUTTON_SOUND>Son</TR_SCREENO_BUTTON_SOUND>
|
||||
<TR_SCREENO_BUTTON_RECORD>Enregistrement</TR_SCREENO_BUTTON_RECORD>
|
||||
<TR_SCREENO_BUTTON_VIDEO>Vidéo</TR_SCREENO_BUTTON_VIDEO>
|
||||
<TR_SCREENO_BUTTON_LYRICS>Paroles</TR_SCREENO_BUTTON_LYRICS>
|
||||
<TR_SCREENO_BUTTON_THEME>Thème</TR_SCREENO_BUTTON_THEME>
|
||||
<!--ScreenOptionsGame-->
|
||||
<TR_SCREENOGAME_OPTIONS>Options du Jeu</TR_SCREENOGAME_OPTIONS>
|
||||
@@ -173,6 +195,8 @@
|
||||
<TR_SCREENOSOUND_BACKGROUNDMUSIC>Musique de fond</TR_SCREENOSOUND_BACKGROUNDMUSIC>
|
||||
<TR_SCREENOSOUND_BACKGROUNDMUSICVOLUME>Volume de la Musique de fond</TR_SCREENOSOUND_BACKGROUNDMUSICVOLUME>
|
||||
<TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE>Source de la Musique de fond</TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE>
|
||||
<TR_SCREENOSOUND_PREVIEWMUSICVOLUME>Volume de la musique de prévisualisation</TR_SCREENOSOUND_PREVIEWMUSICVOLUME>
|
||||
<TR_SCREENOSOUND_GAMEMUSICVOLUME>Volume de la musique du jeu</TR_SCREENOSOUND_GAMEMUSICVOLUME>
|
||||
<!--ScreenOptionsTheme-->
|
||||
<TR_SCREENOTHEME_OPTIONS>Options du Thème</TR_SCREENOTHEME_OPTIONS>
|
||||
<TR_SCREENOTHEME_THEME>Thème</TR_SCREENOTHEME_THEME>
|
||||
@@ -181,12 +205,21 @@
|
||||
<TR_SCREENOTHEME_NOTELINES>Afficher les portées</TR_SCREENOTHEME_NOTELINES>
|
||||
<TR_SCREENOTHEME_TONEHELPER>Afficher l'aide pour la Tonalité</TR_SCREENOTHEME_TONEHELPER>
|
||||
<TR_SCREENOTHEME_TIMERLOOK>Apparence du Minuteur</TR_SCREENOTHEME_TIMERLOOK>
|
||||
<TR_SCREENOTHEME_FADEINFO>Dégradé des info des joueurs</TR_SCREENOTHEME_FADEINFO>
|
||||
<TR_SCREENOTHEME_COVERLOADING>Chargement des couvertures</TR_SCREENOTHEME_COVERLOADING>
|
||||
<!--ScreenOptionsLyrics-->
|
||||
<TR_SCREENOLYRICS_OPTIONS>Options des paroles</TR_SCREENOLYRICS_OPTIONS>
|
||||
<TR_SCREENOLYRICS_STYLE>Style</TR_SCREENOLYRICS_STYLE>
|
||||
<TR_SCREENOLYRICS_ONTOP>Paroles en haut</TR_SCREENOLYRICS_ONTOP>
|
||||
<!--ScreenOptionsVideo-->
|
||||
<TR_SCREENOVIDEO_OPTIONS>Options Vidéo</TR_SCREENOVIDEO_OPTIONS>
|
||||
<TR_SCREENOVIDEO_VIDEOBACKGROUNDS>Vidéo en arrière plan</TR_SCREENOVIDEO_VIDEOBACKGROUNDS>
|
||||
<TR_SCREENOVIDEO_VIDEOPREVIEW>Prévisualisation des Vidéos</TR_SCREENOVIDEO_VIDEOPREVIEW>
|
||||
<TR_SCREENOVIDEO_VIDEOINSONGS>Vidéos pendant que l'on chante</TR_SCREENOVIDEO_VIDEOINSONGS>
|
||||
<TR_SCREENO_VIDEO_VIDEOSTOBACKGROUND>Afficher la vidéo de la musique de fond</TR_SCREENO_VIDEO_VIDEOSTOBACKGROUND>
|
||||
<TR_SCREENO_VIDEO_WEBCAMDEVICES>Webcams</TR_SCREENO_VIDEO_WEBCAMDEVICES>
|
||||
<TR_SCREENO_VIDEO_WEBCAMCAPABILITIES>Webcamcapabilities</TR_SCREENO_VIDEO_WEBCAMCAPABILITIES>
|
||||
<!--ScreenPopupVolumeControl-->
|
||||
<TR_SCREENPVOLUMECONTROL_VOLUME>Volume</TR_SCREENPVOLUMECONTROL_VOLUME>
|
||||
</Texts>
|
||||
</root>
|
||||
@@ -146,7 +146,7 @@
|
||||
<!--ScreenOptions-->
|
||||
<TR_SCREENO_OPTIONS>Opciones del Menú</TR_SCREENO_OPTIONS>
|
||||
<TR_SCREENO_BUTTON_GAME>Juego</TR_SCREENO_BUTTON_GAME>
|
||||
<TR_SCRENNO_BUTTON_SOUND>Sonido</TR_SCRENNO_BUTTON_SOUND>
|
||||
<TR_SCREENO_BUTTON_SOUND>Sonido</TR_SCREENO_BUTTON_SOUND>
|
||||
<TR_SCREENO_BUTTON_RECORD>Grabación</TR_SCREENO_BUTTON_RECORD>
|
||||
<TR_SCREENO_BUTTON_VIDEO>Video</TR_SCREENO_BUTTON_VIDEO>
|
||||
<TR_SCREENO_BUTTON_THEME>Estilos</TR_SCREENO_BUTTON_THEME>
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 3.0 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 6.2 KiB |
@@ -155,7 +155,7 @@
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCRENNO_BUTTON_SOUND</Text>
|
||||
<Text>TR_SCREENO_BUTTON_SOUND</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
@@ -401,4 +401,4 @@
|
||||
</SReflection>
|
||||
</ButtonOptionsTheme>
|
||||
</ScreenOptions>
|
||||
</root>
|
||||
</root>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<ScreenOptionsSound>
|
||||
<ScreenVersion>2</ScreenVersion>
|
||||
<ScreenVersion>3</ScreenVersion>
|
||||
<Background1>
|
||||
<!--<Type>: Background type: None, Color, Texture, Video-->
|
||||
<Type>Video</Type>
|
||||
@@ -145,6 +145,64 @@
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</Text4>
|
||||
<Text5>
|
||||
<!--<X>, <Y>: Text position-->
|
||||
<X>75</X>
|
||||
<Y>285</Y>
|
||||
<!--<Z>: Text position-->
|
||||
<Z>0,00</Z>
|
||||
<!--<H>: Text height-->
|
||||
<H>32</H>
|
||||
<!--<MaxW>: Maximum text width (if exists)-->
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>StaticColor</Color>
|
||||
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>TextSColor</SColor>
|
||||
<!--<Align>: Text align horizontal: Left, Center, Right-->
|
||||
<Align>Left</Align>
|
||||
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
|
||||
<HAlign>Center</HAlign>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOSOUND_PREVIEWMUSICVOLUME</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</Text5>
|
||||
<Text6>
|
||||
<!--<X>, <Y>: Text position-->
|
||||
<X>75</X>
|
||||
<Y>345</Y>
|
||||
<!--<Z>: Text position-->
|
||||
<Z>0,00</Z>
|
||||
<!--<H>: Text height-->
|
||||
<H>32</H>
|
||||
<!--<MaxW>: Maximum text width (if exists)-->
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>StaticColor</Color>
|
||||
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>TextSColor</SColor>
|
||||
<!--<Align>: Text align horizontal: Left, Center, Right-->
|
||||
<Align>Left</Align>
|
||||
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
|
||||
<HAlign>Center</HAlign>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENOSOUND_GAMEMUSICVOLUME</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</Text6>
|
||||
<ButtonExit>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Button</Skin>
|
||||
@@ -397,5 +455,135 @@
|
||||
<!--<NumVisible>: Number of visible elements in the slide-->
|
||||
<NumVisible>1</NumVisible>
|
||||
</SelectSlideBackgroundMusicSource>
|
||||
<SelectSlidePreviewMusicVolume>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Invisible</Skin>
|
||||
<!--<SkinArrowLeft>: Texture name of left arrow-->
|
||||
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
|
||||
<!--<SkinArrowRight>: Texture name of right arrow-->
|
||||
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
|
||||
<!--<SkinSelected>: Texture name for selected SelectSlide-->
|
||||
<SkinSelected>SelectSlide</SkinSelected>
|
||||
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
|
||||
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
|
||||
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
|
||||
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
|
||||
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
|
||||
<SkinHighlighted>SelectSlide</SkinHighlighted>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
|
||||
<X>500</X>
|
||||
<Y>280</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>700</W>
|
||||
<H>50</H>
|
||||
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
|
||||
<ArrowLeftX>505</ArrowLeftX>
|
||||
<ArrowLeftY>285</ArrowLeftY>
|
||||
<ArrowLeftZ>0,00</ArrowLeftZ>
|
||||
<ArrowLeftW>40</ArrowLeftW>
|
||||
<ArrowLeftH>40</ArrowLeftH>
|
||||
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
|
||||
<ArrowRightX>1170</ArrowRightX>
|
||||
<ArrowRightY>285</ArrowRightY>
|
||||
<ArrowRightZ>0,00</ArrowRightZ>
|
||||
<ArrowRightW>40</ArrowRightW>
|
||||
<ArrowRightH>40</ArrowRightH>
|
||||
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>SelectSlideColor</Color>
|
||||
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>SelectSlideSColor</SColor>
|
||||
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
|
||||
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
|
||||
<HColor>SelectSlideHColor</HColor>
|
||||
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
|
||||
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
|
||||
<ArrowColor>ArrowColor</ArrowColor>
|
||||
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
|
||||
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
|
||||
<ArrowSColor>ArrowSColor</ArrowSColor>
|
||||
<!--<TextColor>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
|
||||
<TextColor>TextColor</TextColor>
|
||||
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
|
||||
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
|
||||
<TextSColor>TextSColor</TextSColor>
|
||||
<!--<TextH>: Text height-->
|
||||
<TextH>32,00</TextH>
|
||||
<!--<TextMaxW>: Maximum text width (if exists)-->
|
||||
<TextMaxW>500,00</TextMaxW>
|
||||
<!--<TextFont>: Text font name-->
|
||||
<TextFont>Outline</TextFont>
|
||||
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<!--<NumVisible>: Number of visible elements in the slide-->
|
||||
<NumVisible>3</NumVisible>
|
||||
</SelectSlidePreviewMusicVolume>
|
||||
<SelectSlideGameMusicVolume>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Invisible</Skin>
|
||||
<!--<SkinArrowLeft>: Texture name of left arrow-->
|
||||
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
|
||||
<!--<SkinArrowRight>: Texture name of right arrow-->
|
||||
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
|
||||
<!--<SkinSelected>: Texture name for selected SelectSlide-->
|
||||
<SkinSelected>SelectSlide</SkinSelected>
|
||||
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
|
||||
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
|
||||
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
|
||||
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
|
||||
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
|
||||
<SkinHighlighted>SelectSlide</SkinHighlighted>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
|
||||
<X>500</X>
|
||||
<Y>340</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>700</W>
|
||||
<H>50</H>
|
||||
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
|
||||
<ArrowLeftX>505</ArrowLeftX>
|
||||
<ArrowLeftY>345</ArrowLeftY>
|
||||
<ArrowLeftZ>0,00</ArrowLeftZ>
|
||||
<ArrowLeftW>40</ArrowLeftW>
|
||||
<ArrowLeftH>40</ArrowLeftH>
|
||||
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
|
||||
<ArrowRightX>1170</ArrowRightX>
|
||||
<ArrowRightY>345</ArrowRightY>
|
||||
<ArrowRightZ>0,00</ArrowRightZ>
|
||||
<ArrowRightW>40</ArrowRightW>
|
||||
<ArrowRightH>40</ArrowRightH>
|
||||
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>SelectSlideColor</Color>
|
||||
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>SelectSlideSColor</SColor>
|
||||
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
|
||||
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
|
||||
<HColor>SelectSlideHColor</HColor>
|
||||
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
|
||||
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
|
||||
<ArrowColor>ArrowColor</ArrowColor>
|
||||
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
|
||||
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
|
||||
<ArrowSColor>ArrowSColor</ArrowSColor>
|
||||
<!--<TextColor>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
|
||||
<TextColor>TextColor</TextColor>
|
||||
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
|
||||
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
|
||||
<TextSColor>TextSColor</TextSColor>
|
||||
<!--<TextH>: Text height-->
|
||||
<TextH>32,00</TextH>
|
||||
<!--<TextMaxW>: Maximum text width (if exists)-->
|
||||
<TextMaxW>500,00</TextMaxW>
|
||||
<!--<TextFont>: Text font name-->
|
||||
<TextFont>Outline</TextFont>
|
||||
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<!--<NumVisible>: Number of visible elements in the slide-->
|
||||
<NumVisible>3</NumVisible>
|
||||
</SelectSlideGameMusicVolume>
|
||||
</ScreenOptionsSound>
|
||||
</root>
|
||||
</root>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<ScreenOptionsVideo>
|
||||
<ScreenVersion>2</ScreenVersion>
|
||||
<ScreenVersion>3</ScreenVersion>
|
||||
<Background1>
|
||||
<!--<Type>: Background type: None, Color, Texture, Video-->
|
||||
<Type>Video</Type>
|
||||
@@ -215,13 +215,71 @@
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Normal</Font>
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENO_VIDEO_VIDEOSTOBACKGROUND</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</Text5>
|
||||
<Text6>
|
||||
<!--<X>, <Y>: Text position-->
|
||||
<X>75</X>
|
||||
<Y>345</Y>
|
||||
<!--<Z>: Text position-->
|
||||
<Z>0,00</Z>
|
||||
<!--<H>: Text height-->
|
||||
<H>32</H>
|
||||
<!--<MaxW>: Maximum text width (if exists)-->
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>StaticColor</Color>
|
||||
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>TextSColor</SColor>
|
||||
<!--<Align>: Text align horizontal: Left, Center, Right-->
|
||||
<Align>Left</Align>
|
||||
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
|
||||
<HAlign>Center</HAlign>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<Text>TR_SCREENO_VIDEO_WEBCAMDEVICES</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</Text6>
|
||||
<Text7>
|
||||
<!--<X>, <Y>: Text position-->
|
||||
<X>75</X>
|
||||
<Y>405</Y>
|
||||
<!--<Z>: Text position-->
|
||||
<Z>0,00</Z>
|
||||
<!--<H>: Text height-->
|
||||
<H>32</H>
|
||||
<!--<MaxW>: Maximum text width (if exists)-->
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>StaticColor</Color>
|
||||
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>TextSColor</SColor>
|
||||
<!--<Align>: Text align horizontal: Left, Center, Right-->
|
||||
<Align>Left</Align>
|
||||
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
|
||||
<HAlign>Center</HAlign>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Text or translation tag-->
|
||||
<Text>TR_SCREENO_VIDEO_WEBCAMCAPABILITIES</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</Text7>
|
||||
<ButtonExit>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Button</Skin>
|
||||
@@ -533,11 +591,157 @@
|
||||
<!--<TextMaxW>: Maximum text width (if exists)-->
|
||||
<TextMaxW>205,33</TextMaxW>
|
||||
<!--<TextFont>: Text font name-->
|
||||
<TextFont>Normal</TextFont>
|
||||
<TextFont>Outline</TextFont>
|
||||
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<!--<NumVisible>: Number of visible elements in the slide-->
|
||||
<NumVisible>3</NumVisible>
|
||||
</SelectSlideVideosToBackground>
|
||||
<SelectSlideWebcamDevices>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Invisible</Skin>
|
||||
<!--<SkinArrowLeft>: Texture name of left arrow-->
|
||||
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
|
||||
<!--<SkinArrowRight>: Texture name of right arrow-->
|
||||
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
|
||||
<!--<SkinSelected>: Texture name for selected SelectSlide-->
|
||||
<SkinSelected>SelectSlide</SkinSelected>
|
||||
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
|
||||
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
|
||||
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
|
||||
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
|
||||
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
|
||||
<SkinHighlighted>SelectSlide</SkinHighlighted>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
|
||||
<X>500</X>
|
||||
<Y>340</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>700</W>
|
||||
<H>50</H>
|
||||
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
|
||||
<ArrowLeftX>505</ArrowLeftX>
|
||||
<ArrowLeftY>345</ArrowLeftY>
|
||||
<ArrowLeftZ>0,00</ArrowLeftZ>
|
||||
<ArrowLeftW>40</ArrowLeftW>
|
||||
<ArrowLeftH>40</ArrowLeftH>
|
||||
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
|
||||
<ArrowRightX>1170</ArrowRightX>
|
||||
<ArrowRightY>345</ArrowRightY>
|
||||
<ArrowRightZ>0,00</ArrowRightZ>
|
||||
<ArrowRightW>40</ArrowRightW>
|
||||
<ArrowRightH>40</ArrowRightH>
|
||||
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>SelectSlideColor</Color>
|
||||
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>SelectSlideSColor</SColor>
|
||||
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
|
||||
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
|
||||
<HColor>SelectSlideHColor</HColor>
|
||||
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
|
||||
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
|
||||
<ArrowColor>ArrowColor</ArrowColor>
|
||||
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
|
||||
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
|
||||
<ArrowSColor>ArrowSColor</ArrowSColor>
|
||||
<!--<TextColor>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
|
||||
<TextColor>TextColor</TextColor>
|
||||
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
|
||||
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
|
||||
<TextSColor>TextSColor</TextSColor>
|
||||
<!--<TextH>: Text height-->
|
||||
<TextH>32,00</TextH>
|
||||
<!--<TextMaxW>: Maximum text width (if exists)-->
|
||||
<TextMaxW>205,33</TextMaxW>
|
||||
<!--<TextFont>: Text font name-->
|
||||
<TextFont>Outline</TextFont>
|
||||
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<!--<NumVisible>: Number of visible elements in the slide-->
|
||||
<NumVisible>3</NumVisible>
|
||||
</SelectSlideWebcamDevices>
|
||||
<SelectSlideWebcamCapabilities>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Invisible</Skin>
|
||||
<!--<SkinArrowLeft>: Texture name of left arrow-->
|
||||
<SkinArrowLeft>SelectSlideArrowLeft</SkinArrowLeft>
|
||||
<!--<SkinArrowRight>: Texture name of right arrow-->
|
||||
<SkinArrowRight>SelectSlideArrowRight</SkinArrowRight>
|
||||
<!--<SkinSelected>: Texture name for selected SelectSlide-->
|
||||
<SkinSelected>SelectSlide</SkinSelected>
|
||||
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
|
||||
<SkinArrowLeftSelected>SelectSlideArrowLeft</SkinArrowLeftSelected>
|
||||
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
|
||||
<SkinArrowRightSelected>SelectSlideArrowRight</SkinArrowRightSelected>
|
||||
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
|
||||
<SkinHighlighted>SelectSlide</SkinHighlighted>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
|
||||
<X>500</X>
|
||||
<Y>400</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>700</W>
|
||||
<H>50</H>
|
||||
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
|
||||
<ArrowLeftX>505</ArrowLeftX>
|
||||
<ArrowLeftY>405</ArrowLeftY>
|
||||
<ArrowLeftZ>0,00</ArrowLeftZ>
|
||||
<ArrowLeftW>40</ArrowLeftW>
|
||||
<ArrowLeftH>40</ArrowLeftH>
|
||||
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
|
||||
<ArrowRightX>1170</ArrowRightX>
|
||||
<ArrowRightY>405</ArrowRightY>
|
||||
<ArrowRightZ>0,00</ArrowRightZ>
|
||||
<ArrowRightW>40</ArrowRightW>
|
||||
<ArrowRightH>40</ArrowRightH>
|
||||
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>SelectSlideColor</Color>
|
||||
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>SelectSlideSColor</SColor>
|
||||
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
|
||||
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
|
||||
<HColor>SelectSlideHColor</HColor>
|
||||
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
|
||||
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
|
||||
<ArrowColor>ArrowColor</ArrowColor>
|
||||
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
|
||||
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
|
||||
<ArrowSColor>ArrowSColor</ArrowSColor>
|
||||
<!--<TextColor>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
|
||||
<TextColor>TextColor</TextColor>
|
||||
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
|
||||
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
|
||||
<TextSColor>TextSColor</TextSColor>
|
||||
<!--<TextH>: Text height-->
|
||||
<TextH>32,00</TextH>
|
||||
<!--<TextMaxW>: Maximum text width (if exists)-->
|
||||
<TextMaxW>150,00</TextMaxW>
|
||||
<!--<TextFont>: Text font name-->
|
||||
<TextFont>Outline</TextFont>
|
||||
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<!--<NumVisible>: Number of visible elements in the slide-->
|
||||
<NumVisible>3</NumVisible>
|
||||
</SelectSlideWebcamCapabilities>
|
||||
<StaticWebcamOutput>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>CoverBackground</Skin>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
|
||||
<X>75</X>
|
||||
<Y>460</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>320</W>
|
||||
<H>240</H>
|
||||
<!--<Color>: Static color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>Visible</Color>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</StaticWebcamOutput>
|
||||
</ScreenOptionsVideo>
|
||||
</root>
|
||||
</root>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<ScreenProfiles>
|
||||
<ScreenVersion>1</ScreenVersion>
|
||||
<ScreenVersion>2</ScreenVersion>
|
||||
<Background1>
|
||||
<!--<Type>: Background type: None, Color, Texture, Video-->
|
||||
<Type>Video</Type>
|
||||
@@ -576,6 +576,218 @@
|
||||
<Height>26</Height>
|
||||
</SReflection>
|
||||
</ButtonDelete>
|
||||
<ButtonTakeSnapshot>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Button</Skin>
|
||||
<!--<SkinSelected>: Texture name for selected button-->
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
|
||||
<X>985</X>
|
||||
<Y>600</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>150</W>
|
||||
<H>50</H>
|
||||
<!--<Color>: Button color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonColor</Color>
|
||||
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>ButtonSColor</SColor>
|
||||
<Text>
|
||||
<!--<X>, <Y>: Text position-->
|
||||
<X>75</X>
|
||||
<Y>10</Y>
|
||||
<!--<H>: Text height-->
|
||||
<H>32</H>
|
||||
<!--<MaxW>: Maximum text width (if exists)-->
|
||||
<MaxW>142</MaxW>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonTextColor</Color>
|
||||
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>ButtonTextSColor</SColor>
|
||||
<!--<Align>: Text align horizontal: Left, Center, Right-->
|
||||
<Align>Center</Align>
|
||||
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
|
||||
<HAlign>Center</HAlign>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENPROFILES_BUTTON_TAKESNAPSHOT</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
<Reflection>
|
||||
<Space>10</Space>
|
||||
<Height>26</Height>
|
||||
</Reflection>
|
||||
<!--<SReflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space of selected button-->
|
||||
<!-- <Height>: Reflection Height of selected button-->
|
||||
<SReflection>
|
||||
<Space>10</Space>
|
||||
<Height>26</Height>
|
||||
</SReflection>
|
||||
</ButtonTakeSnapshot>
|
||||
<ButtonWebcam>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Button</Skin>
|
||||
<!--<SkinSelected>: Texture name for selected button-->
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
|
||||
<X>985</X>
|
||||
<Y>600</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>150</W>
|
||||
<H>50</H>
|
||||
<!--<Color>: Button color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonColor</Color>
|
||||
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>ButtonSColor</SColor>
|
||||
<Text>
|
||||
<!--<X>, <Y>: Text position-->
|
||||
<X>75</X>
|
||||
<Y>10</Y>
|
||||
<!--<H>: Text height-->
|
||||
<H>32</H>
|
||||
<!--<MaxW>: Maximum text width (if exists)-->
|
||||
<MaxW>142</MaxW>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonTextColor</Color>
|
||||
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>ButtonTextSColor</SColor>
|
||||
<!--<Align>: Text align horizontal: Left, Center, Right-->
|
||||
<Align>Center</Align>
|
||||
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
|
||||
<HAlign>Center</HAlign>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENPROFILES_BUTTON_WEBCAM</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
<Reflection>
|
||||
<Space>10</Space>
|
||||
<Height>26</Height>
|
||||
</Reflection>
|
||||
<!--<SReflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space of selected button-->
|
||||
<!-- <Height>: Reflection Height of selected button-->
|
||||
<SReflection>
|
||||
<Space>10</Space>
|
||||
<Height>26</Height>
|
||||
</SReflection>
|
||||
</ButtonWebcam>
|
||||
<ButtonSaveSnapshot>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Button</Skin>
|
||||
<!--<SkinSelected>: Texture name for selected button-->
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
|
||||
<X>300</X>
|
||||
<Y>205</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>150</W>
|
||||
<H>50</H>
|
||||
<!--<Color>: Button color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonColor</Color>
|
||||
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>ButtonSColor</SColor>
|
||||
<Text>
|
||||
<!--<X>, <Y>: Text position-->
|
||||
<X>75</X>
|
||||
<Y>10</Y>
|
||||
<!--<H>: Text height-->
|
||||
<H>32</H>
|
||||
<!--<MaxW>: Maximum text width (if exists)-->
|
||||
<MaxW>142</MaxW>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonTextColor</Color>
|
||||
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>ButtonTextSColor</SColor>
|
||||
<!--<Align>: Text align horizontal: Left, Center, Right-->
|
||||
<Align>Center</Align>
|
||||
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
|
||||
<HAlign>Center</HAlign>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENPROFILES_BUTTON_SAVESNAPSHOT</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
<!--<SReflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space of selected button-->
|
||||
<!-- <Height>: Reflection Height of selected button-->
|
||||
</ButtonSaveSnapshot>
|
||||
<ButtonDiscardSnapshot>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Button</Skin>
|
||||
<!--<SkinSelected>: Texture name for selected button-->
|
||||
<SkinSelected>Button</SkinSelected>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Button position, width and height-->
|
||||
<X>300</X>
|
||||
<Y>125</Y>
|
||||
<Z>0,00</Z>
|
||||
<W>150</W>
|
||||
<H>50</H>
|
||||
<!--<Color>: Button color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonColor</Color>
|
||||
<!--<SColor>: Selected button color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>ButtonSColor</SColor>
|
||||
<Text>
|
||||
<!--<X>, <Y>: Text position-->
|
||||
<X>75</X>
|
||||
<Y>10</Y>
|
||||
<!--<H>: Text height-->
|
||||
<H>32</H>
|
||||
<!--<MaxW>: Maximum text width (if exists)-->
|
||||
<MaxW>142</MaxW>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>ButtonTextColor</Color>
|
||||
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>ButtonTextSColor</SColor>
|
||||
<!--<Align>: Text align horizontal: Left, Center, Right-->
|
||||
<Align>Center</Align>
|
||||
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
|
||||
<HAlign>Center</HAlign>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENPROFILES_BUTTON_DISCARDSNAPSHOT</Text>
|
||||
</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
<!--<SReflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space of selected button-->
|
||||
<!-- <Height>: Reflection Height of selected button-->
|
||||
</ButtonDiscardSnapshot>
|
||||
<SelectSlideProfiles>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Invisible</Skin>
|
||||
@@ -902,4 +1114,4 @@
|
||||
<NumVisible>2</NumVisible>
|
||||
</SelectSlideActive>
|
||||
</ScreenProfiles>
|
||||
</root>
|
||||
</root>
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<ScreenSing>
|
||||
<ScreenVersion>5</ScreenVersion>
|
||||
<ScreenVersion>6</ScreenVersion>
|
||||
<Background1>
|
||||
<!--<Type>: Background type: None, Color, Texture, Video-->
|
||||
<Type>None</Type>
|
||||
@@ -2771,4 +2771,4 @@
|
||||
</BarPositions>
|
||||
</SingBars>
|
||||
</ScreenSing>
|
||||
</root>
|
||||
</root>
|
||||
@@ -333,6 +333,8 @@
|
||||
<DeleteIcon>Delete.png</DeleteIcon>
|
||||
<SaveIcon>Save.png</SaveIcon>
|
||||
<SingIcon>Sing.png</SingIcon>
|
||||
<Minus>Minus.png</Minus>
|
||||
<Plus>Plus.png</Plus>
|
||||
</Skins>
|
||||
<Videos>
|
||||
<BG_Video>[Blue]BG_Video.mp4</BG_Video>
|
||||
@@ -340,4 +342,4 @@
|
||||
<IntroMid>[Blue]IntroMid.mp4</IntroMid>
|
||||
<IntroOut>[Blue]IntroOut.mp4</IntroOut>
|
||||
</Videos>
|
||||
</root>
|
||||
</root>
|
||||
@@ -327,6 +327,8 @@
|
||||
<DeleteIcon>Delete.png</DeleteIcon>
|
||||
<SaveIcon>Save.png</SaveIcon>
|
||||
<SingIcon>Sing.png</SingIcon>
|
||||
<Minus>Minus.png</Minus>
|
||||
<Plus>Plus.png</Plus>
|
||||
</Skins>
|
||||
<Videos>
|
||||
<BG_Video>[Green]BG_Video.mp4</BG_Video>
|
||||
@@ -334,4 +336,4 @@
|
||||
<IntroMid>[Green]IntroMid.mp4</IntroMid>
|
||||
<IntroOut>[Green]IntroOut.mp4</IntroOut>
|
||||
</Videos>
|
||||
</root>
|
||||
</root>
|
||||
@@ -327,6 +327,8 @@
|
||||
<DeleteIcon>Delete.png</DeleteIcon>
|
||||
<SaveIcon>Save.png</SaveIcon>
|
||||
<SingIcon>Sing.png</SingIcon>
|
||||
<Minus>Minus.png</Minus>
|
||||
<Plus>Plus.png</Plus>
|
||||
</Skins>
|
||||
<Videos>
|
||||
<BG_Video>[Red]BG_Video.mp4</BG_Video>
|
||||
@@ -334,4 +336,4 @@
|
||||
<IntroMid>[Red]IntroMid.mp4</IntroMid>
|
||||
<IntroOut>[Red]IntroOut.mp4</IntroOut>
|
||||
</Videos>
|
||||
</root>
|
||||
</root>
|
||||
@@ -327,6 +327,8 @@
|
||||
<DeleteIcon>Delete.png</DeleteIcon>
|
||||
<SaveIcon>Save.png</SaveIcon>
|
||||
<SingIcon>Sing.png</SingIcon>
|
||||
<Minus>Minus.png</Minus>
|
||||
<Plus>Plus.png</Plus>
|
||||
</Skins>
|
||||
<Videos>
|
||||
<BG_Video>[Yellow]BG_Video.mp4</BG_Video>
|
||||
@@ -334,4 +336,4 @@
|
||||
<IntroMid>[Yellow]IntroMid.mp4</IntroMid>
|
||||
<IntroOut>[Yellow]IntroOut.mp4</IntroOut>
|
||||
</Videos>
|
||||
</root>
|
||||
</root>
|
||||
@@ -1,5 +1,17 @@
|
||||
ScreenOptionsSound
|
||||
|
||||
++++++++++
|
||||
Version 3:
|
||||
|
||||
Add:
|
||||
|
||||
<SelectSlidePreviewMusicVolume>
|
||||
<SelectSlideGameMusicVolume>
|
||||
|
||||
and some texts for description (Text5, Text6)
|
||||
"TR_SCRsEENOSOUND_PREVIEWMUSICVOLUME"
|
||||
"TR_SCREENOSOUND_GAMEMUSICVOLUEM"
|
||||
|
||||
++++++++++
|
||||
Version 2:
|
||||
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
ScreenOptionsTheme
|
||||
|
||||
++++++++++
|
||||
Version 3:
|
||||
|
||||
Add:
|
||||
<SelectSlideWebcamDevices>, <SelectSlideWebcamCapabilities>, <StaticWebcamOutput>
|
||||
|
||||
and some texts and static for description (Text6, Text7)
|
||||
"TR_SCREENO_VIDEO_WEBCAMDEVICES", "TR_SCREENO_VIDEO_WEBCAMCAPABILITIES"
|
||||
|
||||
++++++++++
|
||||
Version 2:
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
ScreenSing
|
||||
|
||||
+++++++++
|
||||
Version 5
|
||||
Version 6
|
||||
|
||||
Add:
|
||||
<TextDuetName1> and <TextDuetName2> (only showed when sining duet)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -181,7 +181,7 @@ namespace Vocaluxe.Base
|
||||
{
|
||||
if (_CurrentMusicStream != -1)
|
||||
{
|
||||
CSound.Fade(_CurrentMusicStream, CConfig.BackgroundMusicVolume, CSettings.BackgroundMusicFadeTime);
|
||||
CSound.Fade(_CurrentMusicStream, 100f, CSettings.BackgroundMusicFadeTime);
|
||||
CSound.Play(_CurrentMusicStream);
|
||||
if (_VideoEnabled && _Video != -1)
|
||||
CVideo.VdResume(_Video);
|
||||
@@ -276,6 +276,7 @@ namespace Vocaluxe.Base
|
||||
_CurrentPlaylistElement = _PreviousFileNames[_PreviousMusicIndex];
|
||||
}
|
||||
_CurrentMusicStream = CSound.Load(_CurrentPlaylistElement.MusicFilePath);
|
||||
CSound.SetStreamVolumeMax(_CurrentMusicStream, CConfig.BackgroundMusicVolume);
|
||||
|
||||
//Seek to #Start-Tag, if found
|
||||
if (_CurrentPlaylistElement.Start != 0f)
|
||||
@@ -311,6 +312,7 @@ namespace Vocaluxe.Base
|
||||
_CurrentPlaylistElement = _PreviousFileNames[_PreviousMusicIndex];
|
||||
|
||||
_CurrentMusicStream = CSound.Load(_CurrentPlaylistElement.MusicFilePath);
|
||||
CSound.SetStreamVolumeMax(_CurrentMusicStream, CConfig.BackgroundMusicVolume);
|
||||
if (_VideoEnabled)
|
||||
LoadVideo();
|
||||
CSound.SetStreamVolume(_CurrentMusicStream, 0f);
|
||||
@@ -327,7 +329,7 @@ namespace Vocaluxe.Base
|
||||
|
||||
public static void ApplyVolume()
|
||||
{
|
||||
CSound.SetStreamVolume(_CurrentMusicStream, CConfig.BackgroundMusicVolume);
|
||||
CSound.SetStreamVolumeMax(_CurrentMusicStream, CConfig.BackgroundMusicVolume);
|
||||
}
|
||||
|
||||
public static void AddOwnMusic()
|
||||
|
||||
@@ -11,6 +11,7 @@ using System.Xml.XPath;
|
||||
using OpenTK.Platform;
|
||||
|
||||
using Vocaluxe.Lib.Sound;
|
||||
using Vocaluxe.Lib.Webcam;
|
||||
|
||||
namespace Vocaluxe.Base
|
||||
{
|
||||
@@ -87,6 +88,12 @@ namespace Vocaluxe.Base
|
||||
OpenAL
|
||||
}
|
||||
|
||||
public enum EWebcamLib
|
||||
{
|
||||
OpenCV,
|
||||
AForgeNet
|
||||
}
|
||||
|
||||
public enum ERecordLib
|
||||
{
|
||||
#if WIN
|
||||
@@ -228,9 +235,11 @@ namespace Vocaluxe.Base
|
||||
public static ERecordLib RecordLib = ERecordLib.PortAudio;
|
||||
public static EBufferSize AudioBufferSize = EBufferSize.b2048;
|
||||
public static int AudioLatency = 0;
|
||||
public static int BackgroundMusicVolume = 50;
|
||||
public static int BackgroundMusicVolume = 30;
|
||||
public static EOffOn BackgroundMusic = EOffOn.TR_CONFIG_ON;
|
||||
public static EBackgroundMusicSource BackgroundMusicSource = EBackgroundMusicSource.TR_CONFIG_NO_OWN_MUSIC;
|
||||
public static int PreviewMusicVolume = 50;
|
||||
public static int GameMusicVolume = 80;
|
||||
|
||||
// Game
|
||||
public static List<string> SongFolder = new List<string>();
|
||||
@@ -255,6 +264,8 @@ namespace Vocaluxe.Base
|
||||
// Record
|
||||
public static SMicConfig[] MicConfig;
|
||||
public static int MicDelay = 300; //[ms]
|
||||
public static EWebcamLib WebcamLib = EWebcamLib.OpenCV;
|
||||
public static SWebcamConfig WebcamConfig;
|
||||
|
||||
//Lists to save parameters and values
|
||||
private static List<string> _Params = new List<string>();
|
||||
@@ -358,7 +369,21 @@ namespace Vocaluxe.Base
|
||||
|
||||
CHelper.TryGetEnumValueFromXML("//root/Sound/BackgroundMusic", navigator, ref BackgroundMusic);
|
||||
CHelper.TryGetIntValueFromXML("//root/Sound/BackgroundMusicVolume", navigator, ref BackgroundMusicVolume);
|
||||
if (BackgroundMusicVolume < 0)
|
||||
BackgroundMusicVolume = 0;
|
||||
if (BackgroundMusicVolume > 100)
|
||||
BackgroundMusicVolume = 100;
|
||||
CHelper.TryGetEnumValueFromXML("//root/Sound/BackgroundMusicSource", navigator, ref BackgroundMusicSource);
|
||||
CHelper.TryGetIntValueFromXML("//root/Sound/PreviewMusicVolume", navigator, ref PreviewMusicVolume);
|
||||
if (PreviewMusicVolume < 0)
|
||||
PreviewMusicVolume = 0;
|
||||
if (PreviewMusicVolume > 100)
|
||||
PreviewMusicVolume = 100;
|
||||
CHelper.TryGetIntValueFromXML("//root/Sound/GameMusicVolume", navigator, ref GameMusicVolume);
|
||||
if (GameMusicVolume < 0)
|
||||
GameMusicVolume = 0;
|
||||
if (GameMusicVolume > 100)
|
||||
GameMusicVolume = 100;
|
||||
#endregion Sound
|
||||
|
||||
#region Game
|
||||
@@ -427,6 +452,13 @@ namespace Vocaluxe.Base
|
||||
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Video/VideoPreview", navigator, ref VideoPreview);
|
||||
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Video/VideosInSongs", navigator, ref VideosInSongs);
|
||||
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Video/VideosToBackground", navigator, ref VideosToBackground);
|
||||
|
||||
CHelper.TryGetEnumValueFromXML<EWebcamLib>("//root/Video/WebcamLib", navigator, ref WebcamLib);
|
||||
WebcamConfig = new SWebcamConfig();
|
||||
CHelper.GetValueFromXML("//root/Video/WebcamConfig/MonikerString", navigator, ref WebcamConfig.MonikerString, String.Empty);
|
||||
CHelper.TryGetIntValueFromXML("//root/Video/WebcamConfig/Framerate", navigator, ref WebcamConfig.Framerate);
|
||||
CHelper.TryGetIntValueFromXML("//root/Video/WebcamConfig/Width", navigator, ref WebcamConfig.Width);
|
||||
CHelper.TryGetIntValueFromXML("//root/Video/WebcamConfig/Height", navigator, ref WebcamConfig.Height);
|
||||
#endregion Video
|
||||
|
||||
#region Record
|
||||
@@ -447,7 +479,6 @@ namespace Vocaluxe.Base
|
||||
MicDelay = 0;
|
||||
if (MicDelay > 500)
|
||||
MicDelay = 500;
|
||||
|
||||
#endregion Record
|
||||
|
||||
return true;
|
||||
@@ -585,6 +616,12 @@ namespace Vocaluxe.Base
|
||||
writer.WriteComment("Background Music Source");
|
||||
writer.WriteElementString("BackgroundMusicSource", Enum.GetName(typeof(EBackgroundMusicSource), BackgroundMusicSource));
|
||||
|
||||
writer.WriteComment("Preview Volume from 0 to 100");
|
||||
writer.WriteElementString("PreviewMusicVolume", PreviewMusicVolume.ToString());
|
||||
|
||||
writer.WriteComment("Game Volume from 0 to 100");
|
||||
writer.WriteElementString("GameMusicVolume", GameMusicVolume.ToString());
|
||||
|
||||
writer.WriteEndElement();
|
||||
#endregion Sound
|
||||
|
||||
@@ -668,6 +705,18 @@ namespace Vocaluxe.Base
|
||||
writer.WriteComment("Show backgroundmusic videos as background: " + ListStrings(Enum.GetNames(typeof(EOffOn))));
|
||||
writer.WriteElementString("VideosToBackground", Enum.GetName(typeof(EOffOn), VideosToBackground));
|
||||
|
||||
writer.WriteComment("WebcamLib: " + ListStrings(Enum.GetNames(typeof(EWebcamLib))));
|
||||
writer.WriteElementString("WebcamLib", Enum.GetName(typeof(EWebcamLib), WebcamLib));
|
||||
|
||||
writer.WriteStartElement("WebcamConfig");
|
||||
|
||||
writer.WriteElementString("MonikerString", WebcamConfig.MonikerString);
|
||||
writer.WriteElementString("Framerate", WebcamConfig.Framerate.ToString());
|
||||
writer.WriteElementString("Width", WebcamConfig.Width.ToString());
|
||||
writer.WriteElementString("Height", WebcamConfig.Height.ToString());
|
||||
|
||||
writer.WriteEndElement();
|
||||
|
||||
writer.WriteEndElement();
|
||||
#endregion Video
|
||||
|
||||
|
||||
@@ -123,6 +123,11 @@ namespace Vocaluxe.Base
|
||||
fo.Dispose();
|
||||
}
|
||||
|
||||
public void UnloadTexture()
|
||||
{
|
||||
CDraw.RemoveTexture(ref Texture);
|
||||
}
|
||||
|
||||
private float GetFactor(char chr, TextFormatFlags flags)
|
||||
{
|
||||
if (CFonts.Style == EStyle.Normal)
|
||||
@@ -277,6 +282,15 @@ namespace Vocaluxe.Base
|
||||
_htGlyphs.Add(chr, _Glyphs.Count - 1);
|
||||
CFonts.Height = h;
|
||||
}
|
||||
|
||||
public void UnloadAllGlyphs()
|
||||
{
|
||||
foreach (CGlyph glyph in _Glyphs)
|
||||
{
|
||||
glyph.UnloadTexture();
|
||||
}
|
||||
_Glyphs.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
struct SFont
|
||||
@@ -854,6 +868,27 @@ namespace Vocaluxe.Base
|
||||
writer.WriteEndElement();
|
||||
}
|
||||
|
||||
public static void UnloadThemeFonts(string ThemeName)
|
||||
{
|
||||
if (_Fonts.Count == 0)
|
||||
return;
|
||||
|
||||
int Index = 0;
|
||||
while (Index < _Fonts.Count)
|
||||
{
|
||||
if (_Fonts[Index].IsThemeFont && _Fonts[Index].ThemeName == ThemeName)
|
||||
{
|
||||
_Fonts[Index].Normal.UnloadAllGlyphs();
|
||||
_Fonts[Index].Italic.UnloadAllGlyphs();
|
||||
_Fonts[Index].Bold.UnloadAllGlyphs();
|
||||
_Fonts[Index].BoldItalic.UnloadAllGlyphs();
|
||||
_Fonts.RemoveAt(Index);
|
||||
}
|
||||
else
|
||||
Index++;
|
||||
}
|
||||
}
|
||||
|
||||
private static int GetFontIndex(string ThemeName, string FontName)
|
||||
{
|
||||
if (ThemeName == String.Empty || FontName == String.Empty)
|
||||
|
||||
@@ -80,13 +80,13 @@ namespace Vocaluxe.Base
|
||||
try
|
||||
{
|
||||
File.Delete(_Playlists[PlaylistID].PlaylistFile);
|
||||
_Playlists.RemoveAt(PlaylistID);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
CLog.LogError("Can't delete Profile File " + _Playlists[PlaylistID].PlaylistFile + ".xml");
|
||||
CLog.LogError("Can't delete Playlist File " + _Playlists[PlaylistID].PlaylistFile + ".xml");
|
||||
}
|
||||
}
|
||||
_Playlists.RemoveAt(PlaylistID);
|
||||
}
|
||||
|
||||
public static void SavePlaylist(int PlaylistID)
|
||||
|
||||
@@ -47,7 +47,7 @@ namespace Vocaluxe.Base
|
||||
public const int iVersionSub = 0; // patches
|
||||
public const ERevision VersionRevision = ERevision.Alpha;
|
||||
|
||||
public const int iBuild = 68; // Increase on every published version! Never Reset!
|
||||
public const int iBuild = 69; // Increase on every published version! Never Reset!
|
||||
|
||||
public const int iDatabaseHighscoreVersion = 1;
|
||||
public const int iDatabaseCoverVersion = 1;
|
||||
|
||||
@@ -108,6 +108,10 @@ namespace Vocaluxe.Base
|
||||
_Playback.SetStreamVolume(Stream, Volume);
|
||||
}
|
||||
|
||||
public static void SetStreamVolumeMax(int Stream, float Volume)
|
||||
{
|
||||
_Playback.SetStreamVolumeMax(Stream, Volume);
|
||||
}
|
||||
|
||||
public static float GetLength(int Stream)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
using Vocaluxe.Lib.Webcam;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
using System.Drawing;
|
||||
|
||||
namespace Vocaluxe.Base
|
||||
{
|
||||
static class CWebcam
|
||||
{
|
||||
private static IWebcam _Webcam;
|
||||
|
||||
public static void Init()
|
||||
{
|
||||
switch (CConfig.WebcamLib)
|
||||
{
|
||||
case EWebcamLib.AForgeNet:
|
||||
_Webcam = new CAForgeNet();
|
||||
break;
|
||||
|
||||
default:
|
||||
_Webcam = new CAForgeNet();
|
||||
break;
|
||||
}
|
||||
_Webcam.Init();
|
||||
_Webcam.Select(CConfig.WebcamConfig);
|
||||
|
||||
CConfig.WebcamConfig = _Webcam.GetConfig();
|
||||
CConfig.SaveConfig();
|
||||
}
|
||||
|
||||
public static bool GetFrame(ref STexture tex)
|
||||
{
|
||||
_Webcam.GetFrame(ref tex);
|
||||
return true;
|
||||
}
|
||||
|
||||
public static Bitmap GetBitmap()
|
||||
{
|
||||
return _Webcam.GetBitmap();
|
||||
}
|
||||
|
||||
public static void Close()
|
||||
{
|
||||
_Webcam.Close();
|
||||
}
|
||||
|
||||
public static void Pause()
|
||||
{
|
||||
_Webcam.Pause();
|
||||
}
|
||||
|
||||
public static void Start()
|
||||
{
|
||||
_Webcam.Start();
|
||||
}
|
||||
|
||||
public static void Stop()
|
||||
{
|
||||
_Webcam.Stop();
|
||||
}
|
||||
|
||||
public static void Select(SWebcamConfig c)
|
||||
{
|
||||
_Webcam.Select(c);
|
||||
}
|
||||
|
||||
public static SWebcamDevice[] GetDevices()
|
||||
{
|
||||
return _Webcam.GetDevices();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -234,6 +234,21 @@ namespace Vocaluxe.Lib.Sound
|
||||
}
|
||||
}
|
||||
|
||||
public void SetStreamVolumeMax(int Stream, float Volume)
|
||||
{
|
||||
if (_Initialized)
|
||||
{
|
||||
lock (MutexDecoder)
|
||||
{
|
||||
if (AlreadyAdded(Stream))
|
||||
{
|
||||
_Decoder[GetStreamIndex(Stream)].VolumeMax = Volume;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public float GetLength(int Stream)
|
||||
{
|
||||
if (_Initialized)
|
||||
@@ -399,6 +414,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
private bool _Initialized;
|
||||
private int _ByteCount = 4;
|
||||
private float _Volume = 1f;
|
||||
private float _VolumeMax = 1f;
|
||||
|
||||
private Stopwatch _fadeTimer = new Stopwatch();
|
||||
|
||||
@@ -500,6 +516,23 @@ namespace Vocaluxe.Lib.Sound
|
||||
}
|
||||
}
|
||||
|
||||
public float VolumeMax
|
||||
{
|
||||
get { return _VolumeMax * 100f; }
|
||||
set
|
||||
{
|
||||
lock (MutexData)
|
||||
{
|
||||
_VolumeMax = value / 100f;
|
||||
if (_VolumeMax < 0f)
|
||||
_VolumeMax = 0f;
|
||||
|
||||
if (_VolumeMax > 1f)
|
||||
_VolumeMax = 1f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public float Position
|
||||
{
|
||||
get
|
||||
@@ -826,7 +859,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
b[0] = buf[i];
|
||||
b[1] = buf[i + 1];
|
||||
|
||||
b = BitConverter.GetBytes((Int16)(BitConverter.ToInt16(b, 0) * _Volume));
|
||||
b = BitConverter.GetBytes((Int16)(BitConverter.ToInt16(b, 0) * _Volume * _VolumeMax));
|
||||
buf[i] = b[0];
|
||||
buf[i + 1] = b[1];
|
||||
|
||||
@@ -835,7 +868,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
b[0] = buf[i + 2];
|
||||
b[1] = buf[i + 3];
|
||||
|
||||
b = BitConverter.GetBytes((Int16)(BitConverter.ToInt16(b, 0) * _Volume));
|
||||
b = BitConverter.GetBytes((Int16)(BitConverter.ToInt16(b, 0) * _Volume * _VolumeMax));
|
||||
buf[i + 2] = b[0];
|
||||
buf[i + 3] = b[1];
|
||||
}
|
||||
|
||||
@@ -218,6 +218,21 @@ namespace Vocaluxe.Lib.Sound
|
||||
}
|
||||
}
|
||||
|
||||
public void SetStreamVolumeMax(int Stream, float Volume)
|
||||
{
|
||||
if (_Initialized)
|
||||
{
|
||||
lock (MutexDecoder)
|
||||
{
|
||||
if (AlreadyAdded(Stream))
|
||||
{
|
||||
_Decoder[GetStreamIndex(Stream)].VolumeMax = Volume;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public float GetLength(int Stream)
|
||||
{
|
||||
if (_Initialized)
|
||||
@@ -375,6 +390,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
private bool _Initialized;
|
||||
private int _ByteCount = 4;
|
||||
private float _Volume = 1f;
|
||||
private float _VolumeMax = 1f;
|
||||
|
||||
private Stopwatch _fadeTimer = new Stopwatch();
|
||||
|
||||
@@ -480,6 +496,23 @@ namespace Vocaluxe.Lib.Sound
|
||||
}
|
||||
}
|
||||
|
||||
public float VolumeMax
|
||||
{
|
||||
get { return _VolumeMax * 100f; }
|
||||
set
|
||||
{
|
||||
lock (_LockData)
|
||||
{
|
||||
_VolumeMax = value / 100f;
|
||||
if (_VolumeMax < 0f)
|
||||
_VolumeMax = 0f;
|
||||
|
||||
if (_VolumeMax > 1f)
|
||||
_VolumeMax = 1f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public float Position
|
||||
{
|
||||
get
|
||||
@@ -817,7 +850,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
b[0] = buf[i];
|
||||
b[1] = buf[i + 1];
|
||||
|
||||
b = BitConverter.GetBytes((Int16)(BitConverter.ToInt16(b, 0) * _Volume));
|
||||
b = BitConverter.GetBytes((Int16)(BitConverter.ToInt16(b, 0) * _Volume * _VolumeMax));
|
||||
buf[i] = b[0];
|
||||
buf[i + 1] = b[1];
|
||||
|
||||
@@ -826,7 +859,7 @@ namespace Vocaluxe.Lib.Sound
|
||||
b[0] = buf[i + 2];
|
||||
b[1] = buf[i + 3];
|
||||
|
||||
b = BitConverter.GetBytes((Int16)(BitConverter.ToInt16(b, 0) * _Volume));
|
||||
b = BitConverter.GetBytes((Int16)(BitConverter.ToInt16(b, 0) * _Volume * _VolumeMax));
|
||||
buf[i + 2] = b[0];
|
||||
buf[i + 3] = b[1];
|
||||
}
|
||||
|
||||
@@ -37,7 +37,8 @@ namespace Vocaluxe.Lib.Sound
|
||||
void Fade(int Stream, float TargetVolume, float Seconds);
|
||||
void FadeAndPause(int Stream, float TargetVolume, float Seconds);
|
||||
void FadeAndStop(int Stream, float TargetVolume, float Seconds);
|
||||
void SetStreamVolume(int Stream, float Volume);
|
||||
void SetStreamVolume(int Stream, float Volume);
|
||||
void SetStreamVolumeMax(int Stream, float Volume);
|
||||
|
||||
float GetLength(int Stream);
|
||||
float GetPosition(int Stream);
|
||||
|
||||
@@ -0,0 +1,182 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Vocaluxe.Base;
|
||||
using AForge.Video;
|
||||
using System.Drawing;
|
||||
using AForge.Video.DirectShow;
|
||||
using System.Drawing.Imaging;
|
||||
using System.Runtime.InteropServices;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
using System.Threading;
|
||||
|
||||
namespace Vocaluxe.Lib.Webcam
|
||||
{
|
||||
class CAForgeNet : IWebcam
|
||||
{
|
||||
private Bitmap _CurrentFrame = new Bitmap(1, 1);
|
||||
private List<SWebcamDevice> _Devices = new List<SWebcamDevice>();
|
||||
private bool _Paused;
|
||||
private VideoCaptureDevice _Webcam;
|
||||
private FilterInfoCollection _WebcamDevices;
|
||||
private SWebcamConfig _Config;
|
||||
|
||||
public void Close()
|
||||
{
|
||||
if (_Webcam != null)
|
||||
{
|
||||
_Webcam.SignalToStop();
|
||||
_Webcam.NewFrame -= new NewFrameEventHandler(OnFrame);
|
||||
}
|
||||
}
|
||||
|
||||
public bool GetFrame(ref STexture Frame)
|
||||
{
|
||||
if ((_CurrentFrame != null) && (_Webcam != null))
|
||||
{
|
||||
lock (_CurrentFrame)
|
||||
{
|
||||
BitmapData bitmapdata = _CurrentFrame.LockBits(new Rectangle(0, 0, _CurrentFrame.Width, _CurrentFrame.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
|
||||
byte[] data = new byte[4 * _CurrentFrame.Width * _CurrentFrame.Height];
|
||||
Marshal.Copy(bitmapdata.Scan0, data, 0, data.Length);
|
||||
_CurrentFrame.UnlockBits(bitmapdata);
|
||||
if (((Frame.index == -1) || (_CurrentFrame.Width != Frame.width)) || (_CurrentFrame.Height != Frame.height))
|
||||
{
|
||||
CDraw.RemoveTexture(ref Frame);
|
||||
Frame = CDraw.AddTexture(_CurrentFrame.Width, _CurrentFrame.Height, ref data);
|
||||
}
|
||||
else
|
||||
{
|
||||
CDraw.UpdateTexture(ref Frame, ref data);
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public Bitmap GetBitmap()
|
||||
{
|
||||
if ((_CurrentFrame != null) && (_Webcam != null))
|
||||
{
|
||||
lock (_CurrentFrame)
|
||||
{
|
||||
return (Bitmap)_CurrentFrame.Clone();
|
||||
}
|
||||
}
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
public bool Init()
|
||||
{
|
||||
_WebcamDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
|
||||
int num = 0;
|
||||
foreach (FilterInfo info in _WebcamDevices)
|
||||
{
|
||||
SWebcamDevice device = new SWebcamDevice {
|
||||
ID = num,
|
||||
Name = info.Name,
|
||||
MonikerString = info.MonikerString,
|
||||
Capabilities = new List<SCapabilities>()
|
||||
};
|
||||
num++;
|
||||
VideoCaptureDevice tmpdev = new VideoCaptureDevice(info.MonikerString);
|
||||
|
||||
for (int i = 0; i < tmpdev.VideoCapabilities.Length; i++ )
|
||||
{
|
||||
SCapabilities item = new SCapabilities
|
||||
{
|
||||
Framerate = tmpdev.VideoCapabilities[i].FrameRate,
|
||||
Height = tmpdev.VideoCapabilities[i].FrameSize.Height,
|
||||
Width = tmpdev.VideoCapabilities[i].FrameSize.Width
|
||||
};
|
||||
device.Capabilities.Add(item);
|
||||
}
|
||||
_Devices.Add(device);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void OnFrame(object sender, NewFrameEventArgs e)
|
||||
{
|
||||
if (!_Paused)
|
||||
{
|
||||
lock (_CurrentFrame)
|
||||
{
|
||||
_CurrentFrame = (Bitmap) e.Frame.Clone();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void Pause()
|
||||
{
|
||||
if (_Webcam != null)
|
||||
{
|
||||
_Paused = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void Start()
|
||||
{
|
||||
if (_Webcam != null)
|
||||
{
|
||||
_Webcam.NewFrame -= new NewFrameEventHandler(OnFrame);
|
||||
//Subscribe to NewFrame event
|
||||
_Webcam.NewFrame += new NewFrameEventHandler(OnFrame);
|
||||
_Webcam.Start();
|
||||
_Paused = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void Stop()
|
||||
{
|
||||
if (_Webcam != null)
|
||||
{
|
||||
_Webcam.SignalToStop();
|
||||
}
|
||||
}
|
||||
|
||||
public SWebcamDevice[] GetDevices()
|
||||
{
|
||||
return _Devices.ToArray();
|
||||
}
|
||||
|
||||
public bool Select(SWebcamConfig Config)
|
||||
{
|
||||
//Close old camera connection
|
||||
Close();
|
||||
|
||||
if (_WebcamDevices == null)
|
||||
return false;
|
||||
if (_WebcamDevices.Count < 1)
|
||||
return false;
|
||||
|
||||
//No MonikerString found, try first webcam
|
||||
if (Config.MonikerString == String.Empty)
|
||||
_Webcam = new VideoCaptureDevice(_WebcamDevices[0].MonikerString);
|
||||
else //Found MonikerString
|
||||
_Webcam = new VideoCaptureDevice(Config.MonikerString);
|
||||
|
||||
if (_Webcam == null)
|
||||
return false;
|
||||
|
||||
if (Config.Framerate != 0 && Config.Height != 0 && Config.Width != 0)
|
||||
{
|
||||
_Webcam.DesiredFrameRate = Config.Framerate;
|
||||
_Webcam.DesiredFrameSize = new Size(Config.Width, Config.Height);
|
||||
}
|
||||
|
||||
_Config.Framerate = _Webcam.DesiredFrameRate;
|
||||
_Config.Height = _Webcam.DesiredFrameSize.Height;
|
||||
_Config.Width = _Webcam.DesiredFrameSize.Width;
|
||||
_Config.MonikerString = _Webcam.Source;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public SWebcamConfig GetConfig()
|
||||
{
|
||||
return _Config;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
using System.Drawing;
|
||||
|
||||
namespace Vocaluxe.Lib.Webcam
|
||||
{
|
||||
struct SWebcamDevice
|
||||
{
|
||||
public int ID;
|
||||
public string Name;
|
||||
public string MonikerString;
|
||||
public List<SCapabilities> Capabilities;
|
||||
}
|
||||
|
||||
struct SCapabilities
|
||||
{
|
||||
public int Framerate;
|
||||
public int Width;
|
||||
public int Height;
|
||||
}
|
||||
|
||||
struct SWebcamConfig
|
||||
{
|
||||
public string MonikerString;
|
||||
public int Framerate;
|
||||
public int Width;
|
||||
public int Height;
|
||||
}
|
||||
|
||||
interface IWebcam
|
||||
{
|
||||
bool Init();
|
||||
|
||||
void Start();
|
||||
void Pause();
|
||||
void Stop();
|
||||
void Close();
|
||||
|
||||
bool GetFrame(ref STexture Frame);
|
||||
Bitmap GetBitmap();
|
||||
SWebcamConfig GetConfig();
|
||||
SWebcamDevice[] GetDevices();
|
||||
|
||||
bool Select(SWebcamConfig sWebcamConfig);
|
||||
}
|
||||
}
|
||||
@@ -40,6 +40,7 @@ namespace Vocaluxe.Menu
|
||||
enum EPopupScreens
|
||||
{
|
||||
PopupPlayerControl = 0,
|
||||
PopupVolumeControl = 1,
|
||||
|
||||
NoPopup = -1
|
||||
}
|
||||
@@ -200,6 +201,11 @@ namespace Vocaluxe.Menu
|
||||
private static List<CMenu> _Screens = new List<CMenu>();
|
||||
private static List<CMenu> _PopupScreens = new List<CMenu>();
|
||||
|
||||
private static float _SavedBackgroundMusicVolume;
|
||||
private static float _SavedPreviewMusicVolume;
|
||||
private static float _SavedGameMusicVolume;
|
||||
private static Stopwatch _VolumePopupTimer;
|
||||
|
||||
public static float GlobalAlpha
|
||||
{
|
||||
get { return _GlobalAlpha; }
|
||||
@@ -210,6 +216,11 @@ namespace Vocaluxe.Menu
|
||||
get { return _ZOffset; }
|
||||
}
|
||||
|
||||
public static EScreens CurrentScreen
|
||||
{
|
||||
get { return _CurrentScreen; }
|
||||
}
|
||||
|
||||
#region public methods
|
||||
public static void InitGraphics()
|
||||
{
|
||||
@@ -235,6 +246,7 @@ namespace Vocaluxe.Menu
|
||||
_Screens.Add(new CScreenCredits());
|
||||
|
||||
_PopupScreens.Add(new CPopupScreenPlayerControl());
|
||||
_PopupScreens.Add(new CPopupScreenVolumeControl());
|
||||
|
||||
CLog.StopBenchmark(1, "Build Screen List");
|
||||
|
||||
@@ -242,6 +254,7 @@ namespace Vocaluxe.Menu
|
||||
_NextScreen = EScreens.ScreenNull;
|
||||
_CurrentPopupScreen = EPopupScreens.NoPopup;
|
||||
_FadingTimer = new Stopwatch();
|
||||
_VolumePopupTimer = new Stopwatch();
|
||||
|
||||
_GlobalAlpha = 1f;
|
||||
_ZOffset = 0f;
|
||||
@@ -317,6 +330,10 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public static void InitFirstScreen()
|
||||
{
|
||||
_SavedBackgroundMusicVolume = CConfig.BackgroundMusicVolume;
|
||||
_SavedGameMusicVolume = CConfig.GameMusicVolume;
|
||||
_SavedPreviewMusicVolume = CConfig.PreviewMusicVolume;
|
||||
|
||||
_Screens[(int)_CurrentScreen].OnShow();
|
||||
_Screens[(int)_CurrentScreen].OnShowFinish();
|
||||
}
|
||||
@@ -457,6 +474,8 @@ namespace Vocaluxe.Menu
|
||||
bool PopupPlayerControlAllowed = _CurrentScreen != EScreens.ScreenOptionsRecord && _CurrentScreen != EScreens.ScreenSing &&
|
||||
_CurrentScreen != EScreens.ScreenSong && _CurrentScreen != EScreens.ScreenCredits;
|
||||
|
||||
bool PopupVolumeControlAllowed = _CurrentScreen != EScreens.ScreenCredits;
|
||||
|
||||
bool Resume = true;
|
||||
bool EventsAvailable = false;
|
||||
bool InputEventsAvailable = CInput.PollKeyEvent(ref InputKeyEvent);
|
||||
@@ -534,9 +553,28 @@ namespace Vocaluxe.Menu
|
||||
if (!isOverPopupPlayerControl && _CurrentPopupScreen == EPopupScreens.PopupPlayerControl)
|
||||
HidePopup(EPopupScreens.PopupPlayerControl);
|
||||
|
||||
bool isOverPopupVolumeControl = CHelper.IsInBounds(_PopupScreens[(int)EPopupScreens.PopupVolumeControl].ScreenArea, MouseEvent);
|
||||
if (PopupVolumeControlAllowed && isOverPopupVolumeControl)
|
||||
{
|
||||
if (_CurrentPopupScreen == EPopupScreens.NoPopup)
|
||||
{
|
||||
ShowPopup(EPopupScreens.PopupVolumeControl);
|
||||
_VolumePopupTimer.Reset();
|
||||
}
|
||||
}
|
||||
|
||||
if (!isOverPopupVolumeControl && _CurrentPopupScreen == EPopupScreens.PopupVolumeControl)
|
||||
{
|
||||
HidePopup(EPopupScreens.PopupVolumeControl);
|
||||
_VolumePopupTimer.Reset();
|
||||
}
|
||||
|
||||
bool handled = false;
|
||||
if (_CurrentPopupScreen != EPopupScreens.NoPopup)
|
||||
handled = _PopupScreens[(int)_CurrentPopupScreen].HandleMouse(MouseEvent);
|
||||
if (handled && _CurrentPopupScreen == EPopupScreens.PopupVolumeControl)
|
||||
_Screens[(int)_CurrentScreen].ApplyVolume();
|
||||
|
||||
|
||||
if (!handled && !_Fading && (_Cursor.IsActive || MouseEvent.LB || MouseEvent.RB || MouseEvent.MB))
|
||||
Resume &= _Screens[(int)_CurrentScreen].HandleMouse(MouseEvent);
|
||||
@@ -591,6 +629,34 @@ namespace Vocaluxe.Menu
|
||||
|
||||
private static bool Update()
|
||||
{
|
||||
//User changed volume with keyboard, pop-up isn't visible yet
|
||||
if ((_SavedPreviewMusicVolume != CConfig.PreviewMusicVolume || _SavedGameMusicVolume != CConfig.GameMusicVolume || _SavedBackgroundMusicVolume != CConfig.BackgroundMusicVolume)
|
||||
&& (_CurrentPopupScreen != EPopupScreens.PopupVolumeControl && !_VolumePopupTimer.IsRunning))
|
||||
{
|
||||
_VolumePopupTimer.Start();
|
||||
_SavedBackgroundMusicVolume = CConfig.BackgroundMusicVolume;
|
||||
_SavedGameMusicVolume = CConfig.GameMusicVolume;
|
||||
_SavedPreviewMusicVolume = CConfig.PreviewMusicVolume;
|
||||
}
|
||||
//User changed volume with keyboard, pop-up is already visible
|
||||
else if ((_SavedPreviewMusicVolume != CConfig.PreviewMusicVolume || _SavedGameMusicVolume != CConfig.GameMusicVolume || _SavedBackgroundMusicVolume != CConfig.BackgroundMusicVolume)
|
||||
&& (_CurrentPopupScreen == EPopupScreens.PopupVolumeControl && _VolumePopupTimer.IsRunning))
|
||||
{
|
||||
_VolumePopupTimer.Reset();
|
||||
_VolumePopupTimer.Start();
|
||||
_SavedBackgroundMusicVolume = CConfig.BackgroundMusicVolume;
|
||||
_SavedGameMusicVolume = CConfig.GameMusicVolume;
|
||||
_SavedPreviewMusicVolume = CConfig.PreviewMusicVolume;
|
||||
}
|
||||
if (_VolumePopupTimer.IsRunning && _VolumePopupTimer.ElapsedMilliseconds < 1500 && _CurrentPopupScreen != EPopupScreens.PopupVolumeControl)
|
||||
ShowPopup(EPopupScreens.PopupVolumeControl);
|
||||
if(_VolumePopupTimer.IsRunning && _VolumePopupTimer.ElapsedMilliseconds >= 1500 && _CurrentPopupScreen == EPopupScreens.PopupVolumeControl)
|
||||
{
|
||||
_VolumePopupTimer.Reset();
|
||||
HidePopup(EPopupScreens.PopupVolumeControl);
|
||||
}
|
||||
if (!_Cursor.IsActive && _CurrentPopupScreen == EPopupScreens.PopupVolumeControl)
|
||||
HidePopup(EPopupScreens.PopupVolumeControl);
|
||||
if (_CurrentPopupScreen != EPopupScreens.NoPopup)
|
||||
_PopupScreens[(int)_CurrentPopupScreen].UpdateGame();
|
||||
return _Screens[(int)_CurrentScreen].UpdateGame();
|
||||
@@ -686,7 +752,7 @@ namespace Vocaluxe.Menu
|
||||
dy += rect.Height;
|
||||
}
|
||||
|
||||
if (CConfig.DebugLevel >= EDebugLevel.TR_CONFIG_LEVEL2)
|
||||
if (CConfig.DebugLevel >= EDebugLevel.TR_CONFIG_LEVEL3)
|
||||
{
|
||||
txt = CSongs.NumSongsWithCoverLoaded.ToString(CLanguage.Translate("TR_DEBUG_SONGS") + ": 00000");
|
||||
|
||||
@@ -697,7 +763,7 @@ namespace Vocaluxe.Menu
|
||||
dy += rect.Height;
|
||||
}
|
||||
|
||||
if (CConfig.DebugLevel >= EDebugLevel.TR_CONFIG_LEVEL2)
|
||||
if (CConfig.DebugLevel >= EDebugLevel.TR_CONFIG_LEVEL_MAX)
|
||||
{
|
||||
txt = _Cursor.X.ToString(CLanguage.Translate("TR_DEBUG_MOUSE") + " : (0000/") + _Cursor.Y.ToString("0000)");
|
||||
|
||||
|
||||
@@ -912,6 +912,36 @@ namespace Vocaluxe.Menu
|
||||
if (KeyEvent.Key == Keys.Right)
|
||||
NextElement();
|
||||
}
|
||||
if (!CBackgroundMusic.Disabled)
|
||||
{
|
||||
if (KeyEvent.ModSHIFT && (KeyEvent.Key == Keys.Add || KeyEvent.Key == Keys.PageUp))
|
||||
{
|
||||
CConfig.BackgroundMusicVolume = CConfig.BackgroundMusicVolume + 5;
|
||||
if (CConfig.BackgroundMusicVolume > 100)
|
||||
CConfig.BackgroundMusicVolume = 100;
|
||||
CConfig.SaveConfig();
|
||||
}
|
||||
else if (KeyEvent.ModSHIFT && (KeyEvent.Key == Keys.Subtract || KeyEvent.Key == Keys.PageDown))
|
||||
{
|
||||
CConfig.BackgroundMusicVolume = CConfig.BackgroundMusicVolume - 5;
|
||||
if (CConfig.BackgroundMusicVolume < 0)
|
||||
CConfig.BackgroundMusicVolume = 0;
|
||||
CConfig.SaveConfig();
|
||||
}
|
||||
else if (KeyEvent.Key == Keys.MediaNextTrack)
|
||||
CBackgroundMusic.Next();
|
||||
else if (KeyEvent.Key == Keys.MediaPreviousTrack)
|
||||
CBackgroundMusic.Previous();
|
||||
else if (KeyEvent.Key == Keys.MediaPlayPause)
|
||||
{
|
||||
if (CBackgroundMusic.Playing)
|
||||
CBackgroundMusic.Pause();
|
||||
else
|
||||
CBackgroundMusic.Play();
|
||||
}
|
||||
|
||||
CBackgroundMusic.ApplyVolume();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -1060,6 +1090,10 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public abstract bool UpdateGame();
|
||||
|
||||
public virtual void ApplyVolume()
|
||||
{
|
||||
}
|
||||
|
||||
public virtual void OnShow()
|
||||
{
|
||||
ResumeBG();
|
||||
|
||||
+13
-13
@@ -272,45 +272,45 @@ namespace Vocaluxe.Menu
|
||||
if (_Theme.ButtonPlaylistClose.Rect.Y < CompleteRect.Y)
|
||||
CompleteRect.Y = _Theme.ButtonPlaylistClose.Rect.Y;
|
||||
if (_Theme.ButtonPlaylistClose.Rect.W + _Theme.ButtonPlaylistClose.Rect.X > CompleteRect.W + CompleteRect.X)
|
||||
CompleteRect.W += _Theme.ButtonPlaylistClose.Rect.W + _Theme.ButtonPlaylistClose.Rect.X - CompleteRect.X;
|
||||
CompleteRect.W = _Theme.ButtonPlaylistClose.Rect.W + _Theme.ButtonPlaylistClose.Rect.X - CompleteRect.X;
|
||||
if (_Theme.ButtonPlaylistClose.Rect.Y + _Theme.ButtonPlaylistClose.Rect.H > CompleteRect.Y + CompleteRect.H)
|
||||
CompleteRect.H += _Theme.ButtonPlaylistClose.Rect.H + _Theme.ButtonPlaylistClose.Rect.Y - CompleteRect.Y;
|
||||
CompleteRect.H = _Theme.ButtonPlaylistClose.Rect.H + _Theme.ButtonPlaylistClose.Rect.Y - CompleteRect.Y;
|
||||
//ButtonPlaylistName
|
||||
if (_Theme.ButtonPlaylistName.Rect.X < CompleteRect.X)
|
||||
CompleteRect.X = _Theme.ButtonPlaylistName.Rect.X;
|
||||
if (_Theme.ButtonPlaylistName.Rect.Y < CompleteRect.Y)
|
||||
CompleteRect.Y = _Theme.ButtonPlaylistName.Rect.Y;
|
||||
if (_Theme.ButtonPlaylistName.Rect.W + _Theme.ButtonPlaylistName.Rect.X > CompleteRect.W + CompleteRect.X)
|
||||
CompleteRect.W += _Theme.ButtonPlaylistName.Rect.W + _Theme.ButtonPlaylistName.Rect.X - CompleteRect.X;
|
||||
CompleteRect.W = _Theme.ButtonPlaylistName.Rect.W + _Theme.ButtonPlaylistName.Rect.X - CompleteRect.X;
|
||||
if (_Theme.ButtonPlaylistName.Rect.Y + _Theme.ButtonPlaylistName.Rect.H > CompleteRect.Y + CompleteRect.H)
|
||||
CompleteRect.H += _Theme.ButtonPlaylistName.Rect.H + _Theme.ButtonPlaylistName.Rect.Y - CompleteRect.Y;
|
||||
CompleteRect.H = _Theme.ButtonPlaylistName.Rect.H + _Theme.ButtonPlaylistName.Rect.Y - CompleteRect.Y;
|
||||
//ButtonPlaylistSing
|
||||
if (_Theme.ButtonPlaylistSing.Rect.X < CompleteRect.X)
|
||||
CompleteRect.X = _Theme.ButtonPlaylistSing.Rect.X;
|
||||
if (_Theme.ButtonPlaylistSing.Rect.Y < CompleteRect.Y)
|
||||
CompleteRect.Y = _Theme.ButtonPlaylistSing.Rect.Y;
|
||||
if (_Theme.ButtonPlaylistSing.Rect.W + _Theme.ButtonPlaylistSing.Rect.X > CompleteRect.W + CompleteRect.X)
|
||||
CompleteRect.W += _Theme.ButtonPlaylistSing.Rect.W + _Theme.ButtonPlaylistSing.Rect.X - CompleteRect.X;
|
||||
CompleteRect.W = _Theme.ButtonPlaylistSing.Rect.W + _Theme.ButtonPlaylistSing.Rect.X - CompleteRect.X;
|
||||
if (_Theme.ButtonPlaylistSing.Rect.Y + _Theme.ButtonPlaylistSing.Rect.H > CompleteRect.Y + CompleteRect.H)
|
||||
CompleteRect.H += _Theme.ButtonPlaylistSing.Rect.H + _Theme.ButtonPlaylistSing.Rect.Y - CompleteRect.Y;
|
||||
CompleteRect.H = _Theme.ButtonPlaylistSing.Rect.H + _Theme.ButtonPlaylistSing.Rect.Y - CompleteRect.Y;
|
||||
//ButtonPlaylistSave
|
||||
if (_Theme.ButtonPlaylistSave.Rect.X < CompleteRect.X)
|
||||
CompleteRect.X = _Theme.ButtonPlaylistSave.Rect.X;
|
||||
if (_Theme.ButtonPlaylistSave.Rect.Y < CompleteRect.Y)
|
||||
CompleteRect.Y = _Theme.ButtonPlaylistSave.Rect.Y;
|
||||
if (_Theme.ButtonPlaylistSave.Rect.W + _Theme.ButtonPlaylistSave.Rect.X > CompleteRect.W + CompleteRect.X)
|
||||
CompleteRect.W += _Theme.ButtonPlaylistSave.Rect.W + _Theme.ButtonPlaylistSave.Rect.X - CompleteRect.X;
|
||||
CompleteRect.W = _Theme.ButtonPlaylistSave.Rect.W + _Theme.ButtonPlaylistSave.Rect.X - CompleteRect.X;
|
||||
if (_Theme.ButtonPlaylistSave.Rect.Y + _Theme.ButtonPlaylistSave.Rect.H > CompleteRect.Y + CompleteRect.H)
|
||||
CompleteRect.H += _Theme.ButtonPlaylistSave.Rect.H + _Theme.ButtonPlaylistSave.Rect.Y - CompleteRect.Y;
|
||||
CompleteRect.H = _Theme.ButtonPlaylistSave.Rect.H + _Theme.ButtonPlaylistSave.Rect.Y - CompleteRect.Y;
|
||||
//ButtonPlaylistDelete
|
||||
if (_Theme.ButtonPlaylistDelete.Rect.X < CompleteRect.X)
|
||||
CompleteRect.X = _Theme.ButtonPlaylistDelete.Rect.X;
|
||||
if (_Theme.ButtonPlaylistDelete.Rect.Y < CompleteRect.Y)
|
||||
CompleteRect.Y = _Theme.ButtonPlaylistDelete.Rect.Y;
|
||||
if (_Theme.ButtonPlaylistDelete.Rect.W + _Theme.ButtonPlaylistDelete.Rect.X > CompleteRect.W + CompleteRect.X)
|
||||
CompleteRect.W += _Theme.ButtonPlaylistDelete.Rect.W + _Theme.ButtonPlaylistDelete.Rect.X - CompleteRect.X;
|
||||
CompleteRect.W = _Theme.ButtonPlaylistDelete.Rect.W + _Theme.ButtonPlaylistDelete.Rect.X - CompleteRect.X;
|
||||
if (_Theme.ButtonPlaylistDelete.Rect.Y + _Theme.ButtonPlaylistDelete.Rect.H > CompleteRect.Y + CompleteRect.H)
|
||||
CompleteRect.H += _Theme.ButtonPlaylistDelete.Rect.H + _Theme.ButtonPlaylistDelete.Rect.Y - CompleteRect.Y;
|
||||
CompleteRect.H = _Theme.ButtonPlaylistDelete.Rect.H + _Theme.ButtonPlaylistDelete.Rect.Y - CompleteRect.Y;
|
||||
LoadTextures();
|
||||
}
|
||||
return _ThemeLoaded;
|
||||
@@ -425,7 +425,7 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public bool IsMouseOver(MouseEvent MouseEvent)
|
||||
{
|
||||
return CHelper.IsInBounds(Rect, MouseEvent.X, MouseEvent.Y) || _Interactions.IsMouseOver(MouseEvent);
|
||||
return CHelper.IsInBounds(CompleteRect, MouseEvent.X, MouseEvent.Y) || _Interactions.IsMouseOver(MouseEvent);
|
||||
}
|
||||
|
||||
public void UnloadTextures()
|
||||
@@ -934,7 +934,7 @@ namespace Vocaluxe.Menu
|
||||
//Change order with holding LB
|
||||
if (MouseEvent.LBH && CurrentPlaylistElement != -1 && PlaylistElementContents.Count > 1 && DragAndDropSongID == -1)
|
||||
{
|
||||
|
||||
|
||||
ChangeOrderSource = CurrentPlaylistElement + Offset;
|
||||
|
||||
//Update of Drag/Drop-Texture
|
||||
@@ -1076,7 +1076,7 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
UpdatePlaylist();
|
||||
}
|
||||
_EditMode = EEditMode.None;
|
||||
|
||||
@@ -743,8 +743,8 @@ namespace Vocaluxe.Menu
|
||||
if (_NumVisible < 1 || _ValueNames.Count == 0)
|
||||
return;
|
||||
|
||||
float x = Rect.X + Rect.W * 0.1f;
|
||||
float dx = Rect.W * 0.8f / _NumVisible;
|
||||
float x = Rect.X + (Rect.W - TextRelativeX) * 0.1f;
|
||||
float dx = (Rect.W - TextRelativeX) * 0.8f / _NumVisible;
|
||||
//float y = Rect.Y + (Rect.H - TextH);
|
||||
|
||||
int offset = _Selection - (int)_NumVisible/2;
|
||||
|
||||
@@ -53,6 +53,8 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public float Alpha;
|
||||
|
||||
public EAspect Aspect = EAspect.Stretch;
|
||||
|
||||
public CStatic()
|
||||
{
|
||||
_Theme = new SThemeStatic();
|
||||
@@ -213,25 +215,25 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public void Draw()
|
||||
{
|
||||
Draw(1f, Rect.Z, false, false);
|
||||
Draw(1f, Rect.Z, Aspect, false);
|
||||
}
|
||||
|
||||
public void Draw(bool aspect)
|
||||
public void Draw(EAspect aspect)
|
||||
{
|
||||
Draw(1f, Rect.Z, aspect, false);
|
||||
}
|
||||
|
||||
public void Draw(float scale, bool aspect)
|
||||
public void Draw(float scale, EAspect aspect)
|
||||
{
|
||||
Draw(scale, Rect.Z, aspect, false);
|
||||
}
|
||||
|
||||
public void ForceDraw()
|
||||
{
|
||||
Draw(1f, Rect.Z, false, true);
|
||||
Draw(1f, Rect.Z, Aspect, true);
|
||||
}
|
||||
|
||||
public void Draw(float scale, float z, bool aspect, bool ForceDraw)
|
||||
public void Draw(float scale, float z, EAspect aspect, bool ForceDraw)
|
||||
{
|
||||
STexture texture;
|
||||
if (_Texture.index != -1)
|
||||
@@ -248,11 +250,11 @@ namespace Vocaluxe.Menu
|
||||
|
||||
SRectF rect = bounds;
|
||||
|
||||
if (aspect)
|
||||
if (aspect != EAspect.Stretch)
|
||||
{
|
||||
RectangleF bounds2 = new RectangleF(bounds.X, bounds.Y, bounds.W, bounds.H);
|
||||
RectangleF rect2 = new RectangleF(0f, 0f, texture.width, texture.height);
|
||||
CHelper.SetRect(bounds2, ref rect2, texture.width / texture.height, EAspect.Crop);
|
||||
CHelper.SetRect(bounds2, ref rect2, texture.width / texture.height, aspect);
|
||||
|
||||
rect.X = rect2.X;
|
||||
rect.Y = rect2.Y;
|
||||
|
||||
@@ -73,6 +73,11 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_SongMenu.Draw();
|
||||
}
|
||||
|
||||
public void ApplyVolume(float VolumeMax)
|
||||
{
|
||||
_SongMenu.ApplyVolume(VolumeMax);
|
||||
}
|
||||
|
||||
public bool IsActive()
|
||||
{
|
||||
return _SongMenu.IsActive();
|
||||
|
||||
@@ -117,6 +117,8 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
private int _LockedInternal = -1;
|
||||
protected bool _Active = false;
|
||||
|
||||
protected float _MaxVolume = 100f;
|
||||
|
||||
protected int _PreviewSelected //for preview only
|
||||
{
|
||||
get
|
||||
@@ -510,6 +512,16 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
|
||||
}
|
||||
|
||||
public virtual void ApplyVolume(float VolumeMax)
|
||||
{
|
||||
_MaxVolume = VolumeMax;
|
||||
|
||||
foreach (int stream in _streams)
|
||||
{
|
||||
CSound.SetStreamVolumeMax(stream, _MaxVolume);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual bool IsActive()
|
||||
{
|
||||
return _Active;
|
||||
@@ -598,6 +610,11 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
CSongs.Category = -1;
|
||||
}
|
||||
|
||||
public void ApplyVolume()
|
||||
{
|
||||
CSound.SetStreamVolume(_actsongstream, CConfig.PreviewMusicVolume);
|
||||
}
|
||||
|
||||
protected void SelectSong(int nr)
|
||||
{
|
||||
if (CSongs.Category >= 0 && (CSongs.NumVisibleSongs > 0) && (nr >= 0) && ((_actsong != nr) || (_streams.Count == 0)))
|
||||
@@ -619,6 +636,7 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
|
||||
|
||||
int _stream = CSound.Load(Path.Combine(CSongs.VisibleSongs[_actsong].Folder, CSongs.VisibleSongs[_actsong].MP3FileName), true);
|
||||
CSound.SetStreamVolumeMax(_stream, _MaxVolume);
|
||||
CSound.SetStreamVolume(_stream, 0f);
|
||||
|
||||
float startposition = CSongs.VisibleSongs[_actsong].PreviewStart;
|
||||
|
||||
@@ -412,13 +412,13 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
foreach (CStatic tile in _Tiles)
|
||||
{
|
||||
if (tile.Selected && _Active)
|
||||
tile.Draw(1.2f, tile.Rect.Z - 0.1f, true, false);
|
||||
tile.Draw(1.2f, tile.Rect.Z - 0.1f, EAspect.Crop, false);
|
||||
else
|
||||
{
|
||||
if (tile.Texture.index != _CoverTexture.index)
|
||||
tile.Draw(1f, tile.Rect.Z, true, false);
|
||||
tile.Draw(1f, tile.Rect.Z, EAspect.Crop, false);
|
||||
else
|
||||
tile.Draw(1f, tile.Rect.Z, false, false);
|
||||
tile.Draw(1f, tile.Rect.Z, EAspect.Stretch, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -469,11 +469,12 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
}
|
||||
}
|
||||
|
||||
_CoverBig.Draw(1f, true);
|
||||
if (_vidtex.color.A < 1)
|
||||
_CoverBig.Draw(1f, true);
|
||||
_TextBG.Draw();
|
||||
|
||||
_CoverBig.Draw(1f, EAspect.Crop);
|
||||
if (_vidtex.color.A < 1)
|
||||
_CoverBig.Draw(1f, EAspect.Crop);
|
||||
|
||||
if (_vidtex.index != -1 && _Video != -1)
|
||||
{
|
||||
RectangleF bounds = new RectangleF(_CoverBig.Rect.X, _CoverBig.Rect.Y, _CoverBig.Rect.W, _CoverBig.Rect.H);
|
||||
|
||||
@@ -17,6 +17,8 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
void HandleMouse(ref MouseEvent MouseEvent);
|
||||
void Draw();
|
||||
|
||||
void ApplyVolume(float VolumeMax);
|
||||
|
||||
int GetSelectedSong();
|
||||
CStatic GetSelectedSongCover();
|
||||
void SetSelectedSong(int VisibleSongNr);
|
||||
|
||||
@@ -89,6 +89,13 @@ namespace Vocaluxe
|
||||
|
||||
Application.DoEvents();
|
||||
|
||||
//Init Webcam
|
||||
CLog.StartBenchmark(0, "Init Webcam");
|
||||
CWebcam.Init();
|
||||
CLog.StopBenchmark(0, "Init Webcam");
|
||||
|
||||
Application.DoEvents();
|
||||
|
||||
// Init Background Music
|
||||
CLog.StartBenchmark(0, "Init Background Music");
|
||||
CBackgroundMusic.Init();
|
||||
@@ -185,6 +192,7 @@ namespace Vocaluxe
|
||||
CDraw.Unload();
|
||||
CLog.CloseAll();
|
||||
CDataBase.CloseConnections();
|
||||
CWebcam.Close();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,158 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.GameModes;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
using Vocaluxe.Menu;
|
||||
using Vocaluxe.Lib.Song;
|
||||
|
||||
namespace Vocaluxe.Screens
|
||||
{
|
||||
class CPopupScreenVolumeControl : CMenu
|
||||
{
|
||||
// Version number for theme files. Increment it, if you've changed something on the theme files!
|
||||
const int ScreenVersion = 1;
|
||||
|
||||
private const string StaticBG = "StaticBG";
|
||||
|
||||
private const string SelectSlideVolume = "SelectSlideVolume";
|
||||
|
||||
|
||||
public CPopupScreenVolumeControl()
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
protected override void Init()
|
||||
{
|
||||
base.Init();
|
||||
|
||||
_ThemeName = "PopupScreenVolumeControl";
|
||||
_ScreenVersion = ScreenVersion;
|
||||
|
||||
_ThemeStatics = new string[] { StaticBG };
|
||||
_ThemeSelectSlides = new string[] { SelectSlideVolume };
|
||||
|
||||
}
|
||||
|
||||
public override void LoadTheme()
|
||||
{
|
||||
base.LoadTheme();
|
||||
|
||||
_ScreenArea = Statics[htStatics(StaticBG)].Rect;
|
||||
SelectSlides[htSelectSlides(SelectSlideVolume)].AddValues(new string[] { "0", "5", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65", "70", "75", "80", "85", "90", "95", "100" });
|
||||
}
|
||||
|
||||
public override bool HandleInput(KeyEvent KeyEvent)
|
||||
{
|
||||
base.HandleInput(KeyEvent);
|
||||
if (KeyEvent.KeyPressed && !Char.IsControl(KeyEvent.Unicode))
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (KeyEvent.Key)
|
||||
{
|
||||
case Keys.Escape:
|
||||
case Keys.Back:
|
||||
CGraphics.HidePopup(EPopupScreens.PopupVolumeControl);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool HandleMouse(MouseEvent MouseEvent)
|
||||
{
|
||||
base.HandleMouse(MouseEvent);
|
||||
if (MouseEvent.LB)
|
||||
{
|
||||
SaveConfig();
|
||||
return true;
|
||||
}
|
||||
else if (MouseEvent.Wheel > 0 && CHelper.IsInBounds(_ScreenArea, MouseEvent))
|
||||
{
|
||||
if (SelectSlides[htSelectSlides(SelectSlideVolume)].Selection - MouseEvent.Wheel >= 0)
|
||||
SelectSlides[htSelectSlides(SelectSlideVolume)].SetSelectionByValueIndex(SelectSlides[htSelectSlides(SelectSlideVolume)].Selection - MouseEvent.Wheel);
|
||||
else if (SelectSlides[htSelectSlides(SelectSlideVolume)].Selection - MouseEvent.Wheel < 0)
|
||||
SelectSlides[htSelectSlides(SelectSlideVolume)].SetSelectionByValueIndex(0);
|
||||
SaveConfig();
|
||||
return true;
|
||||
}
|
||||
else if (MouseEvent.Wheel < 0 && CHelper.IsInBounds(_ScreenArea, MouseEvent))
|
||||
{
|
||||
if (SelectSlides[htSelectSlides(SelectSlideVolume)].Selection - MouseEvent.Wheel < SelectSlides[htSelectSlides(SelectSlideVolume)].NumValues)
|
||||
SelectSlides[htSelectSlides(SelectSlideVolume)].SetSelectionByValueIndex(SelectSlides[htSelectSlides(SelectSlideVolume)].Selection - MouseEvent.Wheel);
|
||||
else if (SelectSlides[htSelectSlides(SelectSlideVolume)].Selection - MouseEvent.Wheel >= SelectSlides[htSelectSlides(SelectSlideVolume)].NumValues)
|
||||
SelectSlides[htSelectSlides(SelectSlideVolume)].SetSelectionByValueIndex(SelectSlides[htSelectSlides(SelectSlideVolume)].NumValues - 1);
|
||||
SaveConfig();
|
||||
return true;
|
||||
}
|
||||
else if (MouseEvent.RB)
|
||||
{
|
||||
//CGraphics.HidePopup(EPopupScreens.PopupPlayerControl);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void OnShow()
|
||||
{
|
||||
base.OnShow();
|
||||
|
||||
switch (CGraphics.CurrentScreen)
|
||||
{
|
||||
case EScreens.ScreenSong:
|
||||
SelectSlides[htSelectSlides(SelectSlideVolume)].SetSelectionByValueIndex((int)CConfig.PreviewMusicVolume / 5);
|
||||
break;
|
||||
|
||||
case EScreens.ScreenSing:
|
||||
SelectSlides[htSelectSlides(SelectSlideVolume)].SetSelectionByValueIndex((int)CConfig.GameMusicVolume / 5);
|
||||
break;
|
||||
|
||||
default:
|
||||
SelectSlides[htSelectSlides(SelectSlideVolume)].SetSelectionByValueIndex((int)CConfig.BackgroundMusicVolume / 5);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool UpdateGame()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool Draw()
|
||||
{
|
||||
if (!_Active)
|
||||
return false;
|
||||
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
private void SaveConfig()
|
||||
{
|
||||
switch (CGraphics.CurrentScreen)
|
||||
{
|
||||
case EScreens.ScreenSong:
|
||||
CConfig.PreviewMusicVolume = SelectSlides[htSelectSlides(SelectSlideVolume)].Selection * 5;
|
||||
break;
|
||||
|
||||
case EScreens.ScreenSing:
|
||||
CConfig.GameMusicVolume = SelectSlides[htSelectSlides(SelectSlideVolume)].Selection * 5;
|
||||
break;
|
||||
|
||||
default:
|
||||
CConfig.BackgroundMusicVolume = SelectSlides[htSelectSlides(SelectSlideVolume)].Selection * 5;
|
||||
CBackgroundMusic.ApplyVolume();
|
||||
break;
|
||||
}
|
||||
CConfig.SaveConfig();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -12,11 +12,13 @@ namespace Vocaluxe.Screens
|
||||
class CScreenOptionsSound : CMenu
|
||||
{
|
||||
// Version number for theme files. Increment it, if you've changed something on the theme files!
|
||||
const int ScreenVersion = 2;
|
||||
const int ScreenVersion = 3;
|
||||
|
||||
private const string SelectSlideBackgroundMusic = "SelectSlideBackgroundMusic";
|
||||
private const string SelectSlideBackgroundMusicVolume = "SelectSlideBackgroundMusicVolume";
|
||||
private const string SelectSlideBackgroundMusicSource = "SelectSlideBackgroundMusicSource";
|
||||
private const string SelectSlidePreviewMusicVolume = "SelectSlidePreviewMusicVolume";
|
||||
private const string SelectSlideGameMusicVolume = "SelectSlideGameMusicVolume";
|
||||
|
||||
private const string ButtonExit = "ButtonExit";
|
||||
|
||||
@@ -36,7 +38,7 @@ namespace Vocaluxe.Screens
|
||||
_ScreenVersion = ScreenVersion;
|
||||
|
||||
_ThemeButtons = new string[] { ButtonExit };
|
||||
_ThemeSelectSlides = new string[] { SelectSlideBackgroundMusic, SelectSlideBackgroundMusicVolume, SelectSlideBackgroundMusicSource };
|
||||
_ThemeSelectSlides = new string[] { SelectSlideBackgroundMusic, SelectSlideBackgroundMusicVolume, SelectSlideBackgroundMusicSource, SelectSlidePreviewMusicVolume, SelectSlideGameMusicVolume };
|
||||
}
|
||||
|
||||
public override void LoadTheme()
|
||||
@@ -47,6 +49,11 @@ namespace Vocaluxe.Screens
|
||||
SelectSlides[htSelectSlides(SelectSlideBackgroundMusicVolume)].Selection = CConfig.BackgroundMusicVolume / 5;
|
||||
SelectSlides[htSelectSlides(SelectSlideBackgroundMusicSource)].SetValues<EBackgroundMusicSource>((int)CConfig.BackgroundMusicSource);
|
||||
SelectSlides[htSelectSlides(SelectSlideBackgroundMusicSource)].Selection = (int)CConfig.BackgroundMusicSource;
|
||||
SelectSlides[htSelectSlides(SelectSlidePreviewMusicVolume)].AddValues(new string[] { "0", "5", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65", "70", "75", "80", "85", "90", "95", "100" });
|
||||
SelectSlides[htSelectSlides(SelectSlidePreviewMusicVolume)].Selection = CConfig.PreviewMusicVolume / 5;
|
||||
SelectSlides[htSelectSlides(SelectSlideGameMusicVolume)].AddValues(new string[] { "0", "5", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65", "70", "75", "80", "85", "90", "95", "100" });
|
||||
SelectSlides[htSelectSlides(SelectSlideGameMusicVolume)].Selection = CConfig.GameMusicVolume / 5;
|
||||
|
||||
}
|
||||
|
||||
public override bool HandleInput(KeyEvent KeyEvent)
|
||||
@@ -113,6 +120,10 @@ namespace Vocaluxe.Screens
|
||||
|
||||
public override bool UpdateGame()
|
||||
{
|
||||
if (_BackgroundMusicVolume != CConfig.BackgroundMusicVolume)
|
||||
{
|
||||
SelectSlides[htSelectSlides(SelectSlideBackgroundMusicVolume)].Selection = CConfig.BackgroundMusicVolume / 5;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -127,9 +138,16 @@ namespace Vocaluxe.Screens
|
||||
base.OnShow();
|
||||
_BackgroundMusic = CConfig.BackgroundMusic;
|
||||
_BackgroundMusicVolume = CConfig.BackgroundMusicVolume;
|
||||
|
||||
SelectSlides[htSelectSlides(SelectSlideGameMusicVolume)].Selection = CConfig.GameMusicVolume / 5;
|
||||
SelectSlides[htSelectSlides(SelectSlidePreviewMusicVolume)].Selection = CConfig.PreviewMusicVolume / 5;
|
||||
}
|
||||
private void SaveConfig()
|
||||
{
|
||||
CConfig.GameMusicVolume = SelectSlides[htSelectSlides(SelectSlideGameMusicVolume)].Selection * 5;
|
||||
CConfig.PreviewMusicVolume = SelectSlides[htSelectSlides(SelectSlidePreviewMusicVolume)].Selection * 5;
|
||||
CConfig.SaveConfig();
|
||||
|
||||
EOffOn NewOffOn = (EOffOn)SelectSlides[htSelectSlides(SelectSlideBackgroundMusic)].Selection;
|
||||
EBackgroundMusicSource NewSource = (EBackgroundMusicSource)SelectSlides[htSelectSlides(SelectSlideBackgroundMusicSource)].Selection;
|
||||
float NewVolume = SelectSlides[htSelectSlides(SelectSlideBackgroundMusicVolume)].Selection * 5;
|
||||
|
||||
@@ -183,6 +183,7 @@ namespace Vocaluxe.Screens
|
||||
_OldTheme = SelectSlides[htSelectSlides(SelectSlideTheme)].Selection;
|
||||
|
||||
CTheme.UnloadSkins();
|
||||
CFonts.UnloadThemeFonts(CConfig.Theme);
|
||||
CTheme.ListSkins();
|
||||
CConfig.Skin = CTheme.SkinNames[0];
|
||||
_OldSkin = 0;
|
||||
@@ -205,6 +206,7 @@ namespace Vocaluxe.Screens
|
||||
_OldTheme = SelectSlides[htSelectSlides(SelectSlideTheme)].Selection;
|
||||
|
||||
CTheme.UnloadSkins();
|
||||
CFonts.UnloadThemeFonts(CConfig.Theme);
|
||||
CTheme.ListSkins();
|
||||
CConfig.Skin = CTheme.SkinNames[0];
|
||||
_OldSkin = 0;
|
||||
|
||||
@@ -5,6 +5,7 @@ using System.Windows.Forms;
|
||||
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Menu;
|
||||
using Vocaluxe.Lib.Webcam;
|
||||
|
||||
|
||||
namespace Vocaluxe.Screens
|
||||
@@ -12,15 +13,24 @@ namespace Vocaluxe.Screens
|
||||
class CScreenOptionsVideo : CMenu
|
||||
{
|
||||
// Version number for theme files. Increment it, if you've changed something on the theme files!
|
||||
const int ScreenVersion = 2;
|
||||
const int ScreenVersion = 3;
|
||||
|
||||
private const string SelectSlideVideoBackgrounds = "SelectSlideVideoBackgrounds";
|
||||
private const string SelectSlideVideoPreview = "SelectSlideVideoPreview";
|
||||
private const string SelectSlideVideosInSongs = "SelectSlideVideosInSongs";
|
||||
private const string SelectSlideVideosToBackground = "SelectSlideVideosToBackground";
|
||||
private const string SelectSlideWebcamDevices = "SelectSlideWebcamDevices";
|
||||
private const string SelectSlideWebcamCapabilities = "SelectSlideWebcamCapabilities";
|
||||
|
||||
private const string StaticWebcamOutput = "StaticWebcamOutput";
|
||||
|
||||
private const string ButtonExit = "ButtonExit";
|
||||
|
||||
private SWebcamConfig _Config;
|
||||
Lib.Draw.STexture _WebcamTexture = new Lib.Draw.STexture(-1);
|
||||
private int _DeviceNr;
|
||||
private int _CapabilityNr;
|
||||
|
||||
public CScreenOptionsVideo()
|
||||
{
|
||||
Init();
|
||||
@@ -33,8 +43,9 @@ namespace Vocaluxe.Screens
|
||||
_ThemeName = "ScreenOptionsVideo";
|
||||
_ScreenVersion = ScreenVersion;
|
||||
|
||||
_ThemeStatics = new string[] { StaticWebcamOutput };
|
||||
_ThemeButtons = new string[] { ButtonExit };
|
||||
_ThemeSelectSlides = new string[] { SelectSlideVideoBackgrounds, SelectSlideVideoPreview, SelectSlideVideosInSongs, SelectSlideVideosToBackground };
|
||||
_ThemeSelectSlides = new string[] { SelectSlideVideoBackgrounds, SelectSlideVideoPreview, SelectSlideVideosInSongs, SelectSlideVideosToBackground, SelectSlideWebcamDevices, SelectSlideWebcamCapabilities };
|
||||
}
|
||||
|
||||
public override void LoadTheme()
|
||||
@@ -78,10 +89,18 @@ namespace Vocaluxe.Screens
|
||||
break;
|
||||
|
||||
case Keys.Left:
|
||||
if (SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selected)
|
||||
OnDeviceEvent();
|
||||
if (SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Selected)
|
||||
OnCapabilitiesEvent();
|
||||
SaveConfig();
|
||||
break;
|
||||
|
||||
case Keys.Right:
|
||||
if (SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selected)
|
||||
OnDeviceEvent();
|
||||
if (SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Selected)
|
||||
OnCapabilitiesEvent();
|
||||
SaveConfig();
|
||||
break;
|
||||
}
|
||||
@@ -101,6 +120,10 @@ namespace Vocaluxe.Screens
|
||||
|
||||
if (MouseEvent.LB && IsMouseOver(MouseEvent))
|
||||
{
|
||||
if (SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selected)
|
||||
OnDeviceEvent();
|
||||
if (SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Selected)
|
||||
OnCapabilitiesEvent();
|
||||
SaveConfig();
|
||||
if (Buttons[htButtons(ButtonExit)].Selected)
|
||||
{
|
||||
@@ -112,6 +135,8 @@ namespace Vocaluxe.Screens
|
||||
|
||||
public override bool UpdateGame()
|
||||
{
|
||||
CWebcam.GetFrame(ref _WebcamTexture);
|
||||
Statics[htStatics(StaticWebcamOutput)].Texture = _WebcamTexture;
|
||||
SelectSlides[htSelectSlides(SelectSlideVideosToBackground)].Selection = (int)CConfig.VideosToBackground;
|
||||
return true;
|
||||
}
|
||||
@@ -119,18 +144,138 @@ namespace Vocaluxe.Screens
|
||||
public override bool Draw()
|
||||
{
|
||||
base.Draw();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void OnClose()
|
||||
{
|
||||
base.OnClose();
|
||||
CWebcam.Close();
|
||||
}
|
||||
|
||||
public override void OnShow()
|
||||
{
|
||||
base.OnShow();
|
||||
SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Clear();
|
||||
SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Clear();
|
||||
|
||||
_DeviceNr = -1;
|
||||
_CapabilityNr = -1;
|
||||
|
||||
SWebcamDevice[] devices = CWebcam.GetDevices();
|
||||
|
||||
if (devices != null)
|
||||
{
|
||||
if (devices.Length > 0)
|
||||
{
|
||||
_DeviceNr = 0;
|
||||
_CapabilityNr = 0;
|
||||
GetFirstConfiguredWebcamDevice(ref _DeviceNr, ref _CapabilityNr);
|
||||
|
||||
foreach (SWebcamDevice d in devices)
|
||||
{
|
||||
SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].AddValue(d.Name);
|
||||
}
|
||||
SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selection = _DeviceNr;
|
||||
|
||||
foreach (SCapabilities c in devices[_DeviceNr].Capabilities)
|
||||
{
|
||||
SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].AddValue(c.Width.ToString() + " x " + c.Height.ToString() + " @ " + c.Framerate.ToString() + " FPS ");
|
||||
}
|
||||
_Config.MonikerString = devices[SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selection].MonikerString;
|
||||
_Config.Width = devices[SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selection].Capabilities[SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Selection].Width;
|
||||
_Config.Height = devices[SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selection].Capabilities[SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Selection].Height;
|
||||
_Config.Framerate = devices[SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selection].Capabilities[SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Selection].Framerate;
|
||||
CWebcam.Close();
|
||||
CWebcam.Select(CConfig.WebcamConfig);
|
||||
CWebcam.Start();
|
||||
}
|
||||
}
|
||||
SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Visible = (devices != null && devices.Length > 0);
|
||||
SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Visible = (devices != null && devices.Length > 0);
|
||||
Statics[htStatics(StaticWebcamOutput)].Visible = (devices != null && devices.Length > 0);
|
||||
}
|
||||
|
||||
private void SaveConfig()
|
||||
{
|
||||
CConfig.VideoBackgrounds = (EOffOn)SelectSlides[htSelectSlides(SelectSlideVideoBackgrounds)].Selection;
|
||||
CConfig.VideoPreview = (EOffOn)SelectSlides[htSelectSlides(SelectSlideVideoPreview)].Selection;
|
||||
CConfig.VideosInSongs = (EOffOn)SelectSlides[htSelectSlides(SelectSlideVideosInSongs)].Selection;
|
||||
CConfig.VideosToBackground = (EOffOn)SelectSlides[htSelectSlides(SelectSlideVideosToBackground)].Selection;
|
||||
|
||||
CConfig.WebcamConfig = _Config;
|
||||
CBackgroundMusic.VideoEnabled = true;
|
||||
|
||||
CConfig.SaveConfig();
|
||||
}
|
||||
|
||||
private void OnDeviceEvent()
|
||||
{
|
||||
if (SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selection != _DeviceNr)
|
||||
{
|
||||
SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Clear();
|
||||
_DeviceNr = SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selection;
|
||||
_CapabilityNr = 0;
|
||||
|
||||
SWebcamDevice[] d = CWebcam.GetDevices();
|
||||
for (int i = 0; i < d[SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selection].Capabilities.Count; i++)
|
||||
{
|
||||
SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].AddValue(d[_DeviceNr].Capabilities[i].Width.ToString() + " x " + d[_DeviceNr].Capabilities[i].Height.ToString() + " @ " + d[_DeviceNr].Capabilities[i].Framerate.ToString() + "FPS");
|
||||
}
|
||||
SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Selection = 0;
|
||||
|
||||
_Config.MonikerString = d[SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selection].MonikerString;
|
||||
_Config.Width = d[SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selection].Capabilities[SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Selection].Width;
|
||||
_Config.Height = d[SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selection].Capabilities[SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Selection].Height;
|
||||
_Config.Framerate = d[SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selection].Capabilities[SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Selection].Framerate;
|
||||
|
||||
CWebcam.Close();
|
||||
CWebcam.Select(_Config);
|
||||
CWebcam.Start();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnCapabilitiesEvent()
|
||||
{
|
||||
if (SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Selection != _CapabilityNr)
|
||||
{
|
||||
_CapabilityNr = SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Selection;
|
||||
|
||||
SWebcamDevice[] d = CWebcam.GetDevices();
|
||||
_Config.MonikerString = d[SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selection].MonikerString;
|
||||
_Config.Width = d[SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selection].Capabilities[SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Selection].Width;
|
||||
_Config.Height = d[SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selection].Capabilities[SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Selection].Height;
|
||||
_Config.Framerate = d[SelectSlides[htSelectSlides(SelectSlideWebcamDevices)].Selection].Capabilities[SelectSlides[htSelectSlides(SelectSlideWebcamCapabilities)].Selection].Framerate;
|
||||
|
||||
CWebcam.Close();
|
||||
CWebcam.Select(_Config);
|
||||
CWebcam.Start();
|
||||
}
|
||||
}
|
||||
|
||||
private void GetFirstConfiguredWebcamDevice(ref int Device, ref int Capabilities)
|
||||
{
|
||||
SWebcamDevice[] devices = CWebcam.GetDevices();
|
||||
|
||||
if (devices == null)
|
||||
return;
|
||||
|
||||
for (int i = 0; i < devices.Length; i++)
|
||||
{
|
||||
if (devices[i].MonikerString == CConfig.WebcamConfig.MonikerString)
|
||||
{
|
||||
for (int j = 0; j < devices[i].Capabilities.Count; j++)
|
||||
{
|
||||
if (devices[i].Capabilities[j].Framerate == CConfig.WebcamConfig.Framerate && devices[i].Capabilities[j].Width == CConfig.WebcamConfig.Width && devices[i].Capabilities[j].Height == CConfig.WebcamConfig.Height)
|
||||
{
|
||||
Device = i;
|
||||
Capabilities = j;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,9 @@ using System.Windows.Forms;
|
||||
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Menu;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
|
||||
namespace Vocaluxe.Screens
|
||||
{
|
||||
@@ -17,7 +20,7 @@ namespace Vocaluxe.Screens
|
||||
class CScreenProfiles : CMenu
|
||||
{
|
||||
// Version number for theme files. Increment it, if you've changed something on the theme files!
|
||||
const int ScreenVersion = 1;
|
||||
const int ScreenVersion = 2;
|
||||
|
||||
private const string SelectSlideProfiles = "SelectSlideProfiles";
|
||||
private const string SelectSlideDifficulty = "SelectSlideDifficulty";
|
||||
@@ -29,10 +32,17 @@ namespace Vocaluxe.Screens
|
||||
private const string ButtonSave = "ButtonSave";
|
||||
private const string ButtonNew = "ButtonNew";
|
||||
private const string ButtonDelete = "ButtonDelete";
|
||||
private const string ButtonWebcam = "ButtonWebcam";
|
||||
private const string ButtonSaveSnapshot = "ButtonSaveSnapshot";
|
||||
private const string ButtonDiscardSnapshot = "ButtonDiscardSnapshot";
|
||||
private const string ButtonTakeSnapshot = "ButtonTakeSnapshot";
|
||||
|
||||
private const string StaticAvatar = "StaticAvatar";
|
||||
|
||||
private EEditMode _EditMode;
|
||||
|
||||
private Lib.Draw.STexture _WebcamTexture = new Lib.Draw.STexture(-1);
|
||||
private Bitmap _Snapshot = null;
|
||||
|
||||
public CScreenProfiles()
|
||||
{
|
||||
@@ -45,7 +55,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
_ThemeName = "ScreenProfiles";
|
||||
_ScreenVersion = ScreenVersion;
|
||||
_ThemeButtons = new string[] { ButtonPlayerName, ButtonExit, ButtonSave, ButtonNew, ButtonDelete };
|
||||
_ThemeButtons = new string[] { ButtonPlayerName, ButtonExit, ButtonSave, ButtonNew, ButtonDelete, ButtonWebcam, ButtonSaveSnapshot, ButtonDiscardSnapshot, ButtonTakeSnapshot };
|
||||
_ThemeSelectSlides = new string[] { SelectSlideProfiles, SelectSlideDifficulty, SelectSlideAvatars, SelectSlideGuestProfile, SelectSlideActive };
|
||||
_ThemeStatics = new string[] { StaticAvatar };
|
||||
|
||||
@@ -56,6 +66,13 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
base.LoadTheme();
|
||||
|
||||
Buttons[htButtons(ButtonSaveSnapshot)].Visible = false;
|
||||
Buttons[htButtons(ButtonDiscardSnapshot)].Visible = false;
|
||||
Buttons[htButtons(ButtonTakeSnapshot)].Visible = false;
|
||||
if (CWebcam.GetDevices().Length > 0)
|
||||
Buttons[htButtons(ButtonWebcam)].Visible = true;
|
||||
else
|
||||
Buttons[htButtons(ButtonWebcam)].Visible = false;
|
||||
SelectSlides[htSelectSlides(SelectSlideDifficulty)].SetValues<EGameDifficulty>(0);
|
||||
SelectSlides[htSelectSlides(SelectSlideGuestProfile)].SetValues<EOffOn>(0);
|
||||
SelectSlides[htSelectSlides(SelectSlideActive)].SetValues<EOffOn>(0);
|
||||
@@ -108,6 +125,18 @@ namespace Vocaluxe.Screens
|
||||
} else if (Buttons[htButtons(ButtonDelete)].Selected)
|
||||
{
|
||||
DeleteProfile();
|
||||
} else if (Buttons[htButtons(ButtonWebcam)].Selected && CWebcam.GetDevices().Length > 0)
|
||||
{
|
||||
OnWebcam();
|
||||
} else if (Buttons[htButtons(ButtonSaveSnapshot)].Selected && CWebcam.GetDevices().Length > 0)
|
||||
{
|
||||
OnSaveSnapshot();
|
||||
} else if (Buttons[htButtons(ButtonDiscardSnapshot)].Selected && CWebcam.GetDevices().Length > 0)
|
||||
{
|
||||
OnDiscardSnapshot();
|
||||
} else if (Buttons[htButtons(ButtonTakeSnapshot)].Selected && CWebcam.GetDevices().Length > 0)
|
||||
{
|
||||
OnTakeSnapshot();
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -179,6 +208,8 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
CProfiles.SetAvatar(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection,
|
||||
SelectSlides[htSelectSlides(SelectSlideAvatars)].Selection);
|
||||
if (CWebcam.GetDevices().Length > 0 && _WebcamTexture.index > 0)
|
||||
OnDiscardSnapshot();
|
||||
} else if (SelectSlides[htSelectSlides(SelectSlideGuestProfile)].Selected)
|
||||
{
|
||||
CProfiles.SetGuestProfile(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection,
|
||||
@@ -187,6 +218,18 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
CProfiles.SetActive(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection,
|
||||
(EOffOn)SelectSlides[htSelectSlides(SelectSlideActive)].Selection);
|
||||
} else if (Buttons[htButtons(ButtonWebcam)].Selected && CWebcam.GetDevices().Length > 0)
|
||||
{
|
||||
OnWebcam();
|
||||
} else if (Buttons[htButtons(ButtonSaveSnapshot)].Selected && CWebcam.GetDevices().Length > 0)
|
||||
{
|
||||
OnSaveSnapshot();
|
||||
} else if (Buttons[htButtons(ButtonDiscardSnapshot)].Selected && CWebcam.GetDevices().Length > 0)
|
||||
{
|
||||
OnDiscardSnapshot();
|
||||
} else if (Buttons[htButtons(ButtonTakeSnapshot)].Selected && CWebcam.GetDevices().Length > 0)
|
||||
{
|
||||
OnTakeSnapshot();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -197,6 +240,68 @@ namespace Vocaluxe.Screens
|
||||
return true;
|
||||
}
|
||||
|
||||
private void OnTakeSnapshot()
|
||||
{
|
||||
Buttons[htButtons(ButtonSaveSnapshot)].Visible = true;
|
||||
Buttons[htButtons(ButtonDiscardSnapshot)].Visible = true;
|
||||
Buttons[htButtons(ButtonWebcam)].Visible = false;
|
||||
Buttons[htButtons(ButtonTakeSnapshot)].Visible = false;
|
||||
_Snapshot = CWebcam.GetBitmap();
|
||||
}
|
||||
|
||||
private void OnDiscardSnapshot()
|
||||
{
|
||||
CWebcam.Stop();
|
||||
CDraw.RemoveTexture(ref _WebcamTexture);
|
||||
_Snapshot = null;
|
||||
Buttons[htButtons(ButtonSaveSnapshot)].Visible = false;
|
||||
Buttons[htButtons(ButtonDiscardSnapshot)].Visible = false;
|
||||
Buttons[htButtons(ButtonTakeSnapshot)].Visible = false;
|
||||
Buttons[htButtons(ButtonWebcam)].Visible = true;
|
||||
}
|
||||
|
||||
private void OnSaveSnapshot()
|
||||
{
|
||||
string filename = "snapshot";
|
||||
int i = 0;
|
||||
while (File.Exists(Path.Combine(CSettings.sFolderProfiles, filename + i + ".png")))
|
||||
{
|
||||
i++;
|
||||
}
|
||||
_Snapshot.Save(Path.Combine(CSettings.sFolderProfiles, filename + i + ".png"), System.Drawing.Imaging.ImageFormat.Png);
|
||||
CProfiles.LoadAvatars();
|
||||
LoadAvatars();
|
||||
_Snapshot = null;
|
||||
CWebcam.Stop();
|
||||
CDraw.RemoveTexture(ref _WebcamTexture);
|
||||
|
||||
for (int j = 0; j < CProfiles.Avatars.Length; j++)
|
||||
{
|
||||
if (CProfiles.Avatars[j].FileName == (filename + i + ".png"))
|
||||
{
|
||||
CProfiles.SetAvatar(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection, j);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Buttons[htButtons(ButtonSaveSnapshot)].Visible = false;
|
||||
Buttons[htButtons(ButtonDiscardSnapshot)].Visible = false;
|
||||
Buttons[htButtons(ButtonTakeSnapshot)].Visible = false;
|
||||
Buttons[htButtons(ButtonWebcam)].Visible = true;
|
||||
}
|
||||
|
||||
private void OnWebcam()
|
||||
{
|
||||
_Snapshot = null;
|
||||
CWebcam.Start();
|
||||
CWebcam.GetFrame(ref _WebcamTexture);
|
||||
Buttons[htButtons(ButtonSaveSnapshot)].Visible = false;
|
||||
Buttons[htButtons(ButtonDiscardSnapshot)].Visible = false;
|
||||
Buttons[htButtons(ButtonTakeSnapshot)].Visible = true;
|
||||
Buttons[htButtons(ButtonWebcam)].Visible = false;
|
||||
}
|
||||
|
||||
public override bool UpdateGame()
|
||||
{
|
||||
if (SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection > -1)
|
||||
@@ -211,7 +316,18 @@ namespace Vocaluxe.Screens
|
||||
|
||||
int avatarNr = CProfiles.GetAvatarNr(SelectSlides[htSelectSlides(SelectSlideProfiles)].Selection);
|
||||
SelectSlides[htSelectSlides(SelectSlideAvatars)].Selection = avatarNr;
|
||||
Statics[htStatics(StaticAvatar)].Texture = CProfiles.Avatars[avatarNr].Texture;
|
||||
if (CWebcam.GetDevices().Length > 0 && _WebcamTexture.index > 0)
|
||||
{
|
||||
if(_Snapshot == null)
|
||||
CWebcam.GetFrame(ref _WebcamTexture);
|
||||
Statics[htStatics(StaticAvatar)].Texture = _WebcamTexture;
|
||||
|
||||
RectangleF bounds = new RectangleF(_WebcamTexture.rect.X, _WebcamTexture.rect.Y, _WebcamTexture.rect.W, _WebcamTexture.rect.H);
|
||||
RectangleF rect = new RectangleF(0f, 0f, _WebcamTexture.rect.W, _WebcamTexture.rect.H);
|
||||
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, EAspect.Crop);
|
||||
}
|
||||
else
|
||||
Statics[htStatics(StaticAvatar)].Texture = CProfiles.Avatars[avatarNr].Texture;
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -227,6 +343,13 @@ namespace Vocaluxe.Screens
|
||||
UpdateGame();
|
||||
}
|
||||
|
||||
public override void OnClose()
|
||||
{
|
||||
base.OnClose();
|
||||
|
||||
OnDiscardSnapshot();
|
||||
}
|
||||
|
||||
public override bool Draw()
|
||||
{
|
||||
return base.Draw();
|
||||
|
||||
+100
-36
@@ -17,7 +17,7 @@ namespace Vocaluxe.Screens
|
||||
class CScreenSing : CMenu
|
||||
{
|
||||
// Version number for theme files. Increment it, if you've changed something on the theme files!
|
||||
const int ScreenVersion = 5;
|
||||
const int ScreenVersion = 6;
|
||||
|
||||
struct TimeRect
|
||||
{
|
||||
@@ -75,6 +75,7 @@ namespace Vocaluxe.Screens
|
||||
private int _CurrentVideo = -1;
|
||||
private EAspect _VideoAspect = EAspect.Crop;
|
||||
private STexture _CurrentVideoTexture = new STexture(-1);
|
||||
private STexture _CurrentWebcamFrameTexture = new STexture(-1);
|
||||
private STexture _Background = new STexture(-1);
|
||||
|
||||
private float _CurrentTime = 0f;
|
||||
@@ -92,6 +93,7 @@ namespace Vocaluxe.Screens
|
||||
private Stopwatch _TimerDuetText2;
|
||||
|
||||
private bool _Pause;
|
||||
private bool _Webcam;
|
||||
|
||||
public CScreenSing()
|
||||
{
|
||||
@@ -149,6 +151,7 @@ namespace Vocaluxe.Screens
|
||||
public override void LoadTheme()
|
||||
{
|
||||
base.LoadTheme();
|
||||
|
||||
Statics[htStatics(StaticTimeLine)].Visible = false;
|
||||
Statics[htStatics(StaticTimeLineExpandedNormal)].Visible = false;
|
||||
Statics[htStatics(StaticTimeLineExpandedHighlighted)].Visible = false;
|
||||
@@ -184,13 +187,13 @@ namespace Vocaluxe.Screens
|
||||
TogglePause();
|
||||
if (_Pause)
|
||||
SetInteractionToButton(Buttons[htButtons(ButtonContinue)]);
|
||||
break;
|
||||
|
||||
break;
|
||||
|
||||
case Keys.T:
|
||||
int mode = (int)CConfig.TimerMode;
|
||||
|
||||
|
||||
mode++;
|
||||
if (mode > Enum.GetNames(typeof(ETimerMode)).Length-1)
|
||||
if (mode > Enum.GetNames(typeof(ETimerMode)).Length - 1)
|
||||
{
|
||||
mode = 0;
|
||||
}
|
||||
@@ -215,7 +218,16 @@ namespace Vocaluxe.Screens
|
||||
if(KeyEvent.ModCTRL)
|
||||
LoadNextSong();
|
||||
break;
|
||||
|
||||
case Keys.W:
|
||||
if (CWebcam.GetDevices().Length > 0)
|
||||
{
|
||||
_Webcam = !_Webcam;
|
||||
if (_Webcam)
|
||||
CWebcam.Start();
|
||||
else
|
||||
CWebcam.Stop();
|
||||
}
|
||||
break;
|
||||
case Keys.Enter:
|
||||
if (Buttons[htButtons(ButtonContinue)].Selected && _Pause)
|
||||
TogglePause();
|
||||
@@ -227,6 +239,30 @@ namespace Vocaluxe.Screens
|
||||
TogglePause();
|
||||
}
|
||||
break;
|
||||
|
||||
case Keys.Add:
|
||||
case Keys.PageUp:
|
||||
if (KeyEvent.ModSHIFT)
|
||||
{
|
||||
CConfig.GameMusicVolume = CConfig.GameMusicVolume + 5;
|
||||
if (CConfig.GameMusicVolume > 100)
|
||||
CConfig.GameMusicVolume = 100;
|
||||
CConfig.SaveConfig();
|
||||
ApplyVolume();
|
||||
}
|
||||
break;
|
||||
|
||||
case Keys.Subtract:
|
||||
case Keys.PageDown:
|
||||
if (KeyEvent.ModSHIFT)
|
||||
{
|
||||
CConfig.GameMusicVolume = CConfig.GameMusicVolume - 5;
|
||||
if (CConfig.GameMusicVolume < 0)
|
||||
CConfig.GameMusicVolume = 0;
|
||||
CConfig.SaveConfig();
|
||||
ApplyVolume();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -275,7 +311,7 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
else
|
||||
Finish = true;
|
||||
|
||||
|
||||
if (Finish)
|
||||
{
|
||||
LoadNextSong();
|
||||
@@ -283,7 +319,6 @@ namespace Vocaluxe.Screens
|
||||
|
||||
UpdateSongText();
|
||||
UpdateDuetText();
|
||||
|
||||
if (_FadeOut)
|
||||
return true;
|
||||
|
||||
@@ -322,7 +357,7 @@ namespace Vocaluxe.Screens
|
||||
Texts[htTexts(TextNames[p, CGame.NumPlayer - 1])].Alpha = Alpha[CGame.Player[p].LineNr * 2];
|
||||
Texts[htTexts(TextScores[p, CGame.NumPlayer - 1])].Alpha = Alpha[CGame.Player[p].LineNr * 2];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Alpha.Length > 2)
|
||||
{
|
||||
@@ -339,7 +374,7 @@ namespace Vocaluxe.Screens
|
||||
Statics[htStatics(StaticLyricHelper)].Alpha = Alpha[2];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
for (int p = 0; p < CGame.NumPlayer; p++)
|
||||
{
|
||||
@@ -358,18 +393,22 @@ namespace Vocaluxe.Screens
|
||||
float vtime = 0f;
|
||||
CVideo.VdGetFrame(_CurrentVideo, ref _CurrentVideoTexture, _CurrentTime, ref vtime);
|
||||
}
|
||||
|
||||
|
||||
if (_Webcam)
|
||||
CWebcam.GetFrame(ref _CurrentWebcamFrameTexture);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void OnShow()
|
||||
{
|
||||
base.OnShow();
|
||||
|
||||
|
||||
_FadeOut = false;
|
||||
|
||||
|
||||
_CurrentVideo = -1;
|
||||
_CurrentVideoTexture = new STexture(-1);
|
||||
_CurrentWebcamFrameTexture = new STexture(-1);
|
||||
_CurrentBeat = -100;
|
||||
_CurrentTime = 0f;
|
||||
_FinishTime = 0f;
|
||||
@@ -379,7 +418,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
_TimeRects.Clear();
|
||||
|
||||
SingNotes[htSingNotes(SingBars)].Reset();
|
||||
SingNotes[htSingNotes(SingBars)].Reset();
|
||||
for (int i = 0; i < CSettings.MaxNumPlayer; i++)
|
||||
{
|
||||
NoteLines[i] = -1;
|
||||
@@ -389,6 +428,11 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
Lyrics[i].LyricStyle = CConfig.LyricStyle;
|
||||
}
|
||||
|
||||
for (int p = 0; p < CGame.NumPlayer; p++)
|
||||
{
|
||||
Statics[htStatics(StaticAvatars[p, CGame.NumPlayer - 1])].Aspect = EAspect.Crop;
|
||||
}
|
||||
SetVisuability();
|
||||
|
||||
UpdateAvatars();
|
||||
@@ -411,7 +455,7 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
if (_Active)
|
||||
{
|
||||
if (_CurrentVideo != -1 && CConfig.VideosInSongs == EOffOn.TR_CONFIG_ON)
|
||||
if (_CurrentVideo != -1 && CConfig.VideosInSongs == EOffOn.TR_CONFIG_ON && !_Webcam)
|
||||
{
|
||||
RectangleF bounds = new RectangleF(0, 0, CSettings.iRenderW, CSettings.iRenderH);
|
||||
RectangleF rect = new RectangleF(0f, 0f, _CurrentVideoTexture.width, _CurrentVideoTexture.height);
|
||||
@@ -420,6 +464,15 @@ namespace Vocaluxe.Screens
|
||||
CDraw.DrawTexture(_CurrentVideoTexture, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, 0f),
|
||||
_CurrentVideoTexture.color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), false);
|
||||
}
|
||||
else if (_Webcam)
|
||||
{
|
||||
RectangleF bounds = new RectangleF(0, 0, CSettings.iRenderW, CSettings.iRenderH);
|
||||
RectangleF rect = new RectangleF(0f, 0f, _CurrentWebcamFrameTexture.width, _CurrentWebcamFrameTexture.height);
|
||||
CHelper.SetRect(bounds, ref rect, rect.Width / rect.Height, _VideoAspect);
|
||||
|
||||
CDraw.DrawTexture(_CurrentWebcamFrameTexture, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, 0f),
|
||||
_CurrentVideoTexture.color, new SRectF(bounds.X, bounds.Y, bounds.Width, bounds.Height, 0f), false);
|
||||
}
|
||||
else
|
||||
{ // Draw Background
|
||||
RectangleF bounds = new RectangleF(0, 0, CSettings.iRenderW, CSettings.iRenderH);
|
||||
@@ -460,7 +513,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
Lyrics[htLyrics(LyricSubTop)].Draw(-100);
|
||||
Lyrics[htLyrics(LyricMainTop)].Draw(CGame.Beat);
|
||||
|
||||
|
||||
|
||||
for (int i = 0; i < CGame.NumPlayer; i++)
|
||||
{
|
||||
@@ -480,7 +533,7 @@ namespace Vocaluxe.Screens
|
||||
foreach (CSelectSlide slide in SelectSlides)
|
||||
slide.Draw();
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -491,6 +544,11 @@ namespace Vocaluxe.Screens
|
||||
CloseSong();
|
||||
}
|
||||
|
||||
public override void ApplyVolume()
|
||||
{
|
||||
CSound.SetStreamVolumeMax(_CurrentStream, CConfig.GameMusicVolume);
|
||||
}
|
||||
|
||||
private void CloseSong()
|
||||
{
|
||||
CSound.FadeAndStop(_CurrentStream, 0f, 0.5f);
|
||||
@@ -545,6 +603,7 @@ namespace Vocaluxe.Screens
|
||||
Texts[htTexts(TextSongName)].Text = songname;
|
||||
|
||||
_CurrentStream = CSound.Load(song.GetMP3(), true);
|
||||
CSound.SetStreamVolumeMax(_CurrentStream, CConfig.GameMusicVolume);
|
||||
CSound.SetStreamVolume(_CurrentStream, _Volume);
|
||||
CSound.SetPosition(_CurrentStream, song.Start);
|
||||
_CurrentTime = song.Start;
|
||||
@@ -563,7 +622,7 @@ namespace Vocaluxe.Screens
|
||||
CGame.ResetPlayer();
|
||||
|
||||
CDraw.RemoveTexture(ref _CurrentVideoTexture);
|
||||
|
||||
|
||||
if (song.VideoFileName != String.Empty)
|
||||
{
|
||||
_CurrentVideo = CVideo.VdLoad(Path.Combine(song.Folder, song.VideoFileName));
|
||||
@@ -624,7 +683,7 @@ namespace Vocaluxe.Screens
|
||||
CTheme.GetPlayerColor(p + 1),
|
||||
p);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
case 4:
|
||||
NoteLines[0] = SingNotes[htSingNotes(SingBars)].AddPlayer(new SRectF(35f, 100f, 590f, 200f, -0.5f), CTheme.ThemeColors.Player[0]);
|
||||
@@ -633,7 +692,7 @@ namespace Vocaluxe.Screens
|
||||
NoteLines[3] = SingNotes[htSingNotes(SingBars)].AddPlayer(new SRectF(640f, 350f, 590f, 200f, -0.5f), CTheme.ThemeColors.Player[3]);
|
||||
break;
|
||||
*/
|
||||
|
||||
|
||||
|
||||
_TimerSongText.Stop();
|
||||
_TimerSongText.Reset();
|
||||
@@ -655,6 +714,8 @@ namespace Vocaluxe.Screens
|
||||
PrepareTimeLine();
|
||||
CSound.Play(_CurrentStream);
|
||||
CSound.RecordStart();
|
||||
if(_Webcam)
|
||||
CWebcam.Start();
|
||||
}
|
||||
|
||||
private void Stop()
|
||||
@@ -665,6 +726,8 @@ namespace Vocaluxe.Screens
|
||||
|
||||
CGraphics.FadeTo(EScreens.ScreenScore);
|
||||
_FadeOut = true;
|
||||
if (_Webcam)
|
||||
CWebcam.Close();
|
||||
}
|
||||
|
||||
private void UpdateLyrics()
|
||||
@@ -778,6 +841,7 @@ namespace Vocaluxe.Screens
|
||||
Buttons[htButtons(ButtonContinue)].Visible = false;
|
||||
Buttons[htButtons(ButtonSkip)].Visible = false;
|
||||
CSound.Play(_CurrentStream);
|
||||
CWebcam.Start();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -807,7 +871,7 @@ namespace Vocaluxe.Screens
|
||||
{
|
||||
StaticScores = new string[CSettings.MaxNumPlayer, CSettings.MaxNumPlayer];
|
||||
StaticAvatars = new string[CSettings.MaxNumPlayer, CSettings.MaxNumPlayer];
|
||||
|
||||
|
||||
for (int numplayer = 0; numplayer < CSettings.MaxNumPlayer; numplayer++)
|
||||
{
|
||||
for (int player = 0; player < CSettings.MaxNumPlayer; player++)
|
||||
@@ -833,7 +897,7 @@ namespace Vocaluxe.Screens
|
||||
Statics[htStatics(StaticLyricHelperTop)].Visible = false;
|
||||
Lyrics[htLyrics(LyricMainDuet)].Visible = false;
|
||||
Lyrics[htLyrics(LyricSubDuet)].Visible = false;
|
||||
|
||||
|
||||
Statics[htStatics(StaticSongText)].Visible = false;
|
||||
Texts[htTexts(TextSongName)].Visible = false;
|
||||
Texts[htTexts(TextDuetName1)].Visible = false;
|
||||
@@ -849,7 +913,7 @@ namespace Vocaluxe.Screens
|
||||
Texts[htTexts(TextNames[player, numplayer])].Visible = ((numplayer + 1 == CGame.NumPlayer)
|
||||
&& (CConfig.PlayerInfo == EPlayerInfo.TR_CONFIG_PLAYERINFO_BOTH || CConfig.PlayerInfo == EPlayerInfo.TR_CONFIG_PLAYERINFO_NAME));
|
||||
Statics[htStatics(StaticScores[player, numplayer])].Visible = (numplayer + 1 == CGame.NumPlayer);
|
||||
Statics[htStatics(StaticAvatars[player, numplayer])].Visible = ((numplayer + 1 == CGame.NumPlayer)
|
||||
Statics[htStatics(StaticAvatars[player, numplayer])].Visible = ((numplayer + 1 == CGame.NumPlayer)
|
||||
&& (CConfig.PlayerInfo == EPlayerInfo.TR_CONFIG_PLAYERINFO_BOTH || CConfig.PlayerInfo == EPlayerInfo.TR_CONFIG_PLAYERINFO_AVATAR));
|
||||
}
|
||||
}
|
||||
@@ -941,7 +1005,7 @@ namespace Vocaluxe.Screens
|
||||
time = totaltime;
|
||||
|
||||
SRectF Rect = Statics[htStatics(StaticLyricHelperDuet)].Rect;
|
||||
|
||||
|
||||
SColorF Color = new SColorF(
|
||||
Statics[htStatics(StaticLyricHelperDuet)].Color.R,
|
||||
Statics[htStatics(StaticLyricHelperDuet)].Color.G,
|
||||
@@ -1001,7 +1065,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
// default values
|
||||
Alpha[i * 2] = 1f;
|
||||
Alpha[i * 2 + 1] = 1f;
|
||||
Alpha[i * 2 + 1] = 1f;
|
||||
|
||||
// main line alpha
|
||||
if (CurrentLine == 0 && CurrentTime < CGame.GetTimeFromBeats(line[CurrentLine].FirstNoteBeat, Song.BPM))
|
||||
@@ -1033,15 +1097,15 @@ namespace Vocaluxe.Screens
|
||||
float next = CGame.GetTimeFromBeats(line[CurrentLine + 1].FirstNoteBeat, Song.BPM) - CurrentTime;
|
||||
|
||||
if (last < next)
|
||||
{
|
||||
{
|
||||
// fade out
|
||||
Alpha[i * 2] = 1f - last / rt;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
// fade in if it is time for
|
||||
if (next > dt)
|
||||
Alpha[i * 2] = 1f - (next - dt) / rt;
|
||||
if (next > dt)
|
||||
Alpha[i * 2] = 1f - (next - dt) / rt;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1056,9 +1120,9 @@ namespace Vocaluxe.Screens
|
||||
// sub
|
||||
if (CurrentLineSub < line.Length - 2)
|
||||
{
|
||||
float diff = 0f;
|
||||
float diff = 0f;
|
||||
diff = CGame.GetTimeFromBeats(line[CurrentLineSub + 1].FirstNoteBeat, Song.BPM) - CurrentTime;
|
||||
|
||||
|
||||
if (diff > dt)
|
||||
{
|
||||
Alpha[i * 2 + 1] = 1f - (diff - dt) / rt;
|
||||
@@ -1199,7 +1263,7 @@ namespace Vocaluxe.Screens
|
||||
float CurrentTime = _CurrentTime - song.Start;
|
||||
|
||||
if (TotalTime <= 0f)
|
||||
return;
|
||||
return;
|
||||
|
||||
switch (CConfig.TimerMode)
|
||||
{
|
||||
@@ -1282,15 +1346,15 @@ namespace Vocaluxe.Screens
|
||||
CLines[] Lines = new CLines[song.Notes.Lines.Length];
|
||||
Lines = song.Notes.Lines;
|
||||
for (int i = 0; i < Lines.Length; i++)
|
||||
{
|
||||
{
|
||||
CLine[] Line = Lines[i].Line;
|
||||
for(int j = 0; j<Line.Length; j++){
|
||||
for (int j = 0; j < Line.Length; j++)
|
||||
{
|
||||
if (Line[j].VisibleInTimeLine)
|
||||
{
|
||||
TimeRect trect = new TimeRect();
|
||||
trect.startBeat = Line[j].FirstNoteBeat;
|
||||
trect.endBeat = Line[j].EndBeat;
|
||||
|
||||
trect.rect = new CStatic(new STexture(-1),
|
||||
new SColorF(1f, 1f, 1f, 1f),
|
||||
new SRectF(stat.Rect.X + stat.Rect.W * ((CGame.GetTimeFromBeats(trect.startBeat, song.BPM) + song.Gap - song.Start) / TotalTime),
|
||||
|
||||
@@ -106,6 +106,10 @@ namespace Vocaluxe.Screens
|
||||
DragAndDropCover = new CStatic();
|
||||
|
||||
Playlists[htPlaylists(Playlist)].Init();
|
||||
|
||||
_AvailableGameModes.Clear();
|
||||
|
||||
ApplyVolume();
|
||||
}
|
||||
|
||||
public override bool HandleInput(KeyEvent KeyEvent)
|
||||
@@ -273,6 +277,7 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
else if (Buttons[htButtons(ButtonOptionsPlaylist)].Selected)
|
||||
{
|
||||
ToggleSongOptions(ESongOptionsView.None);
|
||||
OpenAndAddPlaylistAction();
|
||||
}
|
||||
else if (Buttons[htButtons(ButtonOptionsRandom)].Selected)
|
||||
@@ -299,6 +304,7 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
else if (Buttons[htButtons(ButtonOptionsOpenPlaylist)].Selected)
|
||||
{
|
||||
ToggleSongOptions(ESongOptionsView.None);
|
||||
OpenPlaylistAction();
|
||||
}
|
||||
break;
|
||||
@@ -311,6 +317,23 @@ namespace Vocaluxe.Screens
|
||||
}
|
||||
}
|
||||
|
||||
if (KeyEvent.ModSHIFT && (KeyEvent.Key == Keys.Add || KeyEvent.Key == Keys.PageUp))
|
||||
{
|
||||
CConfig.PreviewMusicVolume = CConfig.PreviewMusicVolume + 5;
|
||||
if (CConfig.PreviewMusicVolume > 100)
|
||||
CConfig.PreviewMusicVolume = 100;
|
||||
CConfig.SaveConfig();
|
||||
ApplyVolume();
|
||||
}
|
||||
else if (KeyEvent.ModSHIFT && (KeyEvent.Key == Keys.Subtract || KeyEvent.Key == Keys.PageDown))
|
||||
{
|
||||
CConfig.PreviewMusicVolume = CConfig.PreviewMusicVolume - 5;
|
||||
if (CConfig.PreviewMusicVolume < 0)
|
||||
CConfig.PreviewMusicVolume = 0;
|
||||
CConfig.SaveConfig();
|
||||
ApplyVolume();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -344,7 +367,11 @@ namespace Vocaluxe.Screens
|
||||
if (Playlists[htPlaylists(Playlist)].Visible && _PlaylistActive)
|
||||
{
|
||||
if (Playlists[htPlaylists(Playlist)].HandleMouse(MouseEvent))
|
||||
{
|
||||
if (CPlaylists.NumPlaylists != SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].NumValues)
|
||||
UpdatePlaylistNames();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -416,6 +443,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
if (Buttons[htButtons(ButtonOptionsPlaylist)].Selected)
|
||||
{
|
||||
ToggleSongOptions(ESongOptionsView.None);
|
||||
OpenAndAddPlaylistAction();
|
||||
return true;
|
||||
}
|
||||
@@ -454,6 +482,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
if (Buttons[htButtons(ButtonOptionsOpenPlaylist)].Selected)
|
||||
{
|
||||
ToggleSongOptions(ESongOptionsView.None);
|
||||
OpenPlaylistAction();
|
||||
return true;
|
||||
}
|
||||
@@ -575,6 +604,11 @@ namespace Vocaluxe.Screens
|
||||
SongMenus[htSongMenus(SongMenu)].OnHide();
|
||||
}
|
||||
|
||||
public override void ApplyVolume()
|
||||
{
|
||||
SongMenus[htSongMenus(SongMenu)].ApplyVolume(CConfig.PreviewMusicVolume);
|
||||
}
|
||||
|
||||
private void StartSong(int SongNr)
|
||||
{
|
||||
if ((CSongs.Category >= 0) && (SongNr >= 0))
|
||||
@@ -874,15 +908,13 @@ namespace Vocaluxe.Screens
|
||||
|
||||
//Open playlist
|
||||
OpenPlaylist(Playlists[htPlaylists(Playlist)].ActivePlaylistID);
|
||||
Playlists[htPlaylists(Playlist)].ScrollToBottom();
|
||||
}
|
||||
ToggleSongOptions(ESongOptionsView.None);
|
||||
}
|
||||
|
||||
private void OpenAndAddPlaylistAction()
|
||||
{
|
||||
//Open a playlist and add song
|
||||
if (Playlists[htPlaylists(Playlist)].ActivePlaylistID != (SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1))
|
||||
//Open an existing playlist and add song
|
||||
if (Playlists[htPlaylists(Playlist)].ActivePlaylistID != (SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1) && (SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1) != -1)
|
||||
{
|
||||
//Check selected game-mode
|
||||
EGameMode gm;
|
||||
@@ -895,18 +927,19 @@ namespace Vocaluxe.Screens
|
||||
gm = GameModes.EGameMode.TR_GAMEMODE_NORMAL;
|
||||
|
||||
//Check if Playlist really exists
|
||||
if (SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1 < 0)
|
||||
Playlists[htPlaylists(Playlist)].ActivePlaylistID = CPlaylists.NewPlaylist();
|
||||
else
|
||||
if (SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1 >= 0)
|
||||
{
|
||||
Playlists[htPlaylists(Playlist)].ActivePlaylistID = SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1;
|
||||
|
||||
//Add song to playlist
|
||||
CPlaylists.Playlists[Playlists[htPlaylists(Playlist)].ActivePlaylistID].AddSong(CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].ID, gm);
|
||||
|
||||
//Open playlist
|
||||
OpenPlaylist(Playlists[htPlaylists(Playlist)].ActivePlaylistID);
|
||||
|
||||
SetSelectSlidePlaylistToCurrentPlaylist();
|
||||
//Add song to playlist
|
||||
CPlaylists.Playlists[Playlists[htPlaylists(Playlist)].ActivePlaylistID].AddSong(CSongs.VisibleSongs[SongMenus[htSongMenus(SongMenu)].GetSelectedSong()].ID, gm);
|
||||
|
||||
//Open playlist
|
||||
OpenPlaylist(Playlists[htPlaylists(Playlist)].ActivePlaylistID);
|
||||
|
||||
SetSelectSlidePlaylistToCurrentPlaylist();
|
||||
Playlists[htPlaylists(Playlist)].ScrollToBottom();
|
||||
}
|
||||
}
|
||||
//Create a new playlist and add song
|
||||
else if ((SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection - 1) == -1)
|
||||
@@ -932,6 +965,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
//Add new playlist to select-slide
|
||||
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].AddValue(CPlaylists.Playlists[Playlists[htPlaylists(Playlist)].ActivePlaylistID].PlaylistName);
|
||||
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistOpen)].AddValue(CPlaylists.Playlists[Playlists[htPlaylists(Playlist)].ActivePlaylistID].PlaylistName);
|
||||
|
||||
SetSelectSlidePlaylistToCurrentPlaylist();
|
||||
|
||||
@@ -952,12 +986,14 @@ namespace Vocaluxe.Screens
|
||||
Playlists[htPlaylists(Playlist)].UpdatePlaylist();
|
||||
Playlists[htPlaylists(Playlist)].ScrollToBottom();
|
||||
}
|
||||
ToggleSongOptions(ESongOptionsView.Song);
|
||||
}
|
||||
|
||||
private void SetSelectSlidePlaylistToCurrentPlaylist()
|
||||
{
|
||||
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection = Playlists[htPlaylists(Playlist)].ActivePlaylistID + 1;
|
||||
if (Playlists[htPlaylists(Playlist)].ActivePlaylistID > -1)
|
||||
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection = Playlists[htPlaylists(Playlist)].ActivePlaylistID + 1;
|
||||
else
|
||||
SelectSlides[htSelectSlides(SelectSlideOptionsPlaylistAdd)].Selection = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,7 @@
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
<StartupObject>Vocaluxe.MainProgram</StartupObject>
|
||||
<ApplicationIcon>Vocaluxe.ico</ApplicationIcon>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugWin|x86' ">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
@@ -140,6 +141,16 @@
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="AForge.Video, Version=2.2.4.0, Culture=neutral, PublicKeyToken=cbfb6e07d173c401, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Output\AForge.Video.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="AForge.Video.DirectShow, Version=2.2.4.1, Culture=neutral, PublicKeyToken=61ea4348d43881b7, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\Output\AForge.Video.DirectShow.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="Community.CsharpSqlite">
|
||||
<HintPath>..\Output\Community.CsharpSqlite.dll</HintPath>
|
||||
</Reference>
|
||||
@@ -176,6 +187,7 @@
|
||||
<Compile Include="Base\CSongs.cs" />
|
||||
<Compile Include="Base\CTheme.cs" />
|
||||
<Compile Include="Base\CVideo.cs" />
|
||||
<Compile Include="Base\CWebcam.cs" />
|
||||
<Compile Include="GameModes\CGameMode.cs" />
|
||||
<Compile Include="GameModes\CGameModeNormal.cs" />
|
||||
<Compile Include="GameModes\IGameMode.cs" />
|
||||
@@ -211,6 +223,8 @@
|
||||
<Compile Include="Lib\Video\CVideoDecoder.cs" />
|
||||
<Compile Include="Lib\Video\CVideoDecoderFFmpeg.cs" />
|
||||
<Compile Include="Lib\Video\IVideoDecoder.cs" />
|
||||
<Compile Include="Lib\Webcam\CAForgeNet.cs" />
|
||||
<Compile Include="Lib\Webcam\IWebcam.cs" />
|
||||
<Compile Include="Menu\CBackground.cs" />
|
||||
<Compile Include="Menu\CButton.cs" />
|
||||
<Compile Include="Menu\CEqualizer.cs" />
|
||||
@@ -239,6 +253,7 @@
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Screens\CPopupScreenPlayerControl.cs" />
|
||||
<Compile Include="Screens\CPopupScreenVolumeControl.cs" />
|
||||
<Compile Include="Screens\CScreenCredits.cs" />
|
||||
<Compile Include="Screens\CScreenHighscore.cs" />
|
||||
<Compile Include="Screens\CScreenLoad.cs" />
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
ScreenProfiles
|
||||
|
||||
++++++++++
|
||||
Version 2:
|
||||
|
||||
Add: <ButtonDiscardSnapshot>, <ButtonSaveSnapshot>, <ButtonWebcam>, <ButtonTakeSnapshot>
|
||||
++++++++++
|
||||
@@ -0,0 +1,119 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<PopupScreenVolumeControl>
|
||||
<ScreenVersion>1</ScreenVersion>
|
||||
<StaticBG>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Menu</Skin>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: Static position, width and height-->
|
||||
<X>1065</X>
|
||||
<Y>672</Y>
|
||||
<Z>-2,00</Z>
|
||||
<W>225</W>
|
||||
<H>48</H>
|
||||
<!--<Color>: Static color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>StaticColor</Color>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</StaticBG>
|
||||
<Text1>
|
||||
<!--<X>, <Y>: Text position-->
|
||||
<X>1067</X>
|
||||
<Y>680</Y>
|
||||
<!--<Z>: Text position-->
|
||||
<Z>-2,00</Z>
|
||||
<!--<H>: Text height-->
|
||||
<H>32</H>
|
||||
<!--<MaxW>: Maximum text width (if exists)-->
|
||||
<MaxW>80</MaxW>
|
||||
<!--<Color>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>StaticColor</Color>
|
||||
<!--<SColor>: Selected Text color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>TextSColor</SColor>
|
||||
<!--<Align>: Text align horizontal: Left, Center, Right-->
|
||||
<Align>Left</Align>
|
||||
<!--<HAlign>: Text align vertical (on downsizing): Top, Center, Bottom-->
|
||||
<HAlign>Center</HAlign>
|
||||
<!--<Style>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<Style>Bold</Style>
|
||||
<!--<Font>: Text font name-->
|
||||
<Font>Outline</Font>
|
||||
<!--<Text>: Nothing or translation tag-->
|
||||
<Text>TR_SCREENPVOLUMECONTROL_VOLUME</Text>
|
||||
<!--<Reflection> If exists:-->
|
||||
<!-- <Space>: Reflection Space-->
|
||||
<!-- <Height>: Reflection Height-->
|
||||
</Text1>
|
||||
<SelectSlideVolume>
|
||||
<!--<Skin>: Texture name-->
|
||||
<Skin>Invisible</Skin>
|
||||
<!--<SkinArrowLeft>: Texture name of left arrow-->
|
||||
<SkinArrowLeft>Minus</SkinArrowLeft>
|
||||
<!--<SkinArrowRight>: Texture name of right arrow-->
|
||||
<SkinArrowRight>Plus</SkinArrowRight>
|
||||
<!--<SkinSelected>: Texture name for selected SelectSlide-->
|
||||
<SkinSelected>Invisible</SkinSelected>
|
||||
<!--<SkinArrowLeftSelected>: Texture name of selected left arrow-->
|
||||
<SkinArrowLeftSelected>Minus</SkinArrowLeftSelected>
|
||||
<!--<SkinArrowRightSelected>: Texture name of selected right arrow-->
|
||||
<SkinArrowRightSelected>Plus</SkinArrowRightSelected>
|
||||
<!--<SkinHighlighted>: Texture name for highlighted SelectSlide-->
|
||||
<SkinHighlighted>Invisible</SkinHighlighted>
|
||||
<!--<X>, <Y>, <Z>, <W>, <H>: SelectSlide position, width and height-->
|
||||
<X>1090</X>
|
||||
<Y>680</Y>
|
||||
<Z>-2,00</Z>
|
||||
<W>200</W>
|
||||
<H>50</H>
|
||||
<!--<ArrowLeftX>, <ArrowLeftY>, <ArrowLeftZ>, <ArrowLeftW>, <ArrowLeftH>: Left arrow position, width and height-->
|
||||
<ArrowLeftX>1195</ArrowLeftX>
|
||||
<ArrowLeftY>682</ArrowLeftY>
|
||||
<ArrowLeftZ>-2,00</ArrowLeftZ>
|
||||
<ArrowLeftW>30</ArrowLeftW>
|
||||
<ArrowLeftH>30</ArrowLeftH>
|
||||
<!--<ArrowRightX>, <ArrowRightY>, <ArrowRightZ>, <ArrowRightW>, <ArrowRightH>: Right arrow position, width and height-->
|
||||
<ArrowRightX>1240</ArrowRightX>
|
||||
<ArrowRightY>682</ArrowRightY>
|
||||
<ArrowRightZ>-2,00</ArrowRightZ>
|
||||
<ArrowRightW>30</ArrowRightW>
|
||||
<ArrowRightH>30</ArrowRightH>
|
||||
<!--<Color>: SelectSlide color from ColorScheme (high priority)-->
|
||||
<!--or <R>, <G>, <B>, <A> (lower priority)-->
|
||||
<Color>SelectSlideColor</Color>
|
||||
<!--<SColor>: Selected SelectSlide color from ColorScheme (high priority)-->
|
||||
<!--or <SR>, <SG>, <SB>, <SA> (lower priority)-->
|
||||
<SColor>SelectSlideSColor</SColor>
|
||||
<!--<HColor>: Highlighted SelectSlide color from ColorScheme (high priority)-->
|
||||
<!--or <HR>, <HG>, <HB>, <HA> (lower priority)-->
|
||||
<HColor>SelectSlideHColor</HColor>
|
||||
<!--<ArrowColor>: Arrow color from ColorScheme (high priority)-->
|
||||
<!--or <ArrowR>, <ArrowG>, <ArrowB>, <ArrowA> (lower priority)-->
|
||||
<ArrowColor>ArrowColor</ArrowColor>
|
||||
<!--<ArrowSColor>: Selected arrow color from ColorScheme (high priority)-->
|
||||
<!--or <ArrowSR>, <ArrowSG>, <ArrowSB>, <ArrowSA> (lower priority)-->
|
||||
<ArrowSColor>ArrowSColor</ArrowSColor>
|
||||
<!--<TextColor>: Text color from ColorScheme (high priority)-->
|
||||
<!--or <TextR>, <TextG>, <TextB>, <TextA> (lower priority)-->
|
||||
<TextColor>TextColor</TextColor>
|
||||
<!--<TextSColor>: Selected text color from ColorScheme (high priority)-->
|
||||
<!--or <TextSR>, <TextSG>, <TextSB>, <TextSA> (lower priority)-->
|
||||
<TextSColor>TextSColor</TextSColor>
|
||||
<!--<TextH>: Text height-->
|
||||
<TextH>32,00</TextH>
|
||||
<!--<TextMaxW>: Maximum text width (if exists)-->
|
||||
<TextMaxW>500,00</TextMaxW>
|
||||
<!--<TextFont>: Text font name-->
|
||||
<TextFont>Outline</TextFont>
|
||||
<!--<TextStyle>: Text style: Normal, Italic, Bold, BoldItalic-->
|
||||
<TextStyle>Bold</TextStyle>
|
||||
<TextRelativeX>-15,0</TextRelativeX>
|
||||
<TextRelativeY>-8,0</TextRelativeY>
|
||||
<!--<NumVisible>: Number of visible elements in the slide-->
|
||||
<NumVisible>1</NumVisible>
|
||||
</SelectSlideVolume>
|
||||
</PopupScreenVolumeControl>
|
||||
</root>
|
||||
Reference in new issue
Block a user