feat(essentials): Adds ability to read camera info from codec rather than just from config

This commit is contained in:
Neil Dorin
2022-02-09 14:34:25 -07:00
parent b97783603b
commit adbce916ba
2 changed files with 39 additions and 1 deletions

View File

@@ -646,7 +646,31 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
/// <param name="e"></param>
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<CameraInfo>();
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();

View File

@@ -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; }