(&self, id: u32)
| 101 | } |
| 102 | |
| 103 | fn query_ctrl(&self, id: u32) -> Result<V4l2CtrlRange, Errno> { |
| 104 | let dev = &self.0; |
| 105 | let mut qctrl = v4l2_queryctrl { |
| 106 | id, |
| 107 | ..Default::default() |
| 108 | }; |
| 109 | |
| 110 | unsafe { |
| 111 | match vidioc_queryctrl(dev.as_raw_fd(), &mut qctrl) { |
| 112 | Ok(_) => { |
| 113 | if qctrl.flags & V4L2_CTRL_FLAG_DISABLED != 0 { |
| 114 | return Err(errno::Errno(22)); // EINVAL |
| 115 | } |
| 116 | Ok(V4l2CtrlRange { |
| 117 | minimum: qctrl.minimum, |
| 118 | maximum: qctrl.maximum, |
| 119 | step: qctrl.step, |
| 120 | default_value: qctrl.default_value, |
| 121 | }) |
| 122 | } |
| 123 | _ => Err(errno::Errno(errno())), |
| 124 | } |
| 125 | } |
| 126 | } |
| 127 | } |
| 128 | |
| 129 | pub(crate) fn open_camera(hint: &str) -> Result<CameraHandle, crate::Error> { |
no outgoing calls
no test coverage detected