From 1e6d65fe53fd42b316ed96d68a7f16f64f5bc813 Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Tue, 29 Sep 2020 13:24:53 -0600 Subject: [PATCH] changing some things to check for updates to meetings list --- .../Codec/iHasScheduleAwareness.cs | 21 ++++---- .../VideoCodec/VideoCodecBase.cs | 49 +++++++++++-------- .../VideoCodec/ZoomRoom/ZoomRoom.cs | 4 +- 3 files changed, 42 insertions(+), 32 deletions(-) diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/Codec/iHasScheduleAwareness.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/Codec/iHasScheduleAwareness.cs index 43cc0343..5275ab03 100644 --- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/Codec/iHasScheduleAwareness.cs +++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/Codec/iHasScheduleAwareness.cs @@ -24,7 +24,7 @@ namespace PepperDash.Essentials.Devices.Common.Codec public class CodecScheduleAwareness { - List _Meetings; + List _meetings; public event EventHandler MeetingEventChange; @@ -45,11 +45,11 @@ namespace PepperDash.Essentials.Devices.Common.Codec { get { - return _Meetings; + return _meetings; } set { - _Meetings = value; + _meetings = value; var handler = MeetingsListHasChanged; if (handler != null) @@ -59,13 +59,13 @@ namespace PepperDash.Essentials.Devices.Common.Codec } } - private CTimer ScheduleChecker; + private CTimer _scheduleChecker; public CodecScheduleAwareness() { Meetings = new List(); - ScheduleChecker = new CTimer(CheckSchedule, null, 1000, 1000); + _scheduleChecker = new CTimer(CheckSchedule, null, 1000, 1000); } private void OnMeetingChange(eMeetingEventChangeType changeType, Meeting meeting) @@ -82,9 +82,9 @@ namespace PepperDash.Essentials.Devices.Common.Codec // Iterate the meeting list and check if any meeting need to do anythingk const double meetingTimeEpsilon = 0.0001; - foreach (Meeting m in Meetings) + foreach (var m in Meetings) { - eMeetingEventChangeType changeType = eMeetingEventChangeType.Unkown; + var changeType = eMeetingEventChangeType.Unkown; if (m.TimeToMeetingStart.TotalMinutes <= m.MeetingWarningMinutes.TotalMinutes) // Meeting is about to start changeType = eMeetingEventChangeType.MeetingStartWarning; @@ -108,14 +108,17 @@ namespace PepperDash.Essentials.Devices.Common.Codec /// public class Meeting { - public TimeSpan MeetingWarningMinutes = TimeSpan.FromMinutes(5); - public int MinutesBeforeMeeting; public string Id { get; set; } public string Organizer { get; set; } public string Title { get; set; } public string Agenda { get; set; } + + public TimeSpan MeetingWarningMinutes + { + get { return TimeSpan.FromMinutes(MinutesBeforeMeeting); } + } public TimeSpan TimeToMeetingStart { get diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs index 66b977cc..5dc9c258 100644 --- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs +++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/VideoCodecBase.cs @@ -489,27 +489,38 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec codec.CodecSchedule.MeetingWarningMinutes = i; }); - codec.CodecSchedule.MeetingsListHasChanged += (sender, args) => - { - var clearBytes = XSigHelpers.ClearOutputs(); + codec.CodecSchedule.MeetingsListHasChanged += (sender, args) => UpdateMeetingsList(codec, trilist, joinMap); - trilist.SetString(joinMap.Schedule.JoinNumber, - Encoding.GetEncoding(XSigEncoding).GetString(clearBytes, 0, clearBytes.Length)); - - var meetingsData = UpdateMeetingsListXSig(codec.CodecSchedule.Meetings); - - trilist.SetString(joinMap.Schedule.JoinNumber, meetingsData); - - trilist.SetSigFalseAction(joinMap.DialMeeting.JoinNumber, () => + codec.CodecSchedule.MeetingEventChange += + (sender, args) => { - if (codec.CodecSchedule.Meetings[0].Joinable) + if (args.ChangeType == eMeetingEventChangeType.MeetingStartWarning) { - Dial(codec.CodecSchedule.Meetings[0]); + UpdateMeetingsList(codec, trilist, joinMap); } - }); + }; + } - trilist.SetUshort(joinMap.MeetingCount.JoinNumber, (ushort) codec.CodecSchedule.Meetings.Count); - }; + private void UpdateMeetingsList(IHasScheduleAwareness codec, BasicTriList trilist, VideoCodecControllerJoinMap joinMap) + { + var clearBytes = XSigHelpers.ClearOutputs(); + + trilist.SetString(joinMap.Schedule.JoinNumber, + Encoding.GetEncoding(XSigEncoding).GetString(clearBytes, 0, clearBytes.Length)); + + var meetingsData = UpdateMeetingsListXSig(codec.CodecSchedule.Meetings); + + trilist.SetString(joinMap.Schedule.JoinNumber, meetingsData); + + trilist.SetSigFalseAction(joinMap.DialMeeting.JoinNumber, () => + { + if (codec.CodecSchedule.Meetings[0].Joinable) + { + Dial(codec.CodecSchedule.Meetings[0]); + } + }); + + trilist.SetUshort(joinMap.MeetingCount.JoinNumber, (ushort)codec.CodecSchedule.Meetings.Count); } private string UpdateMeetingsListXSig(List meetings) @@ -545,15 +556,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec foreach(var meeting in meetings) { - if (meetingIndex >= maxMeetings*offset) - { - break; - } var currentTime = DateTime.Now; if(meeting.StartTime < currentTime && meeting.EndTime < currentTime) continue; - if (meetingIndex > maxMeetings*offset) break; + if (meetingIndex >= maxMeetings*offset) break; //digitals tokenArray[digitalIndex] = new XSigDigitalToken(digitalIndex + 1, meeting.Joinable); diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs index 3a57bb43..4dbe2355 100644 --- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs +++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs @@ -843,7 +843,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom // this is a single participant event notification var participant = - JsonConvert.DeserializeObject(responseObj.ToString()); + JsonConvert.DeserializeObject( + responseObj.ToString()); if (participant != null) { @@ -1343,7 +1344,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom } - /// /// Increments the voluem ///