diff --git a/include/rtl-sdr.h b/include/rtl-sdr.h index 58bf23a..8635bd2 100755 --- a/include/rtl-sdr.h +++ b/include/rtl-sdr.h @@ -535,6 +535,16 @@ RTLSDR_API int rtlsdr_ir_query(rtlsdr_dev_t *dev, uint8_t *buf, size_t buf_len); */ RTLSDR_API int rtlsdr_set_bias_tee(rtlsdr_dev_t *dev, int on); +/*! + * Enable or disable the bias tee on the given GPIO pin. + * + * \param dev the device handle given by rtlsdr_open() + * \param gpio the gpio pin to configure as a Bias T control. + * \param on 1 for Bias T on. 0 for Bias T off. + * \return -1 if device is not initialized. 0 otherwise. + */ +RTLSDR_API int rtlsdr_set_bias_tee_gpio(rtlsdr_dev_t *dev, int gpio, int on); + /*! * Sets multiple options from a string encoded like "bw=300:agc=0:gain=27.3:dagc=0:T=1". * this is a helper function, that programs don't need to implement every single option diff --git a/src/librtlsdr.c b/src/librtlsdr.c index 2cfac04..023b4f0 100644 --- a/src/librtlsdr.c +++ b/src/librtlsdr.c @@ -3821,18 +3821,23 @@ err: return ret; } -int rtlsdr_set_bias_tee(rtlsdr_dev_t *dev, int on) +int rtlsdr_set_bias_tee_gpio(rtlsdr_dev_t *dev, int gpio, int on) { if (!dev) return -1; - rtlsdr_set_gpio_output(dev, 0); - rtlsdr_set_gpio_bit(dev, 0, on); + rtlsdr_set_gpio_output(dev, gpio); + rtlsdr_set_gpio_bit(dev, gpio, on); reactivate_softagc(dev, SOFTSTATE_RESET); return 0; } +int rtlsdr_set_bias_tee(rtlsdr_dev_t *dev, int on) +{ + return rtlsdr_set_bias_tee_gpio(dev, 0, on); +} + const char * rtlsdr_get_opt_help(int longInfo) {