mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-01-11 19:44:52 +00:00
fix: Add KeyName class and update camera messaging
This commit introduces a new `KeyName` class implementing the `IKeyName` interface, enhancing the representation of camera data. The `CameraController_CameraSelected` and `SendFullStatus` methods are updated to utilize `KeyName` instances for selected and listed cameras, improving data encapsulation and consistency in the `IHasCamerasWithControlsStateMessage`. Additionally, new using directives for logging and core functionalities are added.
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
|
using PepperDash.Core.Logging;
|
||||||
|
using PepperDash.Essentials.Core;
|
||||||
using PepperDash.Essentials.Devices.Common.Cameras;
|
using PepperDash.Essentials.Devices.Common.Cameras;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -33,9 +35,15 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
|
|
||||||
private void CameraController_CameraSelected(object sender, CameraSelectedEventArgs<IHasCameraControls> e)
|
private void CameraController_CameraSelected(object sender, CameraSelectedEventArgs<IHasCameraControls> e)
|
||||||
{
|
{
|
||||||
|
var selectedCamera = new KeyName
|
||||||
|
{
|
||||||
|
Key = e.SelectedCamera.Key,
|
||||||
|
Name = e.SelectedCamera.Name
|
||||||
|
};
|
||||||
|
|
||||||
PostStatusMessage(new IHasCamerasWithControlsStateMessage
|
PostStatusMessage(new IHasCamerasWithControlsStateMessage
|
||||||
{
|
{
|
||||||
SelectedCamera = e.SelectedCamera
|
SelectedCamera = selectedCamera
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,10 +76,30 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
|
|
||||||
private void SendFullStatus(string clientId)
|
private void SendFullStatus(string clientId)
|
||||||
{
|
{
|
||||||
|
var cameraList = new List<IKeyName>();
|
||||||
|
KeyName selectedCamera = null;
|
||||||
|
|
||||||
|
foreach (var cam in CameraController.Cameras)
|
||||||
|
{
|
||||||
|
cameraList.Add(new KeyName{
|
||||||
|
Key = cam.Key,
|
||||||
|
Name = cam.Name
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (CameraController.SelectedCamera != null)
|
||||||
|
{
|
||||||
|
selectedCamera = new KeyName
|
||||||
|
{
|
||||||
|
Key = CameraController.SelectedCamera.Key,
|
||||||
|
Name = CameraController.SelectedCamera.Name
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
var state = new IHasCamerasWithControlsStateMessage
|
var state = new IHasCamerasWithControlsStateMessage
|
||||||
{
|
{
|
||||||
CameraList = CameraController.Cameras.Cast<IKeyName>().ToList(),
|
CameraList = cameraList,
|
||||||
SelectedCamera = CameraController.SelectedCamera as IKeyName
|
SelectedCamera = selectedCamera
|
||||||
};
|
};
|
||||||
|
|
||||||
PostStatusMessage(state, clientId);
|
PostStatusMessage(state, clientId);
|
||||||
@@ -96,5 +124,14 @@ namespace PepperDash.Essentials.AppServer.Messengers
|
|||||||
public IKeyName SelectedCamera { get; set; }
|
public IKeyName SelectedCamera { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class KeyName : IKeyName
|
||||||
|
{
|
||||||
|
public string Key { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public KeyName()
|
||||||
|
{
|
||||||
|
Key = "";
|
||||||
|
Name = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user