mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 20:54:55 +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 int _meetingWarningMinutes = 5;
|
||||||
|
|
||||||
|
private bool _nullMeeting { get; set; }
|
||||||
|
|
||||||
|
|
||||||
private Meeting _previousChangedMeeting;
|
private Meeting _previousChangedMeeting;
|
||||||
|
|
||||||
private eMeetingEventChangeType _previousChangeType = eMeetingEventChangeType.Unknown;
|
private eMeetingEventChangeType _previousChangeType = eMeetingEventChangeType.Unknown;
|
||||||
@@ -91,6 +94,23 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
|||||||
/// <param name="meeting"></param>
|
/// <param name="meeting"></param>
|
||||||
private void OnMeetingChange(eMeetingEventChangeType changeType, Meeting meeting)
|
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);
|
Debug.Console(2, "*****************OnMeetingChange. id: {0} changeType: {1}**********************", meeting.Id, changeType);
|
||||||
if (changeType != (changeType & meeting.NotifiedChangeTypes))
|
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
|
// Iterate the meeting list and check if any meeting need to do anything
|
||||||
|
|
||||||
const double meetingTimeEpsilon = 0.05;
|
const double meetingTimeEpsilon = 0.05;
|
||||||
|
if (Meetings.Count < 1)
|
||||||
|
{
|
||||||
|
OnMeetingChange(eMeetingEventChangeType.Unknown, null);
|
||||||
|
return;
|
||||||
|
}
|
||||||
foreach (var m in Meetings)
|
foreach (var m in Meetings)
|
||||||
{
|
{
|
||||||
var changeType = eMeetingEventChangeType.Unknown;
|
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.MeetingsListHasChanged += (sender, args) => UpdateMeetingsList(codec, trilist, joinMap);
|
||||||
codec.CodecSchedule.MeetingEventChange += (sender, args) =>
|
codec.CodecSchedule.MeetingEventChange += (sender, args) =>
|
||||||
{
|
{
|
||||||
|
if (args.Meeting == null)
|
||||||
|
{
|
||||||
|
UpdateMeetingsList(codec, trilist, joinMap);
|
||||||
|
}
|
||||||
if (args.ChangeType == eMeetingEventChangeType.MeetingStartWarning)
|
if (args.ChangeType == eMeetingEventChangeType.MeetingStartWarning)
|
||||||
{
|
{
|
||||||
UpdateMeetingsList(codec, trilist, joinMap);
|
UpdateMeetingsList(codec, trilist, joinMap);
|
||||||
@@ -909,6 +913,12 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
var stringIndex = 0;
|
var stringIndex = 0;
|
||||||
var meetingIndex = 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];
|
var tokenArray = new XSigToken[_meetingsToDisplay * offset];
|
||||||
/*
|
/*
|
||||||
* Digitals
|
* Digitals
|
||||||
@@ -1290,28 +1300,28 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
};
|
};
|
||||||
|
|
||||||
var joinCodec = this as IJoinCalls;
|
var joinCodec = this as IJoinCalls;
|
||||||
if (joinCodec != null)
|
if (joinCodec != null)
|
||||||
{
|
{
|
||||||
trilist.SetSigFalseAction(joinMap.JoinAllCalls.JoinNumber, () => joinCodec.JoinAllCalls());
|
trilist.SetSigFalseAction(joinMap.JoinAllCalls.JoinNumber, () => joinCodec.JoinAllCalls());
|
||||||
|
|
||||||
for (int i = 0; i < joinMap.JoinCallStart.JoinSpan; i++)
|
for (int i = 0; i < joinMap.JoinCallStart.JoinSpan; i++)
|
||||||
{
|
{
|
||||||
trilist.SetSigFalseAction((uint)(joinMap.JoinCallStart.JoinNumber + i), () =>
|
trilist.SetSigFalseAction((uint) (joinMap.JoinCallStart.JoinNumber + i), () =>
|
||||||
{
|
{
|
||||||
var call = ActiveCalls[i];
|
var call = ActiveCalls[i];
|
||||||
if (call != null)
|
if (call != null)
|
||||||
{
|
{
|
||||||
joinCodec.JoinCall(call);
|
joinCodec.JoinCall(call);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Debug.Console(0, this, "[Join Call] Unable to find call at index '{0}'", i);
|
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)
|
if (holdCodec != null)
|
||||||
{
|
{
|
||||||
trilist.SetSigFalseAction(joinMap.HoldAllCalls.JoinNumber, () =>
|
trilist.SetSigFalseAction(joinMap.HoldAllCalls.JoinNumber, () =>
|
||||||
|
|||||||
Reference in New Issue
Block a user