我知道无符号数永远不会小于 0,也无需对其进行测试。但我想避免调谐器的虚假频率。
/* freqKHz is in KHz (duh) */
void videoinput_set_tuner_freq( videoinput_t *vidin, int freqKHz )
{
unsigned long frequency = freqKHz;
if( videoinput_has_tuner( vidin ) ) {
if( frequency < 0 ) {
/* Ignore bogus frequencies. */
return;
}
frequency *= 16;
vidin->tunerlow = (tuner.capability & V4L2_TUNER_CAP_LOW) ? 1 : 0;
if( !vidin->tunerlow ) {
frequency /= 1000; /* switch to MHz */
}
...
}
是否可以以另一种方式进行此检查(可能有限制)?
对不可能存在的值的“虚假”频率提出更好的定义。
如果频率自调谐后没有改变,则数字驱动器不会设置频率。模拟调谐器驱动器对数字驱动器保存的频率一无所知。当使用 video4linux 代码设置频率时,硬件会发生变化,但数字驱动程序的状态不会更新。