| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -26,11 +26,11 @@ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include <libusb.h> | 
					 | 
					 | 
					 | 
					#include <libusb.h> | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					#include <rtl-sdr.h> | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include "tuner_e4000.h" | 
					 | 
					 | 
					 | 
					#include "tuner_e4000.h" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include "tuner_fc0012.h" | 
					 | 
					 | 
					 | 
					#include "tuner_fc0012.h" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include "tuner_fc0013.h" | 
					 | 
					 | 
					 | 
					#include "tuner_fc0013.h" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include "tuner_fc2580.h" | 
					 | 
					 | 
					 | 
					#include "tuner_fc2580.h" | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#include "rtl-sdr.h" | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					typedef struct rtlsdr_tuner { | 
					 | 
					 | 
					 | 
					typedef struct rtlsdr_tuner { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						int(*init)(void *); | 
					 | 
					 | 
					 | 
						int(*init)(void *); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -386,14 +386,13 @@ void rtlsdr_init_baseband(rtlsdr_dev_t *dev) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					int rtlsdr_set_center_freq(rtlsdr_dev_t *dev, uint32_t freq) | 
					 | 
					 | 
					 | 
					int rtlsdr_set_center_freq(rtlsdr_dev_t *dev, uint32_t freq) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					{ | 
					 | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						int r; | 
					 | 
					 | 
					 | 
						int r; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						double f = (double) freq; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if (!dev || !dev->tuner) | 
					 | 
					 | 
					 | 
						if (!dev || !dev->tuner) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							return -1; | 
					 | 
					 | 
					 | 
							return -1; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						rtlsdr_set_i2c_repeater(dev, 1); | 
					 | 
					 | 
					 | 
						rtlsdr_set_i2c_repeater(dev, 1); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						double f = (double) freq; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						f *= 1.0 + dev->tuner->corr / 1e6; | 
					 | 
					 | 
					 | 
						f *= 1.0 + dev->tuner->corr / 1e6; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						r = dev->tuner->tune((void *)dev, (int) f); | 
					 | 
					 | 
					 | 
						r = dev->tuner->tune((void *)dev, (int) f); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -523,11 +522,12 @@ uint32_t rtlsdr_get_device_count(void) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						libusb_device **list; | 
					 | 
					 | 
					 | 
						libusb_device **list; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						uint32_t device_count = 0; | 
					 | 
					 | 
					 | 
						uint32_t device_count = 0; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						struct libusb_device_descriptor dd; | 
					 | 
					 | 
					 | 
						struct libusb_device_descriptor dd; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						ssize_t cnt; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if (!libusb_inited) | 
					 | 
					 | 
					 | 
						if (!libusb_inited) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							libusb_init(NULL); | 
					 | 
					 | 
					 | 
							libusb_init(NULL); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						ssize_t cnt = libusb_get_device_list(NULL, &list); | 
					 | 
					 | 
					 | 
						cnt = libusb_get_device_list(NULL, &list); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						for (i = 0; i < cnt; i++) { | 
					 | 
					 | 
					 | 
						for (i = 0; i < cnt; i++) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							libusb_get_device_descriptor(list[i], &dd); | 
					 | 
					 | 
					 | 
							libusb_get_device_descriptor(list[i], &dd); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -551,11 +551,12 @@ const char *rtlsdr_get_device_name(uint32_t index) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						struct libusb_device_descriptor dd; | 
					 | 
					 | 
					 | 
						struct libusb_device_descriptor dd; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						rtlsdr_device_t *device = NULL; | 
					 | 
					 | 
					 | 
						rtlsdr_device_t *device = NULL; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						uint32_t device_count = 0; | 
					 | 
					 | 
					 | 
						uint32_t device_count = 0; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						ssize_t cnt; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if (!libusb_inited) | 
					 | 
					 | 
					 | 
						if (!libusb_inited) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							libusb_init(NULL); | 
					 | 
					 | 
					 | 
							libusb_init(NULL); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						ssize_t cnt = libusb_get_device_list(NULL, &list); | 
					 | 
					 | 
					 | 
						cnt = libusb_get_device_list(NULL, &list); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						for (i = 0; i < cnt; i++) { | 
					 | 
					 | 
					 | 
						for (i = 0; i < cnt; i++) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							libusb_get_device_descriptor(list[i], &dd); | 
					 | 
					 | 
					 | 
							libusb_get_device_descriptor(list[i], &dd); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -591,6 +592,7 @@ rtlsdr_dev_t *rtlsdr_open(uint32_t index) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						uint32_t device_count = 0; | 
					 | 
					 | 
					 | 
						uint32_t device_count = 0; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						struct libusb_device_descriptor dd; | 
					 | 
					 | 
					 | 
						struct libusb_device_descriptor dd; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						uint8_t reg; | 
					 | 
					 | 
					 | 
						uint8_t reg; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						ssize_t cnt; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						dev = malloc(sizeof(rtlsdr_dev_t)); | 
					 | 
					 | 
					 | 
						dev = malloc(sizeof(rtlsdr_dev_t)); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						memset(dev, 0, sizeof(rtlsdr_dev_t)); | 
					 | 
					 | 
					 | 
						memset(dev, 0, sizeof(rtlsdr_dev_t)); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -602,7 +604,7 @@ rtlsdr_dev_t *rtlsdr_open(uint32_t index) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							} | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						ssize_t cnt = libusb_get_device_list(NULL, &list); | 
					 | 
					 | 
					 | 
						cnt = libusb_get_device_list(NULL, &list); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						for (i = 0; i < cnt; i++) { | 
					 | 
					 | 
					 | 
						for (i = 0; i < cnt; i++) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							device = list[i]; | 
					 | 
					 | 
					 | 
							device = list[i]; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |