diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/CiscoSparkCodec.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/CiscoSparkCodec.cs
index 36192f7d..213a8d7c 100644
--- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/CiscoSparkCodec.cs
+++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/CiscoSparkCodec.cs
@@ -646,7 +646,31 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
///
void SyncState_InitialSyncCompleted(object sender, EventArgs e)
{
- SetUpCameras(_config.CameraInfo);
+ // Check for camera config info first
+ if (_config.CameraInfo.Count > 0)
+ {
+ SetUpCameras(_config.CameraInfo);
+ }
+ else
+ {
+ try
+ {
+ var cameraInfo = new List();
+
+ foreach (var camera in CodecStatus.Status.Cameras.Camera)
+ {
+ var id = Convert.ToUInt16(camera.id);
+ var info = new CameraInfo() { CameraNumber = id, Name = string.Format("{0} {1}", camera.Manufacturer, camera.Model), SourceId = camera.DetectedConnector.ConnectorId };
+ cameraInfo.Add(info);
+ }
+ }
+ catch (Exception ex)
+ {
+ Debug.Console(2, this, "Error generating camera info from codec status data: {0}", ex);
+ }
+ }
+
+
// Fire the ready event
SetIsReady();
diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/xStatus.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/xStatus.cs
index 6db3c2e3..e7f418eb 100644
--- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/xStatus.cs
+++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/CiscoCodec/xStatus.cs
@@ -262,11 +262,25 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
public string Value { get; set; }
}
+ public class DectectedConnector
+ {
+ public string Value { get; set; }
+
+ public int ConnectorId
+ {
+ get
+ {
+ return Convert.ToUInt16(Value);
+ }
+ }
+ }
+
public class Camera
{
public string id { get; set; }
public Capabilities Capabilities { get; set; }
public Connected Connected { get; set; }
+ public DectectedConnector DetectedConnector { get; set; }
public Flip Flip { get; set; }
public HardwareID HardwareID { get; set; }
public MacAddress MacAddress { get; set; }