diff --git a/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IDPad.cs b/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IDPad.cs
index 131b24c0..7c2f139f 100644
--- a/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IDPad.cs
+++ b/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IDPad.cs
@@ -1,50 +1,50 @@
-using Crestron.SimplSharpPro;
-using Crestron.SimplSharpPro.DeviceSupport;
-
-using PepperDash.Essentials.Core;
-using PepperDash.Essentials.Core.SmartObjects;
-
-namespace PepperDash.Essentials.Core
-{
- ///
- ///
- ///
- public interface IDPad
- {
- void Up(bool pressRelease);
- void Down(bool pressRelease);
- void Left(bool pressRelease);
- void Right(bool pressRelease);
- void Select(bool pressRelease);
- void Menu(bool pressRelease);
- void Exit(bool pressRelease);
- }
-
- ///
- ///
- ///
- public static class IDPadExtensions
- {
- public static void LinkButtons(this IDPad dev, BasicTriList triList)
- {
- triList.SetBoolSigAction(138, dev.Up);
- triList.SetBoolSigAction(139, dev.Down);
- triList.SetBoolSigAction(140, dev.Left);
- triList.SetBoolSigAction(141, dev.Right);
- triList.SetBoolSigAction(142, dev.Select);
- triList.SetBoolSigAction(130, dev.Menu);
- triList.SetBoolSigAction(134, dev.Exit);
- }
-
- public static void UnlinkButtons(this IDPad dev, BasicTriList triList)
- {
- triList.ClearBoolSigAction(138);
- triList.ClearBoolSigAction(139);
- triList.ClearBoolSigAction(140);
- triList.ClearBoolSigAction(141);
- triList.ClearBoolSigAction(142);
- triList.ClearBoolSigAction(130);
- triList.ClearBoolSigAction(134);
+using Crestron.SimplSharpPro;
+using Crestron.SimplSharpPro.DeviceSupport;
+
+using PepperDash.Essentials.Core;
+using PepperDash.Essentials.Core.SmartObjects;
+
+namespace PepperDash.Essentials.Core
+{
+ ///
+ ///
+ ///
+ public interface IDPad
+ {
+ void Up(bool pressRelease);
+ void Down(bool pressRelease);
+ void Left(bool pressRelease);
+ void Right(bool pressRelease);
+ void Select(bool pressRelease);
+ void Menu(bool pressRelease);
+ void Exit(bool pressRelease);
+ }
+
+ ///
+ ///
+ ///
+ public static class IDPadExtensions
+ {
+ public static void LinkButtons(this IDPad dev, BasicTriList triList)
+ {
+ triList.SetBoolSigAction(138, dev.Up);
+ triList.SetBoolSigAction(139, dev.Down);
+ triList.SetBoolSigAction(140, dev.Left);
+ triList.SetBoolSigAction(141, dev.Right);
+ triList.SetBoolSigAction(142, dev.Select);
+ triList.SetBoolSigAction(130, dev.Menu);
+ triList.SetBoolSigAction(134, dev.Exit);
}
- }
+
+ public static void UnlinkButtons(this IDPad dev, BasicTriList triList)
+ {
+ triList.ClearBoolSigAction(138);
+ triList.ClearBoolSigAction(139);
+ triList.ClearBoolSigAction(140);
+ triList.ClearBoolSigAction(141);
+ triList.ClearBoolSigAction(142);
+ triList.ClearBoolSigAction(130);
+ triList.ClearBoolSigAction(134);
+ }
+ }
}
\ No newline at end of file
diff --git a/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.projectinfo b/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.projectinfo
index ab60f177..3d8ac5bd 100644
Binary files a/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.projectinfo and b/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.projectinfo differ
diff --git a/Essentials DM/Essentials_DM/Essentials_DM.projectinfo b/Essentials DM/Essentials_DM/Essentials_DM.projectinfo
index d3fdabc8..1990431c 100644
Binary files a/Essentials DM/Essentials_DM/Essentials_DM.projectinfo and b/Essentials DM/Essentials_DM/Essentials_DM.projectinfo differ
diff --git a/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.projectinfo b/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.projectinfo
index 6d19ee97..e836ffde 100644
Binary files a/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.projectinfo and b/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.projectinfo differ
diff --git a/Essentials/PepperDashEssentials/Configuration Original/Configuration.cs b/Essentials/PepperDashEssentials/Configuration Original/Configuration.cs
index 1f29ce18..30350e79 100644
--- a/Essentials/PepperDashEssentials/Configuration Original/Configuration.cs
+++ b/Essentials/PepperDashEssentials/Configuration Original/Configuration.cs
@@ -173,8 +173,8 @@ namespace PepperDash.Essentials
//}
}
- static void AddSourcesToSystem(Room system, ConfigSourceList configList)
- {
+ //static void AddSourcesToSystem(Room system, ConfigSourceList configList)
+ //{
//foreach (var configItem in configList.PresentationSources)
//{
// var src = (IPresentationSource)DeviceManager.GetDeviceForKey(configItem.SourceKey);
@@ -184,7 +184,7 @@ namespace PepperDash.Essentials
// Debug.Console(0, system, "cannot find source '{0}' from list {1}",
// configItem.SourceKey, configList.Name);
//}
- }
+ //}
///
/// Links up routing, creates tie lines
diff --git a/Essentials/PepperDashEssentials/PepperDashEssentials.csproj b/Essentials/PepperDashEssentials/PepperDashEssentials.csproj
index f4597524..6b18300d 100644
--- a/Essentials/PepperDashEssentials/PepperDashEssentials.csproj
+++ b/Essentials/PepperDashEssentials/PepperDashEssentials.csproj
@@ -142,7 +142,14 @@
+
+
+
+
+
+
+
diff --git a/Essentials/PepperDashEssentials/PepperDashEssentials.projectinfo b/Essentials/PepperDashEssentials/PepperDashEssentials.projectinfo
index 540ae9e3..e8d50916 100644
Binary files a/Essentials/PepperDashEssentials/PepperDashEssentials.projectinfo and b/Essentials/PepperDashEssentials/PepperDashEssentials.projectinfo differ
diff --git a/Essentials/PepperDashEssentials/Room/Cotija/CotijaRoomBridge.cs b/Essentials/PepperDashEssentials/Room/Cotija/CotijaRoomBridge.cs
index 1e1f2559..ed911a3b 100644
--- a/Essentials/PepperDashEssentials/Room/Cotija/CotijaRoomBridge.cs
+++ b/Essentials/PepperDashEssentials/Room/Cotija/CotijaRoomBridge.cs
@@ -6,6 +6,7 @@ using Crestron.SimplSharp;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using PepperDash.Essentials.Core;
+using PepperDash.Essentials.Room.Cotija;
namespace PepperDash.Essentials
{
@@ -144,29 +145,28 @@ namespace PepperDash.Essentials
var previousDev = info.SourceDevice;
// device type interfaces
- //if (previousDev is ISetTopBoxControls)
- // (previousDev as ISetTopBoxControls).UnlinkButtons(TriList);
- //// common interfaces
- //if (previousDev is IChannel)
- // (previousDev as IChannel).UnlinkButtons(TriList);
- //if (previousDev is IColor)
- // (previousDev as IColor).UnlinkButtons(TriList);
+ if (previousDev is ISetTopBoxControls)
+ (previousDev as ISetTopBoxControls).UnlinkActions(Parent);
+ // common interfaces
+ if (previousDev is IChannel)
+ (previousDev as IChannel).UnlinkActions(Parent);
+ if (previousDev is IColor)
+ (previousDev as IColor).UnlinkActions(Parent);
if (previousDev is IDPad)
(previousDev as IDPad).UnlinkActions(Parent);
- //if (previousDev is IDvr)
- // (previousDev as IDvr).UnlinkButtons(TriList);
- //if (previousDev is INumericKeypad)
- // (previousDev as INumericKeypad).UnlinkButtons(TriList);
- //if (previousDev is IPower)
- // (previousDev as IPower).UnlinkButtons(TriList);
- //if (previousDev is ITransport)
- // (previousDev as ITransport).UnlinkButtons(TriList);
+ if (previousDev is IDvr)
+ (previousDev as IDvr).UnlinkActions(Parent);
+ if (previousDev is INumericKeypad)
+ (previousDev as INumericKeypad).UnlinkActions(Parent);
+ if (previousDev is IPower)
+ (previousDev as IPower).UnlinkActions(Parent);
+ if (previousDev is ITransport)
+ (previousDev as ITransport).UnlinkActions(Parent);
}
JObject roomStatus = new JObject();
var huddleRoom = room as EssentialsHuddleSpaceRoom;
- //roomStatus.Add("isOn", huddleRoom.OnFeedback.BoolValue);
roomStatus.Add("selectedSourceKey", huddleRoom.CurrentSourceInfoKey);
JObject message = new JObject();
@@ -182,26 +182,24 @@ namespace PepperDash.Essentials
{
var dev = info.SourceDevice;
- //if (dev is ISetTopBoxControls)
- // (dev as ISetTopBoxControls).LinkButtons(TriList);
- //if (dev is IChannel)
- // (dev as IChannel).LinkButtons(TriList);
- //if (dev is IColor)
- // (dev as IColor).LinkButtons(TriList);
+ if (dev is ISetTopBoxControls)
+ (dev as ISetTopBoxControls).LinkActions(Parent);
+ if (dev is IChannel)
+ (dev as IChannel).LinkActions(Parent);
+ if (dev is IColor)
+ (dev as IColor).LinkActions(Parent);
if (dev is IDPad)
(dev as IDPad).LinkActions(Parent);
- //if (dev is IDvr)
- // (dev as IDvr).LinkButtons(TriList);
- //if (dev is INumericKeypad)
- // (dev as INumericKeypad).LinkButtons(TriList);
- //if (dev is IPower)
- // (dev as IPower).LinkButtons(TriList);
- //if (dev is ITransport)
- // (dev as ITransport).LinkButtons(TriList);
+ if (dev is IDvr)
+ (dev as IDvr).LinkActions(Parent);
+ if (dev is INumericKeypad)
+ (dev as INumericKeypad).LinkActions(Parent);
+ if (dev is IPower)
+ (dev as IPower).LinkActions(Parent);
+ if (dev is ITransport)
+ (dev as ITransport).LinkActions(Parent);
}
}
-
-
}
///
diff --git a/Essentials/PepperDashEssentials/Room/Cotija/CotijaSystemController.cs b/Essentials/PepperDashEssentials/Room/Cotija/CotijaSystemController.cs
index a89b7c7f..b0d1937e 100644
--- a/Essentials/PepperDashEssentials/Room/Cotija/CotijaSystemController.cs
+++ b/Essentials/PepperDashEssentials/Room/Cotija/CotijaSystemController.cs
@@ -24,7 +24,7 @@ namespace PepperDash.Essentials
HttpClient Client;
- Dictionary ActionDictionary = new Dictionary();
+ Dictionary ActionDictionary = new Dictionary(StringComparer.InvariantCultureIgnoreCase);
Dictionary PushedActions = new Dictionary();
@@ -233,7 +233,10 @@ namespace PepperDash.Essentials
}
else
{
- Debug.Console(0, this, "Response from server: {0}\n{1}", resp.Code, err);
+ if (resp != null)
+ Debug.Console(1, this, "Response from server: {0}\n{1}", resp.Code, err);
+ else
+ Debug.Console(1, this, "Null response received from server.");
}
}
catch (Exception e)
diff --git a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IChannelExtensions.cs b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IChannelExtensions.cs
new file mode 100644
index 00000000..d665bd2c
--- /dev/null
+++ b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IChannelExtensions.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+using PepperDash.Essentials.Core;
+using PepperDash.Core;
+
+namespace PepperDash.Essentials.Room.Cotija
+{
+ public static class IChannelExtensions
+ {
+ public static void LinkActions(this IChannel dev, CotijaSystemController controller)
+ {
+ var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
+
+ controller.AddAction(prefix + "chanup", new PressAndHoldAction(dev.ChannelUp));
+ controller.AddAction(prefix + "chandown", new PressAndHoldAction(dev.ChannelDown));
+ controller.AddAction(prefix + "lastchan", new PressAndHoldAction(dev.LastChannel));
+ controller.AddAction(prefix + "guide", new PressAndHoldAction(dev.Guide));
+ controller.AddAction(prefix + "info", new PressAndHoldAction(dev.Info));
+ controller.AddAction(prefix + "exit", new PressAndHoldAction(dev.Exit));
+ }
+
+ public static void UnlinkActions(this IChannel dev, CotijaSystemController controller)
+ {
+ var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
+
+ controller.RemoveAction(prefix + "chanup");
+ controller.RemoveAction(prefix + "chandown");
+ controller.RemoveAction(prefix + "lastchan");
+ controller.RemoveAction(prefix + "guide");
+ controller.RemoveAction(prefix + "info");
+ controller.RemoveAction(prefix + "exit");
+ }
+ }
+}
\ No newline at end of file
diff --git a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IColorExtensions.cs b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IColorExtensions.cs
new file mode 100644
index 00000000..e7e90471
--- /dev/null
+++ b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IColorExtensions.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+using PepperDash.Essentials.Core;
+using PepperDash.Core;
+
+namespace PepperDash.Essentials.Room.Cotija
+{
+ public static class IColorExtensions
+ {
+ public static void LinkActions(this IColor dev, CotijaSystemController controller)
+ {
+ var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
+
+ controller.AddAction(prefix + "red", new PressAndHoldAction(dev.Red));
+ controller.AddAction(prefix + "green", new PressAndHoldAction(dev.Green));
+ controller.AddAction(prefix + "yellow", new PressAndHoldAction(dev.Yellow));
+ controller.AddAction(prefix + "blue", new PressAndHoldAction(dev.Blue));
+ }
+
+ public static void UnlinkActions(this IColor dev, CotijaSystemController controller)
+ {
+ var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
+
+ controller.RemoveAction(prefix + "red");
+ controller.RemoveAction(prefix + "green");
+ controller.RemoveAction(prefix + "yellow");
+ controller.RemoveAction(prefix + "blue");
+ }
+ }
+}
\ No newline at end of file
diff --git a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IDPadExtensions.cs b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IDPadExtensions.cs
index f6d3e0c1..294c9623 100644
--- a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IDPadExtensions.cs
+++ b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IDPadExtensions.cs
@@ -6,7 +6,7 @@ using Crestron.SimplSharp;
using PepperDash.Essentials.Core;
using PepperDash.Core;
-namespace PepperDash.Essentials
+namespace PepperDash.Essentials.Room.Cotija
{
public static class IDPadExtensions
{
@@ -14,13 +14,13 @@ namespace PepperDash.Essentials
{
var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
- controller.AddAction(prefix + "up", new Action(dev.Up));
- controller.AddAction(prefix + "down", new Action(dev.Down));
- controller.AddAction(prefix + "left", new Action(dev.Left));
- controller.AddAction(prefix + "right", new Action(dev.Right));
- controller.AddAction(prefix + "select", new Action(dev.Select));
- controller.AddAction(prefix + "menu", new Action(dev.Menu));
- controller.AddAction(prefix + "exit", new Action(dev.Exit));
+ controller.AddAction(prefix + "up", new PressAndHoldAction(dev.Up));
+ controller.AddAction(prefix + "down", new PressAndHoldAction(dev.Down));
+ controller.AddAction(prefix + "left", new PressAndHoldAction(dev.Left));
+ controller.AddAction(prefix + "right", new PressAndHoldAction(dev.Right));
+ controller.AddAction(prefix + "select", new PressAndHoldAction(dev.Select));
+ controller.AddAction(prefix + "menu", new PressAndHoldAction(dev.Menu));
+ controller.AddAction(prefix + "exit", new PressAndHoldAction(dev.Exit));
}
public static void UnlinkActions(this IDPad dev, CotijaSystemController controller)
diff --git a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IDvrExtensions.cs b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IDvrExtensions.cs
new file mode 100644
index 00000000..3909b540
--- /dev/null
+++ b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IDvrExtensions.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+using PepperDash.Essentials.Core;
+using PepperDash.Core;
+
+namespace PepperDash.Essentials.Room.Cotija
+{
+ public static class IDvrExtensions
+ {
+ public static void LinkActions(this IDvr dev, CotijaSystemController controller)
+ {
+ var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
+
+ controller.AddAction(prefix + "dvrlist", new PressAndHoldAction(dev.DvrList));
+ controller.AddAction(prefix + "record", new PressAndHoldAction(dev.Record));
+ }
+
+ public static void UnlinkActions(this IDvr dev, CotijaSystemController controller)
+ {
+ var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
+
+ controller.RemoveAction(prefix + "dvrlist");
+ controller.RemoveAction(prefix + "record");
+ }
+ }
+}
\ No newline at end of file
diff --git a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/INumericExtensions.cs b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/INumericExtensions.cs
new file mode 100644
index 00000000..008b5b25
--- /dev/null
+++ b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/INumericExtensions.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+using PepperDash.Essentials.Core;
+using PepperDash.Core;
+
+namespace PepperDash.Essentials.Room.Cotija
+{
+ public static class INumericExtensions
+ {
+ public static void LinkActions(this INumericKeypad dev, CotijaSystemController controller)
+ {
+ var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
+
+ controller.AddAction(prefix + "num0", new PressAndHoldAction(dev.Digit0));
+ controller.AddAction(prefix + "num1", new PressAndHoldAction(dev.Digit1));
+ controller.AddAction(prefix + "num2", new PressAndHoldAction(dev.Digit2));
+ controller.AddAction(prefix + "num3", new PressAndHoldAction(dev.Digit3));
+ controller.AddAction(prefix + "num4", new PressAndHoldAction(dev.Digit4));
+ controller.AddAction(prefix + "num5", new PressAndHoldAction(dev.Digit5));
+ controller.AddAction(prefix + "num6", new PressAndHoldAction(dev.Digit6));
+ controller.AddAction(prefix + "num7", new PressAndHoldAction(dev.Digit0));
+ controller.AddAction(prefix + "num8", new PressAndHoldAction(dev.Digit0));
+ controller.AddAction(prefix + "num9", new PressAndHoldAction(dev.Digit0));
+ controller.AddAction(prefix + "dash", new PressAndHoldAction(dev.KeypadAccessoryButton1));
+ controller.AddAction(prefix + "enter", new PressAndHoldAction(dev.KeypadAccessoryButton2));
+#warning Deal with the Accessory functions on the numpad later
+ }
+
+ public static void UnlinkActions(this INumericKeypad dev, CotijaSystemController controller)
+ {
+ var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
+
+ controller.RemoveAction(prefix + "num0");
+ controller.RemoveAction(prefix + "num1");
+ controller.RemoveAction(prefix + "num2");
+ controller.RemoveAction(prefix + "num3");
+ controller.RemoveAction(prefix + "num4");
+ controller.RemoveAction(prefix + "num5");
+ controller.RemoveAction(prefix + "num6");
+ controller.RemoveAction(prefix + "num7");
+ controller.RemoveAction(prefix + "num8");
+ controller.RemoveAction(prefix + "num9");
+ controller.RemoveAction(prefix + "dash");
+ controller.RemoveAction(prefix + "enter");
+ }
+ }
+}
\ No newline at end of file
diff --git a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IPowerExtensions.cs b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IPowerExtensions.cs
new file mode 100644
index 00000000..ff986325
--- /dev/null
+++ b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/IPowerExtensions.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+using PepperDash.Essentials.Core;
+using PepperDash.Core;
+
+namespace PepperDash.Essentials.Room.Cotija
+{
+ public static class IPowerExtensions
+ {
+ public static void LinkActions(this IPower dev, CotijaSystemController controller)
+ {
+ var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
+
+ controller.AddAction(prefix + "poweron", new Action(dev.PowerOn));
+ controller.AddAction(prefix + "poweroff", new Action(dev.PowerOff));
+ controller.AddAction(prefix + "powertoggle", new Action(dev.PowerToggle));
+ }
+
+ public static void UnlinkActions(this IPower dev, CotijaSystemController controller)
+ {
+ var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
+
+ controller.RemoveAction(prefix + "poweron");
+ controller.RemoveAction(prefix + "poweroff");
+ controller.RemoveAction(prefix + "powertoggle");
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/ISetTopBoxControlsExtensions.cs b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/ISetTopBoxControlsExtensions.cs
new file mode 100644
index 00000000..14dc8e90
--- /dev/null
+++ b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/ISetTopBoxControlsExtensions.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+using PepperDash.Essentials.Core;
+using PepperDash.Core;
+
+namespace PepperDash.Essentials.Room.Cotija
+{
+ public static class ISetTopBoxControlsExtensions
+ {
+ public static void LinkActions(this ISetTopBoxControls dev, CotijaSystemController controller)
+ {
+ var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
+
+ controller.AddAction(prefix + "dvrlist", new PressAndHoldAction(dev.DvrList));
+ controller.AddAction(prefix + "replay", new PressAndHoldAction(dev.Replay));
+ }
+
+ public static void UnlinkActions(this ISetTopBoxControls dev, CotijaSystemController controller)
+ {
+ var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
+
+ controller.RemoveAction(prefix + "dvrlist");
+ controller.RemoveAction(prefix + "replay");
+ }
+ }
+}
\ No newline at end of file
diff --git a/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/ITransportExtensions.cs b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/ITransportExtensions.cs
new file mode 100644
index 00000000..64af15b0
--- /dev/null
+++ b/Essentials/PepperDashEssentials/Room/Cotija/DeviceTypeInterfaces/ITransportExtensions.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+using PepperDash.Essentials.Core;
+using PepperDash.Core;
+
+namespace PepperDash.Essentials.Room.Cotija
+{
+ public static class ITransportExtensions
+ {
+ public static void LinkActions(this ITransport dev, CotijaSystemController controller)
+ {
+ var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
+
+ controller.AddAction(prefix + "play", new PressAndHoldAction(dev.Play));
+ controller.AddAction(prefix + "pause", new PressAndHoldAction(dev.Pause));
+ controller.AddAction(prefix + "stop", new PressAndHoldAction(dev.Stop));
+ controller.AddAction(prefix + "prevtrack", new PressAndHoldAction(dev.ChapPlus));
+ controller.AddAction(prefix + "nexttrack", new PressAndHoldAction(dev.ChapMinus));
+ controller.AddAction(prefix + "rewind", new PressAndHoldAction(dev.Rewind));
+ controller.AddAction(prefix + "ffwd", new PressAndHoldAction(dev.FFwd));
+ controller.AddAction(prefix + "record", new PressAndHoldAction(dev.Record));
+ }
+
+ public static void UnlinkActions(this ITransport dev, CotijaSystemController controller)
+ {
+ var prefix = string.Format(@"/device/{0}/", (dev as IKeyed).Key);
+
+ controller.RemoveAction(prefix + "play");
+ controller.RemoveAction(prefix + "pause");
+ controller.RemoveAction(prefix + "stop");
+ controller.RemoveAction(prefix + "prevtrack");
+ controller.RemoveAction(prefix + "nexttrack");
+ controller.RemoveAction(prefix + "rewind");
+ controller.RemoveAction(prefix + "ffwd");
+ controller.RemoveAction(prefix + "record");
+ }
+ }
+}
\ No newline at end of file