From ed475b5378c98fd070039d9b24f757a9b3194525 Mon Sep 17 00:00:00 2001 From: "Kim, Cory" Date: Thu, 17 Oct 2024 12:39:16 -0500 Subject: [PATCH] feat: Batch Isolate Vocals should filter out songs with unsupported audio formarts --- .../1-BatchIsolateVocalsModSettings.cs | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/UltraStar Play/Assets/StreamingAssets/Mods/BatchIsolateVocals/1-BatchIsolateVocalsModSettings.cs b/UltraStar Play/Assets/StreamingAssets/Mods/BatchIsolateVocals/1-BatchIsolateVocalsModSettings.cs index 04ff44225..fba39f192 100644 --- a/UltraStar Play/Assets/StreamingAssets/Mods/BatchIsolateVocals/1-BatchIsolateVocalsModSettings.cs +++ b/UltraStar Play/Assets/StreamingAssets/Mods/BatchIsolateVocals/1-BatchIsolateVocalsModSettings.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; using UniInject; using UniRx; @@ -39,7 +40,7 @@ public List GetModSettingControls() private void OnSelectAll() { - toggles.ForEach(toggle => toggle.value = true); + toggles.FindAll(toggle => toggle.enabledSelf).ForEach(toggle => toggle.value = true); } private void OnDeselectAll() @@ -152,13 +153,33 @@ public VisualElement CreateVisualElement() toggle.label = SongMetaUtils.GetArtistDashTitle(songMeta); toggle.value = false; toggle.userData = songMeta; - - toggles.Add(toggle); + if (!IsSongSupported(songMeta)) + { + toggle.SetEnabled(false); + } + toggles.Add(toggle); toggleContainer.Add(toggle); } return toggleContainer; } + + private readonly string[] supportedExtensions = { "wav", "mp3", "ogg", "m4a", "wma", "flac" }; + + private bool IsSongSupported(SongMeta songMeta) + { + string audio = songMeta.Audio; + string extension = Path.GetExtension(audio).ToLower(); + if (extension.StartsWith(".")) + { + extension = extension.Substring(1); + } + bool result = Array.Exists(supportedExtensions, ext => ext.Equals(extension)); + Debug.Log($"Checking support for {audio}, extension: {extension}, result: {result}"); + return result; + } + + } }