mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-16 05:05:00 +00:00
Working towards getting EssentialsTouchpanelController to switch rooms
This commit is contained in:
@@ -187,6 +187,12 @@ namespace PepperDash.Essentials.Room.Config
|
|||||||
[JsonProperty("zeroVolumeWhenSwtichingVolumeDevices")]
|
[JsonProperty("zeroVolumeWhenSwtichingVolumeDevices")]
|
||||||
public bool ZeroVolumeWhenSwtichingVolumeDevices { get; set; }
|
public bool ZeroVolumeWhenSwtichingVolumeDevices { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Indicates if this room represents a combination of other rooms
|
||||||
|
/// </summary>
|
||||||
|
[JsonProperty("isRoomCombinationScenario")]
|
||||||
|
public bool IsRoomCombinationScenario { get; set; }
|
||||||
|
|
||||||
public EssentialsRoomPropertiesConfig()
|
public EssentialsRoomPropertiesConfig()
|
||||||
{
|
{
|
||||||
LogoLight = new EssentialsLogoPropertiesConfig();
|
LogoLight = new EssentialsLogoPropertiesConfig();
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ namespace PepperDash.Essentials
|
|||||||
{
|
{
|
||||||
public class EssentialsTouchpanelController : EssentialsDevice, IHasBasicTriListWithSmartObject
|
public class EssentialsTouchpanelController : EssentialsDevice, IHasBasicTriListWithSmartObject
|
||||||
{
|
{
|
||||||
|
private CrestronTouchpanelPropertiesConfig _propertiesConfig;
|
||||||
|
|
||||||
public BasicTriListWithSmartObject Panel { get; private set; }
|
public BasicTriListWithSmartObject Panel { get; private set; }
|
||||||
|
|
||||||
public PanelDriverBase PanelDriver { get; private set; }
|
public PanelDriverBase PanelDriver { get; private set; }
|
||||||
@@ -50,6 +52,7 @@ namespace PepperDash.Essentials
|
|||||||
public EssentialsTouchpanelController(string key, string name, string type, CrestronTouchpanelPropertiesConfig props, uint id)
|
public EssentialsTouchpanelController(string key, string name, string type, CrestronTouchpanelPropertiesConfig props, uint id)
|
||||||
: base(key, name)
|
: base(key, name)
|
||||||
{
|
{
|
||||||
|
_propertiesConfig = props;
|
||||||
|
|
||||||
Debug.Console(0, this, Debug.ErrorLogLevel.Notice, "Creating touchpanel hardware...");
|
Debug.Console(0, this, Debug.ErrorLogLevel.Notice, "Creating touchpanel hardware...");
|
||||||
type = type.ToLower();
|
type = type.ToLower();
|
||||||
@@ -124,8 +127,38 @@ namespace PepperDash.Essentials
|
|||||||
Panel.LoadSmartObjects(sgdName);
|
Panel.LoadSmartObjects(sgdName);
|
||||||
Panel.SigChange += Panel_SigChange;
|
Panel.SigChange += Panel_SigChange;
|
||||||
|
|
||||||
|
AddPostActivationAction(() =>
|
||||||
|
{
|
||||||
|
// Check for IEssentialsRoomCombiner in DeviceManager and if found, subscribe to its event
|
||||||
|
|
||||||
|
var roomCombiner = DeviceManager.AllDevices.FirstOrDefault((d) => d is IEssentialsRoomCombiner) as IEssentialsRoomCombiner;
|
||||||
|
|
||||||
|
if (roomCombiner != null)
|
||||||
|
{
|
||||||
|
roomCombiner.RoomCombinationScenarioChanged += new EventHandler<EventArgs>(roomCombiner_RoomCombinationScenarioChanged);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void roomCombiner_RoomCombinationScenarioChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var roomCombiner = sender as IEssentialsRoomCombiner;
|
||||||
|
|
||||||
|
string newRoomKey = null;
|
||||||
|
|
||||||
|
if (roomCombiner.CurrentScenario.UiMap.ContainsKey(Key))
|
||||||
|
{
|
||||||
|
newRoomKey = roomCombiner.CurrentScenario.UiMap[Key];
|
||||||
|
}
|
||||||
|
else if (roomCombiner.CurrentScenario.UiMap.ContainsKey(_propertiesConfig.DefaultRoomKey))
|
||||||
|
{
|
||||||
|
newRoomKey = roomCombiner.CurrentScenario.UiMap[_propertiesConfig.DefaultRoomKey];
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO:
|
||||||
|
}
|
||||||
|
|
||||||
public void LoadAndShowDriver(PanelDriverBase driver)
|
public void LoadAndShowDriver(PanelDriverBase driver)
|
||||||
{
|
{
|
||||||
PanelDriver = driver;
|
PanelDriver = driver;
|
||||||
|
|||||||
@@ -448,7 +448,7 @@ namespace PepperDash.Essentials
|
|||||||
// and the LastMeetingDismissed != this meeting
|
// and the LastMeetingDismissed != this meeting
|
||||||
|
|
||||||
var lastMeetingDismissed = meetings.FirstOrDefault(m => m.Id == LastMeetingDismissedId);
|
var lastMeetingDismissed = meetings.FirstOrDefault(m => m.Id == LastMeetingDismissedId);
|
||||||
Debug.Console(0, "*#* Room on: {0}, lastMeetingDismissedId: {1} {2} *#*",
|
Debug.Console(1, "*#* Room on: {0}, lastMeetingDismissedId: {1} {2} *#*",
|
||||||
CurrentRoom.OnFeedback.BoolValue,
|
CurrentRoom.OnFeedback.BoolValue,
|
||||||
LastMeetingDismissedId,
|
LastMeetingDismissedId,
|
||||||
lastMeetingDismissed != null ? lastMeetingDismissed.StartTime.ToShortTimeString() : "");
|
lastMeetingDismissed != null ? lastMeetingDismissed.StartTime.ToShortTimeString() : "");
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ namespace PepperDash.Essentials.Core
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The list of rooms keys that can be combined
|
/// The list of rooms keys that can be combined
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[JsonProperty("roomMap")]
|
[JsonProperty("roomKeys")]
|
||||||
public List<string> RoomKeys {get; set;}
|
public List<string> RoomKeys {get; set;}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user