Ejemplo n.º 1
0
SDRIOEXPORT sdrio_device * sdrio_open_device(sdrio_uint32 device_index)
{
    sdrio_device *dev = (sdrio_device *)malloc(sizeof(sdrio_device));

    if (dev)
    {
        memset(dev, 0, sizeof(sdrio_device));
        dev->device_index = device_index;

        mirisdr_open (&dev->mirics_device, dev->device_index);

        if (dev->mirics_device)
        {
            mirisdr_set_sample_format(dev->mirics_device, "AUTO");
            mirisdr_set_sample_rate(dev->mirics_device, 2*1024*1000);
            mirisdr_set_center_freq(dev->mirics_device, 100000000);
            mirisdr_set_tuner_gain_mode(dev->mirics_device, 0);

            dev->min_freq = 150000;
            dev->max_freq = 1900000000;
        }
        else
        {
            free(dev);
            return 0;
        }
    }

    return dev;
}
Ejemplo n.º 2
0
bool SDRPlayInput::start()
{
//    QMutexLocker mutexLocker(&m_mutex);
    int res;

    if (!m_dev) {
        return false;
    }

    if (m_running) stop();

	char s12FormatString[] = "336_S16";

	if ((res = mirisdr_set_sample_format(m_dev, s12FormatString))) // sample format S12
	{
		qCritical("SDRPlayInput::start: could not set sample format: rc: %d", res);
		stop();
		return false;
	}

	int sampleRate = SDRPlaySampleRates::getRate(m_settings.m_devSampleRateIndex);

	if ((res = mirisdr_set_sample_rate(m_dev, sampleRate)))
    {
        qCritical("SDRPlayInput::start: could not set sample rate to %d: rc: %d", sampleRate, res);
        stop();
        return false;
    }

    char bulkFormatString[] = "BULK";

	if ((res = mirisdr_set_transfer(m_dev, bulkFormatString)) < 0)
	{
		qCritical("SDRPlayInput::start: could not set USB Bulk mode: rc: %d", res);
		stop();
		return false;
	}

	if ((res = mirisdr_reset_buffer(m_dev)) < 0)
	{
		qCritical("SDRPlayInput::start: could not reset USB EP buffers: %s", strerror(errno));
		stop();
		return false;
	}

	m_sdrPlayThread = new SDRPlayThread(m_dev, &m_sampleFifo);
    m_sdrPlayThread->setLog2Decimation(m_settings.m_log2Decim);
    m_sdrPlayThread->setFcPos((int) m_settings.m_fcPos);

    m_sdrPlayThread->startWork();

//	mutexLocker.unlock();

	applySettings(m_settings, true, true);
	m_running = true;

	return true;
}
Ejemplo n.º 3
0
SDRIOEXPORT sdrio_int32 sdrio_set_rx_samplerate(sdrio_device *dev, sdrio_uint64 sample_rate)
{
    if (dev)
    {
        return (mirisdr_set_sample_rate(dev->mirics_device, (uint32_t)sample_rate) == 0);
    }
    else
    {
        return 0;
    }
}
Ejemplo n.º 4
0
int verbose_set_sample_rate(mirisdr_dev_t *dev, uint32_t samp_rate)
{
	int r;
	r = mirisdr_set_sample_rate(dev, samp_rate);
	if (r < 0) {
		fprintf(stderr, "WARNING: Failed to set sample rate.\n");
	} else {
		fprintf(stderr, "Sampling at %u S/s.\n", samp_rate);
	}
	return r;
}