Persist channel DRED settings
Build and test / test (macos-latest) (push) Canceled after 0s
Build and test / test (ubuntu-24.04) (push) Canceled after 0s
Build and test / test (windows-latest) (push) Canceled after 0s
Build and test / apple-client (push) Canceled after 0s

This commit is contained in:
2026-09-22 14:11:36 +02:00
parent 8471eac363
commit 7c4708c3de
9 changed files with 101 additions and 11 deletions
@@ -99,4 +99,33 @@ public class ChannelManagementTests
Assert.True(await ResultAsync(admin, new() { DeleteChannel = new() { ChannelId = child.Id } }));
Assert.True(await ResultAsync(admin, new() { DeleteChannel = new() { ChannelId = parent.Id } }));
}
[Fact]
public async Task DredAudioSettingsRoundTripThroughEditAndDatabaseRestart()
{
await using var fixture = new ServerFixture();
await using var admin = await AdminAsync(fixture);
using (var store = new AccountStore(Path.Combine(fixture.Directory, "voicecat.db")))
{
Channel music = store.LoadChannels().Single(c => c.Name == "Music Room");
music.Audio.SampleRate = 48_000;
music.Audio.BitrateBps = 128_000;
music.Audio.ExpectedPacketLoss = 15;
music.Audio.Dtx = true;
music.Audio.Fec = true;
music.Audio.Dred = true;
music.Audio.Complexity = 10;
Assert.True(await ResultAsync(admin, new() { EditChannel = new() { Channel = music } }));
}
using var reopened = new AccountStore(Path.Combine(fixture.Directory, "voicecat.db"));
AudioConfig audio = reopened.LoadChannels().Single(c => c.Name == "Music Room").Audio;
Assert.Equal(48_000U, audio.SampleRate);
Assert.Equal(128_000U, audio.BitrateBps);
Assert.Equal(15U, audio.ExpectedPacketLoss);
Assert.True(audio.Dtx);
Assert.True(audio.Fec);
Assert.True(audio.Dred);
Assert.Equal(10U, audio.Complexity);
}
}