Updates device factory methodology for Essentials Core and Essential DM libraries

This commit is contained in:
Neil Dorin
2020-04-15 18:07:22 -06:00
parent f75d884986
commit c5232ca6b8
12 changed files with 242 additions and 124 deletions

View File

@@ -260,4 +260,29 @@ namespace PepperDash.Essentials.DM.AirMedia
}
public class AirMediaControllerFactory : EssentialsDeviceFactory<GenericComm>
{
public AirMediaControllerFactory()
{
TypeNames = new List<string>() { "am200", "am300" };
}
public override EssentialsDevice BuildDevice(DeviceConfig dc)
{
var type = dc.Type.ToLower();
Debug.Console(1, "Factory Attempting to create new AirMedia Device");
var props = JsonConvert.DeserializeObject<AirMediaPropertiesConfig>(dc.Properties.ToString());
AmX00 amDevice = null;
if (type == "am200")
amDevice = new Crestron.SimplSharpPro.DM.AirMedia.Am200(props.Control.IpIdInt, Global.ControlSystem);
else if (type == "am300")
amDevice = new Crestron.SimplSharpPro.DM.AirMedia.Am300(props.Control.IpIdInt, Global.ControlSystem);
return new AirMediaController(dc.Key, dc.Name, amDevice, dc, props);
}
}
}