mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-04 07:14:58 +00:00
Added behaviour options for MicrophonePrivacyController to track either room power state or room call state from config
This commit is contained in:
@@ -19,6 +19,8 @@ namespace PepperDash.Essentials.Devices.Common.Microphones
|
||||
{
|
||||
MicrophonePrivacyControllerConfig Config;
|
||||
|
||||
bool initialized;
|
||||
|
||||
public bool EnableLeds
|
||||
{
|
||||
get
|
||||
@@ -29,13 +31,16 @@ namespace PepperDash.Essentials.Devices.Common.Microphones
|
||||
{
|
||||
_enableLeds = value;
|
||||
|
||||
if (value)
|
||||
if (initialized)
|
||||
{
|
||||
CheckPrivacyMode();
|
||||
SetLedStates();
|
||||
if (value)
|
||||
{
|
||||
CheckPrivacyMode();
|
||||
SetLedStates();
|
||||
}
|
||||
else
|
||||
TurnOffAllLeds();
|
||||
}
|
||||
else
|
||||
TurnOffAllLeds();
|
||||
}
|
||||
}
|
||||
bool _enableLeds;
|
||||
@@ -84,6 +89,8 @@ namespace PepperDash.Essentials.Devices.Common.Microphones
|
||||
|
||||
CheckPrivacyMode();
|
||||
|
||||
initialized = true;
|
||||
|
||||
return base.CustomActivate();
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,12 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
{
|
||||
get
|
||||
{
|
||||
var value = ActiveCalls.Any(c => c.IsActiveCall);
|
||||
bool value;
|
||||
|
||||
if (ActiveCalls != null)
|
||||
value = ActiveCalls.Any(c => c.IsActiveCall);
|
||||
else
|
||||
value = false;
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,16 +112,39 @@ namespace PepperDash.Essentials.Room.Config
|
||||
{
|
||||
mP.SetPrivacyDevice(room);
|
||||
|
||||
// Tie LED enable to room power state
|
||||
room.OnFeedback.OutputChange += (o, a) =>
|
||||
{
|
||||
if (room.OnFeedback.BoolValue)
|
||||
mP.EnableLeds = true;
|
||||
else
|
||||
mP.EnableLeds = false;
|
||||
};
|
||||
var behaviour = props.MicrophonePrivacy.Behaviour.ToLower();
|
||||
|
||||
mP.EnableLeds = room.OnFeedback.BoolValue;
|
||||
if (behaviour != null)
|
||||
{
|
||||
if (behaviour == "trackroomstate")
|
||||
{
|
||||
// Tie LED enable to room power state
|
||||
room.OnFeedback.OutputChange += (o, a) =>
|
||||
{
|
||||
if (room.OnFeedback.BoolValue)
|
||||
mP.EnableLeds = true;
|
||||
else
|
||||
mP.EnableLeds = false;
|
||||
};
|
||||
|
||||
mP.EnableLeds = room.OnFeedback.BoolValue;
|
||||
}
|
||||
else if (behaviour == "trackcallstate")
|
||||
{
|
||||
// Tie LED enable to room power state
|
||||
room.InCallFeedback.OutputChange += (o, a) =>
|
||||
{
|
||||
if (room.InCallFeedback.BoolValue)
|
||||
mP.EnableLeds = true;
|
||||
else
|
||||
mP.EnableLeds = false;
|
||||
};
|
||||
|
||||
mP.EnableLeds = room.InCallFeedback.BoolValue;
|
||||
}
|
||||
}
|
||||
else
|
||||
Debug.Console(0, "No behaviour defined for MicrophonePrivacyController");
|
||||
|
||||
return mP;
|
||||
}
|
||||
@@ -153,6 +176,7 @@ namespace PepperDash.Essentials.Room.Config
|
||||
public class EssentialsRoomMicrophonePrivacyConfig
|
||||
{
|
||||
public string DeviceKey { get; set; }
|
||||
public string Behaviour { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user