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; }
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 }