mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 04:34:56 +00:00
Merge pull request #885 from PepperDash/hotfix/videocodecbase-max-meeting-xsig-value-set
fix: Added MeetingsToDisplay analog join to join map
This commit is contained in:
@@ -924,6 +924,21 @@ namespace PepperDash.Essentials.Core.Bridges.JoinMaps
|
|||||||
|
|
||||||
#region Analog
|
#region Analog
|
||||||
|
|
||||||
|
// TODO [ ] hotfix/videocodecbase-max-meeting-xsig-set
|
||||||
|
[JoinName("MeetingsToDisplay")]
|
||||||
|
public JoinDataComplete MeetingsToDisplay = new JoinDataComplete(
|
||||||
|
new JoinData
|
||||||
|
{
|
||||||
|
JoinNumber = 40,
|
||||||
|
JoinSpan = 1
|
||||||
|
},
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Set/FB the number of meetings to display via the bridge xsig; default: 3 meetings.",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
|
||||||
|
JoinType = eJoinType.Analog
|
||||||
|
});
|
||||||
|
|
||||||
[JoinName("MinutesBeforeMeetingStart")]
|
[JoinName("MinutesBeforeMeetingStart")]
|
||||||
public JoinDataComplete MinutesBeforeMeetingStart = new JoinDataComplete(
|
public JoinDataComplete MinutesBeforeMeetingStart = new JoinDataComplete(
|
||||||
new JoinData
|
new JoinData
|
||||||
|
|||||||
@@ -41,6 +41,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
SharingSourceFeedback = new StringFeedback(SharingSourceFeedbackFunc);
|
SharingSourceFeedback = new StringFeedback(SharingSourceFeedbackFunc);
|
||||||
SharingContentIsOnFeedback = new BoolFeedback(SharingContentIsOnFeedbackFunc);
|
SharingContentIsOnFeedback = new BoolFeedback(SharingContentIsOnFeedbackFunc);
|
||||||
|
|
||||||
|
// TODO [ ] hotfix/videocodecbase-max-meeting-xsig-set
|
||||||
|
MeetingsToDisplayFeedback = new IntFeedback(() => MeetingsToDisplay);
|
||||||
|
|
||||||
InputPorts = new RoutingPortCollection<RoutingInputPort>();
|
InputPorts = new RoutingPortCollection<RoutingInputPort>();
|
||||||
OutputPorts = new RoutingPortCollection<RoutingOutputPort>();
|
OutputPorts = new RoutingPortCollection<RoutingOutputPort>();
|
||||||
|
|
||||||
@@ -792,6 +795,10 @@ ScreenIndexIsPinnedTo: {8} (a{17})
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// TODO [ ] hotfix/videocodecbase-max-meeting-xsig-set
|
||||||
|
trilist.SetUShortSigAction(joinMap.MeetingsToDisplay.JoinNumber, m => MeetingsToDisplay = m);
|
||||||
|
MeetingsToDisplayFeedback.LinkInputSig(trilist.UShortInput[joinMap.MeetingsToDisplay.JoinNumber]);
|
||||||
|
|
||||||
trilist.OnlineStatusChange += (device, args) =>
|
trilist.OnlineStatusChange += (device, args) =>
|
||||||
{
|
{
|
||||||
if (!args.DeviceOnLine) return;
|
if (!args.DeviceOnLine) return;
|
||||||
@@ -799,6 +806,8 @@ ScreenIndexIsPinnedTo: {8} (a{17})
|
|||||||
// TODO [ ] Issue #868
|
// TODO [ ] Issue #868
|
||||||
trilist.SetString(joinMap.Schedule.JoinNumber, "\xFC");
|
trilist.SetString(joinMap.Schedule.JoinNumber, "\xFC");
|
||||||
UpdateMeetingsList(codec, trilist, joinMap);
|
UpdateMeetingsList(codec, trilist, joinMap);
|
||||||
|
// TODO [ ] hotfix/videocodecbase-max-meeting-xsig-set
|
||||||
|
MeetingsToDisplayFeedback.LinkInputSig(trilist.UShortInput[joinMap.MeetingsToDisplay.JoinNumber]);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -832,17 +841,34 @@ ScreenIndexIsPinnedTo: {8} (a{17})
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// TODO [ ] hotfix/videocodecbase-max-meeting-xsig-set
|
||||||
|
private int _meetingsToDisplay = 3;
|
||||||
|
// TODO [ ] hotfix/videocodecbase-max-meeting-xsig-set
|
||||||
|
protected int MeetingsToDisplay
|
||||||
|
{
|
||||||
|
get { return _meetingsToDisplay; }
|
||||||
|
set {
|
||||||
|
_meetingsToDisplay = (ushort) (value == 0 ? 3 : value);
|
||||||
|
MeetingsToDisplayFeedback.FireUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO [ ] hotfix/videocodecbase-max-meeting-xsig-set
|
||||||
|
public IntFeedback MeetingsToDisplayFeedback { get; set; }
|
||||||
|
|
||||||
private string UpdateMeetingsListXSig(List<Meeting> meetings)
|
private string UpdateMeetingsListXSig(List<Meeting> meetings)
|
||||||
{
|
{
|
||||||
const int maxMeetings = 3;
|
// TODO [ ] hotfix/videocodecbase-max-meeting-xsig-set
|
||||||
|
//const int _meetingsToDisplay = 3;
|
||||||
const int maxDigitals = 2;
|
const int maxDigitals = 2;
|
||||||
const int maxStrings = 7;
|
const int maxStrings = 7;
|
||||||
const int offset = maxDigitals + maxStrings;
|
const int offset = maxDigitals + maxStrings;
|
||||||
var digitalIndex = maxStrings * maxMeetings; //15
|
var digitalIndex = maxStrings * _meetingsToDisplay; //15
|
||||||
var stringIndex = 0;
|
var stringIndex = 0;
|
||||||
var meetingIndex = 0;
|
var meetingIndex = 0;
|
||||||
|
|
||||||
var tokenArray = new XSigToken[maxMeetings * offset];
|
var tokenArray = new XSigToken[_meetingsToDisplay * offset];
|
||||||
/*
|
/*
|
||||||
* Digitals
|
* Digitals
|
||||||
* IsJoinable - 1
|
* IsJoinable - 1
|
||||||
@@ -865,7 +891,7 @@ ScreenIndexIsPinnedTo: {8} (a{17})
|
|||||||
|
|
||||||
if (meeting.StartTime < currentTime && meeting.EndTime < currentTime) continue;
|
if (meeting.StartTime < currentTime && meeting.EndTime < currentTime) continue;
|
||||||
|
|
||||||
if (meetingIndex >= maxMeetings * offset)
|
if (meetingIndex >= _meetingsToDisplay * offset)
|
||||||
{
|
{
|
||||||
Debug.Console(2, this, "Max Meetings reached");
|
Debug.Console(2, this, "Max Meetings reached");
|
||||||
break;
|
break;
|
||||||
@@ -890,10 +916,10 @@ ScreenIndexIsPinnedTo: {8} (a{17})
|
|||||||
stringIndex += maxStrings;
|
stringIndex += maxStrings;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (meetingIndex < maxMeetings * offset)
|
while (meetingIndex < _meetingsToDisplay * offset)
|
||||||
{
|
{
|
||||||
Debug.Console(2, this, "Clearing unused data. Meeting Index: {0} MaxMeetings * Offset: {1}",
|
Debug.Console(2, this, "Clearing unused data. Meeting Index: {0} MaxMeetings * Offset: {1}",
|
||||||
meetingIndex, maxMeetings * offset);
|
meetingIndex, _meetingsToDisplay * offset);
|
||||||
|
|
||||||
//digitals
|
//digitals
|
||||||
tokenArray[digitalIndex] = new XSigDigitalToken(digitalIndex + 1, false);
|
tokenArray[digitalIndex] = new XSigDigitalToken(digitalIndex + 1, false);
|
||||||
|
|||||||
Reference in New Issue
Block a user