diff --git a/src/TeamsISO.Engine/Domain/Enums.cs b/src/TeamsISO.Engine/Domain/Enums.cs new file mode 100644 index 0000000..e18418b --- /dev/null +++ b/src/TeamsISO.Engine/Domain/Enums.cs @@ -0,0 +1,51 @@ +namespace TeamsISO.Engine.Domain; + +public enum NdiSourceKind +{ + Participant, + ActiveSpeaker, + Audio, + ScreenShare +} + +public enum IsoState +{ + Idle, + Receiving, + Sending, + NoSignal, + Error +} + +public enum AspectMode +{ + Pillarbox, + Letterbox, + Stretch +} + +public enum AudioMode +{ + Auto, + Isolated, + Mixed +} + +public enum TargetFramerate +{ + Fps23_976, + Fps24, + Fps25, + Fps29_97, + Fps30, + Fps50, + Fps59_94, + Fps60 +} + +public enum TargetResolution +{ + R720p, + R1080p, + R4K +} diff --git a/src/tests/TeamsISO.Engine.Tests/Domain/EnumSanityTests.cs b/src/tests/TeamsISO.Engine.Tests/Domain/EnumSanityTests.cs new file mode 100644 index 0000000..1af3d28 --- /dev/null +++ b/src/tests/TeamsISO.Engine.Tests/Domain/EnumSanityTests.cs @@ -0,0 +1,40 @@ +using TeamsISO.Engine.Domain; + +namespace TeamsISO.Engine.Tests.Domain; + +public class EnumSanityTests +{ + [Fact] + public void NdiSourceKind_HasExpectedMembers() + { + var values = Enum.GetValues(); + values.Should().Contain(new[] + { + NdiSourceKind.Participant, + NdiSourceKind.ActiveSpeaker, + NdiSourceKind.Audio, + NdiSourceKind.ScreenShare + }); + } + + [Fact] + public void IsoState_HasExpectedMembers() + { + var values = Enum.GetValues(); + values.Should().Contain(new[] + { + IsoState.Idle, + IsoState.Receiving, + IsoState.Sending, + IsoState.NoSignal, + IsoState.Error + }); + } + + [Fact] + public void TargetFramerate_HasAllSupportedRates() + { + var values = Enum.GetValues(); + values.Should().HaveCount(8); + } +} diff --git a/src/tests/TeamsISO.Engine.Tests/GlobalUsings.cs b/src/tests/TeamsISO.Engine.Tests/GlobalUsings.cs new file mode 100644 index 0000000..7b25ddd --- /dev/null +++ b/src/tests/TeamsISO.Engine.Tests/GlobalUsings.cs @@ -0,0 +1,2 @@ +global using FluentAssertions; +global using Xunit;