Пример #1
0
        public void Process()
        {
            switch (agcmode)
            {
            case AGCType_e.agcLong:
                Kpa = 0.5f;
                Kpd = 675.0f;
                break;

            case AGCType_e.agcSlow:
                Kpa = 1.0f;
                Kpd = 1250.0f;
                break;

            case AGCType_e.agcMedium:
                Kpa = 2.0f;
                Kpd = 2500.0f;
                break;

            case AGCType_e.agcFast:
                Kpa = 5.0f;
                Kpd = 5000.0f;
                break;

            case AGCType_e.agcOff:
                d.Scale(fixedgain, fixedgain);
                return;
            }
            DoAGC();
        }
Пример #2
0
        private void DoOutputBoth()
        {
            switch (s.DSPMode)
            {
            case DSPMode_e.AM:
            case DSPMode_e.SAM:
            case DSPMode_e.FMN:

                // real & imag contain the same magnitude data after PLL
                d.Scale(this.volume_left, this.volume_right);

                break;

            case DSPMode_e.DSB:
            case DSPMode_e.USB:
            case DSPMode_e.LSB:
            case DSPMode_e.CWL:
            case DSPMode_e.CWU:

                if (this.binaural)
                {
                    d.Scale(this.volume_left, this.volume_right);
                }
                else
                {
                    d.CopyImagToReal();
                    d.Scale(this.volume_left, this.volume_right);
                }

                break;

            case DSPMode_e.SPEC:
            default:

                d.Scale(this.volume_left, this.volume_right);

                break;
            }
        }