mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-16 05:05:00 +00:00
lots of updates
This commit is contained in:
@@ -36,6 +36,15 @@ namespace PepperDash_Essentials_Core.Bridges.JoinMaps
|
|||||||
JoinType = eJoinType.Digital
|
JoinType = eJoinType.Digital
|
||||||
});
|
});
|
||||||
|
|
||||||
|
[JoinName("CameraLayoutStringFb")] public JoinDataComplete CameraLayoutStringFb =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 141, JoinSpan = 1},
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Current Layout Fb",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||||
|
JoinType = eJoinType.Analog
|
||||||
|
});
|
||||||
|
|
||||||
[JoinName("CameraModeAuto")] public JoinDataComplete CameraModeAuto =
|
[JoinName("CameraModeAuto")] public JoinDataComplete CameraModeAuto =
|
||||||
new JoinDataComplete(new JoinData {JoinNumber = 131, JoinSpan = 1},
|
new JoinDataComplete(new JoinData {JoinNumber = 131, JoinSpan = 1},
|
||||||
new JoinMetadata
|
new JoinMetadata
|
||||||
@@ -90,6 +99,15 @@ namespace PepperDash_Essentials_Core.Bridges.JoinMaps
|
|||||||
JoinType = eJoinType.Digital
|
JoinType = eJoinType.Digital
|
||||||
});
|
});
|
||||||
|
|
||||||
|
[JoinName("CameraPresetNames")] public JoinDataComplete CameraPresetNames =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 121, JoinSpan = 1},
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Camera Preset Names - XSIG, max of 15",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||||
|
JoinType = eJoinType.Serial
|
||||||
|
});
|
||||||
|
|
||||||
[JoinName("CameraPresetSelect")] public JoinDataComplete CameraPresetSelect =
|
[JoinName("CameraPresetSelect")] public JoinDataComplete CameraPresetSelect =
|
||||||
new JoinDataComplete(new JoinData {JoinNumber = 121, JoinSpan = 1},
|
new JoinDataComplete(new JoinData {JoinNumber = 121, JoinSpan = 1},
|
||||||
new JoinMetadata
|
new JoinMetadata
|
||||||
@@ -99,13 +117,13 @@ namespace PepperDash_Essentials_Core.Bridges.JoinMaps
|
|||||||
JoinType = eJoinType.Analog
|
JoinType = eJoinType.Analog
|
||||||
});
|
});
|
||||||
|
|
||||||
[JoinName("CameraPresetNames")] public JoinDataComplete CameraPresetNames =
|
[JoinName("CameraPresetSave")] public JoinDataComplete CameraPresetSave =
|
||||||
new JoinDataComplete(new JoinData {JoinNumber = 121, JoinSpan = 1},
|
new JoinDataComplete(new JoinData {JoinNumber = 121, JoinSpan = 1},
|
||||||
new JoinMetadata
|
new JoinMetadata
|
||||||
{
|
{
|
||||||
Description = "Camera Preset Names - XSIG, max of 15",
|
Description = "Save Selected Preset",
|
||||||
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
|
||||||
JoinType = eJoinType.Serial
|
JoinType = eJoinType.Digital
|
||||||
});
|
});
|
||||||
|
|
||||||
[JoinName("CameraSelfView")] public JoinDataComplete CameraSelfView =
|
[JoinName("CameraSelfView")] public JoinDataComplete CameraSelfView =
|
||||||
@@ -189,12 +207,30 @@ namespace PepperDash_Essentials_Core.Bridges.JoinMaps
|
|||||||
JoinType = eJoinType.Serial
|
JoinType = eJoinType.Serial
|
||||||
});
|
});
|
||||||
|
|
||||||
[JoinName("DirectoryHasChanged")] public JoinDataComplete DirectoryHasChanged =
|
[JoinName("CurrentParticipants")] public JoinDataComplete CurrentParticipants =
|
||||||
new JoinDataComplete(new JoinData {JoinNumber = 103, JoinSpan = 1},
|
new JoinDataComplete(new JoinData {JoinNumber = 151, JoinSpan = 1},
|
||||||
|
new JoinMetadata()
|
||||||
|
{
|
||||||
|
Description = "Current Participants XSig",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||||
|
JoinType = eJoinType.Serial
|
||||||
|
});
|
||||||
|
|
||||||
|
[JoinName("CurrentSource")] public JoinDataComplete CurrentSource =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 201, JoinSpan = 1},
|
||||||
new JoinMetadata
|
new JoinMetadata
|
||||||
{
|
{
|
||||||
Description = "Directory has changed FB",
|
Description = "Current Source",
|
||||||
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||||
|
JoinType = eJoinType.Serial
|
||||||
|
});
|
||||||
|
|
||||||
|
[JoinName("DialMeeting")] public JoinDataComplete DialMeeting =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 161, JoinSpan = 1},
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Join first joinable meeting",
|
||||||
|
JoinCapabilities = eJoinCapabilities.FromSIMPL,
|
||||||
JoinType = eJoinType.Digital
|
JoinType = eJoinType.Digital
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -252,6 +288,15 @@ namespace PepperDash_Essentials_Core.Bridges.JoinMaps
|
|||||||
JoinType = eJoinType.Digital
|
JoinType = eJoinType.Digital
|
||||||
});
|
});
|
||||||
|
|
||||||
|
[JoinName("DirectoryHasChanged")] public JoinDataComplete DirectoryHasChanged =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 103, JoinSpan = 1},
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Directory has changed FB",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||||
|
JoinType = eJoinType.Digital
|
||||||
|
});
|
||||||
|
|
||||||
[JoinName("DirectoryIsRoot")] public JoinDataComplete DirectoryIsRoot =
|
[JoinName("DirectoryIsRoot")] public JoinDataComplete DirectoryIsRoot =
|
||||||
new JoinDataComplete(new JoinData {JoinNumber = 102, JoinSpan = 1},
|
new JoinDataComplete(new JoinData {JoinNumber = 102, JoinSpan = 1},
|
||||||
new JoinMetadata
|
new JoinMetadata
|
||||||
@@ -495,37 +540,12 @@ namespace PepperDash_Essentials_Core.Bridges.JoinMaps
|
|||||||
JoinType = eJoinType.Digital
|
JoinType = eJoinType.Digital
|
||||||
});
|
});
|
||||||
|
|
||||||
[JoinName("SpeedDialStart")] public JoinDataComplete SpeedDialStart =
|
|
||||||
new JoinDataComplete(new JoinData {JoinNumber = 41, JoinSpan = 4},
|
|
||||||
new JoinMetadata
|
|
||||||
{
|
|
||||||
Description = "Speed Dial",
|
|
||||||
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
|
||||||
JoinType = eJoinType.Digital
|
|
||||||
});
|
|
||||||
|
|
||||||
[JoinName("Schedule")] public JoinDataComplete Schedule =
|
[JoinName("ManualDial")] public JoinDataComplete ManualDial =
|
||||||
new JoinDataComplete(new JoinData {JoinNumber = 102, JoinSpan = 1},
|
new JoinDataComplete(new JoinData {JoinNumber = 71, JoinSpan = 1},
|
||||||
new JoinMetadata
|
new JoinMetadata
|
||||||
{
|
{
|
||||||
Description = "Schedule Data - XSIG",
|
Description = "Dial manual string",
|
||||||
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
|
||||||
JoinType = eJoinType.Serial
|
|
||||||
});
|
|
||||||
|
|
||||||
[JoinName("DialMeeting")] public JoinDataComplete DialMeeting = new JoinDataComplete(new JoinData{JoinNumber=161, JoinSpan = 1},
|
|
||||||
new JoinMetadata
|
|
||||||
{
|
|
||||||
Description = "Join first joinable meeting",
|
|
||||||
JoinCapabilities = eJoinCapabilities.FromSIMPL,
|
|
||||||
JoinType = eJoinType.Digital
|
|
||||||
});
|
|
||||||
|
|
||||||
[JoinName("UpdateMeetings")] public JoinDataComplete UpdateMeetings =
|
|
||||||
new JoinDataComplete(new JoinData {JoinNumber = 162, JoinSpan = 1},
|
|
||||||
new JoinMetadata
|
|
||||||
{
|
|
||||||
Description = "Update Meetings",
|
|
||||||
JoinCapabilities = eJoinCapabilities.FromSIMPL,
|
JoinCapabilities = eJoinCapabilities.FromSIMPL,
|
||||||
JoinType = eJoinType.Digital
|
JoinType = eJoinType.Digital
|
||||||
});
|
});
|
||||||
@@ -539,82 +559,15 @@ namespace PepperDash_Essentials_Core.Bridges.JoinMaps
|
|||||||
JoinType = eJoinType.Analog
|
JoinType = eJoinType.Analog
|
||||||
});
|
});
|
||||||
|
|
||||||
|
[JoinName("MicMuteOff")] public JoinDataComplete MicMuteOff =
|
||||||
[JoinName("CameraLayoutStringFb")]
|
new JoinDataComplete(new JoinData {JoinNumber = 172, JoinSpan = 1},
|
||||||
public JoinDataComplete CameraLayoutStringFb =
|
|
||||||
new JoinDataComplete(new JoinData { JoinNumber = 141, JoinSpan = 1 },
|
|
||||||
new JoinMetadata
|
new JoinMetadata
|
||||||
{
|
{
|
||||||
Description = "Current Layout Fb",
|
Description = "Mic Mute Off",
|
||||||
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
|
||||||
JoinType = eJoinType.Analog
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[JoinName("ManualDial")] public JoinDataComplete ManualDial =
|
|
||||||
new JoinDataComplete(new JoinData {JoinNumber = 71, JoinSpan = 1},
|
|
||||||
new JoinMetadata
|
|
||||||
{
|
|
||||||
Description = "Dial manual string",
|
|
||||||
JoinCapabilities = eJoinCapabilities.FromSIMPL,
|
|
||||||
JoinType = eJoinType.Digital
|
|
||||||
});
|
|
||||||
|
|
||||||
[JoinName("SourceShareStart")] public JoinDataComplete SourceShareStart =
|
|
||||||
new JoinDataComplete(new JoinData {JoinNumber = 201, JoinSpan = 1},
|
|
||||||
new JoinMetadata
|
|
||||||
{
|
|
||||||
Description = "Start Sharing & Feedback",
|
|
||||||
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
|
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
|
||||||
JoinType = eJoinType.Digital
|
JoinType = eJoinType.Digital
|
||||||
});
|
});
|
||||||
|
|
||||||
[JoinName("SourceShareEnd")]
|
|
||||||
public JoinDataComplete SourceShareEnd =
|
|
||||||
new JoinDataComplete(new JoinData { JoinNumber = 202, JoinSpan = 1 },
|
|
||||||
new JoinMetadata
|
|
||||||
{
|
|
||||||
Description = "Stop Sharing & Feedback",
|
|
||||||
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
|
|
||||||
JoinType = eJoinType.Digital
|
|
||||||
});
|
|
||||||
|
|
||||||
[JoinName("AutoShareWhileInCall")] public JoinDataComplete SourceShareAutoStart =
|
|
||||||
new JoinDataComplete(new JoinData {JoinNumber = 203, JoinSpan = 1},
|
|
||||||
new JoinMetadata
|
|
||||||
{
|
|
||||||
Description = "When high, will autostart sharing when a call is joined",
|
|
||||||
JoinCapabilities = eJoinCapabilities.FromSIMPL,
|
|
||||||
JoinType = eJoinType.Digital
|
|
||||||
});
|
|
||||||
|
|
||||||
[JoinName("CurrentSource")] public JoinDataComplete CurrentSource = new JoinDataComplete(new JoinData{JoinNumber = 201, JoinSpan = 1},
|
|
||||||
new JoinMetadata
|
|
||||||
{
|
|
||||||
Description = "Current Source",
|
|
||||||
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
|
||||||
JoinType = eJoinType.Serial
|
|
||||||
});
|
|
||||||
|
|
||||||
[JoinName("CurrentParticipants")] public JoinDataComplete CurrentParticipants =
|
|
||||||
new JoinDataComplete(new JoinData{JoinNumber = 151, JoinSpan = 1},
|
|
||||||
new JoinMetadata()
|
|
||||||
{
|
|
||||||
Description = "Current Participants XSig",
|
|
||||||
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
|
||||||
JoinType = eJoinType.Serial
|
|
||||||
});
|
|
||||||
|
|
||||||
[JoinName("ParticipantCount")] public JoinDataComplete ParticipantCount = new JoinDataComplete(new JoinData{JoinNumber = 151, JoinSpan = 1},
|
|
||||||
new JoinMetadata
|
|
||||||
{
|
|
||||||
Description = "Current Participant Count",
|
|
||||||
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
|
||||||
JoinType = eJoinType.Analog
|
|
||||||
});
|
|
||||||
|
|
||||||
[JoinName("MicMuteOn")] public JoinDataComplete MicMuteOn =
|
[JoinName("MicMuteOn")] public JoinDataComplete MicMuteOn =
|
||||||
new JoinDataComplete(new JoinData {JoinNumber = 171, JoinSpan = 1},
|
new JoinDataComplete(new JoinData {JoinNumber = 171, JoinSpan = 1},
|
||||||
new JoinMetadata
|
new JoinMetadata
|
||||||
@@ -624,15 +577,6 @@ namespace PepperDash_Essentials_Core.Bridges.JoinMaps
|
|||||||
JoinType = eJoinType.Digital
|
JoinType = eJoinType.Digital
|
||||||
});
|
});
|
||||||
|
|
||||||
[JoinName("MicMuteOff")] public JoinDataComplete MicMuteOff =
|
|
||||||
new JoinDataComplete(new JoinData {JoinNumber = 172, JoinSpan = 1},
|
|
||||||
new JoinMetadata
|
|
||||||
{
|
|
||||||
Description = "Mic Mute Off",
|
|
||||||
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
|
|
||||||
JoinType = eJoinType.Digital
|
|
||||||
});
|
|
||||||
|
|
||||||
[JoinName("MicMuteToggle")] public JoinDataComplete MicMuteToggle =
|
[JoinName("MicMuteToggle")] public JoinDataComplete MicMuteToggle =
|
||||||
new JoinDataComplete(new JoinData {JoinNumber = 173, JoinSpan = 1},
|
new JoinDataComplete(new JoinData {JoinNumber = 173, JoinSpan = 1},
|
||||||
new JoinMetadata
|
new JoinMetadata
|
||||||
@@ -642,19 +586,126 @@ namespace PepperDash_Essentials_Core.Bridges.JoinMaps
|
|||||||
JoinType = eJoinType.Digital
|
JoinType = eJoinType.Digital
|
||||||
});
|
});
|
||||||
|
|
||||||
[JoinName("VolumeMuteOn")]
|
[JoinName("MinutesBeforeMeetingStart")] public JoinDataComplete MinutesBeforeMeetingStart =
|
||||||
public JoinDataComplete VolumeMuteOn =
|
new JoinDataComplete(new JoinData {JoinNumber = 41, JoinSpan = 1},
|
||||||
new JoinDataComplete(new JoinData { JoinNumber = 176, JoinSpan = 1 },
|
|
||||||
new JoinMetadata
|
new JoinMetadata
|
||||||
{
|
{
|
||||||
Description = "Volume Mute On",
|
Description = "Minutes before meeting start that a meeting is joinable",
|
||||||
|
JoinCapabilities = eJoinCapabilities.FromSIMPL,
|
||||||
|
JoinType = eJoinType.Analog
|
||||||
|
});
|
||||||
|
|
||||||
|
[JoinName("ParticipantCount")] public JoinDataComplete ParticipantCount =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 151, JoinSpan = 1},
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Current Participant Count",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||||
|
JoinType = eJoinType.Analog
|
||||||
|
});
|
||||||
|
|
||||||
|
[JoinName("Schedule")] public JoinDataComplete Schedule =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 102, JoinSpan = 1},
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Schedule Data - XSIG",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||||
|
JoinType = eJoinType.Serial
|
||||||
|
});
|
||||||
|
|
||||||
|
[JoinName("AutoShareWhileInCall")] public JoinDataComplete SourceShareAutoStart =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 203, JoinSpan = 1},
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "When high, will autostart sharing when a call is joined",
|
||||||
|
JoinCapabilities = eJoinCapabilities.FromSIMPL,
|
||||||
|
JoinType = eJoinType.Digital
|
||||||
|
});
|
||||||
|
|
||||||
|
[JoinName("SourceShareEnd")] public JoinDataComplete SourceShareEnd =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 202, JoinSpan = 1},
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Stop Sharing & Feedback",
|
||||||
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
|
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
|
||||||
JoinType = eJoinType.Digital
|
JoinType = eJoinType.Digital
|
||||||
});
|
});
|
||||||
|
|
||||||
[JoinName("VolumeMuteOff")]
|
[JoinName("SourceShareStart")] public JoinDataComplete SourceShareStart =
|
||||||
public JoinDataComplete VolumeMuteOff =
|
new JoinDataComplete(new JoinData {JoinNumber = 201, JoinSpan = 1},
|
||||||
new JoinDataComplete(new JoinData { JoinNumber = 177, JoinSpan = 1 },
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Start Sharing & Feedback",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
|
||||||
|
JoinType = eJoinType.Digital
|
||||||
|
});
|
||||||
|
|
||||||
|
[JoinName("RecievingContent")] public JoinDataComplete RecievingContent =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 204, JoinSpan = 1},
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Recieving content from the far end",
|
||||||
|
JoinType = eJoinType.Digital,
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToSIMPL
|
||||||
|
});
|
||||||
|
|
||||||
|
[JoinName("SelfviewPosition")] public JoinDataComplete SelfviewPosition =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 211, JoinSpan = 1},
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "advance selfview position",
|
||||||
|
JoinCapabilities = eJoinCapabilities.FromSIMPL,
|
||||||
|
JoinType = eJoinType.Digital
|
||||||
|
});
|
||||||
|
|
||||||
|
[JoinName("SelfviewPositionFb")]
|
||||||
|
public JoinDataComplete SelfviewPositionFb =
|
||||||
|
new JoinDataComplete(new JoinData { JoinNumber = 211, JoinSpan = 1 },
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "advance selfview position",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||||
|
JoinType = eJoinType.Serial
|
||||||
|
});
|
||||||
|
|
||||||
|
[JoinName("SpeedDialStart")] public JoinDataComplete SpeedDialStart =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 41, JoinSpan = 4},
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Speed Dial",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
||||||
|
JoinType = eJoinType.Digital
|
||||||
|
});
|
||||||
|
|
||||||
|
[JoinName("UpdateMeetings")] public JoinDataComplete UpdateMeetings =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 162, JoinSpan = 1},
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Update Meetings",
|
||||||
|
JoinCapabilities = eJoinCapabilities.FromSIMPL,
|
||||||
|
JoinType = eJoinType.Digital
|
||||||
|
});
|
||||||
|
|
||||||
|
[JoinName("VolumeDown")] public JoinDataComplete VolumeDown =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 175, JoinSpan = 1},
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Volume Down",
|
||||||
|
JoinCapabilities = eJoinCapabilities.FromSIMPL,
|
||||||
|
JoinType = eJoinType.Digital
|
||||||
|
});
|
||||||
|
|
||||||
|
[JoinName("VolumeLevel")] public JoinDataComplete VolumeLevel =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 174, JoinSpan = 1},
|
||||||
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Volume Level",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
|
||||||
|
JoinType = eJoinType.Analog
|
||||||
|
});
|
||||||
|
|
||||||
|
[JoinName("VolumeMuteOff")] public JoinDataComplete VolumeMuteOff =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 177, JoinSpan = 1},
|
||||||
new JoinMetadata
|
new JoinMetadata
|
||||||
{
|
{
|
||||||
Description = "Volume Mute Off",
|
Description = "Volume Mute Off",
|
||||||
@@ -662,9 +713,17 @@ namespace PepperDash_Essentials_Core.Bridges.JoinMaps
|
|||||||
JoinType = eJoinType.Digital
|
JoinType = eJoinType.Digital
|
||||||
});
|
});
|
||||||
|
|
||||||
[JoinName("VolumeMuteToggle")]
|
[JoinName("VolumeMuteOn")] public JoinDataComplete VolumeMuteOn =
|
||||||
public JoinDataComplete VolumeMuteToggle =
|
new JoinDataComplete(new JoinData {JoinNumber = 176, JoinSpan = 1},
|
||||||
new JoinDataComplete(new JoinData { JoinNumber = 178, JoinSpan = 1 },
|
new JoinMetadata
|
||||||
|
{
|
||||||
|
Description = "Volume Mute On",
|
||||||
|
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
|
||||||
|
JoinType = eJoinType.Digital
|
||||||
|
});
|
||||||
|
|
||||||
|
[JoinName("VolumeMuteToggle")] public JoinDataComplete VolumeMuteToggle =
|
||||||
|
new JoinDataComplete(new JoinData {JoinNumber = 178, JoinSpan = 1},
|
||||||
new JoinMetadata
|
new JoinMetadata
|
||||||
{
|
{
|
||||||
Description = "Volume Mute Toggle",
|
Description = "Volume Mute Toggle",
|
||||||
@@ -681,35 +740,6 @@ namespace PepperDash_Essentials_Core.Bridges.JoinMaps
|
|||||||
JoinType = eJoinType.Digital
|
JoinType = eJoinType.Digital
|
||||||
});
|
});
|
||||||
|
|
||||||
[JoinName("VolumeDown")]
|
|
||||||
public JoinDataComplete VolumeDown =
|
|
||||||
new JoinDataComplete(new JoinData { JoinNumber = 175, JoinSpan = 1 },
|
|
||||||
new JoinMetadata
|
|
||||||
{
|
|
||||||
Description = "Volume Down",
|
|
||||||
JoinCapabilities = eJoinCapabilities.FromSIMPL,
|
|
||||||
JoinType = eJoinType.Digital
|
|
||||||
});
|
|
||||||
|
|
||||||
[JoinName("VolumeLevel")]
|
|
||||||
public JoinDataComplete VolumeLevel =
|
|
||||||
new JoinDataComplete(new JoinData { JoinNumber = 174, JoinSpan = 1 },
|
|
||||||
new JoinMetadata
|
|
||||||
{
|
|
||||||
Description = "Volume Level",
|
|
||||||
JoinCapabilities = eJoinCapabilities.ToFromSIMPL,
|
|
||||||
JoinType = eJoinType.Analog
|
|
||||||
});
|
|
||||||
|
|
||||||
[JoinName("MinutesBeforeMeetingStart")] public JoinDataComplete MinutesBeforeMeetingStart =
|
|
||||||
new JoinDataComplete(new JoinData {JoinNumber = 41, JoinSpan = 1},
|
|
||||||
new JoinMetadata
|
|
||||||
{
|
|
||||||
Description = "Minutes before meeting start that a meeting is joinable",
|
|
||||||
JoinCapabilities = eJoinCapabilities.FromSIMPL,
|
|
||||||
JoinType = eJoinType.Analog
|
|
||||||
});
|
|
||||||
|
|
||||||
public VideoCodecControllerJoinMap(uint joinStart) : base(joinStart, typeof (VideoCodecControllerJoinMap))
|
public VideoCodecControllerJoinMap(uint joinStart) : base(joinStart, typeof (VideoCodecControllerJoinMap))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
namespace PepperDash.Essentials.Core.DeviceTypeInterfaces
|
||||||
|
{
|
||||||
|
public interface IHasFarEndContentStatus
|
||||||
|
{
|
||||||
|
BoolFeedback ReceivingContent { get; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -196,6 +196,7 @@
|
|||||||
<Compile Include="Devices\ReconfigurableDevice.cs" />
|
<Compile Include="Devices\ReconfigurableDevice.cs" />
|
||||||
<Compile Include="Devices\VolumeDeviceChangeEventArgs.cs" />
|
<Compile Include="Devices\VolumeDeviceChangeEventArgs.cs" />
|
||||||
<Compile Include="DeviceTypeInterfaces\IHasBranding.cs" />
|
<Compile Include="DeviceTypeInterfaces\IHasBranding.cs" />
|
||||||
|
<Compile Include="DeviceTypeInterfaces\IHasFarEndContentStatus.cs" />
|
||||||
<Compile Include="DeviceTypeInterfaces\IMobileControl.cs" />
|
<Compile Include="DeviceTypeInterfaces\IMobileControl.cs" />
|
||||||
<Compile Include="Factory\DeviceFactory.cs" />
|
<Compile Include="Factory\DeviceFactory.cs" />
|
||||||
<Compile Include="Factory\IDeviceFactory.cs" />
|
<Compile Include="Factory\IDeviceFactory.cs" />
|
||||||
|
|||||||
@@ -121,6 +121,7 @@
|
|||||||
<Compile Include="Cameras\CameraControl.cs" />
|
<Compile Include="Cameras\CameraControl.cs" />
|
||||||
<Compile Include="Display\PanasonicThDisplay.cs" />
|
<Compile Include="Display\PanasonicThDisplay.cs" />
|
||||||
<Compile Include="VideoCodec\Interfaces\IHasParticipants.cs" />
|
<Compile Include="VideoCodec\Interfaces\IHasParticipants.cs" />
|
||||||
|
<Compile Include="VideoCodec\Interfaces\IHasSelfviewPosition.cs" />
|
||||||
<Compile Include="VideoCodec\Interfaces\iVideoCodecInfo.cs" />
|
<Compile Include="VideoCodec\Interfaces\iVideoCodecInfo.cs" />
|
||||||
<Compile Include="Codec\iHasCallFavorites.cs" />
|
<Compile Include="Codec\iHasCallFavorites.cs" />
|
||||||
<Compile Include="Codec\iHasCallHistory.cs" />
|
<Compile Include="Codec\iHasCallHistory.cs" />
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
using PepperDash.Essentials.Core;
|
||||||
|
using PepperDash.Essentials.Devices.Common.VideoCodec.Cisco;
|
||||||
|
|
||||||
|
namespace PepperDash.Essentials.Core.DeviceTypeInterfaces
|
||||||
|
{
|
||||||
|
public interface IHasSelfviewPosition
|
||||||
|
{
|
||||||
|
StringFeedback SelfviewPipPositionFeedback { get; }
|
||||||
|
|
||||||
|
void SelfviewPipPositionSet(CodecCommandWithLabel position);
|
||||||
|
|
||||||
|
void SelfviewPipPositionToggle();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -13,6 +13,7 @@ using PepperDash.Essentials.Core;
|
|||||||
using PepperDash.Essentials.Core.Bridges;
|
using PepperDash.Essentials.Core.Bridges;
|
||||||
using PepperDash.Essentials.Core.Config;
|
using PepperDash.Essentials.Core.Config;
|
||||||
using PepperDash.Essentials.Core.Devices;
|
using PepperDash.Essentials.Core.Devices;
|
||||||
|
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
||||||
using PepperDash.Essentials.Core.Routing;
|
using PepperDash.Essentials.Core.Routing;
|
||||||
using PepperDash.Essentials.Devices.Common.Cameras;
|
using PepperDash.Essentials.Devices.Common.Cameras;
|
||||||
using PepperDash.Essentials.Devices.Common.Codec;
|
using PepperDash.Essentials.Devices.Common.Codec;
|
||||||
@@ -198,7 +199,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
/// <param name="previousStatus"></param>
|
/// <param name="previousStatus"></param>
|
||||||
/// <param name="newStatus"></param>
|
/// <param name="newStatus"></param>
|
||||||
/// <param name="item"></param>
|
/// <param name="item"></param>
|
||||||
protected void OnCallStatusChange(CodecActiveCallItem item)
|
protected virtual void OnCallStatusChange(CodecActiveCallItem item)
|
||||||
{
|
{
|
||||||
var handler = CallStatusChange;
|
var handler = CallStatusChange;
|
||||||
if (handler != null)
|
if (handler != null)
|
||||||
@@ -322,6 +323,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
LinkVideoCodecCameraLayoutsToApi(codec as IHasCodecLayouts, trilist, joinMap);
|
LinkVideoCodecCameraLayoutsToApi(codec as IHasCodecLayouts, trilist, joinMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (codec is IHasSelfviewPosition)
|
||||||
|
{
|
||||||
|
LinkVideoCodecSelfviewPositionToApi(codec as IHasSelfviewPosition, trilist, joinMap);
|
||||||
|
}
|
||||||
|
|
||||||
if (codec is IHasDirectory)
|
if (codec is IHasDirectory)
|
||||||
{
|
{
|
||||||
LinkVideoCodecDirectoryToApi(codec as IHasDirectory, trilist, joinMap);
|
LinkVideoCodecDirectoryToApi(codec as IHasDirectory, trilist, joinMap);
|
||||||
@@ -337,6 +343,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
LinkVideoCodecParticipantsToApi(codec as IHasParticipants, trilist, joinMap);
|
LinkVideoCodecParticipantsToApi(codec as IHasParticipants, trilist, joinMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (codec is IHasFarEndContentStatus)
|
||||||
|
{
|
||||||
|
(codec as IHasFarEndContentStatus).ReceivingContent.LinkInputSig(trilist.BooleanInput[joinMap.RecievingContent.JoinNumber]);
|
||||||
|
}
|
||||||
|
|
||||||
trilist.OnlineStatusChange += (device, args) =>
|
trilist.OnlineStatusChange += (device, args) =>
|
||||||
{
|
{
|
||||||
if (!args.DeviceOnLine) return;
|
if (!args.DeviceOnLine) return;
|
||||||
@@ -360,15 +371,25 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
{
|
{
|
||||||
trilist.SetBool(joinMap.CameraSupportsAutoMode.JoinNumber, true);
|
trilist.SetBool(joinMap.CameraSupportsAutoMode.JoinNumber, true);
|
||||||
|
|
||||||
(codec as IHasCameraAutoMode).CameraAutoModeIsOnFeedback.InvokeFireUpdate();
|
(codec as IHasCameraAutoMode).CameraAutoModeIsOnFeedback.FireUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (codec is IHasCodecSelfView)
|
if (codec is IHasCodecSelfView)
|
||||||
{
|
{
|
||||||
(codec as IHasCodecSelfView).SelfviewIsOnFeedback.InvokeFireUpdate();
|
(codec as IHasCodecSelfView).SelfviewIsOnFeedback.FireUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
SharingContentIsOnFeedback.InvokeFireUpdate();
|
if (codec is IHasCameraAutoMode)
|
||||||
|
{
|
||||||
|
(codec as IHasCameraAutoMode).CameraAutoModeIsOnFeedback.FireUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (codec is IHasCameraOff)
|
||||||
|
{
|
||||||
|
(codec as IHasCameraOff).CameraIsOffFeedback.FireUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
SharingContentIsOnFeedback.FireUpdate();
|
||||||
|
|
||||||
trilist.SetBool(joinMap.HookState.JoinNumber, IsInCall);
|
trilist.SetBool(joinMap.HookState.JoinNumber, IsInCall);
|
||||||
|
|
||||||
@@ -376,11 +397,53 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void LinkVideoCodecSelfviewPositionToApi(IHasSelfviewPosition codec, BasicTriList trilist, VideoCodecControllerJoinMap joinMap)
|
||||||
|
{
|
||||||
|
trilist.SetSigFalseAction(joinMap.SelfviewPosition.JoinNumber, codec.SelfviewPipPositionToggle);
|
||||||
|
|
||||||
|
codec.SelfviewPipPositionFeedback.LinkInputSig(trilist.StringInput[joinMap.SelfviewPositionFb.JoinNumber]);
|
||||||
|
}
|
||||||
|
|
||||||
private void LinkVideoCodecCameraOffToApi(IHasCameraOff codec, BasicTriList trilist, VideoCodecControllerJoinMap joinMap)
|
private void LinkVideoCodecCameraOffToApi(IHasCameraOff codec, BasicTriList trilist, VideoCodecControllerJoinMap joinMap)
|
||||||
{
|
{
|
||||||
codec.CameraIsOffFeedback.LinkInputSig(trilist.BooleanInput[joinMap.CameraModeOff.JoinNumber]);
|
|
||||||
|
|
||||||
trilist.SetSigFalseAction(joinMap.CameraModeOff.JoinNumber, codec.CameraOff);
|
trilist.SetSigFalseAction(joinMap.CameraModeOff.JoinNumber, codec.CameraOff);
|
||||||
|
|
||||||
|
codec.CameraIsOffFeedback.OutputChange += (o, a) =>
|
||||||
|
{
|
||||||
|
if (a.BoolValue)
|
||||||
|
{
|
||||||
|
trilist.SetBool(joinMap.CameraModeOff.JoinNumber, true);
|
||||||
|
trilist.SetBool(joinMap.CameraModeManual.JoinNumber, false);
|
||||||
|
trilist.SetBool(joinMap.CameraModeAuto.JoinNumber, false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
trilist.SetBool(joinMap.CameraModeOff.JoinNumber, false);
|
||||||
|
|
||||||
|
var autoCodec = codec as IHasCameraAutoMode;
|
||||||
|
|
||||||
|
if (autoCodec == null) return;
|
||||||
|
|
||||||
|
trilist.SetBool(joinMap.CameraModeAuto.JoinNumber, autoCodec.CameraAutoModeIsOnFeedback.BoolValue);
|
||||||
|
trilist.SetBool(joinMap.CameraModeManual.JoinNumber, !autoCodec.CameraAutoModeIsOnFeedback.BoolValue);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (codec.CameraIsOffFeedback.BoolValue)
|
||||||
|
{
|
||||||
|
trilist.SetBool(joinMap.CameraModeOff.JoinNumber, true);
|
||||||
|
trilist.SetBool(joinMap.CameraModeManual.JoinNumber, false);
|
||||||
|
trilist.SetBool(joinMap.CameraModeAuto.JoinNumber, false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
trilist.SetBool(joinMap.CameraModeOff.JoinNumber, false);
|
||||||
|
|
||||||
|
var autoModeCodec = codec as IHasCameraAutoMode;
|
||||||
|
|
||||||
|
if (autoModeCodec == null) return;
|
||||||
|
|
||||||
|
trilist.SetBool(joinMap.CameraModeAuto.JoinNumber, autoModeCodec.CameraAutoModeIsOnFeedback.BoolValue);
|
||||||
|
trilist.SetBool(joinMap.CameraModeManual.JoinNumber, !autoModeCodec.CameraAutoModeIsOnFeedback.BoolValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void LinkVideoCodecVolumeToApi(BasicTriList trilist, VideoCodecControllerJoinMap joinMap)
|
private void LinkVideoCodecVolumeToApi(BasicTriList trilist, VideoCodecControllerJoinMap joinMap)
|
||||||
@@ -781,12 +844,53 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
trilist.SetSigFalseAction(joinMap.CameraModeAuto.JoinNumber, codec.CameraAutoModeOn);
|
trilist.SetSigFalseAction(joinMap.CameraModeAuto.JoinNumber, codec.CameraAutoModeOn);
|
||||||
trilist.SetSigFalseAction(joinMap.CameraModeManual.JoinNumber, codec.CameraAutoModeOff);
|
trilist.SetSigFalseAction(joinMap.CameraModeManual.JoinNumber, codec.CameraAutoModeOff);
|
||||||
|
|
||||||
codec.CameraAutoModeIsOnFeedback.LinkInputSig(trilist.BooleanInput[joinMap.CameraModeAuto.JoinNumber]);
|
codec.CameraAutoModeIsOnFeedback.OutputChange += (o, a) =>
|
||||||
codec.CameraAutoModeIsOnFeedback.LinkComplementInputSig(
|
{
|
||||||
trilist.BooleanInput[joinMap.CameraModeManual.JoinNumber]);
|
var offCodec = codec as IHasCameraOff;
|
||||||
|
|
||||||
|
if (offCodec != null)
|
||||||
|
{
|
||||||
|
if (offCodec.CameraIsOffFeedback.BoolValue)
|
||||||
|
{
|
||||||
|
trilist.SetBool(joinMap.CameraModeAuto.JoinNumber, false);
|
||||||
|
trilist.SetBool(joinMap.CameraModeManual.JoinNumber, false);
|
||||||
|
trilist.SetBool(joinMap.CameraModeOff.JoinNumber, true);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
trilist.SetBool(joinMap.CameraModeAuto.JoinNumber, a.BoolValue);
|
||||||
|
trilist.SetBool(joinMap.CameraModeManual.JoinNumber, !a.BoolValue);
|
||||||
|
trilist.SetBool(joinMap.CameraModeOff.JoinNumber, false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
trilist.SetBool(joinMap.CameraModeAuto.JoinNumber, a.BoolValue);
|
||||||
|
trilist.SetBool(joinMap.CameraModeManual.JoinNumber, !a.BoolValue);
|
||||||
|
trilist.SetBool(joinMap.CameraModeOff.JoinNumber, false);
|
||||||
|
};
|
||||||
|
|
||||||
|
var offModeCodec = codec as IHasCameraOff;
|
||||||
|
|
||||||
|
if (offModeCodec != null)
|
||||||
|
{
|
||||||
|
if (offModeCodec.CameraIsOffFeedback.BoolValue)
|
||||||
|
{
|
||||||
|
trilist.SetBool(joinMap.CameraModeAuto.JoinNumber, false);
|
||||||
|
trilist.SetBool(joinMap.CameraModeManual.JoinNumber, false);
|
||||||
|
trilist.SetBool(joinMap.CameraModeOff.JoinNumber, true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
trilist.SetBool(joinMap.CameraModeAuto.JoinNumber, codec.CameraAutoModeIsOnFeedback.BoolValue);
|
||||||
|
trilist.SetBool(joinMap.CameraModeManual.JoinNumber, !codec.CameraAutoModeIsOnFeedback.BoolValue);
|
||||||
|
trilist.SetBool(joinMap.CameraModeOff.JoinNumber, false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
trilist.SetBool(joinMap.CameraModeAuto.JoinNumber, codec.CameraAutoModeIsOnFeedback.BoolValue);
|
||||||
|
trilist.SetBool(joinMap.CameraModeManual.JoinNumber, !codec.CameraAutoModeIsOnFeedback.BoolValue);
|
||||||
|
trilist.SetBool(joinMap.CameraModeOff.JoinNumber, false);
|
||||||
|
}
|
||||||
|
|
||||||
private void LinkVideoCodecSelfviewToApi(IHasCodecSelfView codec, BasicTriList trilist,
|
private void LinkVideoCodecSelfviewToApi(IHasCodecSelfView codec, BasicTriList trilist,
|
||||||
VideoCodecControllerJoinMap joinMap)
|
VideoCodecControllerJoinMap joinMap)
|
||||||
@@ -875,8 +979,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
{
|
{
|
||||||
var i = (ushort) codec.Cameras.FindIndex((c) => c.Key == args.SelectedCamera.Key);
|
var i = (ushort) codec.Cameras.FindIndex((c) => c.Key == args.SelectedCamera.Key);
|
||||||
|
|
||||||
trilist.SetUshort(joinMap.CameraPresetSelect.JoinNumber, i);
|
|
||||||
|
|
||||||
if (codec is IHasCodecRoomPresets)
|
if (codec is IHasCodecRoomPresets)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@@ -891,24 +993,58 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
SetCameraPresetNames(cam.Presets);
|
SetCameraPresetNames(cam.Presets);
|
||||||
|
|
||||||
(args.SelectedCamera as IHasCameraPresets).PresetsListHasChanged += (o, eventArgs) => SetCameraPresetNames(cam.Presets);
|
(args.SelectedCamera as IHasCameraPresets).PresetsListHasChanged += (o, eventArgs) => SetCameraPresetNames(cam.Presets);
|
||||||
|
|
||||||
|
trilist.SetUShortSigAction(joinMap.CameraPresetSelect.JoinNumber,
|
||||||
|
(a) =>
|
||||||
|
{
|
||||||
|
cam.PresetSelect(a);
|
||||||
|
trilist.SetUshort(joinMap.CameraPresetSelect.JoinNumber, a);
|
||||||
|
});
|
||||||
|
|
||||||
|
trilist.SetSigFalseAction(joinMap.CameraPresetSave.JoinNumber,
|
||||||
|
() =>
|
||||||
|
{
|
||||||
|
cam.PresetStore(trilist.UShortOutput[joinMap.CameraPresetSelect.JoinNumber].UShortValue,
|
||||||
|
String.Empty);
|
||||||
|
trilist.PulseBool(joinMap.CameraPresetSave.JoinNumber, 3000);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (!(codec is IHasCodecRoomPresets)) return;
|
||||||
|
|
||||||
|
var presetCodec = codec as IHasCodecRoomPresets;
|
||||||
|
|
||||||
|
presetCodec.CodecRoomPresetsListHasChanged +=
|
||||||
|
(sender, args) => SetCameraPresetNames(presetCodec.NearEndPresets);
|
||||||
|
|
||||||
//Camera Presets
|
//Camera Presets
|
||||||
trilist.SetUShortSigAction(joinMap.CameraPresetSelect.JoinNumber, (i) =>
|
trilist.SetUShortSigAction(joinMap.CameraPresetSelect.JoinNumber, (i) =>
|
||||||
{
|
{
|
||||||
if (codec.SelectedCamera == null) return;
|
presetCodec.CodecRoomPresetSelect(i);
|
||||||
|
|
||||||
var cam = codec.SelectedCamera as IHasCameraPresets;
|
|
||||||
|
|
||||||
if (cam == null) return;
|
|
||||||
|
|
||||||
cam.PresetSelect(i);
|
|
||||||
|
|
||||||
trilist.SetUshort(joinMap.CameraPresetSelect.JoinNumber, i);
|
trilist.SetUshort(joinMap.CameraPresetSelect.JoinNumber, i);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
trilist.SetSigFalseAction(joinMap.CameraPresetSave.JoinNumber,
|
||||||
|
() =>
|
||||||
|
{
|
||||||
|
presetCodec.CodecRoomPresetStore(
|
||||||
|
trilist.UShortOutput[joinMap.CameraPresetSelect.JoinNumber].UShortValue, String.Empty);
|
||||||
|
trilist.PulseBool(joinMap.CameraPresetSave.JoinNumber, 3000);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private string SetCameraPresetNames(List<CameraPreset> presets)
|
private string SetCameraPresetNames(IEnumerable<CodecRoomPreset> presets)
|
||||||
|
{
|
||||||
|
return SetCameraPresetNames(presets.Select(p => p.Description).ToList());
|
||||||
|
}
|
||||||
|
|
||||||
|
private string SetCameraPresetNames(IEnumerable<CameraPreset> presets)
|
||||||
|
{
|
||||||
|
return SetCameraPresetNames(presets.Select(p => p.Description).ToList());
|
||||||
|
}
|
||||||
|
|
||||||
|
private string SetCameraPresetNames(ICollection<string> presets)
|
||||||
{
|
{
|
||||||
var i = 1; //start index for xsig;
|
var i = 1; //start index for xsig;
|
||||||
|
|
||||||
@@ -916,7 +1052,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
|
|
||||||
foreach (var preset in presets)
|
foreach (var preset in presets)
|
||||||
{
|
{
|
||||||
var cameraPreset = new XSigSerialToken(i, preset.Description);
|
var cameraPreset = new XSigSerialToken(i, preset);
|
||||||
tokenArray[i - 1] = cameraPreset;
|
tokenArray[i - 1] = cameraPreset;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -370,7 +370,20 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
public CallRecordInfo CallRecordInfo { get; set; }
|
public CallRecordInfo CallRecordInfo { get; set; }
|
||||||
|
|
||||||
public zCommand.InfoResult Info { get; set; }
|
private zCommand.InfoResult _info;
|
||||||
|
|
||||||
|
public zCommand.InfoResult Info
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _info;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_info = value;
|
||||||
|
NotifyPropertyChanged("Info");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public Call()
|
public Call()
|
||||||
{
|
{
|
||||||
@@ -702,7 +715,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
public class Camera : NotifiableObject
|
public class Camera : NotifiableObject
|
||||||
{
|
{
|
||||||
private string _muteState;
|
|
||||||
private bool _mute;
|
private bool _mute;
|
||||||
|
|
||||||
public bool Mute
|
public bool Mute
|
||||||
@@ -710,30 +722,14 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
get { return _mute; }
|
get { return _mute; }
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
|
Debug.Console(1, "Camera Mute response received: {0}", value);
|
||||||
|
|
||||||
if (value == _mute) return;
|
if (value == _mute) return;
|
||||||
|
|
||||||
_mute = value;
|
_mute = value;
|
||||||
NotifyPropertyChanged("Mute");
|
NotifyPropertyChanged("Mute");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[JsonProperty("mute")]
|
|
||||||
public string MuteState
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return _muteState;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (value != _muteState)
|
|
||||||
{
|
|
||||||
_muteState = value;
|
|
||||||
|
|
||||||
Mute = _muteState == "on";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Microphone : NotifiableObject
|
public class Microphone : NotifiableObject
|
||||||
@@ -787,12 +783,20 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
DownLeft
|
DownLeft
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Layout
|
public class Layout:NotifiableObject
|
||||||
{
|
{
|
||||||
public bool ShareThumb { get; set; }
|
public bool ShareThumb { get; set; }
|
||||||
public eLayoutStyle Style { get; set; }
|
public eLayoutStyle Style { get; set; }
|
||||||
public eLayoutSize Size { get; set; }
|
public eLayoutSize Size { get; set; }
|
||||||
public eLayoutPosition Position { get; set; }
|
|
||||||
|
private eLayoutPosition _position;
|
||||||
|
public eLayoutPosition Position {
|
||||||
|
get { return _position; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_position = value;
|
||||||
|
NotifyPropertyChanged("Position");
|
||||||
|
} }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Lock
|
public class Lock
|
||||||
|
|||||||
@@ -11,16 +11,18 @@ using PepperDash.Core;
|
|||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
using PepperDash.Essentials.Core.Bridges;
|
using PepperDash.Essentials.Core.Bridges;
|
||||||
using PepperDash.Essentials.Core.Config;
|
using PepperDash.Essentials.Core.Config;
|
||||||
|
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
|
||||||
using PepperDash.Essentials.Core.Routing;
|
using PepperDash.Essentials.Core.Routing;
|
||||||
using PepperDash.Essentials.Devices.Common.Cameras;
|
using PepperDash.Essentials.Devices.Common.Cameras;
|
||||||
using PepperDash.Essentials.Devices.Common.Codec;
|
using PepperDash.Essentials.Devices.Common.Codec;
|
||||||
|
using PepperDash.Essentials.Devices.Common.VideoCodec.Cisco;
|
||||||
using PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces;
|
using PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces;
|
||||||
|
|
||||||
namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
||||||
{
|
{
|
||||||
public class ZoomRoom : VideoCodecBase, IHasCodecSelfView, IHasDirectoryHistoryStack, ICommunicationMonitor,
|
public class ZoomRoom : VideoCodecBase, IHasCodecSelfView, IHasDirectoryHistoryStack, ICommunicationMonitor,
|
||||||
IRouting,
|
IRouting,
|
||||||
IHasScheduleAwareness, IHasCodecCameras, IHasParticipants, IHasCameraOff, IHasCameraAutoMode
|
IHasScheduleAwareness, IHasCodecCameras, IHasParticipants, IHasCameraOff, IHasCameraAutoMode, IHasFarEndContentStatus, IHasSelfviewPosition
|
||||||
{
|
{
|
||||||
private const long MeetingRefreshTimer = 60000;
|
private const long MeetingRefreshTimer = 60000;
|
||||||
private const uint DefaultMeetingDurationMin = 30;
|
private const uint DefaultMeetingDurationMin = 30;
|
||||||
@@ -98,6 +100,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
CodecSchedule = new CodecScheduleAwareness(MeetingRefreshTimer);
|
CodecSchedule = new CodecScheduleAwareness(MeetingRefreshTimer);
|
||||||
|
|
||||||
|
ReceivingContent = new BoolFeedback(FarEndIsSharingContentFeedbackFunc);
|
||||||
|
|
||||||
|
SelfviewPipPositionFeedback = new StringFeedback(SelfviewPipPositionFeedbackFunc);
|
||||||
|
|
||||||
SetUpFeedbackActions();
|
SetUpFeedbackActions();
|
||||||
|
|
||||||
Cameras = new List<CameraBase>();
|
Cameras = new List<CameraBase>();
|
||||||
@@ -152,7 +158,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
protected Func<bool> FarEndIsSharingContentFeedbackFunc
|
protected Func<bool> FarEndIsSharingContentFeedbackFunc
|
||||||
{
|
{
|
||||||
get { return () => false; }
|
get { return () => Status.Call.Sharing.State == zEvent.eSharingState.Receiving; }
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override Func<bool> MuteFeedbackFunc
|
protected override Func<bool> MuteFeedbackFunc
|
||||||
@@ -183,17 +189,17 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
protected Func<bool> CameraIsOffFeedbackFunc
|
protected Func<bool> CameraIsOffFeedbackFunc
|
||||||
{
|
{
|
||||||
get { return () => Configuration.Camera.Mute; }
|
get { return () => Configuration.Call.Camera.Mute; }
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Func<bool> CameraAutoModeIsOnFeedbackFunc
|
protected Func<bool> CameraAutoModeIsOnFeedbackFunc
|
||||||
{
|
{
|
||||||
get { return () => !Configuration.Camera.Mute; }
|
get { return () => false; }
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Func<string> SelfviewPipPositionFeedbackFunc
|
protected Func<string> SelfviewPipPositionFeedbackFunc
|
||||||
{
|
{
|
||||||
get { return () => ""; }
|
get { return () => _currentSelfviewPipPosition.Command; }
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Func<string> LocalLayoutFeedbackFunc
|
protected Func<string> LocalLayoutFeedbackFunc
|
||||||
@@ -432,11 +438,23 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Configuration.Camera.PropertyChanged += (o, a) =>
|
Configuration.Call.Camera.PropertyChanged += (o, a) =>
|
||||||
{
|
{
|
||||||
|
Debug.Console(1, this, "Configuration.Call.Camera.PropertyChanged: {0}", a.PropertyName);
|
||||||
|
|
||||||
if (a.PropertyName != "Mute") return;
|
if (a.PropertyName != "Mute") return;
|
||||||
|
|
||||||
CameraIsOffFeedback.FireUpdate();
|
CameraIsOffFeedback.FireUpdate();
|
||||||
|
CameraAutoModeIsOnFeedback.FireUpdate();
|
||||||
|
};
|
||||||
|
|
||||||
|
Configuration.Call.Layout.PropertyChanged += (o, a) =>
|
||||||
|
{
|
||||||
|
if (a.PropertyName != "Position") return;
|
||||||
|
|
||||||
|
ComputeSelfviewPipStatus();
|
||||||
|
|
||||||
|
SelfviewPipPositionFeedback.FireUpdate();
|
||||||
};
|
};
|
||||||
|
|
||||||
Status.Call.Sharing.PropertyChanged += (o, a) =>
|
Status.Call.Sharing.PropertyChanged += (o, a) =>
|
||||||
@@ -444,6 +462,16 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
if (a.PropertyName == "State")
|
if (a.PropertyName == "State")
|
||||||
{
|
{
|
||||||
SharingContentIsOnFeedback.FireUpdate();
|
SharingContentIsOnFeedback.FireUpdate();
|
||||||
|
ReceivingContent.FireUpdate();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Status.Call.PropertyChanged += (o, a) =>
|
||||||
|
{
|
||||||
|
if (a.PropertyName == "Info")
|
||||||
|
{
|
||||||
|
Debug.Console(1, this, "Updating Call Status");
|
||||||
|
UpdateCallStatus();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -658,6 +686,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
_syncState.AddQueryToQueue("zCommand Bookings List");
|
_syncState.AddQueryToQueue("zCommand Bookings List");
|
||||||
_syncState.AddQueryToQueue("zCommand Call ListParticipants");
|
_syncState.AddQueryToQueue("zCommand Call ListParticipants");
|
||||||
|
_syncState.AddQueryToQueue("zCommand Call Info");
|
||||||
|
|
||||||
|
|
||||||
_syncState.StartSync();
|
_syncState.StartSync();
|
||||||
@@ -670,6 +699,14 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
private void ProcessMessage(string message)
|
private void ProcessMessage(string message)
|
||||||
{
|
{
|
||||||
// Counts the curly braces
|
// Counts the curly braces
|
||||||
|
if (message.Contains("client_loop: send disconnect: Broken pipe"))
|
||||||
|
{
|
||||||
|
Debug.Console(0, this, Debug.ErrorLogLevel.Error,
|
||||||
|
"Zoom Room Controller or App connected. Essentials will NOT control the Zoom Room until it is disconnected.");
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (message.Contains('{'))
|
if (message.Contains('{'))
|
||||||
{
|
{
|
||||||
_jsonCurlyBraceCounter++;
|
_jsonCurlyBraceCounter++;
|
||||||
@@ -759,9 +796,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
SendText("zFeedback Register Op: ex Path: /Event/InfoResult/info/callout_country_list");
|
SendText("zFeedback Register Op: ex Path: /Event/InfoResult/info/callout_country_list");
|
||||||
Thread.Sleep(100);
|
Thread.Sleep(100);
|
||||||
|
|
||||||
if (!_props.DisablePhonebookAutoDownload)
|
if (_props.DisablePhonebookAutoDownload)
|
||||||
{
|
{
|
||||||
SendText("zFeedback Register ");
|
SendText("zFeedback Register Op: ex Path: /Event/Phonebook/AddedContact");
|
||||||
}
|
}
|
||||||
// switch to json format
|
// switch to json format
|
||||||
SendText("format json");
|
SendText("format json");
|
||||||
@@ -841,6 +878,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
{
|
{
|
||||||
switch (topKey.ToLower())
|
switch (topKey.ToLower())
|
||||||
{
|
{
|
||||||
|
case "inforesult":
|
||||||
|
{
|
||||||
|
JsonConvert.PopulateObject(responseObj.ToString(), Status.Call.Info);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case "phonebooklistresult":
|
case "phonebooklistresult":
|
||||||
{
|
{
|
||||||
JsonConvert.PopulateObject(responseObj.ToString(), Status.Phonebook);
|
JsonConvert.PopulateObject(responseObj.ToString(), Status.Phonebook);
|
||||||
@@ -1160,6 +1202,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
{
|
{
|
||||||
JsonConvert.PopulateObject(responseObj.ToString(), Status.Sharing);
|
JsonConvert.PopulateObject(responseObj.ToString(), Status.Sharing);
|
||||||
|
|
||||||
|
SetLayout();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "numberofscreens":
|
case "numberofscreens":
|
||||||
@@ -1224,6 +1268,24 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SetLayout()
|
||||||
|
{
|
||||||
|
if(!_props.AutoDefaultLayouts) return;
|
||||||
|
|
||||||
|
if (
|
||||||
|
(Status.Call.Sharing.State == zEvent.eSharingState.Receiving ||
|
||||||
|
Status.Call.Sharing.State == zEvent.eSharingState.Sending))
|
||||||
|
{
|
||||||
|
SendText(String.Format("zconfiguration call layout style: {0}",
|
||||||
|
_props.DefaultSharingLayout));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SendText(String.Format("zconfiguration call layout style: {0}",
|
||||||
|
_props.DefaultCallLayout));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void PrintCurrentCallParticipants()
|
public void PrintCurrentCallParticipants()
|
||||||
{
|
{
|
||||||
if (Debug.Level <= 0)
|
if (Debug.Level <= 0)
|
||||||
@@ -1329,6 +1391,15 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
Debug.Console(1, this, "**************************************************************************");
|
Debug.Console(1, this, "**************************************************************************");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void OnCallStatusChange(CodecActiveCallItem item)
|
||||||
|
{
|
||||||
|
base.OnCallStatusChange(item);
|
||||||
|
|
||||||
|
if (_props.AutoDefaultLayouts)
|
||||||
|
{
|
||||||
|
SetLayout();
|
||||||
|
}
|
||||||
|
}
|
||||||
public override void StartSharing()
|
public override void StartSharing()
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
@@ -1631,6 +1702,52 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
public BoolFeedback CameraAutoModeIsOnFeedback { get; private set; }
|
public BoolFeedback CameraAutoModeIsOnFeedback { get; private set; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Implementation of IHasFarEndContentStatus
|
||||||
|
|
||||||
|
public BoolFeedback ReceivingContent { get; private set; }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Implementation of IHasSelfviewPosition
|
||||||
|
|
||||||
|
private CodecCommandWithLabel _currentSelfviewPipPosition;
|
||||||
|
|
||||||
|
public StringFeedback SelfviewPipPositionFeedback { get; private set; }
|
||||||
|
|
||||||
|
public void SelfviewPipPositionSet(CodecCommandWithLabel position)
|
||||||
|
{
|
||||||
|
SendText(String.Format("zConfiguration Call Layout Position: {0}", position.Command));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SelfviewPipPositionToggle()
|
||||||
|
{
|
||||||
|
if (_currentSelfviewPipPosition != null)
|
||||||
|
{
|
||||||
|
var nextPipPositionIndex = SelfviewPipPositions.IndexOf(_currentSelfviewPipPosition) + 1;
|
||||||
|
|
||||||
|
if (nextPipPositionIndex >= SelfviewPipPositions.Count) // Check if we need to loop back to the first item in the list
|
||||||
|
nextPipPositionIndex = 0;
|
||||||
|
|
||||||
|
SelfviewPipPositionSet(SelfviewPipPositions[nextPipPositionIndex]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<CodecCommandWithLabel> SelfviewPipPositions = new List<CodecCommandWithLabel>()
|
||||||
|
{
|
||||||
|
new CodecCommandWithLabel("UpLeft", "Center Left"),
|
||||||
|
new CodecCommandWithLabel("UpRight", "Center Right"),
|
||||||
|
new CodecCommandWithLabel("DownLeft", "Lower Left"),
|
||||||
|
new CodecCommandWithLabel("DownRight", "Lower Right")
|
||||||
|
};
|
||||||
|
|
||||||
|
void ComputeSelfviewPipStatus()
|
||||||
|
{
|
||||||
|
_currentSelfviewPipPosition =
|
||||||
|
SelfviewPipPositions.FirstOrDefault(
|
||||||
|
p => p.Command.ToLower().Equals(Configuration.Call.Layout.Position.ToString()));
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -68,7 +68,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Builds the command and triggers the parent ZoomRoom to send it
|
/// Builds the command and triggers the parent ZoomRoom to send it
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="id"></param>
|
|
||||||
/// <param name="state"></param>
|
/// <param name="state"></param>
|
||||||
/// <param name="action"></param>
|
/// <param name="action"></param>
|
||||||
void SendCommand(eZoomRoomCameraState state, eZoomRoomCameraAction action)
|
void SendCommand(eZoomRoomCameraState state, eZoomRoomCameraAction action)
|
||||||
@@ -86,16 +85,18 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
void SendContinueAction(eZoomRoomCameraAction action)
|
void SendContinueAction(eZoomRoomCameraAction action)
|
||||||
{
|
{
|
||||||
SendCommand(eZoomRoomCameraState.Continue, action);
|
SendCommand(eZoomRoomCameraState.Continue, action);
|
||||||
ContinueTimer.Reset();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void StopContinueTimer()
|
void StopContinueTimer()
|
||||||
{
|
{
|
||||||
if (ContinueTimer != null)
|
if (ContinueTimer == null)
|
||||||
{
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ContinueTimer.Stop();
|
ContinueTimer.Stop();
|
||||||
ContinueTimer.Dispose();
|
ContinueTimer.Dispose();
|
||||||
}
|
ContinueTimer = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
#region IHasCameraPtzControl Members
|
#region IHasCameraPtzControl Members
|
||||||
@@ -111,23 +112,27 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
public void PanLeft()
|
public void PanLeft()
|
||||||
{
|
{
|
||||||
if (!isMoving)
|
if (isMoving)
|
||||||
{
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SendCommand(eZoomRoomCameraState.Start, eZoomRoomCameraAction.Left);
|
SendCommand(eZoomRoomCameraState.Start, eZoomRoomCameraAction.Left);
|
||||||
StartContinueTimer();
|
StartContinueTimer();
|
||||||
isPanning = true;
|
isPanning = true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public void PanRight()
|
public void PanRight()
|
||||||
{
|
{
|
||||||
if (!isMoving)
|
if (isMoving)
|
||||||
{
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SendCommand(eZoomRoomCameraState.Start, eZoomRoomCameraAction.Right);
|
SendCommand(eZoomRoomCameraState.Start, eZoomRoomCameraAction.Right);
|
||||||
StartContinueTimer();
|
StartContinueTimer();
|
||||||
isPanning = true;
|
isPanning = true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public void PanStop()
|
public void PanStop()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -16,5 +16,14 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
public bool DisablePhonebookAutoDownload { get; set; }
|
public bool DisablePhonebookAutoDownload { get; set; }
|
||||||
public bool SupportsCameraAutoMode { get; set; }
|
public bool SupportsCameraAutoMode { get; set; }
|
||||||
public bool SupportsCameraOff { get; set; }
|
public bool SupportsCameraOff { get; set; }
|
||||||
|
|
||||||
|
//if true, the layouts will be set automatically when sharing starts/ends or a call is joined
|
||||||
|
public bool AutoDefaultLayouts { get; set; }
|
||||||
|
|
||||||
|
/* This layout will be selected when Sharing starts (either from Far end or locally)*/
|
||||||
|
public string DefaultSharingLayout { get; set; }
|
||||||
|
|
||||||
|
//This layout will be selected when a call is connected and no content is being shared
|
||||||
|
public string DefaultCallLayout { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
<packages>
|
<packages>
|
||||||
<package id="PepperDashCore" version="1.0.43-alpha-170" targetFramework="net35" allowedVersions="[1.0,1.1)"/>
|
<package id="PepperDashCore" version="1.0.42" targetFramework="net35" allowedVersions="[1.0,1.1)"/>
|
||||||
</packages>
|
</packages>
|
||||||
Reference in New Issue
Block a user