forked from sdr/rtl-sdr
fix: round gain input to nearest value
This commit is contained in:
parent
e04c42c019
commit
d81ef9a9d9
|
@ -321,23 +321,11 @@ int fc0012_set_gain(void *dev, int gain)
|
||||||
/* mask bits off */
|
/* mask bits off */
|
||||||
tmp &= 0xe0;
|
tmp &= 0xe0;
|
||||||
|
|
||||||
switch (gain) {
|
if (gain < -40) tmp |= 0x02; /* -9.9 dB */
|
||||||
case -99: /* -9.9 dB */
|
else if (gain < 71) tmp |= 0x00; /* -4.0 dB */
|
||||||
tmp |= 0x02;
|
else if (gain < 179) tmp |= 0x08; /* 7.1 dB */
|
||||||
break;
|
else if (gain < 192) tmp |= 0x17; /* 17.9 dB */
|
||||||
case -40: /* -4 dB */
|
else tmp |= 0x10; /* 19.2 dB */
|
||||||
break;
|
|
||||||
case 71:
|
|
||||||
tmp |= 0x08; /* 7.1 dB */
|
|
||||||
break;
|
|
||||||
case 179:
|
|
||||||
tmp |= 0x17; /* 17.9 dB */
|
|
||||||
break;
|
|
||||||
case 192:
|
|
||||||
default:
|
|
||||||
tmp |= 0x10; /* 19.2 dB */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = fc0012_writereg(dev, 0x13, tmp);
|
ret = fc0012_writereg(dev, 0x13, tmp);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue