/// <summary> /// /// </summary> void AddVolumeControl(uint number, Audio.Output audio) { VolumeControls.Add(number, new DmCardAudioOutputController(audio)); }
/// <summary> /// Factory method to create a new chassis controller from config data. Limited to 8x8 right now /// </summary> public static DmBladeChassisController GetDmChassisController(string key, string name, string type, DMChassisPropertiesConfig properties) { try { type = type.ToLower(); uint ipid = properties.Control.IpIdInt; BladeSwitch chassis = null; if (type == "dmmd64x64") { chassis = new DmMd64x64(ipid, Global.ControlSystem); } else if (type == "dmmd128x128") { chassis = new DmMd128x128(ipid, Global.ControlSystem); } if (chassis == null) { return(null); } var controller = new DmBladeChassisController(key, name, chassis); // add the cards and port names foreach (var kvp in properties.InputSlots) { controller.AddInputBlade(kvp.Value, kvp.Key); } foreach (var kvp in properties.OutputSlots) { controller.AddOutputBlade(kvp.Value, kvp.Key); } foreach (var kvp in properties.VolumeControls) { // get the card // check it for an audio-compatible type // make a something-something that will make it work // retire to mountain village var outNum = kvp.Key; var card = controller.Chassis.Outputs[outNum].Card; Audio.Output audio = null; if (card is DmHdmi4kOutputBladeCard) { audio = (card as DmHdmi4kOutputBladeCard).Hdmi4kOutput.Audio; } if (audio == null) { continue; } // wire up the audio to something here... controller.AddVolumeControl(outNum, audio); } controller.InputNames = properties.InputNames; controller.OutputNames = properties.OutputNames; controller.PropertiesConfig = properties; return(controller); } catch (System.Exception e) { Debug.Console(0, "Error creating DM chassis:\r{0}", e); } return(null); }
public DmCardAudioOutputController(Audio.Output output) { Output = output; VolumeLevelFeedback = new IntFeedback(() => Output.VolumeFeedback.UShortValue); MuteFeedback = new BoolFeedback(() => IsMuted); }
/// <summary> /// Factory method to create a new chassis controller from config data. Limited to 8x8 right now /// </summary> public static DmChassisController GetDmChassisController(string key, string name, string type, DMChassisPropertiesConfig properties) { try { type = type.ToLower(); uint ipid = properties.Control.IpIdInt; DmMDMnxn chassis = null; switch (type) { case "dmmd8x8": chassis = new DmMd8x8(ipid, Global.ControlSystem); break; case "dmmd8x8rps": chassis = new DmMd8x8rps(ipid, Global.ControlSystem); break; case "dmmd8x8cpu3": chassis = new DmMd8x8Cpu3(ipid, Global.ControlSystem); break; case "dmmd8x8cpu3rps": chassis = new DmMd8x8Cpu3rps(ipid, Global.ControlSystem); break; case "dmmd16x16": chassis = new DmMd16x16(ipid, Global.ControlSystem); break; case "dmmd16x16rps": chassis = new DmMd16x16rps(ipid, Global.ControlSystem); break; case "dmmd16x16cpu3": chassis = new DmMd16x16Cpu3(ipid, Global.ControlSystem); break; case "dmmd16x16cpu3rps": chassis = new DmMd16x16Cpu3rps(ipid, Global.ControlSystem); break; case "dmmd32x32": chassis = new DmMd32x32(ipid, Global.ControlSystem); break; case "dmmd32x32rps": chassis = new DmMd32x32rps(ipid, Global.ControlSystem); break; case "dmmd32x32cpu3": chassis = new DmMd32x32Cpu3(ipid, Global.ControlSystem); break; case "dmmd32x32cpu3rps": chassis = new DmMd32x32Cpu3rps(ipid, Global.ControlSystem); break; } if (chassis == null) { return(null); } var controller = new DmChassisController(key, name, chassis); // add the cards and port names foreach (var kvp in properties.InputSlots) { controller.AddInputCard(kvp.Value, kvp.Key); } foreach (var kvp in properties.OutputSlots) { controller.AddOutputCard(kvp.Value, kvp.Key); } foreach (var kvp in properties.VolumeControls) { // get the card // check it for an audio-compatible type // make a something-something that will make it work // retire to mountain village var outNum = kvp.Key; var card = controller.Chassis.Outputs[outNum].Card; Audio.Output audio = null; if (card is DmcHdo) { audio = (card as DmcHdo).Audio; } else if (card is Dmc4kHdo) { audio = (card as Dmc4kHdo).Audio; } if (audio == null) { continue; } // wire up the audio to something here... controller.AddVolumeControl(outNum, audio); } controller.InputNames = properties.InputNames; controller.OutputNames = properties.OutputNames; if (!string.IsNullOrEmpty(properties.NoRouteText)) { controller.NoRouteText = properties.NoRouteText; Debug.Console(1, controller, "Setting No Route Text value to: {0}", controller.NoRouteText); } else { Debug.Console(1, controller, "NoRouteText not specified. Defaulting to blank string.", controller.NoRouteText); } controller.PropertiesConfig = properties; return(controller); } catch (Exception e) { Debug.Console(0, "Error creating DM chassis:\r{0}", e); } return(null); }