public Nrsc5Layer1Decoder(float sampleRate) { //Create resampler and its buffer resampler = new ComplexResamplerPipeline(sampleRate, TARGET_SAMPLE_RATE, 2048 * 8, ProcessBlock); //Create compnents acquire = new Acquire(); sync = new Sync(); decode = new Decode(); pids = new Pids(); frame = new Frame(); //Apply events pids.OnPidsFrame += Pids_OnPidsFrame; frame.OnAasFrame += Frame_OnAasFrame; frame.OnPduFrame += Frame_OnPduFrame; //Link components acquire.SetComponents(acquire, sync, decode, pids, frame); sync.SetComponents(acquire, sync, decode, pids, frame); decode.SetComponents(acquire, sync, decode, pids, frame); pids.SetComponents(acquire, sync, decode, pids, frame); frame.SetComponents(acquire, sync, decode, pids, frame); }