feat: Finished updating LinkToApi to bridge existing features.

This commit is contained in:
Jason DeVito
2021-12-06 17:09:28 -06:00
parent c48f697b7e
commit 3cf85f99ce
2 changed files with 349 additions and 305 deletions

View File

@@ -1510,7 +1510,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
{ {
Status.NeedWaitForHost = JsonConvert.DeserializeObject<zEvent.NeedWaitForHost>(responseObj.ToString()); Status.NeedWaitForHost = JsonConvert.DeserializeObject<zEvent.NeedWaitForHost>(responseObj.ToString());
Debug.Console(1, this, "NeedWaitForHost: {0}", Status.NeedWaitForHost.Wait); Debug.Console(1, this, "WaitingForHost: {0}", Status.NeedWaitForHost.Wait);
if (Status.NeedWaitForHost.Wait) if (Status.NeedWaitForHost.Wait)
{ {
@@ -1972,6 +1972,21 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
MeetingIsLockedFeedback.BoolValue MeetingIsLockedFeedback.BoolValue
); );
} }
// TODO [ ] Issue #868
else if (item.Status == eCodecCallStatus.Disconnected)
{
MeetingInfo = new MeetingInfo(
string.Empty,
string.Empty,
string.Empty,
string.Empty,
string.Empty,
false,
false,
false,
false
);
}
base.OnCallStatusChange(item); base.OnCallStatusChange(item);
@@ -2283,8 +2298,22 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
layoutSizeCodec.SelfviewPipSizeFeedback.LinkInputSig(trilist.StringInput[joinMap.GetSetSelfviewPipSize.JoinNumber]); layoutSizeCodec.SelfviewPipSizeFeedback.LinkInputSig(trilist.StringInput[joinMap.GetSetSelfviewPipSize.JoinNumber]);
} }
// TODO [ ] #868 // TODO [ ] Issue #868
MeetingInfoChanged += (device, args) =>
{
trilist.SetString(joinMap.MeetingInfoId.JoinNumber, args.Info.Id);
trilist.SetString(joinMap.MeetingInfoHost.JoinNumber, args.Info.Host);
trilist.SetString(joinMap.MeetingInfoPassword.JoinNumber, args.Info.Password);
trilist.SetBool(joinMap.IsHost.JoinNumber, args.Info.IsHost);
trilist.SetBool(joinMap.ShareOnlyMeeting.JoinNumber, args.Info.IsSharingMeeting);
trilist.SetBool(joinMap.WaitingForHost.JoinNumber, args.Info.WaitingForHost);
//trilist.SetString(joinMap.CurrentSource.JoinNumber, args.Info.ShareStatus);
};
// TODO [ ] Issue #868
trilist.SetSigTrueAction(joinMap.StartMeetingNow.JoinNumber, () => StartMeeting(0));
trilist.SetSigTrueAction(joinMap.ShareOnlyMeeting.JoinNumber, StartSharingOnlyMeeting);
trilist.SetSigTrueAction(joinMap.StartNormalMeetingFromSharingOnlyMeeting.JoinNumber, StartNormalMeetingFromSharingOnlyMeeting);
trilist.OnlineStatusChange += (device, args) => trilist.OnlineStatusChange += (device, args) =>
{ {

View File

@@ -1,11 +1,11 @@
using System; using System;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges.JoinMaps; using PepperDash.Essentials.Core.Bridges.JoinMaps;
namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
{ {
public class ZoomRoomJoinMap : VideoCodecControllerJoinMap public class ZoomRoomJoinMap : VideoCodecControllerJoinMap
{ {
#region Digital #region Digital
// TODO [ ] Issue #868 // TODO [ ] Issue #868
@@ -39,8 +39,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
}); });
// TODO [ ] Issue #868 // TODO [ ] Issue #868
[JoinName("NeedWaitForHost")] [JoinName("WaitingForHost")]
public JoinDataComplete NeedWaitForHost = new JoinDataComplete( public JoinDataComplete WaitingForHost = new JoinDataComplete(
new JoinData new JoinData
{ {
JoinNumber = 8, JoinNumber = 8,
@@ -96,255 +96,270 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
Description = "Triggers a share only meeting, feedback indicates the current meeting is share only", Description = "Triggers a share only meeting, feedback indicates the current meeting is share only",
JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
JoinType = eJoinType.Digital JoinType = eJoinType.Digital
}); });
[JoinName("CanSwapContentWithThumbnail")] // TODO [ ] Issue #868
public JoinDataComplete CanSwapContentWithThumbnail = new JoinDataComplete( [JoinName("StartNormalMeetingFromSharingOnlyMeeting")]
new JoinData public JoinDataComplete StartNormalMeetingFromSharingOnlyMeeting = new JoinDataComplete(
{ new JoinData
JoinNumber = 206, {
JoinSpan = 1 JoinNumber = 27,
}, JoinSpan = 1
new JoinMetadata },
{ new JoinMetadata
Description = "FB Indicates if content can be swapped with thumbnail", {
JoinCapabilities = eJoinCapabilities.ToSIMPL, Description = "Starts a normal meeting from a share only meeting",
JoinType = eJoinType.Digital JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
}); JoinType = eJoinType.Digital
});
[JoinName("SwapContentWithThumbnail")]
public JoinDataComplete SwapContentWithThumbnail = new JoinDataComplete( [JoinName("CanSwapContentWithThumbnail")]
new JoinData public JoinDataComplete CanSwapContentWithThumbnail = new JoinDataComplete(
{ new JoinData
JoinNumber = 206, {
JoinSpan = 1 JoinNumber = 206,
}, JoinSpan = 1
new JoinMetadata },
{ new JoinMetadata
Description = "Pulse to swap content with thumbnail. FB reports current state", {
JoinCapabilities = eJoinCapabilities.ToFromSIMPL, Description = "FB Indicates if content can be swapped with thumbnail",
JoinType = eJoinType.Digital JoinCapabilities = eJoinCapabilities.ToSIMPL,
}); JoinType = eJoinType.Digital
});
[JoinName("GetAvailableLayouts")]
public JoinDataComplete GetAvailableLayouts = new JoinDataComplete( [JoinName("SwapContentWithThumbnail")]
new JoinData public JoinDataComplete SwapContentWithThumbnail = new JoinDataComplete(
{ new JoinData
JoinNumber = 215, {
JoinSpan = 1 JoinNumber = 206,
}, JoinSpan = 1
new JoinMetadata },
{ new JoinMetadata
Description = "Gets the available layouts. Will update the LayoutXXXXXIsAvailbale signals.", {
JoinCapabilities = eJoinCapabilities.FromSIMPL, Description = "Pulse to swap content with thumbnail. FB reports current state",
JoinType = eJoinType.Digital JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
}); JoinType = eJoinType.Digital
});
[JoinName("LayoutIsOnFirstPage")]
public JoinDataComplete LayoutIsOnFirstPage = new JoinDataComplete( [JoinName("GetAvailableLayouts")]
new JoinData public JoinDataComplete GetAvailableLayouts = new JoinDataComplete(
{ new JoinData
JoinNumber = 216, {
JoinSpan = 1 JoinNumber = 215,
}, JoinSpan = 1
new JoinMetadata },
{ new JoinMetadata
Description = "Indicates if layout is on first page", {
JoinCapabilities = eJoinCapabilities.ToSIMPL, Description = "Gets the available layouts. Will update the LayoutXXXXXIsAvailbale signals.",
JoinType = eJoinType.Digital JoinCapabilities = eJoinCapabilities.FromSIMPL,
}); JoinType = eJoinType.Digital
});
[JoinName("LayoutIsOnLastPage")]
public JoinDataComplete LayoutIsOnLastPage = new JoinDataComplete( [JoinName("LayoutIsOnFirstPage")]
new JoinData public JoinDataComplete LayoutIsOnFirstPage = new JoinDataComplete(
{ new JoinData
JoinNumber = 217, {
JoinSpan = 1 JoinNumber = 216,
}, JoinSpan = 1
new JoinMetadata },
{ new JoinMetadata
Description = "Indicates if layout is on first page", {
JoinCapabilities = eJoinCapabilities.ToSIMPL, Description = "Indicates if layout is on first page",
JoinType = eJoinType.Digital JoinCapabilities = eJoinCapabilities.ToSIMPL,
}); JoinType = eJoinType.Digital
});
[JoinName("LayoutTurnToNextPage")]
public JoinDataComplete LayoutTurnToNextPage = new JoinDataComplete( [JoinName("LayoutIsOnLastPage")]
new JoinData public JoinDataComplete LayoutIsOnLastPage = new JoinDataComplete(
{ new JoinData
JoinNumber = 216, {
JoinSpan = 1 JoinNumber = 217,
}, JoinSpan = 1
new JoinMetadata },
{ new JoinMetadata
Description = "Turns layout view to next page", {
JoinCapabilities = eJoinCapabilities.FromSIMPL, Description = "Indicates if layout is on first page",
JoinType = eJoinType.Digital JoinCapabilities = eJoinCapabilities.ToSIMPL,
}); JoinType = eJoinType.Digital
});
[JoinName("LayoutTurnToPreviousPage")]
public JoinDataComplete LayoutTurnToPreviousPage = new JoinDataComplete( [JoinName("LayoutTurnToNextPage")]
new JoinData public JoinDataComplete LayoutTurnToNextPage = new JoinDataComplete(
{ new JoinData
JoinNumber = 217, {
JoinSpan = 1 JoinNumber = 216,
}, JoinSpan = 1
new JoinMetadata },
{ new JoinMetadata
Description = "Turns layout view to previous page", {
JoinCapabilities = eJoinCapabilities.FromSIMPL, Description = "Turns layout view to next page",
JoinType = eJoinType.Digital JoinCapabilities = eJoinCapabilities.FromSIMPL,
}); JoinType = eJoinType.Digital
});
[JoinName("LayoutGalleryIsAvailable")]
public JoinDataComplete LayoutGalleryIsAvailable = new JoinDataComplete( [JoinName("LayoutTurnToPreviousPage")]
new JoinData public JoinDataComplete LayoutTurnToPreviousPage = new JoinDataComplete(
{ new JoinData
JoinNumber = 221, {
JoinSpan = 1 JoinNumber = 217,
}, JoinSpan = 1
new JoinMetadata },
{ new JoinMetadata
Description = "FB Indicates if layout 'Gallery' is available", {
JoinCapabilities = eJoinCapabilities.ToSIMPL, Description = "Turns layout view to previous page",
JoinType = eJoinType.DigitalSerial JoinCapabilities = eJoinCapabilities.FromSIMPL,
}); JoinType = eJoinType.Digital
});
[JoinName("LayoutSpeakerIsAvailable")]
public JoinDataComplete LayoutSpeakerIsAvailable = new JoinDataComplete( [JoinName("LayoutGalleryIsAvailable")]
new JoinData public JoinDataComplete LayoutGalleryIsAvailable = new JoinDataComplete(
{ new JoinData
JoinNumber = 222, {
JoinSpan = 1 JoinNumber = 221,
}, JoinSpan = 1
new JoinMetadata },
{ new JoinMetadata
Description = "FB Indicates if layout 'Speaker' is available", {
JoinCapabilities = eJoinCapabilities.ToSIMPL, Description = "FB Indicates if layout 'Gallery' is available",
JoinType = eJoinType.DigitalSerial JoinCapabilities = eJoinCapabilities.ToSIMPL,
}); JoinType = eJoinType.DigitalSerial
});
[JoinName("LayoutStripIsAvailable")]
public JoinDataComplete LayoutStripIsAvailable = new JoinDataComplete( [JoinName("LayoutSpeakerIsAvailable")]
new JoinData public JoinDataComplete LayoutSpeakerIsAvailable = new JoinDataComplete(
{ new JoinData
JoinNumber = 223, {
JoinSpan = 1 JoinNumber = 222,
}, JoinSpan = 1
new JoinMetadata },
{ new JoinMetadata
Description = "FB Indicates if layout 'Strip' is available", {
JoinCapabilities = eJoinCapabilities.ToSIMPL, Description = "FB Indicates if layout 'Speaker' is available",
JoinType = eJoinType.DigitalSerial JoinCapabilities = eJoinCapabilities.ToSIMPL,
}); JoinType = eJoinType.DigitalSerial
});
[JoinName("LayoutShareAllIsAvailable")]
public JoinDataComplete LayoutShareAllIsAvailable = new JoinDataComplete( [JoinName("LayoutStripIsAvailable")]
new JoinData public JoinDataComplete LayoutStripIsAvailable = new JoinDataComplete(
{ new JoinData
JoinNumber = 224, {
JoinSpan = 1 JoinNumber = 223,
}, JoinSpan = 1
new JoinMetadata },
{ new JoinMetadata
Description = "FB Indicates if layout 'ShareAll' is available", {
JoinCapabilities = eJoinCapabilities.ToSIMPL, Description = "FB Indicates if layout 'Strip' is available",
JoinType = eJoinType.DigitalSerial JoinCapabilities = eJoinCapabilities.ToSIMPL,
}); JoinType = eJoinType.DigitalSerial
});
// TODO: #714 [ ] JoinMap >> SelfivewPipSizeToggle
[JoinName("SelfviewPipSizeToggle")] [JoinName("LayoutShareAllIsAvailable")]
public JoinDataComplete SelfviewPipSizeToggle = new JoinDataComplete( public JoinDataComplete LayoutShareAllIsAvailable = new JoinDataComplete(
new JoinData new JoinData
{ {
JoinNumber = 231, JoinNumber = 224,
JoinSpan = 1 JoinSpan = 1
}, },
new JoinMetadata new JoinMetadata
{ {
Description = "Toggles the selfview pip size, (aka layout size)", Description = "FB Indicates if layout 'ShareAll' is available",
JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Digital JoinType = eJoinType.DigitalSerial
}); });
//[JoinName("ParticipantAudioMuteToggleStart")] // TODO: #714 [ ] JoinMap >> SelfivewPipSizeToggle
//public JoinDataComplete ParticipantAudioMuteToggleStart = new JoinDataComplete( [JoinName("SelfviewPipSizeToggle")]
// new JoinData public JoinDataComplete SelfviewPipSizeToggle = new JoinDataComplete(
// { new JoinData
// JoinNumber = 500, {
// JoinSpan = 100 JoinNumber = 231,
// }, JoinSpan = 1
// new JoinMetadata },
// { new JoinMetadata
// Description = "Toggles the participant's audio mute status", {
// JoinCapabilities = eJoinCapabilities.ToSIMPL, Description = "Toggles the selfview pip size, (aka layout size)",
// JoinType = eJoinType.Digital JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
// }); JoinType = eJoinType.Digital
});
//[JoinName("ParticipantVideoMuteToggleStart")]
//public JoinDataComplete ParticipantVideoMuteToggleStart = new JoinDataComplete( //[JoinName("ParticipantAudioMuteToggleStart")]
// new JoinData //public JoinDataComplete ParticipantAudioMuteToggleStart = new JoinDataComplete(
// { // new JoinData
// JoinNumber = 800, // {
// JoinSpan = 100 // JoinNumber = 500,
// }, // JoinSpan = 100
// new JoinMetadata // },
// { // new JoinMetadata
// Description = "Toggles the participant's video mute status", // {
// JoinCapabilities = eJoinCapabilities.ToSIMPL, // Description = "Toggles the participant's audio mute status",
// JoinType = eJoinType.Digital // JoinCapabilities = eJoinCapabilities.ToSIMPL,
// }); // JoinType = eJoinType.Digital
// });
//[JoinName("ParticipantPinToggleStart")]
//public JoinDataComplete ParticipantPinToggleStart = new JoinDataComplete( //[JoinName("ParticipantVideoMuteToggleStart")]
// new JoinData //public JoinDataComplete ParticipantVideoMuteToggleStart = new JoinDataComplete(
// { // new JoinData
// JoinNumber = 1100, // {
// JoinSpan = 100 // JoinNumber = 800,
// }, // JoinSpan = 100
// new JoinMetadata // },
// { // new JoinMetadata
// Description = "Toggles the participant's pin status", // {
// JoinCapabilities = eJoinCapabilities.ToSIMPL, // Description = "Toggles the participant's video mute status",
// JoinType = eJoinType.Digital // JoinCapabilities = eJoinCapabilities.ToSIMPL,
// }); // JoinType = eJoinType.Digital
// });
#endregion
//[JoinName("ParticipantPinToggleStart")]
//public JoinDataComplete ParticipantPinToggleStart = new JoinDataComplete(
#region Analog // new JoinData
// {
[JoinName("NumberOfScreens")] // JoinNumber = 1100,
public JoinDataComplete NumberOfScreens = new JoinDataComplete( // JoinSpan = 100
new JoinData // },
{ // new JoinMetadata
JoinNumber = 11, // {
JoinSpan = 1 // Description = "Toggles the participant's pin status",
}, // JoinCapabilities = eJoinCapabilities.ToSIMPL,
new JoinMetadata // JoinType = eJoinType.Digital
{ // });
Description = "Reports the number of screens connected",
JoinCapabilities = eJoinCapabilities.ToSIMPL, #endregion
JoinType = eJoinType.Analog
});
#region Analog
[JoinName("ScreenIndexToPinUserTo")]
public JoinDataComplete ScreenIndexToPinUserTo = new JoinDataComplete( [JoinName("NumberOfScreens")]
new JoinData public JoinDataComplete NumberOfScreens = new JoinDataComplete(
{ new JoinData
JoinNumber = 11, {
JoinSpan = 1 JoinNumber = 11,
}, JoinSpan = 1
new JoinMetadata },
{ new JoinMetadata
Description = "Specifies the screen index a participant should be pinned to", {
JoinCapabilities = eJoinCapabilities.FromSIMPL, Description = "Reports the number of screens connected",
JoinType = eJoinType.Analog JoinCapabilities = eJoinCapabilities.ToSIMPL,
}); JoinType = eJoinType.Analog
});
#endregion
[JoinName("ScreenIndexToPinUserTo")]
public JoinDataComplete ScreenIndexToPinUserTo = new JoinDataComplete(
new JoinData
{
JoinNumber = 11,
JoinSpan = 1
},
new JoinMetadata
{
Description = "Specifies the screen index a participant should be pinned to",
JoinCapabilities = eJoinCapabilities.FromSIMPL,
JoinType = eJoinType.Analog
});
#endregion
#region Serials #region Serials
// TODO [ ] Issue #868 // TODO [ ] Issue #868
@@ -420,47 +435,47 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
Description = "Meeting info Password text feedback", Description = "Meeting info Password text feedback",
JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinCapabilities = eJoinCapabilities.ToSIMPL,
JoinType = eJoinType.Serial JoinType = eJoinType.Serial
}); });
[JoinName("GetSetCurrentLayout")] [JoinName("GetSetCurrentLayout")]
public JoinDataComplete GetSetCurrentLayout = new JoinDataComplete( public JoinDataComplete GetSetCurrentLayout = new JoinDataComplete(
new JoinData new JoinData
{ {
JoinNumber = 215, JoinNumber = 215,
JoinSpan = 1 JoinSpan = 1
}, },
new JoinMetadata new JoinMetadata
{ {
Description = "Sets and reports the current layout. Use the LayoutXXXXIsAvailable signals to determine valid layouts", Description = "Sets and reports the current layout. Use the LayoutXXXXIsAvailable signals to determine valid layouts",
JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
JoinType = eJoinType.Serial JoinType = eJoinType.Serial
}); });
// TODO: #714 [ ] JoinMap >> GetSetSelfviewPipSize // TODO: #714 [ ] JoinMap >> GetSetSelfviewPipSize
[JoinName("GetSetSelfviewPipSize")] [JoinName("GetSetSelfviewPipSize")]
public JoinDataComplete GetSetSelfviewPipSize = new JoinDataComplete( public JoinDataComplete GetSetSelfviewPipSize = new JoinDataComplete(
new JoinData new JoinData
{ {
JoinNumber = 230, JoinNumber = 230,
JoinSpan = 1 JoinSpan = 1
}, },
new JoinMetadata new JoinMetadata
{ {
Description = "Sets and reports the selfview pip size, (aka layout size).", Description = "Sets and reports the selfview pip size, (aka layout size).",
JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
JoinType = eJoinType.DigitalSerial JoinType = eJoinType.DigitalSerial
}); });
#endregion #endregion
public ZoomRoomJoinMap(uint joinStart) public ZoomRoomJoinMap(uint joinStart)
: base(joinStart, typeof(ZoomRoomJoinMap)) : base(joinStart, typeof(ZoomRoomJoinMap))
{ {
} }
public ZoomRoomJoinMap(uint joinStart, Type type) public ZoomRoomJoinMap(uint joinStart, Type type)
: base(joinStart, type) : base(joinStart, type)
{ {
} }
} }
} }