mirror of https://github.com/drowe67/librtlsdr.git
added support for rtlsdr_rpc_set_and_get_tuner_bandwidth in rtl_rpc
parent
53a8fd8dca
commit
423aee453f
|
@ -40,4 +40,5 @@ rtlsdr-waterfall
|
|||
rtlizer
|
||||
gnuradio-companion
|
||||
cubicsdr
|
||||
gqrx
|
||||
gqrx
|
||||
linrad
|
||||
|
|
|
@ -74,6 +74,9 @@ int rtlsdr_rpc_set_tuner_if_gain
|
|||
int rtlsdr_rpc_set_tuner_gain_mode
|
||||
(void* dev, int manual);
|
||||
|
||||
int rtlsdr_rpc_set_and_get_tuner_bandwidth
|
||||
(void* devp, uint32_t bw, uint32_t *applied_bw, int apply_bw);
|
||||
|
||||
int rtlsdr_rpc_set_sample_rate
|
||||
(void* dev, uint32_t rate);
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ typedef enum
|
|||
RTLSDR_RPC_OP_GET_TUNER_GAIN,
|
||||
RTLSDR_RPC_OP_SET_TUNER_IF_GAIN,
|
||||
RTLSDR_RPC_OP_SET_TUNER_GAIN_MODE,
|
||||
RTLSDR_RPC_OP_SET_GET_TUNER_BW,
|
||||
RTLSDR_RPC_OP_SET_SAMPLE_RATE,
|
||||
RTLSDR_RPC_OP_GET_SAMPLE_RATE,
|
||||
RTLSDR_RPC_OP_SET_TESTMODE,
|
||||
|
|
|
@ -1160,6 +1160,13 @@ int rtlsdr_get_tuner_gains(rtlsdr_dev_t *dev, int *gains)
|
|||
|
||||
int rtlsdr_set_and_get_tuner_bandwidth(rtlsdr_dev_t *dev, uint32_t bw, uint32_t *applied_bw, int apply_bw )
|
||||
{
|
||||
#ifdef _ENABLE_RPC
|
||||
if (rtlsdr_rpc_is_enabled())
|
||||
{
|
||||
return rtlsdr_rpc_set_and_get_tuner_bandwidth(dev, bw, applied_bw, apply_bw);
|
||||
}
|
||||
#endif
|
||||
|
||||
int r = 0;
|
||||
|
||||
*applied_bw = 0; /* unknown */
|
||||
|
|
|
@ -398,6 +398,7 @@ static const char* op_to_string(rtlsdr_rpc_op_t op)
|
|||
"RTLSDR_RPC_OP_GET_TUNER_GAIN",
|
||||
"RTLSDR_RPC_OP_SET_TUNER_IF_GAIN",
|
||||
"RTLSDR_RPC_OP_SET_TUNER_GAIN_MODE",
|
||||
"RTLSDR_RPC_OP_SET_GET_TUNER_BW",
|
||||
"RTLSDR_RPC_OP_SET_SAMPLE_RATE",
|
||||
"RTLSDR_RPC_OP_GET_SAMPLE_RATE",
|
||||
"RTLSDR_RPC_OP_SET_TESTMODE",
|
||||
|
@ -789,6 +790,26 @@ static int handle_query
|
|||
break ;
|
||||
}
|
||||
|
||||
case RTLSDR_RPC_OP_SET_GET_TUNER_BW:
|
||||
{
|
||||
uint32_t did;
|
||||
uint32_t bw;
|
||||
uint32_t applied_bw;
|
||||
int apply_bw;
|
||||
|
||||
if (rtlsdr_rpc_msg_pop_uint32(q, &did)) goto on_error;
|
||||
if (rtlsdr_rpc_msg_pop_uint32(q, &bw)) goto on_error;
|
||||
if (rtlsdr_rpc_msg_pop_uint32(q, &apply_bw)) goto on_error;
|
||||
|
||||
if ((rpcd->dev == NULL) || (rpcd->did != did)) goto on_error;
|
||||
|
||||
err = rtlsdr_set_and_get_tuner_bandwidth(rpcd->dev, bw, &applied_bw, apply_bw);
|
||||
if (err) goto on_error;
|
||||
if (rtlsdr_rpc_msg_push_uint32(r, applied_bw)) goto on_error;
|
||||
|
||||
break ;
|
||||
}
|
||||
|
||||
case RTLSDR_RPC_OP_SET_SAMPLE_RATE:
|
||||
{
|
||||
uint32_t did;
|
||||
|
|
|
@ -567,6 +567,8 @@ int rtlsdr_rpc_open(void** devp, uint32_t index)
|
|||
rtlsdr_rpc_dev_t* dev;
|
||||
int err = -1;
|
||||
|
||||
index = (uint32_t) atoi(getenv("RTLSDR_RPC_DEVICE_INDEX"));
|
||||
|
||||
*devp = NULL;
|
||||
|
||||
if (init_cli(cli)) goto on_error_0;
|
||||
|
@ -925,6 +927,33 @@ int rtlsdr_rpc_set_tuner_gain(void* devp, int gain)
|
|||
return err;
|
||||
}
|
||||
|
||||
int rtlsdr_rpc_set_and_get_tuner_bandwidth(void* devp, uint32_t bw, uint32_t *applied_bw, int apply_bw )
|
||||
{
|
||||
rtlsdr_rpc_dev_t* const dev = devp;
|
||||
rtlsdr_rpc_cli_t* const cli = dev->cli;
|
||||
rtlsdr_rpc_msg_t* q;
|
||||
rtlsdr_rpc_msg_t* r;
|
||||
int err = -1;
|
||||
|
||||
if (alloc_qr(cli, &q, &r)) goto on_error_0;
|
||||
|
||||
rtlsdr_rpc_msg_set_op(q, RTLSDR_RPC_OP_SET_GET_TUNER_BW);
|
||||
|
||||
if (rtlsdr_rpc_msg_push_uint32(q, dev->index)) goto on_error_1;
|
||||
if (rtlsdr_rpc_msg_push_uint32(q, (uint32_t)bw)) goto on_error_1;
|
||||
if (rtlsdr_rpc_msg_push_uint32(q, (uint32_t)apply_bw)) goto on_error_1;
|
||||
|
||||
if (send_recv_msg(cli, q, r)) goto on_error_1;
|
||||
|
||||
if (rtlsdr_rpc_msg_get_err(r)) goto on_error_1;
|
||||
if (rtlsdr_rpc_msg_pop_uint32(r, applied_bw)) goto on_error_1;
|
||||
|
||||
on_error_1:
|
||||
free_qr(cli, q, r);
|
||||
on_error_0:
|
||||
return err;
|
||||
}
|
||||
|
||||
int rtlsdr_rpc_get_tuner_gain(void* devp)
|
||||
{
|
||||
rtlsdr_rpc_dev_t* const dev = devp;
|
||||
|
|
Loading…
Reference in New Issue