Merge branch 'release/1.10.0' into feature/revise-zoomroom-gather-methodology

This commit is contained in:
Neil Dorin
2022-02-10 16:02:55 -07:00
11 changed files with 57 additions and 43 deletions

View File

@@ -98,7 +98,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Push_Nuget_Package: Push_Nuget_Package:
needs: Build_Project needs: Build_Project
runs-on: windows-latest runs-on: windows-2019
steps: steps:
- name: Download Build Version Info - name: Download Build Version Info
uses: actions/download-artifact@v1 uses: actions/download-artifact@v1

View File

@@ -82,7 +82,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Push_Nuget_Package: Push_Nuget_Package:
needs: Build_Project needs: Build_Project
runs-on: windows-latest runs-on: windows-2019
steps: steps:
- name: Download Build Version Info - name: Download Build Version Info
uses: actions/download-artifact@v1 uses: actions/download-artifact@v1

View File

@@ -56,6 +56,9 @@ namespace PepperDash.Essentials.Room.Config
[JsonProperty("mirroredTuners")] [JsonProperty("mirroredTuners")]
public Dictionary<uint, string> MirroredTuners { get; set; } public Dictionary<uint, string> MirroredTuners { get; set; }
[JsonProperty("helpMessage")]
public string HelpMessage { get; set; }
/// <summary> /// <summary>
/// Indicates the room /// Indicates the room
/// </summary> /// </summary>

View File

@@ -89,7 +89,7 @@ namespace PepperDash.Essentials
} }
} }
public EssentialsConferenceRoomPropertiesConfig PropertiesConfig { get; private set; } public EssentialsHuddleVtc1PropertiesConfig PropertiesConfig { get; private set; }
private List<IRoutingSinkWithSwitching> Displays; private List<IRoutingSinkWithSwitching> Displays;
@@ -199,7 +199,7 @@ namespace PepperDash.Essentials
{ {
try try
{ {
PropertiesConfig = JsonConvert.DeserializeObject<EssentialsConferenceRoomPropertiesConfig> PropertiesConfig = JsonConvert.DeserializeObject<EssentialsHuddleVtc1PropertiesConfig>
(config.Properties.ToString()); (config.Properties.ToString());
VideoCodec = DeviceManager.GetDeviceForKey(PropertiesConfig.VideoCodecKey) as VideoCodec = DeviceManager.GetDeviceForKey(PropertiesConfig.VideoCodecKey) as
@@ -361,7 +361,7 @@ namespace PepperDash.Essentials
protected override void CustomSetConfig(DeviceConfig config) protected override void CustomSetConfig(DeviceConfig config)
{ {
var newPropertiesConfig = JsonConvert.DeserializeObject<EssentialsConferenceRoomPropertiesConfig>(config.Properties.ToString()); var newPropertiesConfig = JsonConvert.DeserializeObject<EssentialsHuddleVtc1PropertiesConfig>(config.Properties.ToString());
if (newPropertiesConfig != null) if (newPropertiesConfig != null)
PropertiesConfig = newPropertiesConfig; PropertiesConfig = newPropertiesConfig;

View File

@@ -101,7 +101,7 @@ namespace PepperDash.Essentials
} }
} }
public EssentialsConferenceRoomPropertiesConfig PropertiesConfig { get; private set; } public EssentialsHuddleVtc1PropertiesConfig PropertiesConfig { get; private set; }
public IRoutingSinkWithSwitching DefaultDisplay { get; private set; } public IRoutingSinkWithSwitching DefaultDisplay { get; private set; }
public IBasicVolumeControls DefaultAudioDevice { get; private set; } public IBasicVolumeControls DefaultAudioDevice { get; private set; }

View File

@@ -19,7 +19,7 @@ namespace PepperDash.Essentials
{ {
public class EssentialsTechRoom : EssentialsRoomBase, ITvPresetsProvider, IBridgeAdvanced, IRunDirectRouteAction public class EssentialsTechRoom : EssentialsRoomBase, ITvPresetsProvider, IBridgeAdvanced, IRunDirectRouteAction
{ {
private readonly EssentialsTechRoomConfig _config; public EssentialsTechRoomConfig PropertiesConfig { get; private set; }
private readonly Dictionary<string, TwoWayDisplayBase> _displays; private readonly Dictionary<string, TwoWayDisplayBase> _displays;
private readonly DevicePresetsModel _tunerPresets; private readonly DevicePresetsModel _tunerPresets;
@@ -57,16 +57,16 @@ namespace PepperDash.Essentials
public EssentialsTechRoom(DeviceConfig config) : base(config) public EssentialsTechRoom(DeviceConfig config) : base(config)
{ {
_config = config.Properties.ToObject<EssentialsTechRoomConfig>(); PropertiesConfig = config.Properties.ToObject<EssentialsTechRoomConfig>();
_tunerPresets = new DevicePresetsModel(String.Format("{0}-presets", config.Key), _config.PresetsFileName); _tunerPresets = new DevicePresetsModel(String.Format("{0}-presets", config.Key), PropertiesConfig.PresetsFileName);
_tunerPresets.SetFileName(_config.PresetsFileName); _tunerPresets.SetFileName(PropertiesConfig.PresetsFileName);
_tunerPresets.PresetRecalled += TunerPresetsOnPresetRecalled; _tunerPresets.PresetRecalled += TunerPresetsOnPresetRecalled;
_tuners = GetDevices<IRSetTopBoxBase>(_config.Tuners); _tuners = GetDevices<IRSetTopBoxBase>(PropertiesConfig.Tuners);
_displays = GetDevices<TwoWayDisplayBase>(_config.Displays); _displays = GetDevices<TwoWayDisplayBase>(PropertiesConfig.Displays);
RoomPowerIsOnFeedback = new BoolFeedback(() => RoomPowerIsOn); RoomPowerIsOnFeedback = new BoolFeedback(() => RoomPowerIsOn);
@@ -153,7 +153,7 @@ namespace PepperDash.Essentials
private void CreateOrUpdateScheduledEvents() private void CreateOrUpdateScheduledEvents()
{ {
var eventsConfig = _config.ScheduledEvents; var eventsConfig = PropertiesConfig.ScheduledEvents;
GetOrCreateScheduleGroup(); GetOrCreateScheduleGroup();
@@ -207,21 +207,21 @@ namespace PepperDash.Essentials
{ {
//update config based on key of scheduleEvent //update config based on key of scheduleEvent
GetOrCreateScheduleGroup(); GetOrCreateScheduleGroup();
var existingEventIndex = _config.ScheduledEvents.FindIndex((e) => e.Key == scheduledEvent.Key); var existingEventIndex = PropertiesConfig.ScheduledEvents.FindIndex((e) => e.Key == scheduledEvent.Key);
if (existingEventIndex < 0) if (existingEventIndex < 0)
{ {
_config.ScheduledEvents.Add(scheduledEvent); PropertiesConfig.ScheduledEvents.Add(scheduledEvent);
} }
else else
{ {
_config.ScheduledEvents[existingEventIndex] = scheduledEvent; PropertiesConfig.ScheduledEvents[existingEventIndex] = scheduledEvent;
} }
//create or update event based on config //create or update event based on config
CreateOrUpdateSingleEvent(scheduledEvent); CreateOrUpdateSingleEvent(scheduledEvent);
//save config //save config
Config.Properties = JToken.FromObject(_config); Config.Properties = JToken.FromObject(PropertiesConfig);
CustomSetConfig(Config); CustomSetConfig(Config);
//Fire Event //Fire Event
@@ -230,7 +230,7 @@ namespace PepperDash.Essentials
public List<ScheduledEventConfig> GetScheduledEvents() public List<ScheduledEventConfig> GetScheduledEvents()
{ {
return _config.ScheduledEvents ?? new List<ScheduledEventConfig>(); return PropertiesConfig.ScheduledEvents ?? new List<ScheduledEventConfig>();
} }
private void OnScheduledEventUpdate() private void OnScheduledEventUpdate()
@@ -242,14 +242,14 @@ namespace PepperDash.Essentials
return; return;
} }
handler(this, new ScheduledEventEventArgs {ScheduledEvents = _config.ScheduledEvents}); handler(this, new ScheduledEventEventArgs {ScheduledEvents = PropertiesConfig.ScheduledEvents});
} }
public event EventHandler<ScheduledEventEventArgs> ScheduledEventsChanged; public event EventHandler<ScheduledEventEventArgs> ScheduledEventsChanged;
private void HandleScheduledEvent(ScheduledEvent schevent, ScheduledEventCommon.eCallbackReason type) private void HandleScheduledEvent(ScheduledEvent schevent, ScheduledEventCommon.eCallbackReason type)
{ {
var eventConfig = _config.ScheduledEvents.FirstOrDefault(e => e.Key == schevent.Name); var eventConfig = PropertiesConfig.ScheduledEvents.FirstOrDefault(e => e.Key == schevent.Name);
if (eventConfig == null) if (eventConfig == null)
{ {
@@ -286,11 +286,11 @@ Params: {2}"
{ {
Debug.Console(2, this, "Room Powering On"); Debug.Console(2, this, "Room Powering On");
var dummySource = DeviceManager.GetDeviceForKey(_config.DummySourceKey) as IRoutingOutputs; var dummySource = DeviceManager.GetDeviceForKey(PropertiesConfig.DummySourceKey) as IRoutingOutputs;
if (dummySource == null) if (dummySource == null)
{ {
Debug.Console(1, this, "Unable to get source with key: {0}", _config.DummySourceKey); Debug.Console(1, this, "Unable to get source with key: {0}", PropertiesConfig.DummySourceKey);
return; return;
} }
@@ -376,12 +376,12 @@ Params: {2}"
bridge.AddJoinMap(Key, joinMap); bridge.AddJoinMap(Key, joinMap);
} }
if (_config.IsPrimary) if (PropertiesConfig.IsPrimary)
{ {
Debug.Console(1, this, "Linking Primary system Tuner Preset Mirroring"); Debug.Console(1, this, "Linking Primary system Tuner Preset Mirroring");
if (_config.MirroredTuners != null && _config.MirroredTuners.Count > 0) if (PropertiesConfig.MirroredTuners != null && PropertiesConfig.MirroredTuners.Count > 0)
{ {
foreach (var tuner in _config.MirroredTuners) foreach (var tuner in PropertiesConfig.MirroredTuners)
{ {
var f = CurrentPresetsFeedbacks[tuner.Value]; var f = CurrentPresetsFeedbacks[tuner.Value];
@@ -423,9 +423,9 @@ Params: {2}"
{ {
Debug.Console(1, this, "Linking Secondary system Tuner Preset Mirroring"); Debug.Console(1, this, "Linking Secondary system Tuner Preset Mirroring");
if (_config.MirroredTuners != null && _config.MirroredTuners.Count > 0) if (PropertiesConfig.MirroredTuners != null && PropertiesConfig.MirroredTuners.Count > 0)
{ {
foreach (var tuner in _config.MirroredTuners) foreach (var tuner in PropertiesConfig.MirroredTuners)
{ {
var t = _tuners[tuner.Value]; var t = _tuners[tuner.Value];

View File

@@ -10,7 +10,7 @@ namespace PepperDash.Essentials
public interface IEssentialsHuddleVtc1Room : IEssentialsRoom, IHasCurrentSourceInfoChange, public interface IEssentialsHuddleVtc1Room : IEssentialsRoom, IHasCurrentSourceInfoChange,
IPrivacy, IHasCurrentVolumeControls, IRunRouteAction, IRunDefaultCallRoute, IHasVideoCodec, IHasAudioCodec, IHasDefaultDisplay, IHasInCallFeedback IPrivacy, IHasCurrentVolumeControls, IRunRouteAction, IRunDefaultCallRoute, IHasVideoCodec, IHasAudioCodec, IHasDefaultDisplay, IHasInCallFeedback
{ {
EssentialsConferenceRoomPropertiesConfig PropertiesConfig { get; } EssentialsHuddleVtc1PropertiesConfig PropertiesConfig { get; }
bool ExcludeFromGlobalFunctions { get; } bool ExcludeFromGlobalFunctions { get; }

View File

@@ -139,7 +139,8 @@ namespace PepperDash.Essentials.Core.Queues
_queue = new CrestronQueue<IQueueMessage>(cap); _queue = new CrestronQueue<IQueueMessage>(cap);
_worker = new Thread(ProcessQueue, null, Thread.eThreadStartOptions.Running) _worker = new Thread(ProcessQueue, null, Thread.eThreadStartOptions.Running)
{ {
Priority = priority Priority = priority,
Name = _key
}; };
SetDelayValues(pacing); SetDelayValues(pacing);

View File

@@ -411,7 +411,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
if (codec is IHasCameraAutoMode) if (codec is IHasCameraAutoMode)
{ {
trilist.SetBool(joinMap.CameraSupportsAutoMode.JoinNumber, true); trilist.SetBool(joinMap.CameraSupportsAutoMode.JoinNumber, SupportsCameraAutoMode);
(codec as IHasCameraAutoMode).CameraAutoModeIsOnFeedback.FireUpdate(); (codec as IHasCameraAutoMode).CameraAutoModeIsOnFeedback.FireUpdate();
} }

View File

@@ -71,7 +71,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
_props = JsonConvert.DeserializeObject<ZoomRoomPropertiesConfig>(config.Properties.ToString()); _props = JsonConvert.DeserializeObject<ZoomRoomPropertiesConfig>(config.Properties.ToString());
_receiveQueue = new GenericQueue(Key + "-rxQueue", Thread.eThreadPriority.MediumPriority, 512); _receiveQueue = new GenericQueue(Key + "-rxQueue", Thread.eThreadPriority.MediumPriority, 2048);
Communication = comm; Communication = comm;

View File

@@ -2,30 +2,40 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using Crestron.SimplSharp; using Crestron.SimplSharp;
using Newtonsoft.Json;
using PepperDash.Core; using PepperDash.Core;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
{ {
public class ZoomRoomPropertiesConfig public class ZoomRoomPropertiesConfig
{ {
public CommunicationMonitorConfig CommunicationMonitorProperties { get; set; } [JsonProperty("communicationMonitorProperties")]
public CommunicationMonitorConfig CommunicationMonitorProperties { get; set; }
public bool DisablePhonebookAutoDownload { get; set; }
public bool SupportsCameraAutoMode { get; set; } [JsonProperty("disablePhonebookAutoDownload")]
public bool DisablePhonebookAutoDownload { get; set; }
[JsonProperty("supportsCameraAutoMode")]
public bool SupportsCameraAutoMode { get; set; }
[JsonProperty("supportsCameraOff")]
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 //if true, the layouts will be set automatically when sharing starts/ends or a call is joined
[JsonProperty("autoDefaultLayouts")]
public bool AutoDefaultLayouts { get; set; } public bool AutoDefaultLayouts { get; set; }
/* This layout will be selected when Sharing starts (either from Far end or locally)*/ /* This layout will be selected when Sharing starts (either from Far end or locally)*/
[JsonProperty("defaultSharingLayout")]
public string DefaultSharingLayout { get; set; } public string DefaultSharingLayout { get; set; }
//This layout will be selected when a call is connected and no content is being shared //This layout will be selected when a call is connected and no content is being shared
public string DefaultCallLayout { get; set; } [JsonProperty("defaultCallLayout")]
public string DefaultCallLayout { get; set; }
[JsonProperty("minutesBeforeMeetingStart")]
public int MinutesBeforeMeetingStart { get; set; } public int MinutesBeforeMeetingStart { get; set; }
} }
} }