Browse Source

rpicamera: allow to set gain without disconnecting readers

pull/1470/head
aler9 3 years ago
parent
commit
19b06f96eb
  1. 3
      internal/core/path_manager.go
  2. 8
      internal/rpicamera/exe/camera.cpp

3
internal/core/path_manager.go

@ -21,8 +21,9 @@ func pathConfCanBeUpdated(oldPathConf *conf.PathConf, newPathConf *conf.PathConf @@ -21,8 +21,9 @@ func pathConfCanBeUpdated(oldPathConf *conf.PathConf, newPathConf *conf.PathConf
copy.RPICameraExposure = newPathConf.RPICameraExposure
copy.RPICameraAWB = newPathConf.RPICameraAWB
copy.RPICameraDenoise = newPathConf.RPICameraDenoise
copy.RPICameraMetering = newPathConf.RPICameraMetering
copy.RPICameraShutter = newPathConf.RPICameraShutter
copy.RPICameraMetering = newPathConf.RPICameraMetering
copy.RPICameraGain = newPathConf.RPICameraGain
copy.RPICameraEV = newPathConf.RPICameraEV
copy.RPICameraFPS = newPathConf.RPICameraFPS

8
internal/rpicamera/exe/camera.cpp

@ -296,6 +296,8 @@ static void fill_dynamic_controls(ControlList *ctrls, const parameters_t *params @@ -296,6 +296,8 @@ static void fill_dynamic_controls(ControlList *ctrls, const parameters_t *params
}
ctrls->set(controls::draft::NoiseReductionMode, denoise_mode);
ctrls->set(controls::ExposureTime, params->shutter);
int metering_mode;
if (strcmp(params->metering, "spot") == 0) {
metering_mode = controls::MeteringSpot;
@ -308,7 +310,7 @@ static void fill_dynamic_controls(ControlList *ctrls, const parameters_t *params @@ -308,7 +310,7 @@ static void fill_dynamic_controls(ControlList *ctrls, const parameters_t *params
}
ctrls->set(controls::AeMeteringMode, metering_mode);
ctrls->set(controls::ExposureTime, params->shutter);
ctrls->set(controls::AnalogueGain, params->gain);
ctrls->set(controls::ExposureValue, params->ev);
@ -323,10 +325,6 @@ bool camera_start(camera_t *cam) { @@ -323,10 +325,6 @@ bool camera_start(camera_t *cam) {
fill_dynamic_controls(camp->ctrls.get(), camp->params);
if (camp->params->gain > 0) {
camp->ctrls->set(controls::AnalogueGain, camp->params->gain);
}
if (camp->camera->controls().count(&controls::AfMode) > 0) {
int af_mode;
if (strcmp(camp->params->af_mode, "manual") == 0) {

Loading…
Cancel
Save