diff --git a/PepperDashEssentials/Bridges/IBasicCommunicationBridgeMap.cs b/PepperDashEssentials/Bridges/IBasicCommunicationBridgeMap.cs
new file mode 100644
index 00000000..5b7998cd
--- /dev/null
+++ b/PepperDashEssentials/Bridges/IBasicCommunicationBridgeMap.cs
@@ -0,0 +1,88 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+using Crestron.SimplSharpPro.DeviceSupport;
+
+using PepperDash.Core;
+using PepperDash.Essentials.Core;
+using PepperDash.Essentials.DM;
+
+namespace PepperDash.Essentials.Bridges.TEST
+{
+
+ ///
+ ///
+ ///
+ public static class DmChassisControllerTrilistBridgeExtensions
+ {
+ public static void LinkMeToTrilist(this PepperDash.Essentials.DM.DmChassisController chassis,
+ BasicTriList trilist, Dictionary map, uint joinstart)
+ {
+ uint joinOffset = joinstart - 1;
+
+ uint videoSelectOffset = 0 + joinOffset;
+ uint audioSelectOffset = 40 + joinOffset;
+
+
+ // loop chassis number of inupts
+ for (uint i = 1; i <= chassis.Chassis.NumberOfOutputs; i++)
+ {
+ trilist.SetUShortSigAction(videoSelectOffset + i, new Action(u => chassis.ExecuteSwitch(u, i, eRoutingSignalType.Video)));
+ trilist.SetUShortSigAction(audioSelectOffset + i, new Action(u => chassis.ExecuteSwitch(u, i, eRoutingSignalType.Audio)));
+ }
+
+ // wire up output change detection (try to add feedbacks or something to DMChassisController??
+
+ // names?
+
+ // HDCP?
+
+
+ }
+ }
+
+
+
+ ///
+ /// For trilists to com sockets only
+ ///
+ public static class IBasicCommunicationTrilistBridgeExtensions
+ {
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static void LinkMeToTrilist(this IBasicCommunication comm, BasicTriList trilist, uint joinStart)
+ {
+ // this is a permanent event handler. This cannot be -= from event
+ comm.TextReceived += (s, a) => trilist.SetString(joinStart, a.Text);
+ trilist.SetStringSigAction(joinStart, new Action(s => comm.SendText(s)));
+ var sComm = comm as ISocketStatus;
+ if (sComm != null)
+ {
+ sComm.ConnectionChange += (s, a) =>
+ {
+ trilist.SetUshort(joinStart, (ushort)(a.Client.ClientStatus));
+ trilist.SetBool(joinStart, a.Client.ClientStatus ==
+ Crestron.SimplSharp.CrestronSockets.SocketStatus.SOCKET_STATUS_CONNECTED);
+ };
+
+ trilist.SetBoolSigAction(joinStart, new Action(b =>
+ {
+ if (b)
+ {
+ sComm.Connect();
+ }
+ else
+ {
+ sComm.Disconnect();
+ }
+ }));
+ }
+ }
+ }
+}
\ No newline at end of file