From 9b85456f2e79c7fd2cb00fde3148afc5ee301863 Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Fri, 15 Sep 2017 11:47:45 -0600 Subject: [PATCH] Updated ICodecAudio interface to break out individual functions to their own interfaces and not assume all to be applied to VideoCodecBase. Updated affected classes as a result. --- .../Devices/CodecInterfaces.cs | 46 +++++++++ .../Devices/IVolumeAndAudioInterfaces.cs | 31 ------ .../VC/CiscoCodec/CiscoCodec.cs | 60 ------------ .../VC/MockVC/MockVC.cs | 94 +------------------ .../VC/VideoCodecBase.cs | 64 ++++--------- 5 files changed, 69 insertions(+), 226 deletions(-) diff --git a/Essentials Core/PepperDashEssentialsBase/Devices/CodecInterfaces.cs b/Essentials Core/PepperDashEssentialsBase/Devices/CodecInterfaces.cs index 5135ac07..a5e84b12 100644 --- a/Essentials Core/PepperDashEssentialsBase/Devices/CodecInterfaces.cs +++ b/Essentials Core/PepperDashEssentialsBase/Devices/CodecInterfaces.cs @@ -27,6 +27,52 @@ namespace PepperDash.Essentials.Core } + /// + /// Defines minimum volume controls for a codec device with dialing capabilities + /// + public interface ICodecAudio : IBasicVolumeWithFeedback, ICodecPrivacy + { + + } + + /// + /// Adds control of codec receive volume + /// + public interface ICodecReceiveVolume + { + // Break this out into 3 interfaces + void SetReceiveVolume(ushort level); + void ReceiveMuteOn(); + void ReceiveMuteOff(); + void ReceiveMuteToggle(); + IntFeedback ReceiveLevelFeedback { get; } + BoolFeedback ReceiveMuteIsOnFeedback { get; } + } + + /// + /// Adds control of codec transmit volume + /// + public interface ICodecTransmitVolume + { + void SetTransmitVolume(ushort level); + void TransmitMuteOn(); + void TransmitMuteOff(); + void TransmitMuteToggle(); + IntFeedback TransmitLevelFeedback { get; } + BoolFeedback TransmitMuteIsOnFeedback { get; } + } + + /// + /// Adds control of codec privacy function (microphone mute) + /// + public interface ICodecPrivacy + { + void PrivacyModeOn(); + void PrivacyModeOff(); + void PrivacyModeToggle(); + BoolFeedback PrivacyModeIsOnFeedback { get; } + } + public interface IHasCallHistory { // Add recent calls list diff --git a/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs b/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs index 9990b2ed..c2b3ded9 100644 --- a/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs +++ b/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs @@ -68,37 +68,6 @@ namespace PepperDash.Essentials.Core IntFeedback DefaultVolumeFeedback { get; } } - /// - /// Defines minimum volume controls for a codec device with dialing capabilities - /// - public interface ICodecAudio - { - // ICodecReceiveVolume - // Break this out into 3 interfaces - void SetReceiveVolume(ushort level); - void ReceiveMuteOn(); - void ReceiveMuteOff(); - void ReceiveMuteToggle(); - IntFeedback ReceiveLevelFeedback { get; } - BoolFeedback ReceiveMuteIsOnFeedback { get; } - - // ICodecTransmitVolume - void SetTransmitVolume(ushort level); - void TransmitMuteOn(); - void TransmitMuteOff(); - void TransmitMuteToggle(); - IntFeedback TransmitLevelFeedback { get; } - BoolFeedback TransmitMuteIsOnFeedback { get; } - - // ICodecPrivacy - void PrivacyModeOn(); - void PrivacyModeOff(); - void PrivacyModeToggle(); - BoolFeedback PrivacyModeIsOnFeedback { get; } - } - - - /// /// A class that implements this, contains a reference to an IBasicVolumeControls device. /// For example, speakers attached to an audio zone. The speakers can provide reference diff --git a/Essentials Devices Common/Essentials Devices Common/VC/CiscoCodec/CiscoCodec.cs b/Essentials Devices Common/Essentials Devices Common/VC/CiscoCodec/CiscoCodec.cs index f166f89f..67f47dbe 100644 --- a/Essentials Devices Common/Essentials Devices Common/VC/CiscoCodec/CiscoCodec.cs +++ b/Essentials Devices Common/Essentials Devices Common/VC/CiscoCodec/CiscoCodec.cs @@ -490,10 +490,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco protected override Func IncomingCallFeedbackFunc { get { return () => false; } } - protected override Func TransmitMuteFeedbackFunc { get { return () => false; } } - - protected override Func ReceiveMuteFeedbackFunc { get { return () => false; } } - /// /// Gets the first CallId or returns null /// @@ -579,46 +575,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco SendText(string.Format("xCommand Presentation Stop PresentationSource: {0}", PresentationSource)); } - public override void ReceiveMuteOff() - { - - } - - public override void ReceiveMuteOn() - { - - } - - public override void ReceiveMuteToggle() - { - - } - - public override void SetReceiveVolume(ushort level) - { - - } - - public override void TransmitMuteOff() - { - - } - - public override void TransmitMuteOn() - { - - } - - public override void TransmitMuteToggle() - { - - } - - public override void SetTransmitVolume(ushort level) - { - - } - public override void PrivacyModeOn() { SendText("xCommand Audio Microphones Mute"); @@ -708,22 +664,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco { SendText("xCommand SystemUnit Boot Action: Restart"); } - - public override void MuteOff() - { - } - - public override void MuteOn() - { - } - - public override void SetVolume(ushort level) - { - } - - public override void MuteToggle() - { - } } /// diff --git a/Essentials Devices Common/Essentials Devices Common/VC/MockVC/MockVC.cs b/Essentials Devices Common/Essentials Devices Common/VC/MockVC/MockVC.cs index 1a837900..7f8cdaaa 100644 --- a/Essentials Devices Common/Essentials Devices Common/VC/MockVC/MockVC.cs +++ b/Essentials Devices Common/Essentials Devices Common/VC/MockVC/MockVC.cs @@ -18,7 +18,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec VolumeLevelFeedback.OutputChange += (o, a) => Debug.Console(1, this, "Volume={0}", _VolumeLevel); InCallFeedback.OutputChange += (o, a) => Debug.Console(1, this, "InCall={0}", _InCall); IncomingCallFeedback.OutputChange += (o, a) => Debug.Console(1, this, "IncomingCall={0}", _IncomingCall); - TransmitLevelFeedback.OutputChange += (o,a)=> Debug.Console(1, this, "TransmitLevel={0}", _tra } protected override Func InCallFeedbackFunc @@ -33,19 +32,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec } bool _IncomingCall; - - - protected override Func TransmitMuteFeedbackFunc - { - get { return () => _TransmitMute; } - } - bool _TransmitMute; - - protected override Func ReceiveMuteFeedbackFunc - { - get { return () => _ReceiveMute; } - } - bool _ReceiveMute; protected override Func PrivacyModeFeedbackFunc { @@ -155,86 +141,14 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec VolumeLevelFeedback.FireUpdate(); } - - /// - /// - /// - public override void ReceiveMuteOff() + public override void VolumeDown(bool pressRelease) { - Debug.Console(1, this, "ReceiveMuteOff"); - - if (!_ReceiveMute) - return; - _ReceiveMute = false; - ReceiveMuteIsOnFeedback.FireUpdate(); + } - /// - /// - /// - public override void ReceiveMuteOn() + public override void VolumeUp(bool pressRelease) { - Debug.Console(1, this, "ReceiveMuteOn"); - if (_ReceiveMute) - return; - ReceiveMuteIsOnFeedback.FireUpdate(); - } - - /// - /// - /// - public override void ReceiveMuteToggle() - { - Debug.Console(1, this, "ReceiveMuteToggle"); - - _ReceiveMute = !_ReceiveMute; - ReceiveMuteIsOnFeedback.FireUpdate(); - } - - /// - /// - /// - /// - public override void SetReceiveVolume(ushort level) - { - Debug.Console(1, this, "SetReceiveVolume: {0}", level); - - } - - /// - /// - /// - public override void TransmitMuteOff() - { - Debug.Console(1, this, "TransmitMuteOff"); - - if (!_TransmitMute) - return; - _TransmitMute = false; - TransmitMuteIsOnFeedback.FireUpdate(); - } - - /// - /// - /// - public override void TransmitMuteOn() - { - Debug.Console(1, this, "TransmitMuteOn"); - if (_TransmitMute) - return; - TransmitMuteIsOnFeedback.FireUpdate(); - } - - public override void TransmitMuteToggle() - { - _TransmitMute = !_TransmitMute; - Debug.Console(1, this, "TransmitMuteToggle: {0}", _TransmitMute); - TransmitMuteIsOnFeedback.FireUpdate(); - } - - public override void SetTransmitVolume(ushort level) - { - Debug.Console(1, this, "SetTransmitVolume: {0}", level); + } public override void PrivacyModeOn() diff --git a/Essentials Devices Common/Essentials Devices Common/VC/VideoCodecBase.cs b/Essentials Devices Common/Essentials Devices Common/VC/VideoCodecBase.cs index 59aef5ab..a0a80f49 100644 --- a/Essentials Devices Common/Essentials Devices Common/VC/VideoCodecBase.cs +++ b/Essentials Devices Common/Essentials Devices Common/VC/VideoCodecBase.cs @@ -9,7 +9,7 @@ using PepperDash.Essentials.Core; namespace PepperDash.Essentials.Devices.Common.VideoCodec { - public abstract class VideoCodecBase : Device, IRoutingSinkWithSwitching, IUsageTracking, IHasDialer, IHasSharing, IBasicVolumeWithFeedback //, ICodecAudio + public abstract class VideoCodecBase : Device, IRoutingSinkWithSwitching, IUsageTracking, IHasDialer, IHasSharing, ICodecAudio { #region IUsageTracking Members @@ -28,8 +28,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec abstract protected Func InCallFeedbackFunc { get; } abstract protected Func IncomingCallFeedbackFunc { get; } - abstract protected Func TransmitMuteFeedbackFunc { get; } - abstract protected Func ReceiveMuteFeedbackFunc { get; } abstract protected Func PrivacyModeFeedbackFunc { get; } #warning WILL ADD TRANSMIT AND REVEICE LEVEL FUNCS AFTER MERGE @@ -41,8 +39,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec { InCallFeedback = new BoolFeedback(InCallFeedbackFunc); IncomingCallFeedback = new BoolFeedback(IncomingCallFeedbackFunc); - ReceiveMuteIsOnFeedback = new BoolFeedback(ReceiveMuteFeedbackFunc); - TransmitMuteIsOnFeedback = new BoolFeedback(TransmitMuteFeedbackFunc); PrivacyModeIsOnFeedback = new BoolFeedback(PrivacyModeFeedbackFunc); #warning ADDING TX/RX FEEDBACKS HERE @@ -82,8 +78,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec { InCallFeedback, IncomingCallFeedback, - ReceiveMuteIsOnFeedback, - TransmitMuteIsOnFeedback, PrivacyModeIsOnFeedback }; } @@ -93,25 +87,29 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec #region ICodecAudio Members - public IntFeedback ReceiveLevelFeedback { get; private set; } - public BoolFeedback ReceiveMuteIsOnFeedback { get; private set; } - public abstract void ReceiveMuteOff(); - public abstract void ReceiveMuteOn(); - public abstract void ReceiveMuteToggle(); - public abstract void SetReceiveVolume(ushort level); - - public IntFeedback TransmitLevelFeedback { get; private set; } - public BoolFeedback TransmitMuteIsOnFeedback { get; private set; } - public abstract void TransmitMuteOff(); - public abstract void TransmitMuteOn(); - public abstract void TransmitMuteToggle(); - public abstract void SetTransmitVolume(ushort level); - public abstract void PrivacyModeOn(); public abstract void PrivacyModeOff(); public abstract void PrivacyModeToggle(); public BoolFeedback PrivacyModeIsOnFeedback { get; private set; } + + public BoolFeedback MuteFeedback { get; private set; } + + public abstract void MuteOff(); + + public abstract void MuteOn(); + + public abstract void SetVolume(ushort level); + + public IntFeedback VolumeLevelFeedback { get; private set; } + + public abstract void MuteToggle(); + + public abstract void VolumeDown(bool pressRelease); + + + public abstract void VolumeUp(bool pressRelease); + #endregion #region IHasSharing Members @@ -123,30 +121,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec #endregion - #region IBasicVolumeWithFeedback Members - public BoolFeedback MuteFeedback { get; private set; } - - public abstract void MuteOff(); - - public abstract void MuteOn(); - - public abstract void SetVolume(ushort level); - - public IntFeedback VolumeLevelFeedback { get; private set; } - - #endregion - - #region IBasicVolumeControls Members - - public abstract void MuteToggle(); - - public abstract void VolumeDown(bool pressRelease); - - - public abstract void VolumeUp(bool pressRelease); - - - #endregion } } \ No newline at end of file