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)
|
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())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user