From f327ab1590aebcd2c65dacb07e541c36a0429a0d Mon Sep 17 00:00:00 2001 From: Neil Dorin Date: Fri, 3 Nov 2017 09:50:44 -0600 Subject: [PATCH] Temp commit to capture progress on MicrophonePrivacy before switching branches to help debug Samsung MDC driver --- .../Display/SamsungMDCDisplay.cs | 4 +-- .../Essentials Devices Common.csproj | 1 + .../MicrophonePrivacyController.cs | 12 ++++++--- .../MicrophonePrivacyControllerConfig.cs | 13 ++++++++++ .../PepperDashEssentials/ControlSystem.cs | 25 ------------------- .../Room/Config/EssentialsRoomConfig.cs | 23 +++++++++++++++++ .../Room/Types/EssentialsRoomBase.cs | 2 ++ 7 files changed, 49 insertions(+), 31 deletions(-) create mode 100644 Essentials Devices Common/Essentials Devices Common/Microphones/MicrophonePrivacyControllerConfig.cs diff --git a/Essentials Devices Common/Essentials Devices Common/Display/SamsungMDCDisplay.cs b/Essentials Devices Common/Essentials Devices Common/Display/SamsungMDCDisplay.cs index 6ed993ef..c795ba60 100644 --- a/Essentials Devices Common/Essentials Devices Common/Display/SamsungMDCDisplay.cs +++ b/Essentials Devices Common/Essentials Devices Common/Display/SamsungMDCDisplay.cs @@ -393,12 +393,12 @@ namespace PepperDash.Essentials.Devices.Displays public void InputHdmi1() { - SendBytes(new byte[] { 0xAA, 0x14, 0x00, 0x01, 0x22, 0x00 }); + SendBytes(new byte[] { 0xAA, 0x14, 0x00, 0x01, 0x21, 0x00 }); } public void InputHdmi2() { - SendBytes(new byte[] { 0xAA, 0x14, 0x00, 0x01, 0x24, 0x00 }); + SendBytes(new byte[] { 0xAA, 0x14, 0x00, 0x01, 0x23, 0x00 }); } public void InputHdmi3() diff --git a/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.csproj b/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.csproj index 39f4a0f0..ab3b8eeb 100644 --- a/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.csproj +++ b/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.csproj @@ -120,6 +120,7 @@ + diff --git a/Essentials Devices Common/Essentials Devices Common/Microphones/MicrophonePrivacyController.cs b/Essentials Devices Common/Essentials Devices Common/Microphones/MicrophonePrivacyController.cs index a8d4ea1b..3918294e 100644 --- a/Essentials Devices Common/Essentials Devices Common/Microphones/MicrophonePrivacyController.cs +++ b/Essentials Devices Common/Essentials Devices Common/Microphones/MicrophonePrivacyController.cs @@ -15,7 +15,7 @@ namespace PepperDash.Essentials.Devices.Common.Microphones /// Used for applications where one or more microphones with momentary contact closure outputs are used to /// toggle the privacy state of the room. Privacy state feedback is represented /// - public class MicrophonePrivacyController + public class MicrophonePrivacyController : Device { public bool EnableLeds { @@ -44,13 +44,17 @@ namespace PepperDash.Essentials.Devices.Common.Microphones public IPrivacy PrivacyDevice { get; private set; } - public MicrophonePrivacyController(IPrivacy privacyDevice) + public MicrophonePrivacyController(string key, MicrophonePrivacyControllerConfig config) : + base(key) + { + Inputs = new List(); + } + + public void SetPrivacyDevice(IPrivacy privacyDevice) { PrivacyDevice = privacyDevice; PrivacyDevice.PrivacyModeIsOnFeedback.OutputChange += new EventHandler(PrivacyModeIsOnFeedback_OutputChange); - - Inputs = new List(); } void PrivacyModeIsOnFeedback_OutputChange(object sender, EventArgs e) diff --git a/Essentials Devices Common/Essentials Devices Common/Microphones/MicrophonePrivacyControllerConfig.cs b/Essentials Devices Common/Essentials Devices Common/Microphones/MicrophonePrivacyControllerConfig.cs new file mode 100644 index 00000000..42651064 --- /dev/null +++ b/Essentials Devices Common/Essentials Devices Common/Microphones/MicrophonePrivacyControllerConfig.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Crestron.SimplSharp; + +namespace PepperDash.Essentials.Devices.Common.Microphones +{ + public class MicrophonePrivacyControllerConfig + { + + } +} \ No newline at end of file diff --git a/Essentials/PepperDashEssentials/ControlSystem.cs b/Essentials/PepperDashEssentials/ControlSystem.cs index 6c74b9bc..5271248f 100644 --- a/Essentials/PepperDashEssentials/ControlSystem.cs +++ b/Essentials/PepperDashEssentials/ControlSystem.cs @@ -130,31 +130,6 @@ namespace PepperDash.Essentials Debug.Console(0, "WARNING: Cannot load unknown device type '{0}', key '{1}'.", devConf.Type, devConf.Key); } - // CODEC TESTING - /* - try - { - GenericSshClient TestCodecClient = new GenericSshClient("TestCodec-1--SshClient", "10.11.50.135", 22, "crestron", "2H3Zu&OvgXp6"); - - var props = new PepperDash.Essentials.Devices.Common.Codec.CiscoCodecPropertiesConfig(); - - props.PhonebookMode = "Local"; - props.Favorites = new System.Collections.Generic.List(); - props.Favorites.Add(new PepperDash.Essentials.Devices.Common.Codec.CodecActiveCallItem() { Name = "NYU Cisco Webex", Number = "10.11.50.211" }); - - PepperDash.Essentials.Devices.Common.VideoCodec.Cisco.CiscoCodec TestCodec = - new PepperDash.Essentials.Devices.Common.VideoCodec.Cisco.CiscoCodec("TestCodec-1", "Cisco Spark Room Kit", TestCodecClient, props); - - TestCodec.CommDebuggingIsOn = true; - - TestCodec.CustomActivate(); - } - catch (Exception e) - { - Debug.Console(0, "Error in something Neil is working on ;) \r{0}", e); - } - */ - // CODEC TESTING } /// diff --git a/Essentials/PepperDashEssentials/Room/Config/EssentialsRoomConfig.cs b/Essentials/PepperDashEssentials/Room/Config/EssentialsRoomConfig.cs index 313027a4..683a10da 100644 --- a/Essentials/PepperDashEssentials/Room/Config/EssentialsRoomConfig.cs +++ b/Essentials/PepperDashEssentials/Room/Config/EssentialsRoomConfig.cs @@ -73,6 +73,8 @@ namespace PepperDash.Essentials.Room.Config rm.DefaultSourceItem = props.DefaultSourceItem; rm.DefaultVolume = (ushort)(props.Volumes.Master.Level * 65535 / 100); + rm.MicrophonePrivacy = GetMicrophonePrivacy(props, rm); // Get Microphone Privacy object, if any + rm.Emergency = GetEmergency(props, rm); // Get emergency object, if any return rm; @@ -97,6 +99,21 @@ namespace PepperDash.Essentials.Room.Config } return null; } + + PepperDash.Essentials.Devices.Common.Microphones.MicrophonePrivacyController GetMicrophonePrivacy(EssentialsRoomPropertiesConfig props, EssentialsHuddleVtc1Room room) + { + var microphonePrivacy = props.MicrophonePrivacy; + if (microphonePrivacy != null) + { + // Get the MicrophonePrivacy device from the device manager + var mP = (DeviceManager.GetDeviceForKey(props.MicrophonePrivacy.Key) as PepperDash.Essentials.Devices.Common.Microphones.MicrophonePrivacyController); + // Set this room as the IPrivacy device + mP.SetPrivacyDevice(room); + + return mP; + } + return null; + } } /// @@ -105,6 +122,7 @@ namespace PepperDash.Essentials.Room.Config public class EssentialsRoomPropertiesConfig { public EssentialsRoomEmergencyConfig Emergency { get; set; } + public EssentialsRoomMicrophonePrivacyConfig MicrophonePrivacy {get; set;} public string HelpMessage { get; set; } public string Description { get; set; } public int ShutdownVacancySeconds { get; set; } @@ -118,6 +136,11 @@ namespace PepperDash.Essentials.Room.Config public EssentialsRoomVolumesConfig Volumes { get; set; } } + public class EssentialsRoomMicrophonePrivacyConfig + { + public string Key { get; set; } + } + /// /// Properties for the help text box /// diff --git a/Essentials/PepperDashEssentials/Room/Types/EssentialsRoomBase.cs b/Essentials/PepperDashEssentials/Room/Types/EssentialsRoomBase.cs index 75d819d4..60f87c7b 100644 --- a/Essentials/PepperDashEssentials/Room/Types/EssentialsRoomBase.cs +++ b/Essentials/PepperDashEssentials/Room/Types/EssentialsRoomBase.cs @@ -51,6 +51,8 @@ namespace PepperDash.Essentials public PepperDash.Essentials.Room.EssentialsRoomEmergencyBase Emergency { get; set; } + public PepperDash.Essentials.Devices.Common.Microphones.MicrophonePrivacyController MicrophonePrivacy { get; set; } + public string LogoUrl { get; set; } protected SecondsCountdownTimer RoomVacancyShutdownTimer { get; private set; }