Refactor complete

This commit is contained in:
Neil Dorin
2019-10-24 11:28:13 -06:00
parent 13132c29fc
commit 59b2e9a8d6
15 changed files with 93 additions and 79 deletions

View File

@@ -93,7 +93,7 @@ namespace PepperDash.Essentials
var sscRoom = Room as IHasCurrentSourceInfoChange; var sscRoom = Room as IHasCurrentSourceInfoChange;
if(sscRoom != null) if(sscRoom != null)
sscRoom.CurrentSingleDisplaySourceChange += new SourceInfoChangeHandler(Room_CurrentSingleSourceChange); sscRoom.CurrentSourceChange += new SourceInfoChangeHandler(Room_CurrentSingleSourceChange);
var vcRoom = Room as IHasVideoCodec; var vcRoom = Room as IHasVideoCodec;
if (vcRoom != null && vcRoom.VideoCodec != null) if (vcRoom != null && vcRoom.VideoCodec != null)

View File

@@ -486,7 +486,7 @@ namespace PepperDash.Essentials
DeviceManager.AddDevice(room); DeviceManager.AddDevice(room);
Debug.Console(0, Debug.ErrorLogLevel.Notice, "Room is EssentialsHuddleSpaceRoom, attempting to add to DeviceManager with Fusion"); Debug.Console(0, Debug.ErrorLogLevel.Notice, "Room is EssentialsHuddleSpaceRoom, attempting to add to DeviceManager with Fusion");
DeviceManager.AddDevice(new EssentialsHuddleSpaceFusionSystemControllerBase((EssentialsHuddleSpaceRoom)room, 0xf1)); DeviceManager.AddDevice(new Core.Fusion.EssentialsHuddleSpaceFusionSystemControllerBase((EssentialsHuddleSpaceRoom)room, 0xf1));
Debug.Console(0, Debug.ErrorLogLevel.Notice, "Attempting to build Cotija Bridge..."); Debug.Console(0, Debug.ErrorLogLevel.Notice, "Attempting to build Cotija Bridge...");

View File

@@ -87,7 +87,7 @@ namespace PepperDash.Essentials
else if (typeName == "roomonwhenoccupancydetectedfeature") else if (typeName == "roomonwhenoccupancydetectedfeature")
{ {
return new Room.Behaviours.RoomOnToDefaultSourceWhenOccupied(dc); return new RoomOnToDefaultSourceWhenOccupied(dc);
} }
return null; return null;

View File

@@ -14,7 +14,7 @@ using PepperDash.Core;
using PepperDash.Essentials; using PepperDash.Essentials;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Config; using PepperDash.Essentials.Core.Config;
using PepperDash.Core.Fusion; using PepperDash.Essentials.Core.Fusion;
using PepperDash.Essentials.Devices.Common; using PepperDash.Essentials.Devices.Common;
using PepperDash.Essentials.Devices.Common.Occupancy; using PepperDash.Essentials.Devices.Common.Occupancy;

View File

@@ -65,7 +65,7 @@ namespace PepperDash.Essentials.Room.Config
/// <param name="props"></param> /// <param name="props"></param>
/// <param name="room"></param> /// <param name="room"></param>
/// <returns></returns> /// <returns></returns>
public static PepperDash.Essentials.Devices.Common.Microphones.MicrophonePrivacyController GetMicrophonePrivacy( public static Core.Privacy.MicrophonePrivacyController GetMicrophonePrivacy(
EssentialsRoomPropertiesConfig props, EssentialsHuddleVtc1Room room) EssentialsRoomPropertiesConfig props, EssentialsHuddleVtc1Room room)
{ {
var microphonePrivacy = props.MicrophonePrivacy; var microphonePrivacy = props.MicrophonePrivacy;

View File

@@ -1,68 +1,68 @@
using System; //using System;
using System.Collections.Generic; //using System.Collections.Generic;
using System.Linq; //using System.Linq;
using System.Text; //using System.Text;
using Crestron.SimplSharp; //using Crestron.SimplSharp;
using Newtonsoft.Json; //using Newtonsoft.Json;
using PepperDash.Core; //using PepperDash.Core;
using PepperDash.Essentials.Core; //using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Devices; //using PepperDash.Essentials.Core.Devices;
using PepperDash.Essentials.Core.Config; //using PepperDash.Essentials.Core.Config;
using PepperDash.Essentials.Room.Config; //using PepperDash.Essentials.Room.Config;
using PepperDash.Essentials.Devices.Common.Codec; //using PepperDash.Essentials.Devices.Common.Codec;
using PepperDash.Essentials.Devices.Common.VideoCodec; //using PepperDash.Essentials.Devices.Common.VideoCodec;
using PepperDash.Essentials.Devices.Common.AudioCodec; //using PepperDash.Essentials.Devices.Common.AudioCodec;
namespace PepperDash.Essentials.Room.Types //namespace PepperDash.Essentials.Room.Types
{ //{
public class EssentialsDualDisplayRoom : EssentialsNDisplayRoomBase, IHasCurrentVolumeControls, // public class EssentialsDualDisplayRoom : EssentialsNDisplayRoomBase, IHasCurrentVolumeControls,
IRunRouteAction, IPrivacy, IPrivacy, IRunDefaultCallRoute, IHasVideoCodec, IHasAudioCodec // IRunRouteAction, IPrivacy, IRunDefaultCallRoute, IHasVideoCodec, IHasAudioCodec
{ // {
public event EventHandler<VolumeDeviceChangeEventArgs> CurrentVolumeDeviceChange; // public event EventHandler<VolumeDeviceChangeEventArgs> CurrentVolumeDeviceChange;
public EssentialsHuddleVtc1PropertiesConfig PropertiesConfig { get; private set; } // public EssentialsHuddleVtc1PropertiesConfig PropertiesConfig { get; private set; }
//************************ // //************************
// Call-related stuff // // Call-related stuff
public BoolFeedback InCallFeedback { get; private set; } // public BoolFeedback InCallFeedback { get; private set; }
/// <summary> // /// <summary>
/// States: 0 for on hook, 1 for video, 2 for audio, 3 for telekenesis // /// States: 0 for on hook, 1 for video, 2 for audio, 3 for telekenesis
/// </summary> // /// </summary>
public IntFeedback CallTypeFeedback { get; private set; } // public IntFeedback CallTypeFeedback { get; private set; }
/// <summary> // /// <summary>
/// // ///
/// </summary> // /// </summary>
public BoolFeedback PrivacyModeIsOnFeedback { get; private set; } // public BoolFeedback PrivacyModeIsOnFeedback { get; private set; }
/// <summary> // /// <summary>
/// When something in the room is sharing with the far end or through other means // /// When something in the room is sharing with the far end or through other means
/// </summary> // /// </summary>
public BoolFeedback IsSharingFeedback { get; private set; } // public BoolFeedback IsSharingFeedback { get; private set; }
IRoutingSinkWithSwitching LeftDisplay { get; private set; } // IRoutingSinkWithSwitching LeftDisplay { get; private set; }
IRoutingSinkWithSwitching RightDisplay { get; private set; } // IRoutingSinkWithSwitching RightDisplay { get; private set; }
protected override Func<bool> OnFeedbackFunc // protected override Func<bool> OnFeedbackFunc
{ // {
get // get
{ // {
return () => // return () =>
{ // {
var leftDisp = LeftDisplay as DisplayBase; // var leftDisp = LeftDisplay as DisplayBase;
var rightDisp = RightDisplay as DisplayBase; // var rightDisp = RightDisplay as DisplayBase;
var val = leftDisp != null && leftDisp.CurrentSourceInfo != null // var val = leftDisp != null && leftDisp.CurrentSourceInfo != null
&& leftDisp.CurrentSourceInfo.Type == eSourceListItemType.Route // && leftDisp.CurrentSourceInfo.Type == eSourceListItemType.Route
&& rightDisp != null && rightDisp.CurrentSourceInfo != null // && rightDisp != null && rightDisp.CurrentSourceInfo != null
&& rightDisp.CurrentSourceInfo.Type == eSourceListItemType.Route; // && rightDisp.CurrentSourceInfo.Type == eSourceListItemType.Route;
return val; // return val;
}; // };
} // }
} // }
} // }
} //}

View File

@@ -13,7 +13,7 @@ using PepperDash.Essentials.Room.Config;
namespace PepperDash.Essentials namespace PepperDash.Essentials
{ {
public class EssentialsHuddleSpaceRoom : EssentialsRoomBase, IHasCurrentSourceInfoChange, IRunRouteAction, IRunDefaultPresentRoute, IHasCurrentVolumeControls public class EssentialsHuddleSpaceRoom : EssentialsRoomBase, IHasCurrentSourceInfoChange, IRunRouteAction, IRunDefaultPresentRoute, IHasCurrentVolumeControls, IHasDefaultDisplay
{ {
public event EventHandler<VolumeDeviceChangeEventArgs> CurrentVolumeDeviceChange; public event EventHandler<VolumeDeviceChangeEventArgs> CurrentVolumeDeviceChange;
public event SourceInfoChangeHandler CurrentSourceChange; public event SourceInfoChangeHandler CurrentSourceChange;

View File

@@ -17,7 +17,7 @@ using PepperDash.Essentials.Devices.Common.AudioCodec;
namespace PepperDash.Essentials namespace PepperDash.Essentials
{ {
public class EssentialsHuddleVtc1Room : EssentialsRoomBase, IHasCurrentSourceInfoChange, public class EssentialsHuddleVtc1Room : EssentialsRoomBase, IHasCurrentSourceInfoChange,
IPrivacy, IHasCurrentVolumeControls, IRunRouteAction, IRunDefaultCallRoute, IHasVideoCodec, IHasAudioCodec IPrivacy, IHasCurrentVolumeControls, IRunRouteAction, IRunDefaultCallRoute, IHasVideoCodec, IHasAudioCodec, IHasDefaultDisplay
{ {
public event EventHandler<VolumeDeviceChangeEventArgs> CurrentVolumeDeviceChange; public event EventHandler<VolumeDeviceChangeEventArgs> CurrentVolumeDeviceChange;
public event SourceInfoChangeHandler CurrentSourceChange; public event SourceInfoChangeHandler CurrentSourceChange;
@@ -113,11 +113,6 @@ namespace PepperDash.Essentials
public bool ExcludeFromGlobalFunctions { get; set; } public bool ExcludeFromGlobalFunctions { get; set; }
/// <summary>
/// The config name of the source list
/// </summary>
public string SourceListKey { get; set; }
public string DefaultSourceItem { get; set; } public string DefaultSourceItem { get; set; }
public ushort DefaultVolume { get; set; } public ushort DefaultVolume { get; set; }

View File

@@ -13,7 +13,7 @@ using PepperDash.Essentials.Core.PageManagers;
namespace PepperDash.Essentials namespace PepperDash.Essentials
{ {
public class EssentialsTouchpanelController : Device public class EssentialsTouchpanelController : Device, IHasBasicTriListWithSmartObject
{ {
public BasicTriListWithSmartObject Panel { get; private set; } public BasicTriListWithSmartObject Panel { get; private set; }

View File

@@ -25,8 +25,8 @@ namespace PepperDash.Essentials
public void RegisterForSourceChange(IHasCurrentSourceInfoChange room) public void RegisterForSourceChange(IHasCurrentSourceInfoChange room)
{ {
room.CurrentSingleDisplaySourceChange -= room_CurrentSourceInfoChange; room.CurrentSourceChange -= room_CurrentSourceInfoChange;
room.CurrentSingleDisplaySourceChange += room_CurrentSourceInfoChange; room.CurrentSourceChange += room_CurrentSourceInfoChange;
} }
void room_CurrentSourceInfoChange(EssentialsRoomBase room, SourceListItem info, ChangeType type) void room_CurrentSourceInfoChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)

View File

@@ -1123,7 +1123,7 @@ namespace PepperDash.Essentials.Core.Fusion
//uint attrNum = Convert.ToUInt32(keyNum); //uint attrNum = Convert.ToUInt32(keyNum);
// Check for UI devices // Check for UI devices
var uiDev = dev as EssentialsTouchpanelController; var uiDev = dev as IHasBasicTriListWithSmartObject;
if (uiDev != null) if (uiDev != null)
{ {
if (uiDev.Panel is Crestron.SimplSharpPro.UI.XpanelForSmartGraphics) if (uiDev.Panel is Crestron.SimplSharpPro.UI.XpanelForSmartGraphics)
@@ -1204,7 +1204,7 @@ namespace PepperDash.Essentials.Core.Fusion
display.UsageTracker.DeviceUsageEnded += new EventHandler<DeviceUsageEventArgs>(UsageTracker_DeviceUsageEnded); display.UsageTracker.DeviceUsageEnded += new EventHandler<DeviceUsageEventArgs>(UsageTracker_DeviceUsageEnded);
} }
var defaultDisplay = (Room as EssentialsHuddleSpaceRoom).DefaultDisplay as DisplayBase; var defaultDisplay = (Room as IHasDefaultDisplay).DefaultDisplay as DisplayBase;
if (defaultDisplay == null) if (defaultDisplay == null)
{ {
Debug.Console(1, this, "Cannot link null display to Fusion because default display is null"); Debug.Console(1, this, "Cannot link null display to Fusion because default display is null");
@@ -1269,7 +1269,7 @@ namespace PepperDash.Essentials.Core.Fusion
string displayName = string.Format("Display {0} - ", displayIndex); string displayName = string.Format("Display {0} - ", displayIndex);
if (display == (Room as EssentialsHuddleSpaceRoom).DefaultDisplay) if (display == (Room as IHasDefaultDisplay).DefaultDisplay)
{ {
// Display volume // Display volume
var defaultDisplayVolume = FusionRoom.CreateOffsetUshortSig(50, "Volume - Fader01", eSigIoMask.InputOutputSig); var defaultDisplayVolume = FusionRoom.CreateOffsetUshortSig(50, "Volume - Fader01", eSigIoMask.InputOutputSig);

View File

@@ -229,6 +229,7 @@
<Compile Include="Routing\TieLine.cs" /> <Compile Include="Routing\TieLine.cs" />
<Compile Include="Timers\CountdownTimer.cs" /> <Compile Include="Timers\CountdownTimer.cs" />
<Compile Include="Touchpanels\CrestronTouchpanelPropertiesConfig.cs" /> <Compile Include="Touchpanels\CrestronTouchpanelPropertiesConfig.cs" />
<Compile Include="Touchpanels\Interfaces.cs" />
<Compile Include="Touchpanels\Keyboards\HabaneroKeyboardController.cs" /> <Compile Include="Touchpanels\Keyboards\HabaneroKeyboardController.cs" />
<Compile Include="Touchpanels\MOVED LargeTouchpanelControllerBase.cs" /> <Compile Include="Touchpanels\MOVED LargeTouchpanelControllerBase.cs" />
<Compile Include="Touchpanels\TriListExtensions.cs" /> <Compile Include="Touchpanels\TriListExtensions.cs" />

View File

@@ -6,6 +6,10 @@ using Crestron.SimplSharp;
namespace PepperDash.Essentials.Core namespace PepperDash.Essentials.Core
{ {
public interface IHasDefaultDisplay
{
IRoutingSinkWithSwitching DefaultDisplay { get; }
}
/// <summary> /// <summary>
/// For rooms with routing /// For rooms with routing

View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
using Crestron.SimplSharpPro.DeviceSupport;
namespace PepperDash.Essentials.Core
{
public interface IHasBasicTriListWithSmartObject
{
BasicTriListWithSmartObject Panel { get; }
}
}

View File

@@ -136,12 +136,12 @@ namespace PepperDash.Essentials.Devices.Common
else if (typeName == "inroompc") else if (typeName == "inroompc")
{ {
return new InRoomPc(key, name); return new Core.Devices.InRoomPc(key, name);
} }
else if (typeName == "laptop") else if (typeName == "laptop")
{ {
return new Laptop(key, name); return new Core.Devices.Laptop(key, name);
} }
else if (typeName == "mockvc") else if (typeName == "mockvc")
@@ -299,9 +299,9 @@ namespace PepperDash.Essentials.Devices.Common
else if (typeName == "microphoneprivacycontroller") else if (typeName == "microphoneprivacycontroller")
{ {
var props = JsonConvert.DeserializeObject<Microphones.MicrophonePrivacyControllerConfig>(properties.ToString()); var props = JsonConvert.DeserializeObject<Core.Privacy.MicrophonePrivacyControllerConfig>(properties.ToString());
return new Microphones.MicrophonePrivacyController(key, props); return new Core.Privacy.MicrophonePrivacyController(key, props);
} }
else if (typeName == "roku") else if (typeName == "roku")
{ {