printf("\ttest VIDIOC_QUERYCAP for radio: %s\n", ok(testCap(&radio_node)));
if (vbi_device)
printf("\ttest VIDIOC_QUERYCAP for vbi: %s\n", ok(testCap(&vbi_node)));
+ printf("\n");
}
if (test[TestMultipleOpen]) {
close(vbi_node2.fd);
}
}
+ printf("\n");
}
if (test[TestDebug]) {
printf("\ttest VIDIOC_DBG_G_CHIP_IDENT: %s\n", ok(testChipIdent(&node)));
printf("\ttest VIDIOC_DBG_G/S_REGISTER: %s\n", ok(testRegister(&node)));
printf("\ttest VIDIOC_LOG_STATUS: %s\n", ok(testLogStatus(&node)));
+ printf("\n");
}
if (test[TestInput]) {
printf("\ttest VIDIOC_S/G_TUNER: %s\n", ok(testTuner(&node)));
printf("\ttest VIDIOC_S/G/ENUMAUDIO: %s\n", ok(testInputAudio(&node)));
printf("\ttest VIDIOC_G/S/ENUMINPUT: %s\n", ok(testInput(&node)));
+ printf("\tInputs: %d Audio Inputs: %d Tuners: %d\n",
+ node.inputs, node.audio_inputs, node.tuners);
+ printf("\n");
}
if (test[TestOutput]) {
printf("\ttest VIDIOC_S/G_MODULATOR: %s\n", ok(testModulator(&node)));
printf("\ttest VIDIOC_S/G/ENUMAUDOUT: %s\n", ok(testOutputAudio(&node)));
printf("\ttest VIDIOC_G/S/ENUMOUTPUT: %s\n", ok(testOutput(&node)));
+ printf("\tOutputs: %d Audio Outputs: %d Modulators: %d\n",
+ node.outputs, node.audio_outputs, node.modulators);
+ printf("\n");
}
if (test[TestControls]) {
printf("Control ioctls:\n");
printf("\ttest VIDIOC_QUERYCTRL/MENU: %s\n", ok(testQueryControls(&node)));
+ printf("\tStandard Controls: %d Private Controls: %d\n",
+ node.std_controls, node.priv_controls);
+ printf("\n");
}
close(node.fd);
int ret;
__u32 ctrl_class = 0;
bool found_ctrl_class = false;
+ unsigned user_controls = 0;
+ unsigned priv_user_controls = 0;
+ unsigned user_controls_check = 0;
+ unsigned priv_user_controls_check = 0;
unsigned class_count = 0;
for (;;) {
found_ctrl_class = false;
class_count = 0;
}
- if (qctrl.type == V4L2_CTRL_TYPE_CTRL_CLASS)
+ if (qctrl.type == V4L2_CTRL_TYPE_CTRL_CLASS) {
found_ctrl_class = true;
- else
+ } else {
class_count++;
+ if (V4L2_CTRL_DRIVER_PRIV(id))
+ node->priv_controls++;
+ }
if (ctrl_class == V4L2_CTRL_CLASS_USER &&
qctrl.type != V4L2_CTRL_TYPE_INTEGER64 &&
qctrl.type != V4L2_CTRL_TYPE_STRING &&
qctrl.type != V4L2_CTRL_TYPE_CTRL_CLASS) {
if (V4L2_CTRL_DRIVER_PRIV(id))
- node->priv_user_controls_check++;
+ priv_user_controls_check++;
else if (id < V4L2_CID_LASTP1)
- node->user_controls_check++;
+ user_controls_check++;
}
+ if (V4L2_CTRL_DRIVER_PRIV(id))
+ node->priv_controls++;
+ else
+ node->std_controls++;
}
if (ctrl_class && !found_ctrl_class)
return fail("missing control class for class %08x\n", ctrl_class);
return fail("qctrl.id != id\n");
if (validQCtrl(node, qctrl))
return fail("invalid control %08x\n", qctrl.id);
- node->user_controls++;
+ user_controls++;
}
for (id = V4L2_CID_PRIVATE_BASE; ; id++) {
return fail("qctrl.id != id\n");
if (validQCtrl(node, qctrl))
return fail("invalid control %08x\n", qctrl.id);
- node->priv_user_controls++;
+ priv_user_controls++;
}
- if (node->user_controls != node->user_controls_check)
+ if (user_controls != user_controls_check)
return fail("expected %d user controls, got %d\n",
- node->user_controls_check, node->user_controls);
- if (node->priv_user_controls != node->priv_user_controls_check)
+ user_controls_check, user_controls);
+ if (priv_user_controls != priv_user_controls_check)
return fail("expected %d private controls, got %d\n",
- node->priv_user_controls_check, node->priv_user_controls);
+ priv_user_controls_check, priv_user_controls);
return 0;
}