fix(core): camera fps range

This commit is contained in:
rhunk
2024-04-09 22:12:46 +02:00
parent b0b20894a6
commit d33668bb41

View File

@ -18,6 +18,7 @@ import me.rhunk.snapenhance.core.util.hook.hook
import me.rhunk.snapenhance.core.util.ktx.setObjectField
import java.io.ByteArrayOutputStream
import java.nio.ByteBuffer
import kotlin.math.abs
class CameraTweaks : Feature("Camera Tweaks", loadParams = FeatureLoadParams.ACTIVITY_CREATE_SYNC) {
@ -93,11 +94,16 @@ class CameraTweaks : Feature("Camera Tweaks", loadParams = FeatureLoadParams.ACT
val customFrameRate = (if (isFrontCamera) config.frontCustomFrameRate.getNullable() else config.backCustomFrameRate.getNullable())?.toIntOrNull() ?: return@hook
val fpsRanges = param.getResult() as? Array<*> ?: return@hook
fpsRanges.forEach {
val range = it as? Range<*> ?: return@forEach
range.setObjectField("mUpper", customFrameRate)
range.setObjectField("mLower", customFrameRate)
if (customFrameRate <= 30) {
param.setResult(arrayOf(Range(customFrameRate, customFrameRate)))
return@hook
}
val closestMaxFps = fpsRanges.mapNotNull {
(it as? Range<*>)?.upper?.toString()?.toIntOrNull()
}.minByOrNull { abs(it - customFrameRate) } ?: return@hook
param.setResult(arrayOf(Range(closestMaxFps, closestMaxFps)))
}
}