#pragma once #include #ifdef __cplusplus extern "C" { #endif typedef struct rtlsdr_device rtlsdr_device; typedef struct rtlsdr_device_info { char name[64]; char tuner[32]; char serial[32]; uint64_t freq_min; uint64_t freq_max; uint32_t sample_rate_min; uint32_t sample_rate_max; uint32_t num_gains; int32_t gains[32]; } rtlsdr_device_info; int rtlsdr_count(void); int rtlsdr_get_device_info(int index, rtlsdr_device_info* out); int rtlsdr_open(rtlsdr_device** out, int index); int rtlsdr_close(rtlsdr_device* dev); int rtlsdr_set_center_freq(rtlsdr_device* dev, uint64_t hz); uint64_t rtlsdr_get_center_freq(const rtlsdr_device* dev); int rtlsdr_set_sample_rate(rtlsdr_device* dev, uint32_t hz); uint32_t rtlsdr_get_sample_rate(const rtlsdr_device* dev); int rtlsdr_set_tuner_gain_mode(rtlsdr_device* dev, int manual); int rtlsdr_set_tuner_gain(rtlsdr_device* dev, int tenths_db); int rtlsdr_set_freq_correction(rtlsdr_device* dev, int ppm); int rtlsdr_set_agc_mode(rtlsdr_device* dev, int on); int rtlsdr_set_direct_sampling(rtlsdr_device* dev, int mode); int rtlsdr_start(rtlsdr_device* dev); int rtlsdr_stop(rtlsdr_device* dev); int rtlsdr_read(rtlsdr_device* dev, void* data, uint32_t length); #ifdef __cplusplus } #endif