mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-14 20:24:57 +00:00
Merge pull request #1138 from PepperDash/hotfix/huddle-room-interfaces
Break IEssentialsRoom down further
This commit is contained in:
@@ -7,7 +7,8 @@ using PepperDash.Essentials.Room.Config;
|
|||||||
|
|
||||||
namespace PepperDash.Essentials
|
namespace PepperDash.Essentials
|
||||||
{
|
{
|
||||||
public interface IEssentialsHuddleSpaceRoom : IEssentialsRoom, IHasCurrentSourceInfoChange, IRunRouteAction, IRunDefaultPresentRoute, IHasDefaultDisplay, IHasCurrentVolumeControls
|
public interface IEssentialsHuddleSpaceRoom : IEssentialsRoom, IHasCurrentSourceInfoChange, IRunRouteAction, IRunDefaultPresentRoute, IHasDefaultDisplay, IHasCurrentVolumeControls, IRoomOccupancy,
|
||||||
|
IEmergency, IMicrophonePrivacy
|
||||||
{
|
{
|
||||||
bool ExcludeFromGlobalFunctions { get; }
|
bool ExcludeFromGlobalFunctions { get; }
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ using PepperDash.Essentials.Devices.Common.AudioCodec;
|
|||||||
namespace PepperDash.Essentials
|
namespace PepperDash.Essentials
|
||||||
{
|
{
|
||||||
public interface IEssentialsHuddleVtc1Room : IEssentialsRoom, IHasCurrentSourceInfoChange,
|
public interface IEssentialsHuddleVtc1Room : IEssentialsRoom, IHasCurrentSourceInfoChange,
|
||||||
IPrivacy, IHasCurrentVolumeControls, IRunRouteAction, IRunDefaultCallRoute, IHasVideoCodec, IHasAudioCodec, IHasDefaultDisplay, IHasInCallFeedback
|
IPrivacy, IHasCurrentVolumeControls, IRunRouteAction, IRunDefaultCallRoute, IHasVideoCodec, IHasAudioCodec, IHasDefaultDisplay, IHasInCallFeedback,
|
||||||
|
IRoomOccupancy, IEmergency, IMicrophonePrivacy
|
||||||
{
|
{
|
||||||
EssentialsHuddleVtc1PropertiesConfig PropertiesConfig { get; }
|
EssentialsHuddleVtc1PropertiesConfig PropertiesConfig { get; }
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,10 @@ namespace PepperDash.Essentials.Core
|
|||||||
{
|
{
|
||||||
IBasicVolumeControls CurrentVolumeControls { get; }
|
IBasicVolumeControls CurrentVolumeControls { get; }
|
||||||
event EventHandler<VolumeDeviceChangeEventArgs> CurrentVolumeDeviceChange;
|
event EventHandler<VolumeDeviceChangeEventArgs> CurrentVolumeDeviceChange;
|
||||||
|
|
||||||
|
void SetDefaultLevels();
|
||||||
|
|
||||||
|
bool ZeroVolumeWhenSwtichingVolumeDevices { get; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -148,15 +148,20 @@ namespace PepperDash.Essentials.Core.Fusion
|
|||||||
ReadGuidFile(guidFilePath);
|
ReadGuidFile(guidFilePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Room.RoomOccupancy != null)
|
var occupancyRoom = Room as IRoomOccupancy;
|
||||||
|
|
||||||
|
if (occupancyRoom != null)
|
||||||
{
|
{
|
||||||
if (Room.OccupancyStatusProviderIsRemote)
|
if (occupancyRoom.RoomOccupancy != null)
|
||||||
{
|
{
|
||||||
SetUpRemoteOccupancy();
|
if (occupancyRoom.OccupancyStatusProviderIsRemote)
|
||||||
}
|
{
|
||||||
else
|
SetUpRemoteOccupancy();
|
||||||
{
|
}
|
||||||
SetUpLocalOccupancy();
|
else
|
||||||
|
{
|
||||||
|
SetUpLocalOccupancy();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1523,10 +1528,15 @@ namespace PepperDash.Essentials.Core.Fusion
|
|||||||
// Tie to method on occupancy object
|
// Tie to method on occupancy object
|
||||||
//occSensorShutdownMinutes.OutputSig.UserObject(new Action(ushort)(b => Room.OccupancyObj.SetShutdownMinutes(b));
|
//occSensorShutdownMinutes.OutputSig.UserObject(new Action(ushort)(b => Room.OccupancyObj.SetShutdownMinutes(b));
|
||||||
|
|
||||||
|
var occRoom = Room as IRoomOccupancy;
|
||||||
|
|
||||||
|
if (occRoom != null)
|
||||||
|
{
|
||||||
|
occRoom.RoomOccupancy.RoomIsOccupiedFeedback.LinkInputSig(occSensorAsset.RoomOccupied.InputSig);
|
||||||
|
occRoom.RoomOccupancy.RoomIsOccupiedFeedback.OutputChange += RoomIsOccupiedFeedback_OutputChange;
|
||||||
|
}
|
||||||
RoomOccupancyRemoteStringFeedback = new StringFeedback(() => _roomOccupancyRemoteString);
|
RoomOccupancyRemoteStringFeedback = new StringFeedback(() => _roomOccupancyRemoteString);
|
||||||
Room.RoomOccupancy.RoomIsOccupiedFeedback.LinkInputSig(occSensorAsset.RoomOccupied.InputSig);
|
|
||||||
Room.RoomOccupancy.RoomIsOccupiedFeedback.OutputChange += RoomIsOccupiedFeedback_OutputChange;
|
|
||||||
RoomOccupancyRemoteStringFeedback.LinkInputSig(occSensorAsset.RoomOccupancyInfo.InputSig);
|
RoomOccupancyRemoteStringFeedback.LinkInputSig(occSensorAsset.RoomOccupancyInfo.InputSig);
|
||||||
|
|
||||||
//}
|
//}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ namespace PepperDash.Essentials.Core
|
|||||||
|
|
||||||
ScheduledEventGroup FeatureEventGroup;
|
ScheduledEventGroup FeatureEventGroup;
|
||||||
|
|
||||||
public IEssentialsRoom Room { get; private set; }
|
public IRoomOccupancy Room { get; private set; }
|
||||||
|
|
||||||
private Fusion.EssentialsHuddleSpaceFusionSystemControllerBase FusionRoom;
|
private Fusion.EssentialsHuddleSpaceFusionSystemControllerBase FusionRoom;
|
||||||
|
|
||||||
@@ -84,7 +84,7 @@ namespace PepperDash.Essentials.Core
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
void SetUpDevice()
|
void SetUpDevice()
|
||||||
{
|
{
|
||||||
Room = DeviceManager.GetDeviceForKey(PropertiesConfig.RoomKey) as IEssentialsRoom;
|
Room = DeviceManager.GetDeviceForKey(PropertiesConfig.RoomKey) as IRoomOccupancy;
|
||||||
|
|
||||||
if (Room != null)
|
if (Room != null)
|
||||||
{
|
{
|
||||||
@@ -235,12 +235,23 @@ namespace PepperDash.Essentials.Core
|
|||||||
|
|
||||||
if (FeatureEnabled)
|
if (FeatureEnabled)
|
||||||
{
|
{
|
||||||
// Check room power state first
|
var essentialsRoom = Room as IEssentialsRoom;
|
||||||
if (!Room.OnFeedback.BoolValue)
|
|
||||||
{
|
if (essentialsRoom != null) {
|
||||||
Debug.Console(1, this, "Powering Room on to default source");
|
if (!essentialsRoom.OnFeedback.BoolValue)
|
||||||
Room.RunDefaultPresentRoute();
|
{
|
||||||
|
Debug.Console(1, this, "Powering Room on to default source");
|
||||||
|
|
||||||
|
var defaultRouteRoom = Room as IRunDefaultPresentRoute;
|
||||||
|
|
||||||
|
if (defaultRouteRoom != null)
|
||||||
|
{
|
||||||
|
defaultRouteRoom.RunDefaultPresentRoute();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
// Check room power state first
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,14 +19,9 @@ namespace PepperDash.Essentials.Core
|
|||||||
{
|
{
|
||||||
BoolFeedback OnFeedback { get; }
|
BoolFeedback OnFeedback { get; }
|
||||||
|
|
||||||
event EventHandler<EventArgs> RoomOccupancyIsSet;
|
|
||||||
|
|
||||||
BoolFeedback IsWarmingUpFeedback { get; }
|
BoolFeedback IsWarmingUpFeedback { get; }
|
||||||
BoolFeedback IsCoolingDownFeedback { get; }
|
BoolFeedback IsCoolingDownFeedback { get; }
|
||||||
|
|
||||||
IOccupancyStatusProvider RoomOccupancy { get; }
|
|
||||||
bool OccupancyStatusProviderIsRemote { get; }
|
|
||||||
|
|
||||||
bool IsMobileControlEnabled { get; }
|
bool IsMobileControlEnabled { get; }
|
||||||
IMobileControlRoomBridge MobileControlRoomBridge { get; }
|
IMobileControlRoomBridge MobileControlRoomBridge { get; }
|
||||||
|
|
||||||
@@ -37,29 +32,14 @@ namespace PepperDash.Essentials.Core
|
|||||||
int ShutdownVacancySeconds { get; }
|
int ShutdownVacancySeconds { get; }
|
||||||
eShutdownType ShutdownType { get; }
|
eShutdownType ShutdownType { get; }
|
||||||
|
|
||||||
EssentialsRoomEmergencyBase Emergency { get; }
|
|
||||||
|
|
||||||
Core.Privacy.MicrophonePrivacyController MicrophonePrivacy { get; }
|
|
||||||
|
|
||||||
string LogoUrlLightBkgnd { get; }
|
string LogoUrlLightBkgnd { get; }
|
||||||
string LogoUrlDarkBkgnd { get; }
|
string LogoUrlDarkBkgnd { get; }
|
||||||
|
|
||||||
eVacancyMode VacancyMode { get; }
|
|
||||||
|
|
||||||
bool ZeroVolumeWhenSwtichingVolumeDevices { get; }
|
|
||||||
|
|
||||||
void StartShutdown(eShutdownType type);
|
void StartShutdown(eShutdownType type);
|
||||||
void StartRoomVacancyTimer(eVacancyMode mode);
|
|
||||||
|
|
||||||
void Shutdown();
|
void Shutdown();
|
||||||
|
|
||||||
void SetRoomOccupancy(IOccupancyStatusProvider statusProvider, int timeoutMinutes);
|
|
||||||
|
|
||||||
void PowerOnToDefaultOrLastSource();
|
void PowerOnToDefaultOrLastSource();
|
||||||
|
|
||||||
void SetDefaultLevels();
|
|
||||||
|
|
||||||
void RoomVacatedForTimeoutPeriod(object o);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -41,7 +41,6 @@ namespace PepperDash.Essentials.Core
|
|||||||
void RunRouteAction(string routeKey, string sourceListKey);
|
void RunRouteAction(string routeKey, string sourceListKey);
|
||||||
|
|
||||||
void RunRouteAction(string routeKey, string sourceListKey, Action successCallback);
|
void RunRouteAction(string routeKey, string sourceListKey, Action successCallback);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -78,4 +77,30 @@ namespace PepperDash.Essentials.Core
|
|||||||
bool HasEnvironmentalControlDevices { 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; }
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user