diff --git a/Output/Languages/Deutsch.xml b/Output/Languages/Deutsch.xml
index f6990785..be0b28c6 100644
--- a/Output/Languages/Deutsch.xml
+++ b/Output/Languages/Deutsch.xml
@@ -84,6 +84,10 @@
Normal
Erweitert
+
+ Eigene Musik und Hintergrundmusik
+ Keine eigene Musik
+ Nur eigene Musik
Laden
@@ -148,9 +152,6 @@
Kategorieren anzeigen
Schwierigkeit
Timer-Modus
-
- Hintergrundmusik
- Hintergrundmusiklautstärke
Aufnahmeeinstellungen
Soundkarte
@@ -162,6 +163,9 @@
Verzögerungs-Test
Soundeinstellungen
+ Hintergrundmusik
+ Hintergrundmusiklautstärke
+ Hintergrundmusikquelle
Designeinstellungen
Design
diff --git a/Output/Languages/English.xml b/Output/Languages/English.xml
index 21a7b39f..25d2537b 100644
--- a/Output/Languages/English.xml
+++ b/Output/Languages/English.xml
@@ -84,6 +84,10 @@
Normal
Expanded
+
+ Own Music and Background Music
+ No own Musik
+ Only own Musik
Loading
@@ -148,9 +152,6 @@
Tabs
Game Difficulty
Timer-Mode
-
- Backgroundmusic
- Backgroundmusic Volume
Record Options
Device
@@ -162,6 +163,9 @@
Delay Test
Options Sound
+ Backgroundmusic
+ Backgroundmusic Volume
+ Backgroundmusic Source
Theme Options
Theme
diff --git a/Output/Languages/French.xml b/Output/Languages/French.xml
index 287f3966..fd473b6a 100644
--- a/Output/Languages/French.xml
+++ b/Output/Languages/French.xml
@@ -84,6 +84,10 @@
Normal
Développé
+
+ TODO: Own Music and Background Music
+ TODO: No own Musik
+ TODO: Only own Musik
Chargement
@@ -148,9 +152,6 @@
Dossiers
Difficulté du Jeu
Mode du Minuteur
-
- TODO: Backgroundmusic
- TODO: Backgroundmusic Volume
Options d'Enregistrement
Appareil
@@ -162,6 +163,9 @@
Test du Retard
Options du Son
+ TODO: Backgroundmusic
+ TODO: Backgroundmusic Volume
+ TODO: Backgroundmusic Source
Options du Thème
Thème
diff --git a/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml b/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml
index 31cafddc..018a2e36 100644
--- a/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml
+++ b/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml
@@ -115,7 +115,34 @@
-
+
+
+
+ 75
+ 225
+
+ 0,00
+
+ 32
+
+
+
+ StaticColor
+
+
+ TextSColor
+
+ Left
+
+
+
+ Normal
+
+ TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE
+
+
+
+
Button
@@ -302,5 +329,70 @@
3
+
+
+ Invisible
+
+ SelectSlideArrowLeft
+
+ SelectSlideArrowRight
+
+ SelectSlide
+
+ SelectSlideArrowLeft
+
+ SelectSlideArrowRight
+
+ SelectSlide
+
+ 500
+ 220
+ 0,00
+ 700
+ 50
+
+ 505
+ 225
+ 0,00
+ 40
+ 40
+
+ 1170
+ 225
+ 0,00
+ 40
+ 40
+
+
+ SelectSlideColor
+
+
+ SelectSlideSColor
+
+
+ SelectSlideHColor
+
+
+ ArrowColor
+
+
+ ArrowSColor
+
+
+ TextColor
+
+
+ TextSColor
+
+ 32,00
+
+ 205,33
+
+ Normal
+
+ Bold
+
+ 3
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Skin Blue.xml b/Output/Themes/Ambient/Skin Blue.xml
index 7be79a61..21f5418c 100644
--- a/Output/Themes/Ambient/Skin Blue.xml
+++ b/Output/Themes/Ambient/Skin Blue.xml
@@ -218,9 +218,9 @@
Invisible.png
- [Blue]BG_Video.mkv
- [Blue]IntroIn.mkv
- [Blue]IntroMid.mkv
- [Blue]IntroOut.mkv
+ [Blue]BG_Video.mp4
+ [Blue]IntroIn.mp4
+ [Blue]IntroMid.mp4
+ [Blue]IntroOut.mp4
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Skin Green.xml b/Output/Themes/Ambient/Skin Green.xml
index 2c4c0b60..63a3bdb3 100644
--- a/Output/Themes/Ambient/Skin Green.xml
+++ b/Output/Themes/Ambient/Skin Green.xml
@@ -218,9 +218,9 @@
Invisible.png
- [Green]BG_Video.mkv
- [Green]IntroIn.mkv
- [Green]IntroMid.mkv
- [Green]IntroOut.mkv
+ [Green]BG_Video.mp4
+ [Green]IntroIn.mp4
+ [Green]IntroMid.mp4
+ [Green]IntroOut.mp4
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Skin Red.xml b/Output/Themes/Ambient/Skin Red.xml
index 9d1d3cde..1e53d8d3 100644
--- a/Output/Themes/Ambient/Skin Red.xml
+++ b/Output/Themes/Ambient/Skin Red.xml
@@ -218,9 +218,9 @@
Invisible.png
- [Red]BG_Video.mkv
- [Red]IntroIn.mkv
- [Red]IntroMid.mkv
- [Red]IntroOut.mkv
+ [Red]BG_Video.mp4
+ [Red]IntroIn.mp4
+ [Red]IntroMid.mp4
+ [Red]IntroOut.mp4
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Skin Yellow.xml b/Output/Themes/Ambient/Skin Yellow.xml
index 126e40c2..ff096567 100644
--- a/Output/Themes/Ambient/Skin Yellow.xml
+++ b/Output/Themes/Ambient/Skin Yellow.xml
@@ -218,9 +218,9 @@
Invisible.png
- [Yellow]BG_Video.mkv
- [Yellow]IntroIn.mkv
- [Yellow]IntroMid.mkv
- [Yellow]IntroOut.mkv
+ [Yellow]BG_Video.mp4
+ [Yellow]IntroIn.mp4
+ [Yellow]IntroMid.mp4
+ [Yellow]IntroOut.mp4
\ No newline at end of file
diff --git a/Output/acinerella.dll b/Output/acinerella.dll
index b9711290..22ef1d4e 100644
Binary files a/Output/acinerella.dll and b/Output/acinerella.dll differ
diff --git a/Vocaluxe/Base/CBackgroundMusic.cs b/Vocaluxe/Base/CBackgroundMusic.cs
index 0df27f5c..374d8d5b 100644
--- a/Vocaluxe/Base/CBackgroundMusic.cs
+++ b/Vocaluxe/Base/CBackgroundMusic.cs
@@ -5,45 +5,33 @@ using System.IO;
using Vocaluxe.Base;
using System.Diagnostics;
+using Vocaluxe.Lib.Song;
namespace Vocaluxe.Base
{
static class CBackgroundMusic
{
private static CHelper Helper = new CHelper();
- private static List _BackgroundMusicStreams = new List();
- private static int _CurrentMusicStream;
- private static int _CurrentStreamListIndex = 0;
+ private static int _CurrentMusicStream = -1;
private static bool _Fading;
private static Stopwatch _FadeTimer = new Stopwatch();
+ private static Random _Random = new Random();
+ private static List _BackgroundMusicFileNames = new List();
+ private static int _CurrentBackgroundMusicFileNameIndex;
+ private static bool _OwnMusicAdded;
+ private static bool _BackgroundMusicAdded;
public static void Init()
{
- List files = new List();
- files.AddRange(Helper.ListFiles(CSettings.sFolderBackgroundMusic, "*.mp3", true, true));
- files.AddRange(Helper.ListFiles(CSettings.sFolderBackgroundMusic, "*.wav", true, true));
- files.AddRange(Helper.ListFiles(CSettings.sFolderBackgroundMusic, "*.ogg", true, true));
- files.AddRange(Helper.ListFiles(CSettings.sFolderBackgroundMusic, "*.wma", true, true));
-
- foreach (string file in files)
- {
- _BackgroundMusicStreams.Add(CSound.Load(file));
- }
-
- if(_BackgroundMusicStreams.Count > 0)
- _CurrentMusicStream = _BackgroundMusicStreams[0];
+ if(CConfig.BackgroundMusicSource == EBackgroundMusicSource.TR_CONFIG_NO_OWN_MUSIC || CConfig.BackgroundMusicSource == EBackgroundMusicSource.TR_CONFIG_OWN_MUSIC)
+ AddBackgroundMusic();
}
public static void Play()
{
if (CConfig.BackgroundMusic == EOffOn.TR_CONFIG_ON)
{
- if(_BackgroundMusicStreams.Count == 1)
- {
- CSound.Fade(_BackgroundMusicStreams[0], CConfig.BackgroundMusicVolume, CConfig.FadeTime);
- CSound.Play(_BackgroundMusicStreams[0], true);
- }
- else if (_BackgroundMusicStreams.Count > 1)
+ if (_BackgroundMusicFileNames.Count > 0)
{
CSound.Fade(_CurrentMusicStream, CConfig.BackgroundMusicVolume, CConfig.FadeTime);
CSound.Play(_CurrentMusicStream);
@@ -53,19 +41,19 @@ namespace Vocaluxe.Base
public static void Stop()
{
- if(_BackgroundMusicStreams.Count > 0)
- CSound.FadeAndStop(_BackgroundMusicStreams[_CurrentStreamListIndex], CConfig.BackgroundMusicVolume, CConfig.FadeTime);
+ if (_BackgroundMusicFileNames.Count > 0)
+ CSound.FadeAndStop(_CurrentMusicStream, CConfig.BackgroundMusicVolume, CConfig.FadeTime);
}
public static void Pause()
{
- if (_BackgroundMusicStreams.Count > 0)
- CSound.FadeAndPause(_BackgroundMusicStreams[_CurrentStreamListIndex], 0, CConfig.FadeTime);
+ if (_BackgroundMusicFileNames.Count > 0)
+ CSound.FadeAndPause(_CurrentMusicStream, 0, CConfig.FadeTime);
}
public static void Update()
{
- if (_BackgroundMusicStreams.Count > 1)
+ if (_BackgroundMusicFileNames.Count > 0)
{
float timeToPlay = CSound.GetLength(_CurrentMusicStream) - CSound.GetPosition(_CurrentMusicStream);
if (_FadeTimer.ElapsedMilliseconds >= CConfig.FadeTime * 1000)
@@ -76,25 +64,85 @@ namespace Vocaluxe.Base
if ((timeToPlay <= CConfig.FadeTime) && !_Fading)
{
_FadeTimer.Start();
- CSound.Fade(_CurrentMusicStream, 0, CConfig.FadeTime);
- _CurrentStreamListIndex++;
- if (_CurrentStreamListIndex + 1 > _BackgroundMusicStreams.Count)
- {
- _CurrentStreamListIndex = 0;
- _CurrentMusicStream = _BackgroundMusicStreams[_CurrentStreamListIndex];
- }
- else
- _CurrentMusicStream = _BackgroundMusicStreams[_CurrentStreamListIndex];
- CSound.SetPosition(_CurrentMusicStream, 0);
- Play();
+ Next();
_Fading = true;
}
}
}
+ public static void Next()
+ {
+ if (_BackgroundMusicFileNames.Count > 0)
+ {
+ if (_CurrentMusicStream != -1)
+ CSound.FadeAndStop(_CurrentMusicStream, 0, CConfig.FadeTime);
+ _CurrentBackgroundMusicFileNameIndex = _Random.Next(_BackgroundMusicFileNames.Count);
+ _CurrentMusicStream = CSound.Load(_BackgroundMusicFileNames[_CurrentBackgroundMusicFileNameIndex]);
+ Play();
+ }
+ else if (_BackgroundMusicAdded || _OwnMusicAdded)
+ {
+ if (_CurrentMusicStream != -1)
+ CSound.FadeAndStop(_CurrentMusicStream, 0, CConfig.FadeTime);
+ }
+ }
+
public static void ApplyVolume()
{
- CSound.SetStreamVolume(_BackgroundMusicStreams[_CurrentStreamListIndex], CConfig.BackgroundMusicVolume);
+ CSound.Fade(_CurrentMusicStream, CConfig.BackgroundMusicVolume, CConfig.FadeTime);
+ }
+
+ public static void AddOwnMusic()
+ {
+ if (!_OwnMusicAdded)
+ {
+ foreach (CSong song in CSongs.AllSongs)
+ {
+ _BackgroundMusicFileNames.Add(song.GetMP3());
+ }
+ }
+ _OwnMusicAdded = true;
+ Next();
+ }
+
+ public static void RemoveOwnMusic()
+ {
+ foreach (CSong song in CSongs.AllSongs)
+ {
+ _BackgroundMusicFileNames.Remove(song.GetMP3());
+ }
+ _OwnMusicAdded = false;
+ }
+
+ public static void AddBackgroundMusic()
+ {
+ if (!_BackgroundMusicAdded)
+ {
+ _BackgroundMusicFileNames.AddRange(Helper.ListFiles(CSettings.sFolderBackgroundMusic, "*.mp3", true, true));
+ _BackgroundMusicFileNames.AddRange(Helper.ListFiles(CSettings.sFolderBackgroundMusic, "*.wav", true, true));
+ _BackgroundMusicFileNames.AddRange(Helper.ListFiles(CSettings.sFolderBackgroundMusic, "*.ogg", true, true));
+ _BackgroundMusicFileNames.AddRange(Helper.ListFiles(CSettings.sFolderBackgroundMusic, "*.wma", true, true));
+ _BackgroundMusicAdded = true;
+ Next();
+ }
+ }
+
+ public static void RemoveBackgroundMusic()
+ {
+ if (_BackgroundMusicAdded)
+ {
+ List removeList = new List();
+ removeList.AddRange(Helper.ListFiles(CSettings.sFolderBackgroundMusic, "*.mp3", true, true));
+ removeList.AddRange(Helper.ListFiles(CSettings.sFolderBackgroundMusic, "*.wav", true, true));
+ removeList.AddRange(Helper.ListFiles(CSettings.sFolderBackgroundMusic, "*.ogg", true, true));
+ removeList.AddRange(Helper.ListFiles(CSettings.sFolderBackgroundMusic, "*.wma", true, true));
+
+ foreach (string s in removeList)
+ {
+ _BackgroundMusicFileNames.Remove(s);
+ }
+ _BackgroundMusicAdded = false;
+ }
}
}
}
diff --git a/Vocaluxe/Base/CConfig.cs b/Vocaluxe/Base/CConfig.cs
index 95f9fb6b..2854b90a 100644
--- a/Vocaluxe/Base/CConfig.cs
+++ b/Vocaluxe/Base/CConfig.cs
@@ -134,6 +134,14 @@ namespace Vocaluxe.Base
TR_CONFIG_TIMERLOOK_NORMAL,
TR_CONFIG_TIMERLOOK_EXPANDED
}
+
+ public enum EBackgroundMusicSource
+ {
+ TR_CONFIG_NO_OWN_MUSIC,
+ TR_CONFIG_ONLY_OWN_MUSIC,
+ TR_CONFIG_OWN_MUSIC
+ }
+
#endregion Enums
static class CConfig
@@ -175,6 +183,7 @@ namespace Vocaluxe.Base
public static uint PortAudioBufferSize = 1024;
public static int BackgroundMusicVolume = 50;
public static EOffOn BackgroundMusic = EOffOn.TR_CONFIG_ON;
+ public static EBackgroundMusicSource BackgroundMusicSource = EBackgroundMusicSource.TR_CONFIG_NO_OWN_MUSIC;
// Game
public static List SongFolder = new List();
@@ -286,6 +295,7 @@ namespace Vocaluxe.Base
CHelper.TryGetEnumValueFromXML("//root/Sound/RecordLib", navigator, ref RecordLib);
CHelper.TryGetEnumValueFromXML("//root/Sound/BackgroundMusic", navigator, ref BackgroundMusic);
CHelper.TryGetIntValueFromXML("//root/Sound/BackgroundMusicVolume", navigator, ref BackgroundMusicVolume);
+ CHelper.TryGetEnumValueFromXML("//root/Sound/BackgroundMusicSource", navigator, ref BackgroundMusicSource);
#endregion Sound
#region Game
@@ -483,6 +493,9 @@ namespace Vocaluxe.Base
writer.WriteComment("Background Music Volume from 0 to 100");
writer.WriteElementString("BackgroundMusicVolume", BackgroundMusicVolume.ToString());
+ writer.WriteComment("Background Music Source");
+ writer.WriteElementString("BackgroundMusicSource", Enum.GetName(typeof(EBackgroundMusicSource), BackgroundMusicSource));
+
writer.WriteEndElement();
#endregion Sound
diff --git a/Vocaluxe/Lib/Video/CVideoDecoderFFmpeg.cs b/Vocaluxe/Lib/Video/CVideoDecoderFFmpeg.cs
index 9238243f..2ecdcc7b 100644
--- a/Vocaluxe/Lib/Video/CVideoDecoderFFmpeg.cs
+++ b/Vocaluxe/Lib/Video/CVideoDecoderFFmpeg.cs
@@ -244,6 +244,7 @@ namespace Vocaluxe.Lib.Video
private bool _Paused = false;
private bool _NoMoreFrames = false;
private bool _Finished = false;
+ private bool _BeforeLoop = false;
private int _Width = 0;
@@ -314,7 +315,10 @@ namespace Vocaluxe.Lib.Video
public bool Finished
{
- get { return _Finished; }
+ get
+ {
+ return _Finished;
+ }
}
public bool Open(string FileName)
@@ -395,6 +399,7 @@ namespace Vocaluxe.Lib.Video
_VideoSkipTime = _Gap;
_NegativeSkipTime = _Start + _Gap;
_SkipTime = _Start + _Gap;
+ _BeforeLoop = false;
}
if (_SkipTime > 0)
@@ -575,7 +580,7 @@ namespace Vocaluxe.Lib.Video
return;
int FrameFinished = 0;
- if (DropFrame)
+ if (DropFrame && !_BeforeLoop)
{
try
{
@@ -588,7 +593,7 @@ namespace Vocaluxe.Lib.Video
}
- if (!DropFrame || FrameFinished != 0)
+ if (!_BeforeLoop && (!DropFrame || FrameFinished != 0))
{
lock (MutexFrame)
{
@@ -608,14 +613,15 @@ namespace Vocaluxe.Lib.Video
{
if (_Loop)
{
- bool doskip = false;
+ _BeforeLoop = true;
+ bool doskip = true;
float tm = 0f;
int num = -1;
lock (MutexFramebuffer)
{
for (int i = 0; i < _FrameBuffer.Length; i++)
{
- if (_FrameBuffer[i].time > tm)
+ if (_FrameBuffer[i].time > tm && !_FrameBuffer[i].displayed)
{
tm = _FrameBuffer[i].time;
num = i;
diff --git a/Vocaluxe/Program.cs b/Vocaluxe/Program.cs
index 6c65184e..0a8015dd 100644
--- a/Vocaluxe/Program.cs
+++ b/Vocaluxe/Program.cs
@@ -87,6 +87,8 @@ namespace Vocaluxe
CBackgroundMusic.Init();
CLog.StopBenchmark(0, "Init Background Music");
+ Application.DoEvents();
+
// Init Profiles
CLog.StartBenchmark(0, "Init Profiles");
CProfiles.Init();
diff --git a/Vocaluxe/Screens/CScreenLoad.cs b/Vocaluxe/Screens/CScreenLoad.cs
index 1fd9f2a2..ab4b2430 100644
--- a/Vocaluxe/Screens/CScreenLoad.cs
+++ b/Vocaluxe/Screens/CScreenLoad.cs
@@ -190,6 +190,8 @@ namespace Vocaluxe.Screens
_Intros[2].Close();
CLog.StopBenchmark(3, "Load Cover");
+ if(CConfig.BackgroundMusicSource == EBackgroundMusicSource.TR_CONFIG_ONLY_OWN_MUSIC || CConfig.BackgroundMusicSource == EBackgroundMusicSource.TR_CONFIG_OWN_MUSIC)
+ CBackgroundMusic.AddOwnMusic();
}
private void CheckStartIntroVideos()
@@ -206,13 +208,13 @@ namespace Vocaluxe.Screens
if (_CurrentIntroVideoNr == 0 && _Intros[0].IsFinished)
{
_CurrentIntroVideoNr = 1;
+ _Intros[1].Loop = true;
_Intros[1].Start();
}
if (_CurrentIntroVideoNr == 1 && CSongs.CoverLoaded)
{
_CurrentIntroVideoNr = 2;
- _Intros[2].Loop = true;
_Intros[2].Start();
}
@@ -277,7 +279,7 @@ namespace Vocaluxe.Screens
{
float VideoTime = _VideoTimer.ElapsedMilliseconds / 1000f;
- _Finished = (VideoTime >= CVideo.VdGetLength(_VideoStream));
+ _Finished = CVideo.VdFinished(_VideoStream);
STexture tex = new STexture(-1);
CVideo.VdGetFrame(_VideoStream, ref tex, VideoTime, ref VideoTime);
diff --git a/Vocaluxe/Screens/CScreenOptionsSound.cs b/Vocaluxe/Screens/CScreenOptionsSound.cs
index 1c3cca41..919f4c40 100644
--- a/Vocaluxe/Screens/CScreenOptionsSound.cs
+++ b/Vocaluxe/Screens/CScreenOptionsSound.cs
@@ -16,6 +16,7 @@ namespace Vocaluxe.Screens
private const string SelectSlideBackgroundMusic = "SelectSlideBackgroundMusic";
private const string SelectSlideBackgroundMusicVolume = "SelectSlideBackgroundMusicVolume";
+ private const string SelectSlideBackgroundMusicSource = "SelectSlideBackgroundMusicSource";
private const string ButtonExit = "ButtonExit";
@@ -35,7 +36,7 @@ namespace Vocaluxe.Screens
_ScreenVersion = ScreenVersion;
_ThemeButtons = new string[] { ButtonExit };
- _ThemeSelectSlides = new string[] { SelectSlideBackgroundMusic, SelectSlideBackgroundMusicVolume };
+ _ThemeSelectSlides = new string[] { SelectSlideBackgroundMusic, SelectSlideBackgroundMusicVolume, SelectSlideBackgroundMusicSource };
}
public override void LoadTheme()
@@ -44,6 +45,8 @@ namespace Vocaluxe.Screens
SelectSlides[htSelectSlides(SelectSlideBackgroundMusic)].SetValues((int)CConfig.BackgroundMusic);
SelectSlides[htSelectSlides(SelectSlideBackgroundMusicVolume)].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(SelectSlideBackgroundMusicVolume)].Selection = CConfig.BackgroundMusicVolume / 5;
+ SelectSlides[htSelectSlides(SelectSlideBackgroundMusicSource)].SetValues((int)CConfig.BackgroundMusicSource);
+ SelectSlides[htSelectSlides(SelectSlideBackgroundMusicSource)].Selection = (int)CConfig.BackgroundMusicSource;
}
public override bool HandleInput(KeyEvent KeyEvent)
@@ -137,6 +140,24 @@ namespace Vocaluxe.Screens
CConfig.BackgroundMusicVolume = SelectSlides[htSelectSlides(SelectSlideBackgroundMusicVolume)].Selection * 5;
CBackgroundMusic.ApplyVolume();
+ if (CConfig.BackgroundMusicSource != (EBackgroundMusicSource)SelectSlides[htSelectSlides(SelectSlideBackgroundMusicSource)].Selection)
+ {
+ CConfig.BackgroundMusicSource = (EBackgroundMusicSource)SelectSlides[htSelectSlides(SelectSlideBackgroundMusicSource)].Selection;
+ if (CConfig.BackgroundMusicSource == EBackgroundMusicSource.TR_CONFIG_NO_OWN_MUSIC)
+ {
+ CBackgroundMusic.RemoveOwnMusic();
+ CBackgroundMusic.AddBackgroundMusic();
+ }
+ if (CConfig.BackgroundMusicSource == EBackgroundMusicSource.TR_CONFIG_ONLY_OWN_MUSIC)
+ {
+ CBackgroundMusic.RemoveBackgroundMusic();
+ CBackgroundMusic.AddOwnMusic();
+ }
+ if (CConfig.BackgroundMusicSource == EBackgroundMusicSource.TR_CONFIG_OWN_MUSIC)
+ CBackgroundMusic.AddOwnMusic();
+
+ }
+
CConfig.SaveConfig();
}
}