예제 #1
0
        private void GetExternalInputSliders()
        {
            //only get monitor slider for the first card as it is per mainunit
            Main.MonitorSlider =
                GetGainSlider.DbValue(Main.DspCopy, SliderType.Monitoring, 0);
            var cardFlows = Main.DataModel.Cards.OfType <ExtensionCardModel>().First().Flows.OrderBy(i => i.Id).ToArray();

            foreach (var flow in cardFlows)
            {
                flow.InputSlider = GetGainSlider.DbValue(Main.DspCopy, SliderType.Input, flow.Id);
            }
        }
예제 #2
0
        private void ApplySliderValues()
        {
            foreach (var result in Main.DataModel.Cards.OfType <CardModel>().SelectMany(f => f.Flows))
            {
                SetSliders(result);
            }

            foreach (var c in Main.DataModel.Cards.OfType <CardModel>())
            {
                c.AuxGainSlider = GetGainSlider.DbValue(Main.DspCopy, SliderType.Auxiliary, Main.Id * 12 + c.Id * 4);
            }
        }
예제 #3
0
        private void SetSliders(FlowModel flow)
        {
            if (flow.Id > GenericMethods.StartCountFrom)
            {
                flow.InputSlider = GetGainSlider.DbValue(Main.DspCopy, SliderType.Input,
                                                         (flow.Id - GenericMethods.StartCountFrom) % 5);
            }

            //set pilotTone frequencies
            var pilot = Main.DspCopy.Skip(0xF113 + 72 * flow.Id + 60).First();

            flow.PilotFrequency = PilotToneConverter.PilotFreqDict.ContainsKey(pilot)
                ? PilotToneConverter.PilotFreqDict[pilot]
                : 0;

            flow.InputSlider = GetGainSlider.DbValue(Main.DspCopy, SliderType.Input, flow.Id);
            flow.PageGain    = GetGainSlider.DbValue(Main.DspCopy, SliderType.Page, flow.Id);
            flow.OutputGain  = GetGainSlider.DbValue(Main.DspCopy, SliderType.Output, flow.Id);


            //demux link
            flow.Path = DspCoefficients.Link(Main.DspCopy, flow.Id);
        }