|
@@ -232,6 +232,7 @@ start_focus()
|
|
|
static void
|
|
|
update_controls()
|
|
|
{
|
|
|
+ bool state_changed = false;
|
|
|
// Don't update controls while capturing
|
|
|
if (state_io.captures_remaining > 0) {
|
|
|
return;
|
|
@@ -247,6 +248,7 @@ update_controls()
|
|
|
V4L2_CID_AUTOGAIN,
|
|
|
!state_io.gain.manual_req);
|
|
|
state_io.gain.manual = state_io.gain.manual_req;
|
|
|
+ state_changed = true;
|
|
|
}
|
|
|
|
|
|
if ((state_io.gain.manual ||
|
|
@@ -256,6 +258,7 @@ update_controls()
|
|
|
state_io.gain.control,
|
|
|
state_io.gain.value_req);
|
|
|
state_io.gain.value = state_io.gain.value_req;
|
|
|
+ state_changed = true;
|
|
|
}
|
|
|
|
|
|
if (state_io.exposure.manual != state_io.exposure.manual_req) {
|
|
@@ -265,6 +268,7 @@ update_controls()
|
|
|
V4L2_EXPOSURE_MANUAL :
|
|
|
V4L2_EXPOSURE_AUTO);
|
|
|
state_io.exposure.manual = state_io.exposure.manual_req;
|
|
|
+ state_changed = true;
|
|
|
}
|
|
|
|
|
|
if (state_io.exposure.manual &&
|
|
@@ -273,6 +277,12 @@ update_controls()
|
|
|
state_io.exposure.control,
|
|
|
state_io.exposure.value_req);
|
|
|
state_io.exposure.value = state_io.exposure.value_req;
|
|
|
+ state_changed = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (state_changed) {
|
|
|
+ pipeline_changed = true;
|
|
|
+ update_process_pipeline();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -491,6 +501,9 @@ init_controls()
|
|
|
} else {
|
|
|
state_io.blue.control = 0;
|
|
|
}
|
|
|
+
|
|
|
+ pipeline_changed = true;
|
|
|
+ update_process_pipeline();
|
|
|
}
|
|
|
|
|
|
/*
|