mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-10 18:24:50 +00:00
changing some things to check for updates to meetings list
This commit is contained in:
@@ -24,7 +24,7 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
||||
|
||||
public class CodecScheduleAwareness
|
||||
{
|
||||
List<Meeting> _Meetings;
|
||||
List<Meeting> _meetings;
|
||||
|
||||
public event EventHandler<MeetingEventArgs> 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<Meeting>();
|
||||
|
||||
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
|
||||
/// </summary>
|
||||
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
|
||||
|
||||
@@ -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<Meeting> 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);
|
||||
|
||||
@@ -843,7 +843,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
||||
// this is a single participant event notification
|
||||
|
||||
var participant =
|
||||
JsonConvert.DeserializeObject<zCommand.ListParticipant>(responseObj.ToString());
|
||||
JsonConvert.DeserializeObject<zCommand.ListParticipant>(
|
||||
responseObj.ToString());
|
||||
|
||||
if (participant != null)
|
||||
{
|
||||
@@ -1343,7 +1344,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Increments the voluem
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user