mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 12:44:58 +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
|
public class CodecScheduleAwareness
|
||||||
{
|
{
|
||||||
List<Meeting> _Meetings;
|
List<Meeting> _meetings;
|
||||||
|
|
||||||
public event EventHandler<MeetingEventArgs> MeetingEventChange;
|
public event EventHandler<MeetingEventArgs> MeetingEventChange;
|
||||||
|
|
||||||
@@ -45,11 +45,11 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return _Meetings;
|
return _meetings;
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
_Meetings = value;
|
_meetings = value;
|
||||||
|
|
||||||
var handler = MeetingsListHasChanged;
|
var handler = MeetingsListHasChanged;
|
||||||
if (handler != null)
|
if (handler != null)
|
||||||
@@ -59,13 +59,13 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private CTimer ScheduleChecker;
|
private CTimer _scheduleChecker;
|
||||||
|
|
||||||
public CodecScheduleAwareness()
|
public CodecScheduleAwareness()
|
||||||
{
|
{
|
||||||
Meetings = new List<Meeting>();
|
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)
|
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
|
// Iterate the meeting list and check if any meeting need to do anythingk
|
||||||
|
|
||||||
const double meetingTimeEpsilon = 0.0001;
|
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
|
if (m.TimeToMeetingStart.TotalMinutes <= m.MeetingWarningMinutes.TotalMinutes) // Meeting is about to start
|
||||||
changeType = eMeetingEventChangeType.MeetingStartWarning;
|
changeType = eMeetingEventChangeType.MeetingStartWarning;
|
||||||
@@ -108,14 +108,17 @@ namespace PepperDash.Essentials.Devices.Common.Codec
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class Meeting
|
public class Meeting
|
||||||
{
|
{
|
||||||
public TimeSpan MeetingWarningMinutes = TimeSpan.FromMinutes(5);
|
|
||||||
|
|
||||||
public int MinutesBeforeMeeting;
|
public int MinutesBeforeMeeting;
|
||||||
|
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
public string Organizer { get; set; }
|
public string Organizer { get; set; }
|
||||||
public string Title { get; set; }
|
public string Title { get; set; }
|
||||||
public string Agenda { get; set; }
|
public string Agenda { get; set; }
|
||||||
|
|
||||||
|
public TimeSpan MeetingWarningMinutes
|
||||||
|
{
|
||||||
|
get { return TimeSpan.FromMinutes(MinutesBeforeMeeting); }
|
||||||
|
}
|
||||||
public TimeSpan TimeToMeetingStart
|
public TimeSpan TimeToMeetingStart
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|||||||
@@ -489,27 +489,38 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
codec.CodecSchedule.MeetingWarningMinutes = i;
|
codec.CodecSchedule.MeetingWarningMinutes = i;
|
||||||
});
|
});
|
||||||
|
|
||||||
codec.CodecSchedule.MeetingsListHasChanged += (sender, args) =>
|
codec.CodecSchedule.MeetingsListHasChanged += (sender, args) => UpdateMeetingsList(codec, trilist, joinMap);
|
||||||
{
|
|
||||||
var clearBytes = XSigHelpers.ClearOutputs();
|
|
||||||
|
|
||||||
trilist.SetString(joinMap.Schedule.JoinNumber,
|
codec.CodecSchedule.MeetingEventChange +=
|
||||||
Encoding.GetEncoding(XSigEncoding).GetString(clearBytes, 0, clearBytes.Length));
|
(sender, args) =>
|
||||||
|
|
||||||
var meetingsData = UpdateMeetingsListXSig(codec.CodecSchedule.Meetings);
|
|
||||||
|
|
||||||
trilist.SetString(joinMap.Schedule.JoinNumber, meetingsData);
|
|
||||||
|
|
||||||
trilist.SetSigFalseAction(joinMap.DialMeeting.JoinNumber, () =>
|
|
||||||
{
|
{
|
||||||
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)
|
private string UpdateMeetingsListXSig(List<Meeting> meetings)
|
||||||
@@ -545,15 +556,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
|
|
||||||
foreach(var meeting in meetings)
|
foreach(var meeting in meetings)
|
||||||
{
|
{
|
||||||
if (meetingIndex >= maxMeetings*offset)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
var currentTime = DateTime.Now;
|
var currentTime = DateTime.Now;
|
||||||
|
|
||||||
if(meeting.StartTime < currentTime && meeting.EndTime < currentTime) continue;
|
if(meeting.StartTime < currentTime && meeting.EndTime < currentTime) continue;
|
||||||
|
|
||||||
if (meetingIndex > maxMeetings*offset) break;
|
if (meetingIndex >= maxMeetings*offset) break;
|
||||||
|
|
||||||
//digitals
|
//digitals
|
||||||
tokenArray[digitalIndex] = new XSigDigitalToken(digitalIndex + 1, meeting.Joinable);
|
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
|
// this is a single participant event notification
|
||||||
|
|
||||||
var participant =
|
var participant =
|
||||||
JsonConvert.DeserializeObject<zCommand.ListParticipant>(responseObj.ToString());
|
JsonConvert.DeserializeObject<zCommand.ListParticipant>(
|
||||||
|
responseObj.ToString());
|
||||||
|
|
||||||
if (participant != null)
|
if (participant != null)
|
||||||
{
|
{
|
||||||
@@ -1343,7 +1344,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Increments the voluem
|
/// Increments the voluem
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user