mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-11 15:33:04 +00:00
parent
9334ec09e2
commit
b38ec9f238
@ -194,8 +194,41 @@ class Webcam
|
|||||||
return -5;
|
return -5;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* e.g., turn on auto exposure */
|
/**
|
||||||
uvc_set_ae_mode(_handle, 1);
|
* Turn on auto exposure if not already set.
|
||||||
|
* There are three auto exposure modes (0x2, 0x4, 0x8), which we
|
||||||
|
* must first check whether supported by the device.
|
||||||
|
*/
|
||||||
|
uint8_t aemode = 0;
|
||||||
|
if (uvc_get_ae_mode(_handle, &aemode, UVC_GET_CUR) != UVC_SUCCESS) {
|
||||||
|
error("uvc_get_ae_mode() failed");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
enum {
|
||||||
|
MANUAL = 0x1,
|
||||||
|
FULL_AUTO = 0x2,
|
||||||
|
IRIS_AUTO = 0x4,
|
||||||
|
TIME_AUTO = 0x8
|
||||||
|
};
|
||||||
|
|
||||||
|
/* manual focus mode active? */
|
||||||
|
if (aemode == MANUAL) {
|
||||||
|
uint8_t aemodes_avail = 0;
|
||||||
|
/* get available modes */
|
||||||
|
if (uvc_get_ae_mode(_handle, &aemodes_avail, UVC_GET_RES) != UVC_SUCCESS) {
|
||||||
|
error("uvc_get_ae_mode(UVC_GET_RES) failed");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (aemodes_avail & FULL_AUTO)
|
||||||
|
uvc_set_ae_mode(_handle, FULL_AUTO);
|
||||||
|
else if (aemodes_avail & IRIS_AUTO)
|
||||||
|
uvc_set_ae_mode(_handle, IRIS_AUTO);
|
||||||
|
else if (aemodes_avail & TIME_AUTO)
|
||||||
|
uvc_set_ae_mode(_handle, TIME_AUTO);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user