From 0ab1ece4455b7ef35183cee2d87bfea11ab628d2 Mon Sep 17 00:00:00 2001 From: Nick Genovese Date: Mon, 14 Mar 2022 19:26:50 -0400 Subject: [PATCH 1/2] feat (essentials): split up volume interfaces for better composition fix (essentials): fixed a few misc devices that are probably deprecated anyhow --- .../Devices/IVolumeAndAudioInterfaces.cs | 50 +++++++++++++++---- .../Display/NECPSXMDisplay.cs | 7 ++- .../Display/PanasonicThDisplay.cs | 5 +- 3 files changed, 47 insertions(+), 15 deletions(-) diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs index 1cff62fc..516c3283 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs @@ -7,25 +7,53 @@ using Crestron.SimplSharp; namespace PepperDash.Essentials.Core { /// - /// Defines minimal volume control methods + /// Defines minimal volume and mute control methods /// - public interface IBasicVolumeControls + public interface IBasicVolumeControls : IBasicVolumeControl, IBasicMuteControl { - void VolumeUp(bool pressRelease); - void VolumeDown(bool pressRelease); - void MuteToggle(); } + /// + /// Defines basic volume control methods + /// + public interface IBasicVolumeControl + { + void VolumeUp(bool pressRelease); + void VolumeDown(bool pressRelease); + } + + /// + /// Defines volume control methods and properties with feedback + /// + public interface IBasicVolumeControlWithFeedback : IBasicVolumeControl + { + void SetVolume(ushort level); + IntFeedback VolumeLevelFeedback { get; } + } + + /// + /// Defines basic mute control methods + /// + public interface IBasicMuteControl + { + void MuteToggle(); + } + + /// + /// Defines mute control methods and properties with feedback + /// + public interface IBasicMuteControlWithFeedback : IBasicMuteControl + { + BoolFeedback MuteFeedback { get; } + void MuteOn(); + void MuteOff(); + } + /// /// Adds feedback and direct volume level set to IBasicVolumeControls /// - public interface IBasicVolumeWithFeedback : IBasicVolumeControls + public interface IBasicVolumeWithFeedback : IBasicVolumeControlWithFeedback, IBasicMuteControlWithFeedback { - void SetVolume(ushort level); - void MuteOn(); - void MuteOff(); - IntFeedback VolumeLevelFeedback { get; } - BoolFeedback MuteFeedback { get; } } /// diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/Display/NECPSXMDisplay.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/Display/NECPSXMDisplay.cs index 176f28ac..a674b11a 100644 --- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/Display/NECPSXMDisplay.cs +++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/Display/NECPSXMDisplay.cs @@ -308,7 +308,7 @@ namespace PepperDash.Essentials.Devices.Displays //Send((string)selector); } - void SetVolume(ushort level) + public void SetVolume(ushort level) { var levelString = string.Format("{0}{1:X4}\x03", VolumeLevelPartialCmd, level); AppendChecksumAndSend(levelString); @@ -333,10 +333,13 @@ namespace PepperDash.Essentials.Devices.Displays Send(MuteOnCmd); } - void IBasicVolumeWithFeedback.SetVolume(ushort level) + + /* + public void IBasicVolumeWithFeedback.SetVolume(ushort level) { SetVolume(level); } + */ #endregion diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/Display/PanasonicThDisplay.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/Display/PanasonicThDisplay.cs index b8d33bd1..9acc395e 100644 --- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/Display/PanasonicThDisplay.cs +++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/Display/PanasonicThDisplay.cs @@ -290,7 +290,7 @@ namespace PepperDash.Essentials.Devices.Displays //Send((string)selector); } - void SetVolume(ushort level) + public void SetVolume(ushort level) { var levelString = string.Format("{0}{1:X3}\x03", VolumeLevelPartialCmd, level); @@ -315,11 +315,12 @@ namespace PepperDash.Essentials.Devices.Displays Send(MuteOnCmd); } + /* void IBasicVolumeWithFeedback.SetVolume(ushort level) { SetVolume(level); } - + */ #endregion #region IBasicVolumeControls Members From 34a695ba95997fe066ccfcdfa1dee358f2279270 Mon Sep 17 00:00:00 2001 From: Nick Genovese Date: Mon, 14 Mar 2022 19:51:55 -0400 Subject: [PATCH 2/2] feat (essentials): fixed a few build issues with the new volume interfaces --- .../Devices/IVolumeAndAudioInterfaces.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs index 516c3283..254eada2 100644 --- a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs +++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs @@ -9,14 +9,14 @@ namespace PepperDash.Essentials.Core /// /// Defines minimal volume and mute control methods /// - public interface IBasicVolumeControls : IBasicVolumeControl, IBasicMuteControl + public interface IBasicVolumeControls : IHasVolumeControl, IHasMuteControl { } /// /// Defines basic volume control methods /// - public interface IBasicVolumeControl + public interface IHasVolumeControl { void VolumeUp(bool pressRelease); void VolumeDown(bool pressRelease); @@ -25,7 +25,7 @@ namespace PepperDash.Essentials.Core /// /// Defines volume control methods and properties with feedback /// - public interface IBasicVolumeControlWithFeedback : IBasicVolumeControl + public interface IHasVolumeControlWithFeedback : IHasVolumeControl { void SetVolume(ushort level); IntFeedback VolumeLevelFeedback { get; } @@ -34,7 +34,7 @@ namespace PepperDash.Essentials.Core /// /// Defines basic mute control methods /// - public interface IBasicMuteControl + public interface IHasMuteControl { void MuteToggle(); } @@ -42,7 +42,7 @@ namespace PepperDash.Essentials.Core /// /// Defines mute control methods and properties with feedback /// - public interface IBasicMuteControlWithFeedback : IBasicMuteControl + public interface IHasMuteControlWithFeedback : IHasMuteControl { BoolFeedback MuteFeedback { get; } void MuteOn(); @@ -52,7 +52,7 @@ namespace PepperDash.Essentials.Core /// /// Adds feedback and direct volume level set to IBasicVolumeControls /// - public interface IBasicVolumeWithFeedback : IBasicVolumeControlWithFeedback, IBasicMuteControlWithFeedback + public interface IBasicVolumeWithFeedback : IBasicVolumeControls, IHasVolumeControlWithFeedback, IHasMuteControlWithFeedback { }