Update shutter speed based on illuminance

This commit is contained in:
2024-08-05 20:08:57 +02:00
parent 886357a34d
commit 7bbb001809
@@ -57,11 +57,23 @@ class MainActivity : ComponentActivity(), SensorEventListener {
illuminanceSensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT) illuminanceSensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT)
} }
fun updateLightmeterState(illuminance: Double) {
val iso = lightmeterState.value.iso
val aperture = lightmeterState.value.aperture
val shutterSpeed = (aperture * aperture) / (illuminance * (iso / 100))
lightmeterState.value = lightmeterState.value.copy(
illuminance = illuminance,
iso = iso,
aperture = aperture,
shutterSpeed = shutterSpeed
)
}
override fun onSensorChanged(event: SensorEvent?) { override fun onSensorChanged(event: SensorEvent?) {
event?.values?.let { event?.values?.let {
for (v in it) { for (v in it) {
Log.d(TAG, "sensor changed: $v lux") Log.d(TAG, "sensor changed: $v lux")
lightmeterState.value = lightmeterState.value.copy(illuminance = v.toDouble()) updateLightmeterState(v.toDouble())
} }
} }
} }