public override void Init()
 {
     //Get RDS client
     this.demodulator = (WbFmDemodulator)ctx.FindComponentResource <AudioResource>(x => x.Label == demodulatorLabel).Demodulator;
     this.demodulator.OnStereoDetected += Demodulator_OnStereoDetected;
     rds = this.demodulator.UseRds();
     rds.OnPsBufferUpdated  += OnRdsUpdated;
     rds.OnRtBufferUpdated  += OnRdsUpdated;
     rds.OnSyncStateChanged += Rds_OnSyncStateChanged;
 }
Beispiel #2
0
        public WbFmDemodulator(BackgroundWorker worker = null)
        {
            //Create parts
            fm             = new FmBasebandDemodulator();
            deemphasisL    = new DeemphasisProcessor();
            deemphasisR    = new DeemphasisProcessor();
            rdsDemodulator = new RDSDecoder();
            rdsDemodulator.OnSyncStateChanged += (bool sync) => OnRdsDetected?.Invoke(sync);
            rdsDemodulator.OnFrameDecoded     += (ulong frame) => OnRdsFrameEmitted?.Invoke(frame);

            //Apply defaults
            this.worker    = worker;
            DeemphasisTime = 75; //Configured for America
            //DeemphasisTime = 50; //Configured for rest of the world
        }