Restrict audio sample rate settings to allowed values (#1116)

This commit is contained in:
Michael Bucari-Tovo 2025-01-16 10:24:57 -07:00
parent 65c64c4504
commit 13aad1a7cb
3 changed files with 16 additions and 3 deletions

View File

@ -89,7 +89,8 @@ namespace AppScaffolding
Migrations.migrate_to_v6_6_9(config); Migrations.migrate_to_v6_6_9(config);
Migrations.migrate_to_v11_5_0(config); Migrations.migrate_to_v11_5_0(config);
} Migrations.migrate_to_v11_6_5(config);
}
/// <summary>Initialize logging. Wire-up events. Run after migration</summary> /// <summary>Initialize logging. Wire-up events. Run after migration</summary>
public static void RunPostMigrationScaffolding(Variety variety, Configuration config) public static void RunPostMigrationScaffolding(Variety variety, Configuration config)
@ -413,7 +414,16 @@ namespace AppScaffolding
public List<string> Filters { get; set; } = new(); public List<string> Filters { get; set; } = new();
} }
public static void migrate_to_v11_5_0(Configuration config) public static void migrate_to_v11_6_5(Configuration config)
{
//Settings migration for unsupported sample rates (#1116)
if (config.MaxSampleRate < AAXClean.SampleRate.Hz_8000)
config.MaxSampleRate = AAXClean.SampleRate.Hz_8000;
else if (config.MaxSampleRate > AAXClean.SampleRate.Hz_48000)
config.MaxSampleRate = AAXClean.SampleRate.Hz_48000;
}
public static void migrate_to_v11_5_0(Configuration config)
{ {
// Read file, but convert old format to new (with Name field) as necessary. // Read file, but convert old format to new (with Name field) as necessary.
if (!File.Exists(QuickFilters.JsonFile)) if (!File.Exists(QuickFilters.JsonFile))

View File

@ -25,7 +25,9 @@ namespace LibationAvalonia.ViewModels.Settings
public NAudio.Lame.EncoderQuality SelectedEncoderQuality { get; set; } public NAudio.Lame.EncoderQuality SelectedEncoderQuality { get; set; }
public AvaloniaList<EnumDiaplay<SampleRate>> SampleRates { get; } public AvaloniaList<EnumDiaplay<SampleRate>> SampleRates { get; }
= new(Enum.GetValues<SampleRate>().Select(v => new EnumDiaplay<SampleRate>(v, $"{(int)v} Hz"))); = new(Enum.GetValues<SampleRate>()
.Where(r => r >= SampleRate.Hz_8000 && r <= SampleRate.Hz_48000)
.Select(v => new EnumDiaplay<SampleRate>(v, $"{(int)v} Hz")));
public AvaloniaList<NAudio.Lame.EncoderQuality> EncoderQualities { get; } public AvaloniaList<NAudio.Lame.EncoderQuality> EncoderQualities { get; }
= new( = new(

View File

@ -41,6 +41,7 @@ namespace LibationWinForms.Dialogs
maxSampleRateCb.Items.AddRange( maxSampleRateCb.Items.AddRange(
Enum.GetValues<AAXClean.SampleRate>() Enum.GetValues<AAXClean.SampleRate>()
.Where(r => r >= AAXClean.SampleRate.Hz_8000 && r <= AAXClean.SampleRate.Hz_48000)
.Select(v => new EnumDiaplay<AAXClean.SampleRate>(v, $"{(int)v} Hz")) .Select(v => new EnumDiaplay<AAXClean.SampleRate>(v, $"{(int)v} Hz"))
.ToArray()); .ToArray());