Persist channel DRED settings
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user