private static int HackRFSamplesAvailable(hackrf_transfer *ptr) { sbyte *buf = ptr->buffer; int len = ptr->buffer_length; IntPtr ctx = ptr->rx_ctx; var gcHandle = GCHandle.FromIntPtr(ctx); if (!gcHandle.IsAllocated) { return(-1); } var instance = (HackRFDevice)gcHandle.Target; var sampleCount = (int)len / 2; if (instance._iqBuffer == null || instance._iqBuffer.Length != sampleCount) { instance._iqBuffer = UnsafeBuffer.Create(sampleCount, sizeof(Complex)); instance._iqPtr = (Complex *)instance._iqBuffer; } var ptrIq = instance._iqPtr; for (var i = 0; i < sampleCount; i++) { ptrIq->Imag = _lutPtr[*buf++]; ptrIq->Real = _lutPtr[*buf++]; ptrIq++; } instance.ComplexSamplesAvailable(instance._iqPtr, instance._iqBuffer.Length); return(0); }
private int HackRFSamplesAvailable(hackrf_transfer *samplesPtr) { return(0); }