feat: Add new messengers for various device interfaces and remove VideoCodecBaseMessenger

- Implemented IHasMeetingInfoMessenger to handle meeting information updates.
- Created IHasReadyMessenger for devices indicating readiness status.
- Added IHasStandbyModeMessenger to manage standby mode actions.
- Introduced IPrivacyMessenger for privacy mode control.
- Developed IVideoCodecInfoMessenger to provide codec information.
- Removed the obsolete VideoCodecBaseMessenger class.
- Updated MessengerFactoryRegistry to register new messengers for IHasReady, IHasMeetingInfo, IHasStartMeeting, IHasStandbyMode, IPrivacy, and IVideoCodecInfo interfaces.

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
Neil Dorin 2026-05-08 12:10:56 -06:00
parent b41c30cdd0
commit 91aa0efa5f
22 changed files with 1197 additions and 567 deletions

View file

@ -65,7 +65,7 @@ namespace PepperDash.Essentials.AppServer.Messengers
{
PostStatusMessage(new IHasCallHistoryStateMessage
{
RecentCalls = recents
RecentCalls = recents,
});
}
}
@ -76,9 +76,22 @@ namespace PepperDash.Essentials.AppServer.Messengers
}
}
/// <summary>
/// State message for <see cref="IHasCallHistory"/>
///
/// </summary>
public class IHasCallHistoryStateMessage : DeviceStateMessageBase
{
/// <summary>
/// Gets or sets the list of recent calls. Null if unknown or not applicable.
/// </summary>
[JsonProperty("recentCalls", NullValueHandling = NullValueHandling.Ignore)]
public List<CodecCallHistory.CallHistoryEntry> RecentCalls { get; set; }
/// <summary>
/// Gets or sets a value indicating whether the device has call history functionality. Null if unknown or not applicable.
/// </summary>
[JsonProperty("hasRecents", NullValueHandling = NullValueHandling.Ignore)]
public bool? HasRecents { get; set; } = true; // Since this messenger should only be used for devices with call history, default to true unless specified otherwise.
}
}