Update shutter speed based on illuminance
This commit is contained in:
@@ -57,11 +57,23 @@ class MainActivity : ComponentActivity(), SensorEventListener {
|
||||
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?) {
|
||||
event?.values?.let {
|
||||
for (v in it) {
|
||||
Log.d(TAG, "sensor changed: $v lux")
|
||||
lightmeterState.value = lightmeterState.value.copy(illuminance = v.toDouble())
|
||||
updateLightmeterState(v.toDouble())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user