Add Af-Trigger

This commit is contained in:
Kamil Trzcinski
2022-07-05 12:05:17 +02:00
parent 26d94709e3
commit 4eaa42f1ea
7 changed files with 49 additions and 9 deletions

View File

@ -25,15 +25,18 @@ camera_t *camera_open(camera_options_t *options)
return camera;
error:
camera_close(camera);
camera_close(&camera);
return NULL;
}
void camera_close(camera_t *camera)
void camera_close(camera_t **camerap)
{
if (!camera)
if (!camerap || !*camerap)
return;
camera_t *camera = *camerap;
*camerap = NULL;
for (int i = MAX_DEVICES; i-- > 0; ) {
if (camera->devices[i]) {
device_close(camera->devices[i]);

View File

@ -64,7 +64,7 @@ typedef struct camera_s {
camera_t *camera_open(camera_options_t *camera);
int camera_set_params(camera_t *camera);
void camera_close(camera_t *camera);
void camera_close(camera_t **camera);
int camera_run(camera_t *camera);
link_t *camera_ensure_capture(camera_t *camera, buffer_list_t *capture);

View File

@ -7,9 +7,14 @@ std::string libcamera_device_option_normalize(std::string key)
return key;
}
libcamera::ControlInfoMap libcamera_control_list(device_t *dev)
libcamera::ControlInfoMap::Map libcamera_control_list(device_t *dev)
{
return dev->libcamera->camera->controls();
libcamera::ControlInfoMap::Map controls_map;
for (auto const &control : dev->libcamera->camera->controls()) {
controls_map[control.first] = control.second;
}
controls_map[&libcamera::controls::draft::AfTrigger] = libcamera::ControlInfo();
return controls_map;
}
int libcamera_device_open(device_t *dev)