From 49b971d126271d1c3994601e85820d6df1206995 Mon Sep 17 00:00:00 2001 From: lukeIam <2lukeiam@gmail.com> Date: Thu, 8 Sep 2016 17:22:33 +0200 Subject: [PATCH 1/5] Add: option to enable KaraokeEffect with gestreamer backend (atm only for all audio globally) --- .../Ambient/Screens/ScreenOptionsSound.xml | 56 +++++++++++++++++++ Vocaluxe/Base/CConfig.cs | 6 ++ .../CGstreamerSharpAudioStream.cs | 43 +++++++++++++- Vocaluxe/Screens/CScreenOptionsSound.cs | 12 +++- 4 files changed, 113 insertions(+), 4 deletions(-) diff --git a/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml b/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml index 9b7e88c6..a42fd2b5 100644 --- a/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml +++ b/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml @@ -110,6 +110,20 @@ Outline TR_SCREENOSOUND_GAMEMUSICVOLUME + + + 75 + 407 + 0 + 27 + 0 + + + Left + Center + + Outline + TR_SCREENOSOUND_KARAOKEEFFECT @@ -361,6 +375,48 @@ Outline Bold 3 + + + + SelectSlideArrowLeft + SelectSlideArrowRight + SelectSlide + SelectSlideArrowLeft + SelectSlideArrowRight + + 500 + 400 + 700 + 50 + 0 + + + 505 + 405 + 40 + 40 + 0 + + + 1170 + 405 + 40 + 40 + 0 + + + + + + + + 27 + 50 + 0 + 500 + Outline + Bold + 2 diff --git a/Vocaluxe/Base/CConfig.cs b/Vocaluxe/Base/CConfig.cs index 85d7d409..f0460820 100644 --- a/Vocaluxe/Base/CConfig.cs +++ b/Vocaluxe/Base/CConfig.cs @@ -120,6 +120,8 @@ namespace Vocaluxe.Base [DefaultValue(EOffOn.TR_CONFIG_ON)] public EOffOn BackgroundMusicUseStart; [XmlRanged(0, 100), DefaultValue(50)] public int PreviewMusicVolume; [XmlRanged(0, 100), DefaultValue(80)] public int GameMusicVolume; + [DefaultValue(EOffOn.TR_CONFIG_OFF)] public EOffOn KaraokeEffect; + [XmlRanged(0, 1), DefaultValue(1.0f)] public float KaraokeEffectLevel; // ReSharper restore MemberHidesStaticFromOuterClass } @@ -452,6 +454,10 @@ namespace Vocaluxe.Base return "Preview Volume from 0 to 100"; case "GameMusicVolume": return "Game Volume from 0 to 100"; + case "KaraokeEffect": + return "Apply a karaoke effect to song playback (EPlaybackLib.GstreamerSharp only)"; + case "KaraokeEffectLevel": + return "The level of the karaoke effect [0-1] (EPlaybackLib.GstreamerSharp only)"; case "Language": return "Game-Language"; case "SongFolder": diff --git a/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudioStream.cs b/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudioStream.cs index 5f4e1f40..97a432b0 100644 --- a/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudioStream.cs +++ b/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudioStream.cs @@ -19,6 +19,7 @@ using System; using GLib; using Gst; using Vocaluxe.Base; +using VocaluxeLib; namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp { @@ -123,9 +124,29 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp } var audioSinkBin = new Bin("Audiosink"); - audioSinkBin.Add(convert); - audioSinkBin.Add(audiosink); - convert.Link(audiosink); + Element audiokaraoke = null; + if (CConfig.Config.Sound.KaraokeEffect == EOffOn.TR_CONFIG_ON) + { + audiokaraoke = ElementFactory.Make("audiokaraoke", "karaoke"); + audioSinkBin.Add(audiokaraoke); + audioSinkBin.Add(convert); + audioSinkBin.Add(audiosink); + + audiokaraoke.Link(audiosink); + audiokaraoke["level"] = CConfig.Config.Sound.KaraokeEffectLevel; + audiokaraoke["mono-level"] = CConfig.Config.Sound.KaraokeEffectLevel; + + convert.Link(audiokaraoke); + } + else + { + audioSinkBin.Add(convert); + audioSinkBin.Add(audiosink); + convert.Link(audiosink); + } + + + Pad pad = convert.GetStaticPad("sink"); GhostPad ghostpad = new GhostPad("sink", pad); @@ -135,6 +156,10 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp convert.Dispose(); audiosink.Dispose(); audioSinkBin.Dispose(); + if (audiokaraoke != null) + { + audiokaraoke.Dispose(); + } return false; } @@ -145,6 +170,10 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp audiosink.Dispose(); audioSinkBin.Dispose(); ghostpad.Dispose(); + if (audiokaraoke != null) + { + audiokaraoke.Dispose(); + } return false; } if (!audioSinkBin.AddPad(ghostpad)) @@ -154,6 +183,10 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp audiosink.Dispose(); audioSinkBin.Dispose(); ghostpad.Dispose(); + if (audiokaraoke != null) + { + audiokaraoke.Dispose(); + } return false; } @@ -165,6 +198,10 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp audiosink.Dispose(); audioSinkBin.Dispose(); ghostpad.Dispose(); + if (audiokaraoke != null) + { + audiokaraoke.Dispose(); + } return false; } _Element["audio-sink"] = audioSinkBin; diff --git a/Vocaluxe/Screens/CScreenOptionsSound.cs b/Vocaluxe/Screens/CScreenOptionsSound.cs index b3deb818..6d3c1fde 100644 --- a/Vocaluxe/Screens/CScreenOptionsSound.cs +++ b/Vocaluxe/Screens/CScreenOptionsSound.cs @@ -35,6 +35,7 @@ namespace Vocaluxe.Screens private const string _SelectSlideBackgroundMusicSource = "SelectSlideBackgroundMusicSource"; private const string _SelectSlidePreviewMusicVolume = "SelectSlidePreviewMusicVolume"; private const string _SelectSlideGameMusicVolume = "SelectSlideGameMusicVolume"; + private const string _SelectSlideKaraokeEffect = "SelectSlideKaraokeEffect"; private const string _ButtonExit = "ButtonExit"; @@ -46,7 +47,7 @@ namespace Vocaluxe.Screens _ThemeButtons = new string[] {_ButtonExit}; _ThemeSelectSlides = new string[] - {_SelectSlideBackgroundMusic, _SelectSlideBackgroundMusicVolume, _SelectSlideBackgroundMusicSource, _SelectSlidePreviewMusicVolume, _SelectSlideGameMusicVolume}; + {_SelectSlideBackgroundMusic, _SelectSlideBackgroundMusicVolume, _SelectSlideBackgroundMusicSource, _SelectSlidePreviewMusicVolume, _SelectSlideGameMusicVolume, _SelectSlideKaraokeEffect}; } public override void LoadTheme(string xmlPath) @@ -64,6 +65,11 @@ namespace Vocaluxe.Screens _SelectSlides[_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[_SelectSlideGameMusicVolume].Selection = CConfig.GameMusicVolume / 5; + if (CConfig.Config.Sound.PlayBackLib == EPlaybackLib.GstreamerSharp) + { + _SelectSlides[_SelectSlideKaraokeEffect].SetValues((int)CConfig.Config.Sound.KaraokeEffect); + _SelectSlides[_SelectSlideBackgroundMusicSource].Selection = (int)CConfig.Config.Sound.KaraokeEffect; + } } public override bool HandleInput(SKeyEvent keyEvent) @@ -147,6 +153,10 @@ namespace Vocaluxe.Screens CConfig.Config.Sound.BackgroundMusic = (EBackgroundMusicOffOn)_SelectSlides[_SelectSlideBackgroundMusic].Selection; CConfig.Config.Sound.BackgroundMusicSource = (EBackgroundMusicSource)_SelectSlides[_SelectSlideBackgroundMusicSource].Selection; CConfig.BackgroundMusicVolume = _SelectSlides[_SelectSlideBackgroundMusicVolume].Selection * 5; + if (CConfig.Config.Sound.PlayBackLib == EPlaybackLib.GstreamerSharp) + { + CConfig.Config.Sound.KaraokeEffect = (EOffOn)_SelectSlides[_SelectSlideKaraokeEffect].Selection; + } CConfig.SaveConfig(); CBackgroundMusic.SetMusicSource(CConfig.Config.Sound.BackgroundMusicSource); From 3275aa091eba7aff9d7f4c972fcca91653c26ec6 Mon Sep 17 00:00:00 2001 From: lukeIam <2lukeiam@gmail.com> Date: Thu, 8 Sep 2016 17:54:39 +0200 Subject: [PATCH 2/5] Fix: karaoke effect was applied to all audio output --- Vocaluxe/Base/CSound.cs | 5 +++-- Vocaluxe/Lib/Sound/Playback/CAudioStreamBase.cs | 4 +++- Vocaluxe/Lib/Sound/Playback/CPlaybackBase.cs | 6 +++--- .../Sound/Playback/GstreamerSharp/CGstreamerSharpAudio.cs | 4 ++-- .../Playback/GstreamerSharp/CGstreamerSharpAudioStream.cs | 4 ++-- Vocaluxe/Lib/Sound/Playback/IPlayback.cs | 2 +- Vocaluxe/Lib/Sound/Playback/OpenAL/COpenALPlay.cs | 4 ++-- Vocaluxe/Lib/Sound/Playback/OpenAL/COpenAlStream.cs | 2 +- Vocaluxe/Lib/Sound/Playback/PortAudio/CPortAudioPlay.cs | 4 ++-- Vocaluxe/Lib/Sound/Playback/PortAudio/CPortAudioStream.cs | 2 +- Vocaluxe/Screens/CScreenSing.cs | 3 ++- Vocaluxe/Vocaluxe.csproj | 1 + 12 files changed, 23 insertions(+), 18 deletions(-) diff --git a/Vocaluxe/Base/CSound.cs b/Vocaluxe/Base/CSound.cs index dc76f86f..5acbd7c9 100644 --- a/Vocaluxe/Base/CSound.cs +++ b/Vocaluxe/Base/CSound.cs @@ -22,6 +22,7 @@ using Vocaluxe.Lib.Sound.Playback.OpenAL; using Vocaluxe.Lib.Sound.Playback.PortAudio; using VocaluxeLib; using System.Threading; +using Vocaluxe.Lib.Sound; namespace Vocaluxe.Base { @@ -88,9 +89,9 @@ namespace Vocaluxe.Base } #region Stream Handling - public static int Load(string media, bool loop = false, bool prescan = false) + public static int Load(string media, bool loop = false, bool prescan = false, EAudioEffect effekt = EAudioEffect.None) { - return _Playback.Load(media, loop, prescan); + return _Playback.Load(media, loop, prescan, effekt); } public static void Close(int stream) diff --git a/Vocaluxe/Lib/Sound/Playback/CAudioStreamBase.cs b/Vocaluxe/Lib/Sound/Playback/CAudioStreamBase.cs index 3a421cce..35e62978 100644 --- a/Vocaluxe/Lib/Sound/Playback/CAudioStreamBase.cs +++ b/Vocaluxe/Lib/Sound/Playback/CAudioStreamBase.cs @@ -25,6 +25,7 @@ namespace Vocaluxe.Lib.Sound.Playback private readonly int _ID; protected readonly string _Medium; protected readonly bool _Loop; + protected readonly EAudioEffect _Effect; protected ICloseStreamListener _CloseStreamListener; @@ -48,11 +49,12 @@ namespace Vocaluxe.Lib.Sound.Playback public abstract bool IsPaused { get; set; } public abstract bool IsFinished { get; } - protected CAudioStreamBase(int id, string medium, bool loop) + protected CAudioStreamBase(int id, string medium, bool loop, EAudioEffect effect = EAudioEffect.None) { _ID = id; _Medium = medium; _Loop = loop; + _Effect = effect; } ~CAudioStreamBase() diff --git a/Vocaluxe/Lib/Sound/Playback/CPlaybackBase.cs b/Vocaluxe/Lib/Sound/Playback/CPlaybackBase.cs index 1a12441c..62bbec70 100644 --- a/Vocaluxe/Lib/Sound/Playback/CPlaybackBase.cs +++ b/Vocaluxe/Lib/Sound/Playback/CPlaybackBase.cs @@ -113,13 +113,13 @@ namespace Vocaluxe.Lib.Sound.Playback #region Stream Handling //Factory method to get a stream instance - protected abstract IAudioStream _CreateStream(int id, string media, bool loop); + protected abstract IAudioStream _CreateStream(int id, string media, bool loop, EAudioEffect effect = EAudioEffect.None); - public int Load(string medium, bool loop = false, bool prescan = false) + public int Load(string medium, bool loop = false, bool prescan = false, EAudioEffect effect = EAudioEffect.None) { if (!_Initialized) return -1; - IAudioStream stream = _CreateStream(_NextID++, medium, loop); + IAudioStream stream = _CreateStream(_NextID++, medium, loop, effect); if (stream.Open(prescan)) { diff --git a/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudio.cs b/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudio.cs index 73c624f8..46fcfd3b 100644 --- a/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudio.cs +++ b/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudio.cs @@ -72,9 +72,9 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp Application.Deinit(); } - protected override IAudioStream _CreateStream(int id, string media, bool loop) + protected override IAudioStream _CreateStream(int id, string media, bool loop, EAudioEffect effect = EAudioEffect.None) { - return new CGstreamerSharpAudioStream(id, media, loop); + return new CGstreamerSharpAudioStream(id, media, loop, effect); } } } \ No newline at end of file diff --git a/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudioStream.cs b/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudioStream.cs index 97a432b0..09248e60 100644 --- a/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudioStream.cs +++ b/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudioStream.cs @@ -102,7 +102,7 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp } } - public CGstreamerSharpAudioStream(int id, string medium, bool loop) : base(id, medium, loop) {} + public CGstreamerSharpAudioStream(int id, string medium, bool loop, EAudioEffect effect = EAudioEffect.None) : base(id, medium, loop, effect) {} public override bool Open(bool prescan) { @@ -125,7 +125,7 @@ namespace Vocaluxe.Lib.Sound.Playback.GstreamerSharp var audioSinkBin = new Bin("Audiosink"); Element audiokaraoke = null; - if (CConfig.Config.Sound.KaraokeEffect == EOffOn.TR_CONFIG_ON) + if (_Effect.HasFlag(EAudioEffect.Karaoke)) { audiokaraoke = ElementFactory.Make("audiokaraoke", "karaoke"); audioSinkBin.Add(audiokaraoke); diff --git a/Vocaluxe/Lib/Sound/Playback/IPlayback.cs b/Vocaluxe/Lib/Sound/Playback/IPlayback.cs index 7bb4a9ad..20792586 100644 --- a/Vocaluxe/Lib/Sound/Playback/IPlayback.cs +++ b/Vocaluxe/Lib/Sound/Playback/IPlayback.cs @@ -36,7 +36,7 @@ namespace Vocaluxe.Lib.Sound.Playback void CloseAll(); #region stream Handling - int Load(string medium, bool loop = false, bool prescan = false); + int Load(string medium, bool loop = false, bool prescan = false, EAudioEffect effekt= EAudioEffect.None); void Close(int streamID); void Play(int streamID); diff --git a/Vocaluxe/Lib/Sound/Playback/OpenAL/COpenALPlay.cs b/Vocaluxe/Lib/Sound/Playback/OpenAL/COpenALPlay.cs index 74a3704e..13ee98ad 100644 --- a/Vocaluxe/Lib/Sound/Playback/OpenAL/COpenALPlay.cs +++ b/Vocaluxe/Lib/Sound/Playback/OpenAL/COpenALPlay.cs @@ -44,9 +44,9 @@ namespace Vocaluxe.Lib.Sound.Playback.OpenAL _Context = null; } - protected override IAudioStream _CreateStream(int id, string media, bool loop) + protected override IAudioStream _CreateStream(int id, string media, bool loop, EAudioEffect effect = EAudioEffect.None) { - return new COpenAlStream(id, media, loop); + return new COpenAlStream(id, media, loop, effect); } } } \ No newline at end of file diff --git a/Vocaluxe/Lib/Sound/Playback/OpenAL/COpenAlStream.cs b/Vocaluxe/Lib/Sound/Playback/OpenAL/COpenAlStream.cs index f9b5f41d..fd22e07c 100644 --- a/Vocaluxe/Lib/Sound/Playback/OpenAL/COpenAlStream.cs +++ b/Vocaluxe/Lib/Sound/Playback/OpenAL/COpenAlStream.cs @@ -122,7 +122,7 @@ namespace Vocaluxe.Lib.Sound.Playback.OpenAL } } - public COpenAlStream(int id, string medium, bool loop) : base(id, medium, loop) {} + public COpenAlStream(int id, string medium, bool loop, EAudioEffect effect = EAudioEffect.None) : base(id, medium, loop, effect) {} protected override void _Dispose(bool disposing) { diff --git a/Vocaluxe/Lib/Sound/Playback/PortAudio/CPortAudioPlay.cs b/Vocaluxe/Lib/Sound/Playback/PortAudio/CPortAudioPlay.cs index e96eeeab..f5110988 100644 --- a/Vocaluxe/Lib/Sound/Playback/PortAudio/CPortAudioPlay.cs +++ b/Vocaluxe/Lib/Sound/Playback/PortAudio/CPortAudioPlay.cs @@ -29,9 +29,9 @@ namespace Vocaluxe.Lib.Sound.Playback.PortAudio return true; } - protected override IAudioStream _CreateStream(int id, string media, bool loop) + protected override IAudioStream _CreateStream(int id, string media, bool loop, EAudioEffect effect = EAudioEffect.None) { - return new CPortAudioStream(id, media, loop); + return new CPortAudioStream(id, media, loop, effect); } } } \ No newline at end of file diff --git a/Vocaluxe/Lib/Sound/Playback/PortAudio/CPortAudioStream.cs b/Vocaluxe/Lib/Sound/Playback/PortAudio/CPortAudioStream.cs index 34421547..2002aa9c 100644 --- a/Vocaluxe/Lib/Sound/Playback/PortAudio/CPortAudioStream.cs +++ b/Vocaluxe/Lib/Sound/Playback/PortAudio/CPortAudioStream.cs @@ -131,7 +131,7 @@ namespace Vocaluxe.Lib.Sound.Playback.PortAudio } } - public CPortAudioStream(int id, string medium, bool loop) : base(id, medium, loop) {} + public CPortAudioStream(int id, string medium, bool loop, EAudioEffect effect = EAudioEffect.None) : base(id, medium, loop, effect) {} public override bool Open(bool prescan) { diff --git a/Vocaluxe/Screens/CScreenSing.cs b/Vocaluxe/Screens/CScreenSing.cs index 829c69d1..7bf7e042 100644 --- a/Vocaluxe/Screens/CScreenSing.cs +++ b/Vocaluxe/Screens/CScreenSing.cs @@ -24,6 +24,7 @@ using System.Linq; using System.Windows.Forms; using Vocaluxe.Base; using Vocaluxe.Base.Fonts; +using Vocaluxe.Lib.Sound; using VocaluxeLib; using VocaluxeLib.Draw; using VocaluxeLib.Menu; @@ -525,7 +526,7 @@ namespace Vocaluxe.Screens songname += " (" + CGame.RoundNr + "/" + rounds + ")"; _Texts[_TextSongName].Text = songname; - _CurrentStream = CSound.Load(song.GetMP3(), false, true); + _CurrentStream = CSound.Load(song.GetMP3(), false, true, CConfig.Config.Sound.KaraokeEffect == EOffOn.TR_CONFIG_ON ? EAudioEffect.Karaoke : EAudioEffect.None); CSound.SetStreamVolume(_CurrentStream, 100); CSound.SetPosition(_CurrentStream, song.Start); _CurrentTime = song.Start; diff --git a/Vocaluxe/Vocaluxe.csproj b/Vocaluxe/Vocaluxe.csproj index 00fca9f4..4109a99a 100644 --- a/Vocaluxe/Vocaluxe.csproj +++ b/Vocaluxe/Vocaluxe.csproj @@ -185,6 +185,7 @@ + From ee9b0af7d685dbb0bdde336ee20383db740b10bd Mon Sep 17 00:00:00 2001 From: lukeIam <2lukeiam@gmail.com> Date: Fri, 9 Sep 2016 16:10:18 +0200 Subject: [PATCH 3/5] -Mod: Increment theme version number --- Output/Themes/Ambient.xml | 2 +- Output/Themes/Ambient/Screens/ScreenOptionsSound.xml | 2 +- .../Themes/Changelog/Changelog_ScreenOptionsSound.txt | 10 ++++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Output/Themes/Ambient.xml b/Output/Themes/Ambient.xml index 91b0c674..8eaa61cd 100644 --- a/Output/Themes/Ambient.xml +++ b/Output/Themes/Ambient.xml @@ -5,7 +5,7 @@ Ambient bohning 0 - 2 + 3 Cursor diff --git a/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml b/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml index a42fd2b5..9929150b 100644 --- a/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml +++ b/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml @@ -2,7 +2,7 @@ ScreenOptionsSound - 3 + 4 diff --git a/Output/Themes/Changelog/Changelog_ScreenOptionsSound.txt b/Output/Themes/Changelog/Changelog_ScreenOptionsSound.txt index d83bd921..f12bf489 100644 --- a/Output/Themes/Changelog/Changelog_ScreenOptionsSound.txt +++ b/Output/Themes/Changelog/Changelog_ScreenOptionsSound.txt @@ -1,5 +1,15 @@ ScreenOptionsSound +++++++++++ +Version 4: + +Add: + + + +and text for the description (Text7) +"TR_SCREENOSOUND_KARAOKEEFFECT" + ++++++++++ Version 3: From 82a2a552dbc2c70f1f6ba583e10717689d883eeb Mon Sep 17 00:00:00 2001 From: lukeIam <2lukeiam@gmail.com> Date: Fri, 9 Sep 2016 16:52:45 +0200 Subject: [PATCH 4/5] Fix: EAudioEffect.cs is missing --- Vocaluxe/Lib/Sound/EAudioEffect.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 Vocaluxe/Lib/Sound/EAudioEffect.cs diff --git a/Vocaluxe/Lib/Sound/EAudioEffect.cs b/Vocaluxe/Lib/Sound/EAudioEffect.cs new file mode 100644 index 00000000..cc85a9cf --- /dev/null +++ b/Vocaluxe/Lib/Sound/EAudioEffect.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Vocaluxe.Lib.Sound +{ + [Flags] + public enum EAudioEffect + { + None = 0, + Karaoke = 1 + } +} From 7f5252099618a4581dc637cd58f0521433e172bc Mon Sep 17 00:00:00 2001 From: lukeIam <2lukeiam@gmail.com> Date: Fri, 9 Sep 2016 16:59:00 +0200 Subject: [PATCH 5/5] Mod: theme version numbers the 2nd --- Output/Themes/Ambient.xml | 2 +- Vocaluxe/Screens/CScreenOptionsSound.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Output/Themes/Ambient.xml b/Output/Themes/Ambient.xml index 8eaa61cd..91b0c674 100644 --- a/Output/Themes/Ambient.xml +++ b/Output/Themes/Ambient.xml @@ -5,7 +5,7 @@ Ambient bohning 0 - 3 + 2 Cursor diff --git a/Vocaluxe/Screens/CScreenOptionsSound.cs b/Vocaluxe/Screens/CScreenOptionsSound.cs index 6d3c1fde..c3d47d1f 100644 --- a/Vocaluxe/Screens/CScreenOptionsSound.cs +++ b/Vocaluxe/Screens/CScreenOptionsSound.cs @@ -27,7 +27,7 @@ namespace Vocaluxe.Screens // Version number for theme files. Increment it, if you've changed something on the theme files! protected override int _ScreenVersion { - get { return 3; } + get { return 4; } } private const string _SelectSlideBackgroundMusic = "SelectSlideBackgroundMusic";