diff --git a/PepperDashEssentials/PepperDashEssentials.suo b/PepperDashEssentials/PepperDashEssentials.suo index c2419b44..2350fb1f 100644 Binary files a/PepperDashEssentials/PepperDashEssentials.suo and b/PepperDashEssentials/PepperDashEssentials.suo differ diff --git a/PepperDashEssentials/PepperDashEssentials/Audio/EssentialsVolumeLevelConfig.cs b/PepperDashEssentials/PepperDashEssentials/Audio/EssentialsVolumeLevelConfig.cs new file mode 100644 index 00000000..2ce59344 --- /dev/null +++ b/PepperDashEssentials/PepperDashEssentials/Audio/EssentialsVolumeLevelConfig.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using Crestron.SimplSharp; +using Newtonsoft.Json; + +using PepperDash.Core; +using PepperDash.Essentials.Core; +using PepperDash.Essentials.Core.Config; +using PepperDash.Essentials.Devices.Common.DSP; +using PepperDash.Essentials.DM; + +namespace PepperDash.Essentials +{ + /// + /// + /// + public class EssentialsPresentationVolumesConfig + { + public EssentialsVolumeLevelConfig Master { get; set; } + public EssentialsVolumeLevelConfig Program { get; set; } + public EssentialsVolumeLevelConfig AudioCallRx { get; set; } + public EssentialsVolumeLevelConfig AudioCallTx { get; set; } + } + + + /// + /// + /// + public class EssentialsVolumeLevelConfig + { + public string DeviceKey { get; set; } + public string Label { get; set; } + public int Level { get; set; } + + /// + /// Helper to get the device associated with key - one timer. + /// + public IBasicVolumeWithFeedback GetDevice() + { + // DM output card format: deviceKey--output~number, dm8x8-1--output~4 + var match = Regex.Match(DeviceKey, @"([-_\w]+)--(\w+)~(\d+)"); + if (match.Success) + { + var devKey = match.Groups[1].Value; + var chassis = DeviceManager.GetDeviceForKey(devKey) as DmChassisController; + if (chassis != null) + { + var outputNum = Convert.ToUInt32(match.Groups[3].Value); + if (chassis.VolumeControls.ContainsKey(outputNum)) // should always... + return chassis.VolumeControls[outputNum]; + } + // No volume for some reason. We have failed as developers + return null; + } + + // DSP format: deviceKey--levelName, biampTesira-1--master + match = Regex.Match(DeviceKey, @"([-_\w]+)--(.+)"); + if (match.Success) + { + var devKey = match.Groups[1].Value; + var dsp = DeviceManager.GetDeviceForKey(devKey) as BiampTesiraForteDsp; + if (dsp != null) + { + var levelTag = match.Groups[2].Value; + if (dsp.LevelControlPoints.ContainsKey(levelTag)) // should always... + return dsp.LevelControlPoints[levelTag]; + } + // No volume for some reason. We have failed as developers + return null; + } + + return null; + } + } +} \ No newline at end of file diff --git a/PepperDashEssentials/PepperDashEssentials/PepperDashEssentials.csproj b/PepperDashEssentials/PepperDashEssentials/PepperDashEssentials.csproj index 6a2afa9b..a74e15fe 100644 --- a/PepperDashEssentials/PepperDashEssentials/PepperDashEssentials.csproj +++ b/PepperDashEssentials/PepperDashEssentials/PepperDashEssentials.csproj @@ -117,6 +117,7 @@ + diff --git a/PepperDashEssentials/PepperDashEssentials/PepperDashEssentials.projectinfo b/PepperDashEssentials/PepperDashEssentials/PepperDashEssentials.projectinfo index 9e7e59e5..1cee78c6 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/PepperDashEssentials.projectinfo and b/PepperDashEssentials/PepperDashEssentials/PepperDashEssentials.projectinfo differ diff --git a/PepperDashEssentials/PepperDashEssentials/Room/EssentialsHuddleSpaceRoom.cs b/PepperDashEssentials/PepperDashEssentials/Room/EssentialsHuddleSpaceRoom.cs index 7ffd2c15..9485ee10 100644 --- a/PepperDashEssentials/PepperDashEssentials/Room/EssentialsHuddleSpaceRoom.cs +++ b/PepperDashEssentials/PepperDashEssentials/Room/EssentialsHuddleSpaceRoom.cs @@ -122,7 +122,7 @@ namespace PepperDash.Essentials public void RunRouteAction(string routeKey) { RunRouteAction(routeKey, null); - } + } /// /// Gets a source from config list SourceListKey and dynamically build and executes the diff --git a/PepperDashEssentials/PepperDashEssentials/Room/EssentialsPresentationRoom.cs b/PepperDashEssentials/PepperDashEssentials/Room/EssentialsPresentationRoom.cs index 5b5db75c..73fd504f 100644 --- a/PepperDashEssentials/PepperDashEssentials/Room/EssentialsPresentationRoom.cs +++ b/PepperDashEssentials/PepperDashEssentials/Room/EssentialsPresentationRoom.cs @@ -192,9 +192,9 @@ namespace PepperDash.Essentials /// public void RouteSourceToAllDestinations(SourceListItem sourceItem) { - if (Config.Volumes.ContainsKey("master")) + if (Config.Volumes.Master != null) { - var audioDev = DeviceManager.GetDeviceForKey(Config.Volumes["master"].DeviceKey); + var audioDev = DeviceManager.GetDeviceForKey(Config.Volumes.Master.DeviceKey); if (audioDev is IBasicVolumeWithFeedback) { diff --git a/PepperDashEssentials/PepperDashEssentials/Room/EssentialsRoomConfig.cs b/PepperDashEssentials/PepperDashEssentials/Room/EssentialsRoomConfig.cs index 73e51e37..3e359e44 100644 --- a/PepperDashEssentials/PepperDashEssentials/Room/EssentialsRoomConfig.cs +++ b/PepperDashEssentials/PepperDashEssentials/Room/EssentialsRoomConfig.cs @@ -44,33 +44,11 @@ namespace PepperDash.Essentials displaysDict.Add(i++, disp); } - // Need to assign the volume control point and also audio routing endpoint, if routing - // is required: For DSP, typically no. - - IBasicVolumeWithFeedback masterVolumeControlDev = null; - if (props.Volumes.ContainsKey("master")) - { - var audioConfig = props.Volumes["master"]; - // need to either get a device or drill down into a device for a card or port - - // Check for DM output port format - var match = Regex.Match(audioConfig.DeviceKey, @"([-_\w]+)--(\w+)~(\d+)"); - if(match.Success) - { - var devKey = match.Groups[1].Value; - var chassis = DeviceManager.GetDeviceForKey(devKey) as DmChassisController; - if (chassis != null) - { - var outputNum = Convert.ToUInt32(match.Groups[3].Value); - if (chassis.VolumeControls.ContainsKey(outputNum)) // should always... - { - masterVolumeControlDev = chassis.VolumeControls[outputNum]; - Debug.Console(2, "Setting '{0}' as master volume control on room", audioConfig.DeviceKey); - } - } - } - } + // Get the master volume control + IBasicVolumeWithFeedback masterVolumeControlDev = props.Volumes.Master.GetDevice(); +#warning Will need to define audio routing somewhere as well + var presRoom = new EssentialsPresentationRoom(Key, Name, displaysDict, masterVolumeControlDev, props); return presRoom; } @@ -78,12 +56,18 @@ namespace PepperDash.Essentials } } + /// + /// + /// public class EssentialsRoomPropertiesConfig { public string HelpMessage { get; set; } public string Description { get; set; } } + /// + /// + /// public class EssentialsHuddleRoomPropertiesConfig : EssentialsRoomPropertiesConfig { public string DefaultDisplayKey { get; set; } @@ -91,6 +75,9 @@ namespace PepperDash.Essentials public string SourceListKey { get; set; } } + /// + /// + /// public class EssentialsPresentationRoomPropertiesConfig : EssentialsRoomPropertiesConfig { public string DefaultAudioBehavior { get; set; } @@ -98,19 +85,12 @@ namespace PepperDash.Essentials public string DefaultVideoBehavior { get; set; } public List DisplayKeys { get; set; } public string SourceListKey { get; set; } - public Dictionary Volumes { get; set; } + public bool HasDsp { get; set; } + public EssentialsPresentationVolumesConfig Volumes { get; set; } public EssentialsPresentationRoomPropertiesConfig() { DisplayKeys = new List(); - Volumes = new Dictionary(); } - } - - public class EssentialsVolumeLevelConfig - { - public string DeviceKey { get; set; } - public string Label { get; set; } - public int Level { get; set; } - } + } } \ No newline at end of file diff --git a/PepperDashEssentials/PepperDashEssentials/SIMPLSharpLogs/(2017-03-16 12-22-16).log b/PepperDashEssentials/PepperDashEssentials/SIMPLSharpLogs/(2017-03-16 12-22-16).log new file mode 100644 index 00000000..2636c352 --- /dev/null +++ b/PepperDashEssentials/PepperDashEssentials/SIMPLSharpLogs/(2017-03-16 12-22-16).log @@ -0,0 +1,3 @@ +3/16/2017 12:22:16 PM, Info: Initializing SIMPLSharp Services... +3/16/2017 12:22:16 PM, Info: ProjectInfo successfully initialized. +3/16/2017 12:24:22 PM, Info: Terminating SIMPLSharp Services diff --git a/PepperDashEssentials/PepperDashEssentials/SIMPLSharpLogs/(2017-03-16 12-44-48).log b/PepperDashEssentials/PepperDashEssentials/SIMPLSharpLogs/(2017-03-16 12-44-48).log new file mode 100644 index 00000000..02ed1c25 --- /dev/null +++ b/PepperDashEssentials/PepperDashEssentials/SIMPLSharpLogs/(2017-03-16 12-44-48).log @@ -0,0 +1,6 @@ +3/16/2017 12:44:48 PM, Info: Initializing SIMPLSharp Services... +3/16/2017 12:44:48 PM, Info: ProjectInfo successfully initialized. +3/16/2017 12:47:38 PM, Info: Saving project information... +3/16/2017 12:47:38 PM, Info: Saving project information... +3/16/2017 12:47:38 PM, Info: Saving project information... +3/17/2017 12:46:21 PM, Info: Terminating SIMPLSharp Services diff --git a/PepperDashEssentials/PepperDashEssentials/SIMPLSharpLogs/(2017-03-17 09-00-38).log b/PepperDashEssentials/PepperDashEssentials/SIMPLSharpLogs/(2017-03-17 09-00-38).log new file mode 100644 index 00000000..06ebb861 --- /dev/null +++ b/PepperDashEssentials/PepperDashEssentials/SIMPLSharpLogs/(2017-03-17 09-00-38).log @@ -0,0 +1,3 @@ +3/17/2017 9:00:38 AM, Info: Initializing SIMPLSharp Services... +3/17/2017 9:00:38 AM, Info: ProjectInfo successfully initialized. +3/17/2017 12:46:21 PM, Info: Terminating SIMPLSharp Services diff --git a/PepperDashEssentials/PepperDashEssentials/bin/Essentials Devices Common.dll b/PepperDashEssentials/PepperDashEssentials/bin/Essentials Devices Common.dll index fdf2ac2b..2590cbe3 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/bin/Essentials Devices Common.dll and b/PepperDashEssentials/PepperDashEssentials/bin/Essentials Devices Common.dll differ diff --git a/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.cpz b/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.cpz index d83f3fb3..f58c21e4 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.cpz and b/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.cpz differ diff --git a/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.dll b/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.dll index 791e60c5..e7fd7602 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.dll and b/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.dll differ diff --git a/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.pdb b/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.pdb index 6c931ff0..39acb47a 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.pdb and b/PepperDashEssentials/PepperDashEssentials/bin/PepperDashEssentials.pdb differ diff --git a/PepperDashEssentials/PepperDashEssentials/bin/PepperDash_Core.dll b/PepperDashEssentials/PepperDashEssentials/bin/PepperDash_Core.dll index 57f8b70d..88995d8e 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/bin/PepperDash_Core.dll and b/PepperDashEssentials/PepperDashEssentials/bin/PepperDash_Core.dll differ diff --git a/PepperDashEssentials/PepperDashEssentials/bin/ProgramInfo.config b/PepperDashEssentials/PepperDashEssentials/bin/ProgramInfo.config index 4bddbef7..644b5f49 100644 --- a/PepperDashEssentials/PepperDashEssentials/bin/ProgramInfo.config +++ b/PepperDashEssentials/PepperDashEssentials/bin/ProgramInfo.config @@ -10,8 +10,8 @@ - 3/15/2017 11:45:10 AM - 1.0.0.19353 + 3/20/2017 7:54:11 AM + 1.0.0.12423 Crestron.SIMPLSharp, Version=2.0.48.0, Culture=neutral, PublicKeyToken=812d080f93e2de10 diff --git a/PepperDashEssentials/PepperDashEssentials/bin/manifest.info b/PepperDashEssentials/PepperDashEssentials/bin/manifest.info index 45d7133d..5b9e1ac0 100644 --- a/PepperDashEssentials/PepperDashEssentials/bin/manifest.info +++ b/PepperDashEssentials/PepperDashEssentials/bin/manifest.info @@ -1,4 +1,4 @@ -MainAssembly=PepperDashEssentials.dll:bfe94f76112b33e310c0f6e4484463e2 +MainAssembly=PepperDashEssentials.dll:36b68cb2a41be892b66878dfa5284633 MainAssemblyMinFirmwareVersion=1.009.0029 MainAssemblyResource=SimplSharpData.dat:820b61c48c8a2cace82957eed4cc377c ü @@ -30,9 +30,9 @@ DependencySource=Crestron.SimplSharpPro.UI.dll:089312a0cb0b4537072d4eb234e71e0e DependencyPath=PepperDashEssentials.cpz:Crestron.SimplSharpPro.UI.dll DependencyMainAssembly=Crestron.SimplSharpPro.UI.dll:089312a0cb0b4537072d4eb234e71e0e ü -DependencySource=Essentials Devices Common.dll:22c2d648cf02d3bf28b6c42f461c927f +DependencySource=Essentials Devices Common.dll:8c62479abf8cd36d922665ee540cdd85 DependencyPath=PepperDashEssentials.cpz:Essentials Devices Common.dll -DependencyMainAssembly=Essentials Devices Common.dll:22c2d648cf02d3bf28b6c42f461c927f +DependencyMainAssembly=Essentials Devices Common.dll:8c62479abf8cd36d922665ee540cdd85 ü DependencySource=EssentialsHttpServer.dll:0666085bdb0856c1d117699c7859bb8c DependencyPath=PepperDashEssentials.cpz:EssentialsHttpServer.dll @@ -42,9 +42,9 @@ DependencySource=PepperDashCorePortalSync.dll:815e608cb8a8808dab167837cf89b15a DependencyPath=PepperDashEssentials.cpz:PepperDashCorePortalSync.dll DependencyMainAssembly=PepperDashCorePortalSync.dll:815e608cb8a8808dab167837cf89b15a ü -DependencySource=PepperDash_Core.dll:598033e01568965c3bd67b29e5993374 +DependencySource=PepperDash_Core.dll:49fe0d78cb676a902c692056067fef4b DependencyPath=PepperDashEssentials.cpz:PepperDash_Core.dll -DependencyMainAssembly=PepperDash_Core.dll:598033e01568965c3bd67b29e5993374 +DependencyMainAssembly=PepperDash_Core.dll:49fe0d78cb676a902c692056067fef4b ü DependencySource=PepperDash_Essentials_Core.dll:a3ae2c4b5d2e1890a5788cf717d1b579 DependencyPath=PepperDashEssentials.cpz:PepperDash_Essentials_Core.dll diff --git a/PepperDashEssentials/PepperDashEssentials/bin/manifest.ser b/PepperDashEssentials/PepperDashEssentials/bin/manifest.ser index f4854431..2ba42fd6 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/bin/manifest.ser and b/PepperDashEssentials/PepperDashEssentials/bin/manifest.ser differ diff --git a/PepperDashEssentials/PepperDashEssentials/obj/Debug/PepperDashEssentials.dll b/PepperDashEssentials/PepperDashEssentials/obj/Debug/PepperDashEssentials.dll index f607e55e..dca028b7 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/obj/Debug/PepperDashEssentials.dll and b/PepperDashEssentials/PepperDashEssentials/obj/Debug/PepperDashEssentials.dll differ diff --git a/PepperDashEssentials/PepperDashEssentials/obj/Debug/PepperDashEssentials.pdb b/PepperDashEssentials/PepperDashEssentials/obj/Debug/PepperDashEssentials.pdb index 25e87273..f8b8797e 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/obj/Debug/PepperDashEssentials.pdb and b/PepperDashEssentials/PepperDashEssentials/obj/Debug/PepperDashEssentials.pdb differ diff --git a/PepperDashEssentials/PepperDashEssentials/obj/Debug/ResolveAssemblyReference.cache b/PepperDashEssentials/PepperDashEssentials/obj/Debug/ResolveAssemblyReference.cache index 2ea0845f..312e2d40 100644 Binary files a/PepperDashEssentials/PepperDashEssentials/obj/Debug/ResolveAssemblyReference.cache and b/PepperDashEssentials/PepperDashEssentials/obj/Debug/ResolveAssemblyReference.cache differ