mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-07-02 10:38:16 +00:00
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:
parent
b41c30cdd0
commit
91aa0efa5f
22 changed files with 1197 additions and 567 deletions
|
|
@ -0,0 +1,21 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace PepperDash.Essentials.Devices.Common.Codec;
|
||||
|
||||
/// <summary>
|
||||
/// Defines call control functionality for a codec, extending the base dialer interface
|
||||
/// with active call list access and meeting dialing.
|
||||
/// </summary>
|
||||
public interface ICodecCallControls : IHasDialer
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the list of currently active, dialing, or incoming calls
|
||||
/// </summary>
|
||||
List<CodecActiveCallItem> ActiveCalls { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Dials the specified meeting
|
||||
/// </summary>
|
||||
/// <param name="meeting">The meeting to dial</param>
|
||||
void Dial(Meeting meeting);
|
||||
}
|
||||
|
|
@ -53,5 +53,7 @@ public interface IHasDialer
|
|||
/// Gets a value indicating whether the device is currently in a call
|
||||
/// </summary>
|
||||
bool IsInCall { get; }
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
|||
/// <summary>
|
||||
/// Implements a common set of data about a codec
|
||||
/// </summary>
|
||||
public interface iVideoCodecInfo
|
||||
public interface IVideoCodecInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets the codec information
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ using System.Collections.Generic;
|
|||
using System.Linq;
|
||||
using Crestron.SimplSharp.CrestronIO;
|
||||
using Crestron.SimplSharpPro.DeviceSupport;
|
||||
using Crestron.SimplSharp;
|
||||
using PepperDash.Core;
|
||||
using PepperDash.Core.Intersystem;
|
||||
using PepperDash.Core.Intersystem.Tokens;
|
||||
|
|
@ -29,7 +28,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec;
|
|||
/// Also contains the logic to link commonly implemented interfaces to the API bridge.
|
||||
/// </summary>
|
||||
public abstract class VideoCodecBase : ReconfigurableDevice, IRoutingInputsOutputs,
|
||||
IUsageTracking, IHasDialer, IHasContentSharing, ICodecAudio, iVideoCodecInfo, IBridgeAdvanced, IHasStandbyMode
|
||||
IUsageTracking, ICodecCallControls, IHasContentSharing, ICodecAudio, IVideoCodecInfo, IBridgeAdvanced, IHasStandbyMode, IHasReady
|
||||
{
|
||||
private const int XSigEncoding = 28591;
|
||||
|
||||
|
|
@ -338,7 +337,7 @@ public abstract class VideoCodecBase : ReconfigurableDevice, IRoutingInputsOutpu
|
|||
/// <summary>
|
||||
/// Fired when the Codec is ready to be used
|
||||
/// </summary>
|
||||
public event EventHandler<EventArgs> IsReadyChange;
|
||||
public event EventHandler<IsReadyEventArgs> IsReadyEvent;
|
||||
|
||||
/// <summary>
|
||||
/// Dials the specified meeting
|
||||
|
|
@ -405,7 +404,7 @@ public abstract class VideoCodecBase : ReconfigurableDevice, IRoutingInputsOutpu
|
|||
try
|
||||
{
|
||||
IsReady = true;
|
||||
IsReadyChange?.Invoke(this, new EventArgs());
|
||||
IsReadyEvent?.Invoke(this, new IsReadyEventArgs(IsReady));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
|
@ -498,7 +497,7 @@ public abstract class VideoCodecBase : ReconfigurableDevice, IRoutingInputsOutpu
|
|||
LinkVideoCodecInfoToApi(trilist, joinMap);
|
||||
|
||||
// Register for this event to link any functions that require the codec to be ready first
|
||||
codec.IsReadyChange += (o, a) =>
|
||||
codec.IsReadyEvent += (o, a) =>
|
||||
{
|
||||
if (codec is IHasCodecCameras)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue