diff options
-rw-r--r-- | android/hw-lcd.c | 23 | ||||
-rw-r--r-- | android/hw-lcd.h | 1 |
2 files changed, 15 insertions, 9 deletions
diff --git a/android/hw-lcd.c b/android/hw-lcd.c index f84f661..27a50dc 100644 --- a/android/hw-lcd.c +++ b/android/hw-lcd.c @@ -18,15 +18,20 @@ hwLcd_setBootProperty(int density) { char temp[8]; - /* map density to one of our three values for now */ - if (density < (LCD_DENSITY_LDPI + LCD_DENSITY_MDPI)/2) - density = LCD_DENSITY_LDPI; - else if (density < (LCD_DENSITY_MDPI + LCD_DENSITY_HDPI)/2) - density = LCD_DENSITY_MDPI; - else if (density < (LCD_DENSITY_HDPI + LCD_DENSITY_XHDPI)/2) - density = LCD_DENSITY_HDPI; - else - density = LCD_DENSITY_XHDPI; + /* Map density to one of our five bucket values. + The TV density is a bit particular (and not actually a bucket + value) so we do only exact match on it. + */ + if (density != LCD_DENSITY_TVDPI) { + if (density < (LCD_DENSITY_LDPI + LCD_DENSITY_MDPI)/2) + density = LCD_DENSITY_LDPI; + else if (density < (LCD_DENSITY_MDPI + LCD_DENSITY_HDPI)/2) + density = LCD_DENSITY_MDPI; + else if (density < (LCD_DENSITY_HDPI + LCD_DENSITY_XHDPI)/2) + density = LCD_DENSITY_HDPI; + else + density = LCD_DENSITY_XHDPI; + } snprintf(temp, sizeof temp, "%d", density); boot_property_add("qemu.sf.lcd_density", temp); diff --git a/android/hw-lcd.h b/android/hw-lcd.h index c902b13..babba3f 100644 --- a/android/hw-lcd.h +++ b/android/hw-lcd.h @@ -14,6 +14,7 @@ #define LCD_DENSITY_LDPI 120 #define LCD_DENSITY_MDPI 160 +#define LCD_DENSITY_TVDPI 213 #define LCD_DENSITY_HDPI 240 #define LCD_DENSITY_XHDPI 320 |