public override IBullet Create(Vector where) { Decimator bullet = new Decimator(where, direction); ApplyDmgModifier(bullet); ApplyOnHits(bullet); return(bullet); }
public void Decimate() { // TODO: write some better tests var input = new List <ScreenPoint>(); var output = new List <ScreenPoint>(); int n = 1000; for (int i = 0; i < n; i++) { input.Add(new ScreenPoint(Math.Round((double)i / n), Math.Sin(i))); } Decimator.Decimate(input, output); Assert.AreEqual(6, output.Count); }
private unsafe void startButtonClick(object sender, EventArgs e) { rtlDevice = new Device(0); rtlDevice.Frequency = frequency; rtlDevice.SamplesAvailable += D_SamplesAvailable; mainSpectrumAnalyzer.Frequency = rtlDevice.Frequency; mainSpectrumAnalyzer.SampleRate = rtlDevice.SampleRate; maxIqSamples = (int)(audioBufferInMs * rtlDevice.SampleRate / 1000); _fftStream = new ComplexFifo(maxIqSamples); _fftStreamDecimator = new ComplexFifo(maxIqSamples); _fftStream.Open(); _fftStreamDecimator.Open(); decimator = new Decimator(rtlDevice.SampleRate, (uint)decimatorRatio, (uint)fftBins); audioDecimator = new InlineFloatDecimator(rtlDevice.SampleRate / decimatorRatio, (uint)decimatorRatio); audioSampleRate = (int)((rtlDevice.SampleRate / decimatorRatio) / decimatorRatio); audioBuffer = DataBuffer.Create((audioBufferInMs * audioSampleRate / 1000), sizeof(float)); audioPtr = (float *)audioBuffer; fmLpf = new FloatLPF(audioSampleRate, 22050, 127); _audioFifo = new FloatFifo(16 * audioBufferInMs * audioSampleRate / 1000); _audioFifo.Open(); _audioPlayer = new AudioPlayer(audioDeviceIdx, audioSampleRate, (uint)(audioBufferInMs * audioSampleRate / 1000), audioBufferNeeded); sFFTDecimator = new SFFT((int)(fftBins / audioDecimator.DecimationFactor)); ifSpectrumAnalizer.Frequency = rtlDevice.Frequency; ifSpectrumAnalizer.SampleRate = decimator.OutputSampleRate; decimator.SamplesAvailable += Decimator_SamplesAvailable; rtlDevice.UseRtlAGC = false; rtlDevice.UseTunerAGC = false; rtlDevice.VGAGain = vgaGain.Value = 3; rtlDevice.LNAGain = lnaGain.Value = 7; rtlDevice.MixerGain = mixerGain.Value = 3; rtlDevice.Start(); dspHit = true; _dspThread = new Thread(dspWork); _dspThread.Start(); fftTimer.Enabled = true; startButton.Enabled = false; stopButton.Enabled = true; Console.WriteLine("Receiving Samples now."); }