mirror of
https://github.com/PepperDash/EssentialsPluginTemplate.git
synced 2026-01-11 19:44:38 +00:00
53 lines
1.9 KiB
C#
53 lines
1.9 KiB
C#
using System;
|
|
using Crestron.SimplSharp; // For Basic SIMPL# Classes
|
|
using Crestron.SimplSharpPro; // For Basic SIMPL#Pro classes
|
|
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
using PepperDash.Essentials;
|
|
using PepperDash.Essentials.Core;
|
|
using PepperDash.Essentials.Core.Config;
|
|
using PepperDash.Core;
|
|
|
|
namespace EssentialsPluginTemplateEPI
|
|
{
|
|
/// <summary>
|
|
/// This class contains the necessary properties and static methods required to function as an Essentials Plugin
|
|
/// </summary>
|
|
public class EssentialsPluginFactory
|
|
{
|
|
/// <summary>
|
|
/// This string is used to define the minimum version of the
|
|
/// Essentials Framework required for this plugin
|
|
/// </summary>
|
|
public static string MinimumEssentialsFrameworkVersion = "1.4.31";
|
|
|
|
/// <summary>
|
|
/// This method will get called by Essentials when this plugin is loaded.
|
|
/// Use it to add factory methods for all new Device types defined in this plugin
|
|
/// </summary>
|
|
public static void LoadPlugin()
|
|
{
|
|
PepperDash.Essentials.Core.DeviceFactory.AddFactoryForType("EssentialsPluginTemplate", EssentialsPluginFactory.BuildDevice);
|
|
|
|
// Add additional factories for each type here
|
|
}
|
|
|
|
/// <summary>
|
|
/// Builds an instance of the device type. There should be method like this defined for each device type your plugin needs
|
|
/// to be able to build
|
|
/// </summary>
|
|
/// <param name="dc">The device configuration</param>
|
|
/// <returns>The device</returns>
|
|
public static EssentialsPluginTemplateDevice BuildDevice(DeviceConfig dc)
|
|
{
|
|
var config = JsonConvert.DeserializeObject<EssentialsPluginTemplatePropertiesConfig>(dc.Properties.ToString());
|
|
var newDevice = new EssentialsPluginTemplateDevice(dc.Key, dc.Name, config);
|
|
return newDevice;
|
|
}
|
|
|
|
}
|
|
}
|
|
|