diff --git a/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs b/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs
index 3909316b..2e4f33a4 100644
--- a/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs
+++ b/PepperDashEssentials/Room/Types/EssentialsHuddleVtc1Room.cs
@@ -1,7 +1,5 @@
using System;
-using System.Collections.Generic;
using System.Linq;
-using System.Text;
using Crestron.SimplSharp;
using Newtonsoft.Json;
@@ -76,10 +74,7 @@ namespace PepperDash.Essentials
return () =>
{
var disp = DefaultDisplay as DisplayBase;
- if (disp != null)
- return disp.IsWarmingUpFeedback.BoolValue;
- else
- return false;
+ return disp != null && disp.IsWarmingUpFeedback.BoolValue;
};
}
}
@@ -93,10 +88,7 @@ namespace PepperDash.Essentials
return () =>
{
var disp = DefaultDisplay as DisplayBase;
- if (disp != null)
- return disp.IsCoolingDownFeedback.BoolValue;
- else
- return false;
+ return disp != null && disp.IsCoolingDownFeedback.BoolValue;
};
}
}
@@ -121,7 +113,7 @@ namespace PepperDash.Essentials
/// If room is off, enables power on to last source. Default true
///
public bool EnablePowerOnToLastSource { get; set; }
- string LastSourceKey;
+ private string _lastSourceKey;
///
/// Sets the volume control device, and attaches/removes InUseTrackers with "audio"
@@ -129,56 +121,56 @@ namespace PepperDash.Essentials
///
public IBasicVolumeControls CurrentVolumeControls
{
- get { return _CurrentAudioDevice; }
+ get { return _currentAudioDevice; }
set
{
- if (value == _CurrentAudioDevice) return;
+ if (value == _currentAudioDevice) return;
- var oldDev = _CurrentAudioDevice;
+ var oldDev = _currentAudioDevice;
// derigister this room from the device, if it can
if (oldDev is IInUseTracking)
(oldDev as IInUseTracking).InUseTracker.RemoveUser(this, "audio");
var handler = CurrentVolumeDeviceChange;
if (handler != null)
CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.WillChange));
- _CurrentAudioDevice = value;
+ _currentAudioDevice = value;
if (handler != null)
CurrentVolumeDeviceChange(this, new VolumeDeviceChangeEventArgs(oldDev, value, ChangeType.DidChange));
// register this room with new device, if it can
- if (_CurrentAudioDevice is IInUseTracking)
- (_CurrentAudioDevice as IInUseTracking).InUseTracker.AddUser(this, "audio");
+ if (_currentAudioDevice is IInUseTracking)
+ (_currentAudioDevice as IInUseTracking).InUseTracker.AddUser(this, "audio");
}
}
- IBasicVolumeControls _CurrentAudioDevice;
+ IBasicVolumeControls _currentAudioDevice;
///
/// The SourceListItem last run - containing names and icons
///
public SourceListItem CurrentSourceInfo
{
- get { return _CurrentSourceInfo; }
+ get { return _currentSourceInfo; }
set
{
- if (value == _CurrentSourceInfo) return;
+ if (value == _currentSourceInfo) return;
var handler = CurrentSourceChange;
// remove from in-use tracker, if so equipped
- if(_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking)
- (_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.RemoveUser(this, "control");
+ if(_currentSourceInfo != null && _currentSourceInfo.SourceDevice is IInUseTracking)
+ (_currentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.RemoveUser(this, "control");
if (handler != null)
- handler(_CurrentSourceInfo, ChangeType.WillChange);
+ handler(_currentSourceInfo, ChangeType.WillChange);
- _CurrentSourceInfo = value;
+ _currentSourceInfo = value;
// add to in-use tracking
- if (_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking)
- (_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.AddUser(this, "control");
+ if (_currentSourceInfo != null && _currentSourceInfo.SourceDevice is IInUseTracking)
+ (_currentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.AddUser(this, "control");
if (handler != null)
- handler(_CurrentSourceInfo, ChangeType.DidChange);
+ handler(_currentSourceInfo, ChangeType.DidChange);
}
}
- SourceListItem _CurrentSourceInfo;
+ private SourceListItem _currentSourceInfo;
public string CurrentSourceInfoKey { get; set; }
@@ -193,7 +185,7 @@ namespace PepperDash.Essentials
///
public IHasScheduleAwareness ScheduleSource { get { return VideoCodec as IHasScheduleAwareness; } }
- CCriticalSection SourceSelectLock = new CCriticalSection();
+ private readonly CCriticalSection _sourceSelectLock = new CCriticalSection();
public EssentialsHuddleVtc1Room(DeviceConfig config)
: base(config)
@@ -205,12 +197,12 @@ namespace PepperDash.Essentials
DefaultDisplay = DeviceManager.GetDeviceForKey(PropertiesConfig.DefaultDisplayKey) as IRoutingSinkWithSwitching;
VideoCodec = DeviceManager.GetDeviceForKey(PropertiesConfig.VideoCodecKey) as
- PepperDash.Essentials.Devices.Common.VideoCodec.VideoCodecBase;
+ VideoCodecBase;
if (VideoCodec == null)
throw new ArgumentNullException("codec cannot be null");
AudioCodec = DeviceManager.GetDeviceForKey(PropertiesConfig.AudioCodecKey) as
- PepperDash.Essentials.Devices.Common.AudioCodec.AudioCodecBase;
+ AudioCodecBase;
if (AudioCodec == null)
Debug.Console(0, this, "No Audio Codec Found");
@@ -228,8 +220,8 @@ namespace PepperDash.Essentials
{
try
{
- if (DefaultAudioDevice is IBasicVolumeControls)
- DefaultVolumeControls = DefaultAudioDevice as IBasicVolumeControls;
+ if (DefaultAudioDevice != null)
+ DefaultVolumeControls = DefaultAudioDevice;
else if (DefaultAudioDevice is IHasVolumeDevice)
DefaultVolumeControls = (DefaultAudioDevice as IHasVolumeDevice).VolumeDevice;
CurrentVolumeControls = DefaultVolumeControls;
@@ -238,8 +230,8 @@ namespace PepperDash.Essentials
// Combines call feedback from both codecs if available
InCallFeedback = new BoolFeedback(() =>
{
- bool inAudioCall = false;
- bool inVideoCall = false;
+ var inAudioCall = false;
+ var inVideoCall = false;
if (AudioCodec != null)
inAudioCall = AudioCodec.IsInCall;
@@ -247,10 +239,7 @@ namespace PepperDash.Essentials
if (VideoCodec != null)
inVideoCall = VideoCodec.IsInCall;
- if (inAudioCall || inVideoCall)
- return true;
- else
- return false;
+ return inAudioCall || inVideoCall;
});
var disp = DefaultDisplay as DisplayBase;
@@ -274,40 +263,45 @@ namespace PepperDash.Essentials
disp.IsWarmingUpFeedback.OutputChange += (o, a) =>
{
IsWarmingUpFeedback.FireUpdate();
- if (!IsWarmingUpFeedback.BoolValue)
- (CurrentVolumeControls as IBasicVolumeWithFeedback).SetVolume(DefaultVolume);
- };
- disp.IsCoolingDownFeedback.OutputChange += (o, a) =>
- {
- IsCoolingDownFeedback.FireUpdate();
+ if (IsWarmingUpFeedback.BoolValue)
+ {
+ return;
+ }
+
+ var basicVolumeWithFeedback = CurrentVolumeControls as IBasicVolumeWithFeedback;
+ if (basicVolumeWithFeedback != null)
+ {
+ basicVolumeWithFeedback.SetVolume(DefaultVolume);
+ }
};
+ disp.IsCoolingDownFeedback.OutputChange += (o, a) => IsCoolingDownFeedback.FireUpdate();
}
// Get Microphone Privacy object, if any MUST HAPPEN AFTER setting InCallFeedback
- this.MicrophonePrivacy = EssentialsRoomConfigHelper.GetMicrophonePrivacy(PropertiesConfig, this);
+ MicrophonePrivacy = EssentialsRoomConfigHelper.GetMicrophonePrivacy(PropertiesConfig, this);
Debug.Console(2, this, "Microphone Privacy Config evaluated.");
// Get emergency object, if any
- this.Emergency = EssentialsRoomConfigHelper.GetEmergency(PropertiesConfig, this);
+ Emergency = EssentialsRoomConfigHelper.GetEmergency(PropertiesConfig, this);
Debug.Console(2, this, "Emergency Config evaluated.");
- VideoCodec.CallStatusChange += (o, a) => this.InCallFeedback.FireUpdate();
+ VideoCodec.CallStatusChange += (o, a) => InCallFeedback.FireUpdate();
if (AudioCodec != null)
- AudioCodec.CallStatusChange += (o, a) => this.InCallFeedback.FireUpdate();
+ AudioCodec.CallStatusChange += (o, a) => InCallFeedback.FireUpdate();
IsSharingFeedback = new BoolFeedback(() => VideoCodec.SharingContentIsOnFeedback.BoolValue);
- VideoCodec.SharingContentIsOnFeedback.OutputChange += (o, a) => this.IsSharingFeedback.FireUpdate();
+ VideoCodec.SharingContentIsOnFeedback.OutputChange += (o, a) => IsSharingFeedback.FireUpdate();
// link privacy to VC (for now?)
PrivacyModeIsOnFeedback = new BoolFeedback(() => VideoCodec.PrivacyModeIsOnFeedback.BoolValue);
- VideoCodec.PrivacyModeIsOnFeedback.OutputChange += (o, a) => this.PrivacyModeIsOnFeedback.FireUpdate();
+ VideoCodec.PrivacyModeIsOnFeedback.OutputChange += (o, a) => PrivacyModeIsOnFeedback.FireUpdate();
CallTypeFeedback = new IntFeedback(() => 0);
@@ -336,14 +330,14 @@ namespace PepperDash.Essentials
if (PropertiesConfig.Occupancy != null)
{
Debug.Console(0, this, Debug.ErrorLogLevel.Notice, "Setting Occupancy Provider for room");
- this.SetRoomOccupancy(DeviceManager.GetDeviceForKey(PropertiesConfig.Occupancy.DeviceKey) as
+ SetRoomOccupancy(DeviceManager.GetDeviceForKey(PropertiesConfig.Occupancy.DeviceKey) as
IOccupancyStatusProvider, PropertiesConfig.Occupancy.TimeoutMinutes);
}
- this.LogoUrl = PropertiesConfig.Logo.GetUrl();
- this.SourceListKey = PropertiesConfig.SourceListKey;
- this.DefaultSourceItem = PropertiesConfig.DefaultSourceItem;
- this.DefaultVolume = (ushort)(PropertiesConfig.Volumes.Master.Level * 65535 / 100);
+ LogoUrl = PropertiesConfig.Logo.GetUrl();
+ SourceListKey = PropertiesConfig.SourceListKey;
+ DefaultSourceItem = PropertiesConfig.DefaultSourceItem;
+ DefaultVolume = (ushort)(PropertiesConfig.Volumes.Master.Level * 65535 / 100);
return base.CustomActivate();
}
@@ -394,7 +388,7 @@ namespace PepperDash.Essentials
///
public void RunRouteAction(string routeKey)
{
- RunRouteAction(routeKey, new Action(() => { }));
+ RunRouteAction(routeKey, () => { });
}
///
@@ -402,7 +396,6 @@ namespace PepperDash.Essentials
///
///
///
- ///
public void RunRouteAction(string routeKey, string souceListKey)
{
throw new NotImplementedException();
@@ -419,18 +412,18 @@ namespace PepperDash.Essentials
throw new NotImplementedException();
}
- ///
- /// Gets a source from config list SourceListKey and dynamically build and executes the
- /// route or commands
- ///
- ///
+ ///
+ /// Gets a source from config list SourceListKey and dynamically build and executes the
+ /// route or commands
+ ///
public void RunRouteAction(string routeKey, Action successCallback)
{
// Run this on a separate thread
- new CTimer(o =>
+ //new CTimer
+ CrestronInvoke.BeginInvoke(o =>
{
// try to prevent multiple simultaneous selections
- SourceSelectLock.TryEnter();
+ _sourceSelectLock.TryEnter();
try
{
@@ -452,9 +445,9 @@ namespace PepperDash.Essentials
}
// End usage timer on last source
- if (!string.IsNullOrEmpty(LastSourceKey))
+ if (!string.IsNullOrEmpty(_lastSourceKey))
{
- var usageLastSource = dict[LastSourceKey].SourceDevice as IUsageTracking;
+ var usageLastSource = dict[_lastSourceKey].SourceDevice as IUsageTracking;
if (usageLastSource != null && usageLastSource.UsageTracker != null)
{
try
@@ -474,7 +467,7 @@ namespace PepperDash.Essentials
if (routeKey.ToLower() != "roomoff")
{
- LastSourceKey = routeKey;
+ _lastSourceKey = routeKey;
}
else
CurrentSourceInfoKey = null;
@@ -526,7 +519,7 @@ namespace PepperDash.Essentials
if (ZeroVolumeWhenSwtichingVolumeDevices && CurrentVolumeControls is IBasicVolumeWithFeedback)
{
var vd = CurrentVolumeControls as IBasicVolumeWithFeedback;
- ushort vol = (SavedVolumeLevels.ContainsKey(vd) ? (ushort)SavedVolumeLevels[vd] : DefaultVolume);
+ var vol = (SavedVolumeLevels.ContainsKey(vd) ? (ushort)SavedVolumeLevels[vd] : DefaultVolume);
vd.SetVolume(vol);
}
}
@@ -557,7 +550,7 @@ namespace PepperDash.Essentials
Debug.Console(1, this, "ERROR in routing: {0}", e);
}
- SourceSelectLock.Leave();
+ _sourceSelectLock.Leave();
}, 0); // end of CTimer
}
@@ -588,9 +581,9 @@ namespace PepperDash.Essentials
///
///
///
- bool DoRoute(SourceRouteListItem route)
+ private bool DoRoute(SourceRouteListItem route)
{
- IRoutingSink dest = null;
+ IRoutingSink dest;
if (route.DestinationKey.Equals("$defaultaudio", StringComparison.OrdinalIgnoreCase))
dest = DefaultAudioDevice as IRoutingSinkNoSwitching;
@@ -644,9 +637,9 @@ namespace PepperDash.Essentials
///
public override void PowerOnToDefaultOrLastSource()
{
- if (!EnablePowerOnToLastSource || LastSourceKey == null)
+ if (!EnablePowerOnToLastSource || _lastSourceKey == null)
return;
- RunRouteAction(LastSourceKey);
+ RunRouteAction(_lastSourceKey);
}
///
@@ -657,7 +650,13 @@ namespace PepperDash.Essentials
var allRooms = DeviceManager.AllDevices.Where(d =>
d is EssentialsHuddleSpaceRoom && !(d as EssentialsHuddleSpaceRoom).ExcludeFromGlobalFunctions);
foreach (var room in allRooms)
- (room as EssentialsHuddleSpaceRoom).RunRouteAction("roomOff");
+ {
+ var essentialsHuddleSpaceRoom = room as EssentialsHuddleSpaceRoom;
+ if (essentialsHuddleSpaceRoom != null)
+ {
+ essentialsHuddleSpaceRoom.RunRouteAction("roomOff");
+ }
+ }
}
#region IPrivacy Members