diff --git a/PepperDashEssentials/AppServer/Messengers/CameraBaseMessenger.cs b/PepperDashEssentials/AppServer/Messengers/CameraBaseMessenger.cs
new file mode 100644
index 00000000..fbf1caf2
--- /dev/null
+++ b/PepperDashEssentials/AppServer/Messengers/CameraBaseMessenger.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+
+namespace PepperDash.Essentials.AppServer.Messengers
+{
+ public class CameraBaseMessenger
+ {
+ }
+}
\ No newline at end of file
diff --git a/essentials-framework/Essentials Core/PepperDashEssentialsBase/Presets/PresetBase.cs b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Presets/PresetBase.cs
new file mode 100644
index 00000000..76ffbbc3
--- /dev/null
+++ b/essentials-framework/Essentials Core/PepperDashEssentialsBase/Presets/PresetBase.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+
+using Newtonsoft.Json;
+
+namespace PepperDash.Essentials.Core.Presets
+{
+ public class PresetBase
+ {
+ [JsonProperty("id")]
+ public int ID { get; set; }
+ ///
+ /// Used to store the name of the preset
+ ///
+ [JsonProperty("description")]
+ public string Description { get; set; }
+ ///
+ /// Indicates if the preset is defined(stored) in the codec
+ ///
+ [JsonProperty("defined")]
+ public bool Defined { get; set; }
+ ///
+ /// Indicates if the preset has the capability to be defined
+ ///
+ [JsonProperty("isDefinable")]
+ public bool IsDefinable { get; set; }
+
+ public PresetBase(int id, string description, bool def, bool isDef)
+ {
+ ID = id;
+ Description = description;
+ Defined = def;
+ IsDefinable = isDef;
+ }
+ }
+}
\ No newline at end of file
diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/Cameras/IHasCameraPresets.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/Cameras/IHasCameraPresets.cs
new file mode 100644
index 00000000..a8e8983d
--- /dev/null
+++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/Cameras/IHasCameraPresets.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+
+namespace PepperDash.Essentials.Devices.Common.Cameras
+{
+ ///
+ /// Describes a camera with preset functionality
+ ///
+ public interface IHasCameraPresets
+ {
+ event EventHandler PresetsListHasChanged;
+
+ List Presets { get; }
+
+ void PresetSelect(int preset);
+
+ void PresetStore(int preset, string description);
+ }
+}
\ No newline at end of file