mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-01-26 10:54:59 +00:00
In order to allow for easier composition of interfaces for room plugins, the IEssentialsRoom interface needed to be broken down further to the simplest components a room would need to function. The interfaces are composited in the huddle space and the Huddle VTC interfaces.
106 lines
2.6 KiB
C#
106 lines
2.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using Crestron.SimplSharp;
|
|
|
|
using PepperDash.Core;
|
|
|
|
|
|
namespace PepperDash.Essentials.Core
|
|
{
|
|
/// <summary>
|
|
/// For rooms with in call feedback
|
|
/// </summary>
|
|
public interface IHasInCallFeedback
|
|
{
|
|
BoolFeedback InCallFeedback { get; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// For rooms with a single display
|
|
/// </summary>
|
|
public interface IHasDefaultDisplay
|
|
{
|
|
IRoutingSinkWithSwitching DefaultDisplay { get; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// For rooms with multiple displays
|
|
/// </summary>
|
|
public interface IHasMultipleDisplays
|
|
{
|
|
Dictionary<eSourceListItemDestinationTypes, IRoutingSinkWithSwitching> Displays { get; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// For rooms with routing
|
|
/// </summary>
|
|
public interface IRunRouteAction
|
|
{
|
|
void RunRouteAction(string routeKey, string sourceListKey);
|
|
|
|
void RunRouteAction(string routeKey, string sourceListKey, Action successCallback);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Simplified routing direct from source to destination
|
|
/// </summary>
|
|
public interface IRunDirectRouteAction
|
|
{
|
|
void RunDirectRoute(string sourceKey, string destinationKey);
|
|
}
|
|
|
|
/// <summary>
|
|
/// For rooms that default presentation only routing
|
|
/// </summary>
|
|
public interface IRunDefaultPresentRoute
|
|
{
|
|
bool RunDefaultPresentRoute();
|
|
}
|
|
|
|
/// <summary>
|
|
/// For rooms that have default presentation and calling routes
|
|
/// </summary>
|
|
public interface IRunDefaultCallRoute : IRunDefaultPresentRoute
|
|
{
|
|
bool RunDefaultCallRoute();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Describes environmental controls available on a room such as lighting, shades, temperature, etc.
|
|
/// </summary>
|
|
public interface IEnvironmentalControls
|
|
{
|
|
List<EssentialsDevice> EnvironmentalControlDevices { get; }
|
|
|
|
bool HasEnvironmentalControlDevices { get; }
|
|
}
|
|
|
|
public interface IRoomOccupancy:IKeyed
|
|
{
|
|
IOccupancyStatusProvider RoomOccupancy { get; }
|
|
bool OccupancyStatusProviderIsRemote { get; }
|
|
|
|
void SetRoomOccupancy(IOccupancyStatusProvider statusProvider, int timeoutMinutes);
|
|
|
|
void RoomVacatedForTimeoutPeriod(object o);
|
|
|
|
void StartRoomVacancyTimer(eVacancyMode mode);
|
|
|
|
eVacancyMode VacancyMode { get; }
|
|
|
|
event EventHandler<EventArgs> RoomOccupancyIsSet;
|
|
}
|
|
|
|
public interface IEmergency
|
|
{
|
|
EssentialsRoomEmergencyBase Emergency { get; }
|
|
}
|
|
|
|
public interface IMicrophonePrivacy
|
|
{
|
|
Core.Privacy.MicrophonePrivacyController MicrophonePrivacy { get; }
|
|
}
|
|
|
|
} |