diff --git a/src/Tizen.Multimedia.AudioIO/AudioIO/AudioCapture.cs b/src/Tizen.Multimedia.AudioIO/AudioIO/AudioCapture.cs index b924a996ed2..45497e718bd 100644 --- a/src/Tizen.Multimedia.AudioIO/AudioIO/AudioCapture.cs +++ b/src/Tizen.Multimedia.AudioIO/AudioIO/AudioCapture.cs @@ -152,11 +152,18 @@ internal void ValidateNotDisposed() } #endregion - internal void ValidateState(params AudioIOState[] desiredStates) + internal void ValidateState(AudioIOState desired) { ValidateNotDisposed(); - AudioIOUtil.ValidateState(_state, desiredStates); + AudioIOUtil.ValidateState(_state, desired); + } + + internal void ValidateState(AudioIOState desired1, AudioIOState desired2) + { + ValidateNotDisposed(); + + AudioIOUtil.ValidateState(_state, desired1, desired2); } /// diff --git a/src/Tizen.Multimedia.AudioIO/AudioIO/AudioIOUtil.cs b/src/Tizen.Multimedia.AudioIO/AudioIO/AudioIOUtil.cs index c75531d2365..2025f3f15ce 100644 --- a/src/Tizen.Multimedia.AudioIO/AudioIO/AudioIOUtil.cs +++ b/src/Tizen.Multimedia.AudioIO/AudioIO/AudioIOUtil.cs @@ -15,24 +15,42 @@ */ using System; -using System.Diagnostics; -using System.Linq; +using System.Runtime.CompilerServices; namespace Tizen.Multimedia { internal static class AudioIOUtil { - internal static void ValidateState(AudioIOState curState, params AudioIOState[] desiredStates) + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void ValidateState(AudioIOState curState, AudioIOState desired) { - Debug.Assert(desiredStates.Length > 0); + if (curState == desired) + { + return; + } - if (desiredStates.Contains(curState)) + ThrowInvalidState(curState, desired); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void ValidateState(AudioIOState curState, AudioIOState desired1, AudioIOState desired2) + { + if (curState == desired1 || curState == desired2) { return; } - throw new InvalidOperationException($"The audio is not in a valid state. " + - $"Current State : { curState }, Valid State : { string.Join(", ", desiredStates) }."); + ThrowInvalidState(curState, desired1, desired2); } + + [MethodImpl(MethodImplOptions.NoInlining)] + private static void ThrowInvalidState(AudioIOState curState, AudioIOState desired) => + throw new InvalidOperationException($"The audio is not in a valid state. " + + $"Current State : { curState }, Valid State : { desired }."); + + [MethodImpl(MethodImplOptions.NoInlining)] + private static void ThrowInvalidState(AudioIOState curState, AudioIOState desired1, AudioIOState desired2) => + throw new InvalidOperationException($"The audio is not in a valid state. " + + $"Current State : { curState }, Valid State : { desired1 }, { desired2 }."); } } diff --git a/src/Tizen.Multimedia.AudioIO/AudioIO/AudioPlayback.cs b/src/Tizen.Multimedia.AudioIO/AudioIO/AudioPlayback.cs index a56a60146eb..dce76c48be9 100644 --- a/src/Tizen.Multimedia.AudioIO/AudioIO/AudioPlayback.cs +++ b/src/Tizen.Multimedia.AudioIO/AudioIO/AudioPlayback.cs @@ -189,11 +189,18 @@ private void ValidateNotDisposed() } #endregion - private void ValidateState(params AudioIOState[] desiredStates) + private void ValidateState(AudioIOState desired) { ValidateNotDisposed(); - AudioIOUtil.ValidateState(_state, desiredStates); + AudioIOUtil.ValidateState(_state, desired); + } + + private void ValidateState(AudioIOState desired1, AudioIOState desired2) + { + ValidateNotDisposed(); + + AudioIOUtil.ValidateState(_state, desired1, desired2); } ///