Temp commit to capture progress on MicrophonePrivacy before switching branches to help debug Samsung MDC driver

This commit is contained in:
Neil Dorin
2017-11-03 09:50:44 -06:00
parent d1197329f3
commit f327ab1590
7 changed files with 49 additions and 31 deletions

View File

@@ -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()

View File

@@ -120,6 +120,7 @@
<Compile Include="Factory\DeviceFactory.cs" />
<Compile Include="Generic\GenericSource.cs" />
<Compile Include="Microphones\MicrophonePrivacyController.cs" />
<Compile Include="Microphones\MicrophonePrivacyControllerConfig.cs" />
<Compile Include="Occupancy\EssentialsGlsOccupancySensorBaseController.cs" />
<Compile Include="Occupancy\EssentialsOccupancyAggregator.cs" />
<Compile Include="Occupancy\iOccupancyStatusProvider.cs" />

View File

@@ -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
/// </summary>
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<IDigitalInput>();
}
public void SetPrivacyDevice(IPrivacy privacyDevice)
{
PrivacyDevice = privacyDevice;
PrivacyDevice.PrivacyModeIsOnFeedback.OutputChange += new EventHandler<EventArgs>(PrivacyModeIsOnFeedback_OutputChange);
Inputs = new List<IDigitalInput>();
}
void PrivacyModeIsOnFeedback_OutputChange(object sender, EventArgs e)

View File

@@ -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
{
}
}

View File

@@ -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<PepperDash.Essentials.Devices.Common.Codec.CodecActiveCallItem>();
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
}
/// <summary>

View File

@@ -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;
}
}
/// <summary>
@@ -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; }
}
/// <summary>
/// Properties for the help text box
/// </summary>

View File

@@ -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; }