Just realized my patch attachments are getting scrubbed by the list. Hopefully this plain text paste works.
diff --git a/lib/rtl/rtl_source_c.cc b/lib/rtl/rtl_source_c.cc index 5e3306b..644bf7a 100644 --- a/lib/rtl/rtl_source_c.cc +++ b/lib/rtl/rtl_source_c.cc @@ -455,6 +455,8 @@ double rtl_source_c::get_sample_rate() osmosdr::freq_range_t rtl_source_c::get_freq_range( size_t chan ) { osmosdr::freq_range_t range; + char manufact[256]; + char product[256];
if (_dev) { if (_no_tuner) { @@ -464,6 +466,8 @@ osmosdr::freq_range_t rtl_source_c::get_freq_range( size_t chan ) return range; }
+ rtlsdr_get_usb_strings( _dev, manufact, product, NULL ); + enum rtlsdr_tuner tuner = rtlsdr_get_tuner_type(_dev);
if ( tuner == RTLSDR_TUNER_E4000 ) { @@ -478,6 +482,8 @@ osmosdr::freq_range_t rtl_source_c::get_freq_range( size_t chan ) range += osmosdr::range_t( 438e6, 924e6 ); } else if ( tuner == RTLSDR_TUNER_R820T ) { range += osmosdr::range_t( 24e6, 1766e6 ); + } else if ( tuner == RTLSDR_TUNER_R828D && strcmp(manufact, "RTLSDRBlog") == 0 && strcmp(product, "Blog V4") == 0 ) { + range += osmosdr::range_t( 0e6, 1766e6 ); } else if ( tuner == RTLSDR_TUNER_R828D ) { range += osmosdr::range_t( 24e6, 1766e6 ); }
Regards, Carl