mirror of https://github.com/drowe67/librtlsdr.git
Merge pull request #72 from stef/development
added support for rtlsdr_rpc_set_and_get_tuner_bandwidth in rtl_rpcdevelopment
commit
07370a3a22
|
@ -40,4 +40,5 @@ rtlsdr-waterfall
|
||||||
rtlizer
|
rtlizer
|
||||||
gnuradio-companion
|
gnuradio-companion
|
||||||
cubicsdr
|
cubicsdr
|
||||||
gqrx
|
gqrx
|
||||||
|
linrad
|
||||||
|
|
|
@ -74,6 +74,9 @@ int rtlsdr_rpc_set_tuner_if_gain
|
||||||
int rtlsdr_rpc_set_tuner_gain_mode
|
int rtlsdr_rpc_set_tuner_gain_mode
|
||||||
(void* dev, int manual);
|
(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
|
int rtlsdr_rpc_set_sample_rate
|
||||||
(void* dev, uint32_t rate);
|
(void* dev, uint32_t rate);
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ typedef enum
|
||||||
RTLSDR_RPC_OP_GET_TUNER_GAIN,
|
RTLSDR_RPC_OP_GET_TUNER_GAIN,
|
||||||
RTLSDR_RPC_OP_SET_TUNER_IF_GAIN,
|
RTLSDR_RPC_OP_SET_TUNER_IF_GAIN,
|
||||||
RTLSDR_RPC_OP_SET_TUNER_GAIN_MODE,
|
RTLSDR_RPC_OP_SET_TUNER_GAIN_MODE,
|
||||||
|
RTLSDR_RPC_OP_SET_GET_TUNER_BW,
|
||||||
RTLSDR_RPC_OP_SET_SAMPLE_RATE,
|
RTLSDR_RPC_OP_SET_SAMPLE_RATE,
|
||||||
RTLSDR_RPC_OP_GET_SAMPLE_RATE,
|
RTLSDR_RPC_OP_GET_SAMPLE_RATE,
|
||||||
RTLSDR_RPC_OP_SET_TESTMODE,
|
RTLSDR_RPC_OP_SET_TESTMODE,
|
||||||
|
|
|
@ -1497,6 +1497,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 )
|
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;
|
int r = 0;
|
||||||
|
|
||||||
*applied_bw = 0; /* unknown */
|
*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_GET_TUNER_GAIN",
|
||||||
"RTLSDR_RPC_OP_SET_TUNER_IF_GAIN",
|
"RTLSDR_RPC_OP_SET_TUNER_IF_GAIN",
|
||||||
"RTLSDR_RPC_OP_SET_TUNER_GAIN_MODE",
|
"RTLSDR_RPC_OP_SET_TUNER_GAIN_MODE",
|
||||||
|
"RTLSDR_RPC_OP_SET_GET_TUNER_BW",
|
||||||
"RTLSDR_RPC_OP_SET_SAMPLE_RATE",
|
"RTLSDR_RPC_OP_SET_SAMPLE_RATE",
|
||||||
"RTLSDR_RPC_OP_GET_SAMPLE_RATE",
|
"RTLSDR_RPC_OP_GET_SAMPLE_RATE",
|
||||||
"RTLSDR_RPC_OP_SET_TESTMODE",
|
"RTLSDR_RPC_OP_SET_TESTMODE",
|
||||||
|
@ -789,6 +790,26 @@ static int handle_query
|
||||||
break ;
|
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:
|
case RTLSDR_RPC_OP_SET_SAMPLE_RATE:
|
||||||
{
|
{
|
||||||
uint32_t did;
|
uint32_t did;
|
||||||
|
|
|
@ -567,6 +567,8 @@ int rtlsdr_rpc_open(void** devp, uint32_t index)
|
||||||
rtlsdr_rpc_dev_t* dev;
|
rtlsdr_rpc_dev_t* dev;
|
||||||
int err = -1;
|
int err = -1;
|
||||||
|
|
||||||
|
index = (uint32_t) atoi(getenv("RTLSDR_RPC_DEVICE_INDEX"));
|
||||||
|
|
||||||
*devp = NULL;
|
*devp = NULL;
|
||||||
|
|
||||||
if (init_cli(cli)) goto on_error_0;
|
if (init_cli(cli)) goto on_error_0;
|
||||||
|
@ -925,6 +927,33 @@ int rtlsdr_rpc_set_tuner_gain(void* devp, int gain)
|
||||||
return err;
|
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)
|
int rtlsdr_rpc_get_tuner_gain(void* devp)
|
||||||
{
|
{
|
||||||
rtlsdr_rpc_dev_t* const dev = devp;
|
rtlsdr_rpc_dev_t* const dev = devp;
|
||||||
|
|
Loading…
Reference in New Issue