mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-08 09:15:06 +00:00
fix: Add method by which to clear MeetingInfo xSig when there are no bookings
This commit is contained in:
@@ -37,6 +37,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
|
||||
private int _meetingWarningMinutes = 5;
|
||||
|
||||
private bool _nullMeeting { get; set; }
|
||||
|
||||
|
||||
private Meeting _previousChangedMeeting;
|
||||
|
||||
private eMeetingEventChangeType _previousChangeType = eMeetingEventChangeType.Unknown;
|
||||
@@ -91,6 +94,23 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
/// <param name="meeting"></param>
|
||||
private void OnMeetingChange(eMeetingEventChangeType changeType, Meeting meeting)
|
||||
{
|
||||
if (meeting == null)
|
||||
{
|
||||
var message = _nullMeeting
|
||||
? "*****************OnMeetingChange No meetings to update*****************"
|
||||
: "*****************OnMeetingChange No meetings present. Clearing List*****************";
|
||||
Debug.Console(2, message);
|
||||
if (_nullMeeting) return;
|
||||
_nullMeeting = true;
|
||||
var handler = MeetingEventChange;
|
||||
if (handler != null)
|
||||
{
|
||||
handler(this, new MeetingEventArgs() { ChangeType = eMeetingEventChangeType.Unknown, Meeting = null });
|
||||
}
|
||||
return;
|
||||
|
||||
}
|
||||
_nullMeeting = false;
|
||||
Debug.Console(2, "*****************OnMeetingChange. id: {0} changeType: {1}**********************", meeting.Id, changeType);
|
||||
if (changeType != (changeType & meeting.NotifiedChangeTypes))
|
||||
{
|
||||
@@ -119,6 +139,11 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
// Iterate the meeting list and check if any meeting need to do anything
|
||||
|
||||
const double meetingTimeEpsilon = 0.05;
|
||||
if (Meetings.Count < 1)
|
||||
{
|
||||
OnMeetingChange(eMeetingEventChangeType.Unknown, null);
|
||||
return;
|
||||
}
|
||||
foreach (var m in Meetings)
|
||||
{
|
||||
var changeType = eMeetingEventChangeType.Unknown;
|
||||
|
||||
@@ -831,6 +831,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
codec.CodecSchedule.MeetingsListHasChanged += (sender, args) => UpdateMeetingsList(codec, trilist, joinMap);
|
||||
codec.CodecSchedule.MeetingEventChange += (sender, args) =>
|
||||
{
|
||||
if (args.Meeting == null)
|
||||
{
|
||||
UpdateMeetingsList(codec, trilist, joinMap);
|
||||
}
|
||||
if (args.ChangeType == eMeetingEventChangeType.MeetingStartWarning)
|
||||
{
|
||||
UpdateMeetingsList(codec, trilist, joinMap);
|
||||
@@ -909,6 +913,12 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
var stringIndex = 0;
|
||||
var meetingIndex = 0;
|
||||
|
||||
if (meetings.Count == 0)
|
||||
{
|
||||
var clearBytes = XSigHelpers.ClearOutputs();
|
||||
return Encoding.GetEncoding(XSigEncoding).GetString(clearBytes, 0, clearBytes.Length);
|
||||
}
|
||||
|
||||
var tokenArray = new XSigToken[_meetingsToDisplay * offset];
|
||||
/*
|
||||
* Digitals
|
||||
@@ -1290,28 +1300,28 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
||||
};
|
||||
|
||||
var joinCodec = this as IJoinCalls;
|
||||
if (joinCodec != null)
|
||||
{
|
||||
trilist.SetSigFalseAction(joinMap.JoinAllCalls.JoinNumber, () => joinCodec.JoinAllCalls());
|
||||
if (joinCodec != null)
|
||||
{
|
||||
trilist.SetSigFalseAction(joinMap.JoinAllCalls.JoinNumber, () => joinCodec.JoinAllCalls());
|
||||
|
||||
for (int i = 0; i < joinMap.JoinCallStart.JoinSpan; i++)
|
||||
{
|
||||
trilist.SetSigFalseAction((uint)(joinMap.JoinCallStart.JoinNumber + i), () =>
|
||||
{
|
||||
var call = ActiveCalls[i];
|
||||
if (call != null)
|
||||
{
|
||||
joinCodec.JoinCall(call);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Console(0, this, "[Join Call] Unable to find call at index '{0}'", i);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < joinMap.JoinCallStart.JoinSpan; i++)
|
||||
{
|
||||
trilist.SetSigFalseAction((uint) (joinMap.JoinCallStart.JoinNumber + i), () =>
|
||||
{
|
||||
var call = ActiveCalls[i];
|
||||
if (call != null)
|
||||
{
|
||||
joinCodec.JoinCall(call);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Console(0, this, "[Join Call] Unable to find call at index '{0}'", i);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
var holdCodec = this as IHasCallHold;
|
||||
var holdCodec = this as IHasCallHold;
|
||||
if (holdCodec != null)
|
||||
{
|
||||
trilist.SetSigFalseAction(joinMap.HoldAllCalls.JoinNumber, () =>
|
||||
|
||||
Reference in New Issue
Block a user