mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 12:44:58 +00:00
feat: add ability to build rooms with extant device factory
RESOLVES #925
This commit is contained in:
@@ -490,21 +490,17 @@ namespace PepperDash.Essentials
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AddRoomAndBuildMC(room);
|
||||||
|
|
||||||
if (room is IEssentialsHuddleSpaceRoom)
|
if (room is IEssentialsHuddleSpaceRoom)
|
||||||
{
|
{
|
||||||
DeviceManager.AddDevice(room);
|
|
||||||
|
|
||||||
Debug.Console(0, Debug.ErrorLogLevel.Notice, "Room is EssentialsHuddleSpaceRoom, attempting to add to DeviceManager with Fusion with IP-ID {0:X2}", fusionIpId);
|
Debug.Console(0, Debug.ErrorLogLevel.Notice, "Room is EssentialsHuddleSpaceRoom, attempting to add to DeviceManager with Fusion with IP-ID {0:X2}", fusionIpId);
|
||||||
DeviceManager.AddDevice(new Core.Fusion.EssentialsHuddleSpaceFusionSystemControllerBase(room, fusionIpId, fusionJoinMapKey));
|
DeviceManager.AddDevice(new Core.Fusion.EssentialsHuddleSpaceFusionSystemControllerBase(room, fusionIpId, fusionJoinMapKey));
|
||||||
|
|
||||||
|
|
||||||
Debug.Console(0, Debug.ErrorLogLevel.Notice, "Attempting to build Mobile Control Bridge...");
|
|
||||||
|
|
||||||
CreateMobileControlBridge(room);
|
|
||||||
}
|
}
|
||||||
else if (room is IEssentialsHuddleVtc1Room)
|
else if (room is IEssentialsHuddleVtc1Room)
|
||||||
{
|
{
|
||||||
DeviceManager.AddDevice(room);
|
|
||||||
|
|
||||||
if (!(room is EssentialsCombinedHuddleVtc1Room))
|
if (!(room is EssentialsCombinedHuddleVtc1Room))
|
||||||
{
|
{
|
||||||
@@ -512,28 +508,15 @@ namespace PepperDash.Essentials
|
|||||||
DeviceManager.AddDevice(new EssentialsHuddleVtc1FusionController((IEssentialsHuddleVtc1Room)room, fusionIpId, fusionJoinMapKey));
|
DeviceManager.AddDevice(new EssentialsHuddleVtc1FusionController((IEssentialsHuddleVtc1Room)room, fusionIpId, fusionJoinMapKey));
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug.Console(0, Debug.ErrorLogLevel.Notice, "Attempting to build Mobile Control Bridge...");
|
|
||||||
|
|
||||||
CreateMobileControlBridge(room);
|
|
||||||
}
|
}
|
||||||
else if (room is EssentialsTechRoom)
|
else if (room is EssentialsTechRoom)
|
||||||
{
|
{
|
||||||
DeviceManager.AddDevice(room);
|
|
||||||
|
|
||||||
Debug.Console(0, Debug.ErrorLogLevel.Notice,
|
Debug.Console(0, Debug.ErrorLogLevel.Notice,
|
||||||
"Room is EssentialsTechRoom, Attempting to add to DeviceManager with Fusion with IP-ID {0:X2}", fusionIpId);
|
"Room is EssentialsTechRoom, Attempting to add to DeviceManager with Fusion with IP-ID {0:X2}", fusionIpId);
|
||||||
DeviceManager.AddDevice(new EssentialsTechRoomFusionSystemController((EssentialsTechRoom)room, fusionIpId, fusionJoinMapKey));
|
DeviceManager.AddDevice(new EssentialsTechRoomFusionSystemController((EssentialsTechRoom)room, fusionIpId, fusionJoinMapKey));
|
||||||
|
|
||||||
Debug.Console(0, Debug.ErrorLogLevel.Notice, "Attempting to build Mobile Control Bridge");
|
|
||||||
|
|
||||||
CreateMobileControlBridge(room);
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
Debug.Console(0, Debug.ErrorLogLevel.Notice, "Room is NOT EssentialsRoom, attempting to add to DeviceManager w/o Fusion");
|
|
||||||
DeviceManager.AddDevice(room);
|
|
||||||
}
|
|
||||||
|
|
||||||
fusionIpId += 1;
|
fusionIpId += 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -547,6 +530,15 @@ namespace PepperDash.Essentials
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void AddRoomAndBuildMC(IEssentialsRoom room)
|
||||||
|
{
|
||||||
|
DeviceManager.AddDevice(room);
|
||||||
|
|
||||||
|
Debug.Console(0, Debug.ErrorLogLevel.Notice, "Attempting to build Mobile Control Bridge");
|
||||||
|
|
||||||
|
CreateMobileControlBridge(room);
|
||||||
|
}
|
||||||
|
|
||||||
private static void CreateMobileControlBridge(object room)
|
private static void CreateMobileControlBridge(object room)
|
||||||
{
|
{
|
||||||
var mobileControl = GetMobileControlDevice();
|
var mobileControl = GetMobileControlDevice();
|
||||||
|
|||||||
@@ -19,32 +19,41 @@ namespace PepperDash.Essentials.Room.Config
|
|||||||
/// Returns a room object from this config data
|
/// Returns a room object from this config data
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static Device GetRoomObject(DeviceConfig roomConfig)
|
public static IKeyed GetRoomObject(DeviceConfig roomConfig)
|
||||||
{
|
{
|
||||||
var typeName = roomConfig.Type.ToLower();
|
var typeName = roomConfig.Type.ToLower();
|
||||||
|
|
||||||
if (typeName == "huddle")
|
switch (typeName)
|
||||||
{
|
|
||||||
return new EssentialsHuddleSpaceRoom(roomConfig);
|
|
||||||
}
|
|
||||||
if (typeName == "huddlevtc1")
|
|
||||||
{
|
{
|
||||||
return new EssentialsHuddleVtc1Room(roomConfig);
|
case "huddle" :
|
||||||
|
{
|
||||||
|
return new EssentialsHuddleSpaceRoom(roomConfig);
|
||||||
|
}
|
||||||
|
case "huddlevtc1" :
|
||||||
|
{
|
||||||
|
return new EssentialsHuddleVtc1Room(roomConfig);
|
||||||
|
}
|
||||||
|
case "ddvc01bridge" :
|
||||||
|
{
|
||||||
|
return new Device(roomConfig.Key, roomConfig.Name); // placeholder device that does nothing.
|
||||||
|
}
|
||||||
|
case "dualdisplay" :
|
||||||
|
{
|
||||||
|
return new EssentialsDualDisplayRoom(roomConfig);
|
||||||
|
}
|
||||||
|
case "combinedhuddlevtc1" :
|
||||||
|
{
|
||||||
|
return new EssentialsCombinedHuddleVtc1Room(roomConfig);
|
||||||
|
}
|
||||||
|
case "techroom" :
|
||||||
|
{
|
||||||
|
return new EssentialsTechRoom(roomConfig);
|
||||||
|
}
|
||||||
|
default :
|
||||||
|
{
|
||||||
|
return Core.DeviceFactory.GetDevice(roomConfig);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (typeName == "ddvc01bridge")
|
|
||||||
{
|
|
||||||
return new Device(roomConfig.Key, roomConfig.Name); // placeholder device that does nothing.
|
|
||||||
}
|
|
||||||
if (typeName == "dualdisplay")
|
|
||||||
{
|
|
||||||
return new EssentialsDualDisplayRoom(roomConfig);
|
|
||||||
}
|
|
||||||
if (typeName == "combinedhuddlevtc1")
|
|
||||||
{
|
|
||||||
return new EssentialsCombinedHuddleVtc1Room(roomConfig);
|
|
||||||
}
|
|
||||||
|
|
||||||
return typeName != "techroom" ? null : new EssentialsTechRoom(roomConfig);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user