mirror of
https://github.com/twinksoftware/Gearslip.git
synced 2026-11-11 00:12:24 +01:00
video: cars that give no touchscreen size get the largest picture up to 1080p
This commit is contained in:
1 parent
6d4389c7ab
commit
49a064acc0
1 file changed
+7
-3
@@ -863,13 +863,17 @@ class GearslipRunner(
|
|||||||
/**
|
/**
|
||||||
* The offered config that best fills the car's screen: the smallest whose visible width
|
* The offered config that best fills the car's screen: the smallest whose visible width
|
||||||
* reaches most of the touchscreen's, else the largest there is. Always taking the smallest
|
* reaches most of the touchscreen's, else the largest there is. Always taking the smallest
|
||||||
* put 800x480 on a 1540x720 Audi screen and stretched it. With no touchscreen size to go
|
* put 800x480 on a 1540x720 Audi screen and stretched it. A car that gives no touchscreen
|
||||||
* by, the smallest is still the safe choice.
|
* size gets the largest up to 1080p: a car only offers sizes it can show, and the 2024 VW
|
||||||
|
* (touchscreen 0x0) blurred 800x480 across a 1080p screen.
|
||||||
*/
|
*/
|
||||||
private fun fitToScreen(offered: List<Int>): Int? {
|
private fun fitToScreen(offered: List<Int>): Int? {
|
||||||
val known = offered.filter { videoConfigs.getOrNull(it)?.pixelSize() != null }
|
val known = offered.filter { videoConfigs.getOrNull(it)?.pixelSize() != null }
|
||||||
fun pixels(idx: Int) = videoConfigs[idx].pixelCount()
|
fun pixels(idx: Int) = videoConfigs[idx].pixelCount()
|
||||||
if (touchWidth <= 0) return known.minByOrNull(::pixels)
|
if (touchWidth <= 0) {
|
||||||
|
return known.filter { pixels(it) <= 1920 * 1080 }.maxByOrNull(::pixels)
|
||||||
|
?: known.minByOrNull(::pixels)
|
||||||
|
}
|
||||||
val wide = known.filter { (videoConfigs[it].visibleSize()?.first ?: 0) >= touchWidth * 8 / 10 }
|
val wide = known.filter { (videoConfigs[it].visibleSize()?.first ?: 0) >= touchWidth * 8 / 10 }
|
||||||
return wide.minByOrNull(::pixels) ?: known.maxByOrNull(::pixels)
|
return wide.minByOrNull(::pixels) ?: known.maxByOrNull(::pixels)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user