docs: add missing XML comments for Mobile Control Project

This commit is contained in:
Andrew Welker
2025-10-15 12:26:57 -05:00
parent c557c6cdd6
commit 98d0cc8fdc
28 changed files with 576 additions and 177 deletions

View File

@@ -7,8 +7,15 @@ namespace PepperDash.Essentials.Touchpanel
/// </summary>
public interface ITheme : IKeyed
{
/// <summary>
/// Current theme
/// </summary>
string Theme { get; }
/// <summary>
/// Set the theme with the given value
/// </summary>
/// <param name="theme">The theme to set</param>
void UpdateTheme(string theme);
}
}

View File

@@ -8,12 +8,24 @@ namespace PepperDash.Essentials.Touchpanel
/// </summary>
public interface ITswAppControl : IKeyed
{
/// <summary>
/// Updates when the Zoom Room Control Application opens or closes
/// </summary>
BoolFeedback AppOpenFeedback { get; }
/// <summary>
/// Hide the Zoom App and show the User Control Application
/// </summary>
void HideOpenApp();
/// <summary>
/// Close the Zoom App and show the User Control Application
/// </summary>
void CloseOpenApp();
/// <summary>
/// Open the Zoom App
/// </summary>
void OpenApp();
}
@@ -22,10 +34,19 @@ namespace PepperDash.Essentials.Touchpanel
/// </summary>
public interface ITswZoomControl : IKeyed
{
/// <summary>
/// Updates when Zoom has an incoming call
/// </summary>
BoolFeedback ZoomIncomingCallFeedback { get; }
/// <summary>
/// Updates when Zoom is in a call
/// </summary>
BoolFeedback ZoomInCallFeedback { get; }
/// <summary>
/// End a Zoom Call
/// </summary>
void EndZoomCall();
}
}

View File

@@ -7,17 +7,24 @@ using PepperDash.Essentials.AppServer.Messengers;
namespace PepperDash.Essentials.Touchpanel
{
/// <summary>
/// Represents a ITswAppControlMessenger
/// Messenger for controlling the Zoom App on a TSW Panel that supports the Zoom Room Control Application
/// </summary>
public class ITswAppControlMessenger : MessengerBase
{
private readonly ITswAppControl _appControl;
/// <summary>
/// Create an instance of the <see cref="ITswAppControlMessenger"/> class.
/// </summary>
/// <param name="key">The key for this messenger</param>
/// <param name="messagePath">The message path for this messenger</param>
/// <param name="device">The device for this messenger</param>
public ITswAppControlMessenger(string key, string messagePath, Device device) : base(key, messagePath, device)
{
_appControl = device as ITswAppControl;
}
/// <inheritdoc />
protected override void RegisterActions()
{
if (_appControl == null)
@@ -43,14 +50,14 @@ namespace PepperDash.Essentials.Touchpanel
};
}
private void SendFullStatus()
private void SendFullStatus(string id = null)
{
var message = new TswAppStateMessage
{
AppOpen = _appControl.AppOpenFeedback.BoolValue,
};
PostStatusMessage(message);
PostStatusMessage(message, id);
}
}
@@ -59,6 +66,9 @@ namespace PepperDash.Essentials.Touchpanel
/// </summary>
public class TswAppStateMessage : DeviceStateMessageBase
{
/// <summary>
/// True if the Zoom app is open on a TSW panel
/// </summary>
[JsonProperty("appOpen", NullValueHandling = NullValueHandling.Ignore)]
public bool? AppOpen { get; set; }
}

View File

@@ -8,17 +8,24 @@ using PepperDash.Essentials.AppServer.Messengers;
namespace PepperDash.Essentials.Touchpanel
{
/// <summary>
/// Represents a ITswZoomControlMessenger
/// Messenger to handle
/// </summary>
public class ITswZoomControlMessenger : MessengerBase
{
private readonly ITswZoomControl _zoomControl;
/// <summary>
/// Create in instance of the <see cref="ITswZoomControlMessenger"/> class for the given device
/// </summary>
/// <param name="key">The key for this messenger</param>
/// <param name="messagePath">The message path for this messenger</param>
/// <param name="device">The device for this messenger</param>
public ITswZoomControlMessenger(string key, string messagePath, Device device) : base(key, messagePath, device)
{
_zoomControl = device as ITswZoomControl;
}
/// <inheritdoc />
protected override void RegisterActions()
{
if (_zoomControl == null)
@@ -27,7 +34,9 @@ namespace PepperDash.Essentials.Touchpanel
return;
}
AddAction($"/fullStatus", (id, context) => SendFullStatus());
AddAction($"/fullStatus", (id, context) => SendFullStatus(id));
AddAction($"/zoomStatus", (id, content) => SendFullStatus(id));
AddAction($"/endCall", (id, context) => _zoomControl.EndZoomCall());
@@ -53,7 +62,7 @@ namespace PepperDash.Essentials.Touchpanel
};
}
private void SendFullStatus()
private void SendFullStatus(string id = null)
{
var message = new TswZoomStateMessage
{
@@ -61,7 +70,7 @@ namespace PepperDash.Essentials.Touchpanel
IncomingCall = _zoomControl?.ZoomIncomingCallFeedback.BoolValue
};
PostStatusMessage(message);
PostStatusMessage(message, id);
}
}
@@ -70,9 +79,16 @@ namespace PepperDash.Essentials.Touchpanel
/// </summary>
public class TswZoomStateMessage : DeviceStateMessageBase
{
/// <summary>
/// True if the panel is in a Zoom call
/// </summary>
[JsonProperty("inCall", NullValueHandling = NullValueHandling.Ignore)]
public bool? InCall { get; set; }
/// <summary>
/// True if there is an incoming Zoom call
/// </summary>
[JsonProperty("incomingCall", NullValueHandling = NullValueHandling.Ignore)]
public bool? IncomingCall { get; set; }
}

View File

@@ -7,17 +7,24 @@ using PepperDash.Essentials.AppServer.Messengers;
namespace PepperDash.Essentials.Touchpanel
{
/// <summary>
/// Represents a ThemeMessenger
/// Messenger to save the current theme (light/dark) and send to a device
/// </summary>
public class ThemeMessenger : MessengerBase
{
private readonly ITheme _tpDevice;
/// <summary>
/// Create an instance of the <see cref="ThemeMessenger"/> class
/// </summary>
/// <param name="key">The key for this messenger</param>
/// <param name="path">The path for this messenger</param>
/// <param name="device">The device for this messenger</param>
public ThemeMessenger(string key, string path, ITheme device) : base(key, path, device as Device)
{
_tpDevice = device;
}
/// <inheritdoc />
protected override void RegisterActions()
{
AddAction("/fullStatus", (id, content) =>