From: Vitaly Mayatskikh Date: Mon, 7 Sep 2009 11:37:59 +0000 (+0200) Subject: New function: get-control. X-Git-Url: https://repo.or.cz/w/cl-v4l2.git/commitdiff_plain/12256ab5bf8c1f8a8679cdbf5f2188dd4291d30a New function: get-control. This is the opposite of set-control. --- diff --git a/package.lisp b/package.lisp index 94baa81..6478142 100644 --- a/package.lisp +++ b/package.lisp @@ -47,6 +47,7 @@ #:get-frame #:put-frame #:set-control + #:get-control ;; structs #:capability diff --git a/v4l2.lisp b/v4l2.lisp index 6e0fcd1..767d38d 100644 --- a/v4l2.lisp +++ b/v4l2.lisp @@ -215,3 +215,15 @@ (setf id ctrl-id value (+ minimum (round (* level (- maximum minimum)))))) (ioctl fd vidioc-s-ctrl control))))) + +(defun get-control (fd ctrl-id) + "Get control level (in range of 0.0-1.0)." + (with-foreign-object (query 'queryctrl) + (with-foreign-slots ((id minimum maximum) query queryctrl) + (setf id ctrl-id) + (ioctl fd vidioc-queryctrl query) + (with-foreign-object (control 'control) + (with-foreign-slots ((id value) control control) + (setf id ctrl-id) + (ioctl fd vidioc-g-ctrl control) + (/ (- value minimum) (- maximum minimum)))))))