aboutsummaryrefslogtreecommitdiffstats
path: root/android
diff options
context:
space:
mode:
Diffstat (limited to 'android')
-rw-r--r--android/avd/hardware-properties.ini11
-rwxr-xr-xandroid/tools/gen-hw-config.py70
2 files changed, 22 insertions, 59 deletions
diff --git a/android/avd/hardware-properties.ini b/android/avd/hardware-properties.ini
index 4ea63ca..582083c 100644
--- a/android/avd/hardware-properties.ini
+++ b/android/avd/hardware-properties.ini
@@ -49,9 +49,10 @@ description = The amount of physical RAM on the device, in megabytes.
# Touch screen type
name = hw.screen
type = string
+enum = touch, multi-touch, no-touch
default = touch
abstract = Touch screen type
-description = Defines type of the screen. Can be 'touch', 'multi-touch', or 'no-touch'.
+description = Defines type of the screen.
# Hardware main keys (back/home)
name = hw.mainKeys
@@ -192,16 +193,18 @@ abstract = LCD pixel height
name = hw.lcd.depth
type = integer
+enum = 16, 32
default = 16
abstract = LCD color depth
-description = Must be 16 or 32. Color bit depth of emulated framebuffer.
+description = Color bit depth of emulated framebuffer.
# LCD density
name = hw.lcd.density
type = integer
+enum = 120, 160, 240, 213, 320
default = 160
abstract = Abstracted LCD density
-description = Must be one of 120 / 160 / 240 / 213/ 320. A value used to roughly describe the density of the LCD screen for automatic resource/asset selection.
+description = A value used to roughly describe the density of the LCD screen for automatic resource/asset selection.
# LCD backlight - Enable/Disable LCD backlight simulation
# default = no : Disabled
@@ -224,6 +227,7 @@ description = Enable/Disable emulated OpenGLES GPU
#
name = hw.camera.back
type = string
+enum = emulated, none, webcam0, ...
default = emulated
abstract = Configures camera facing back
description = Must be 'emulated' for a fake camera, 'webcam<N>' for a web camera, or 'none' if back camera is disabled.
@@ -232,6 +236,7 @@ description = Must be 'emulated' for a fake camera, 'webcam<N>' for a web camera
#
name = hw.camera.front
type = string
+enum = emulated, none, webcam0, ...
default = none
abstract = Configures camera facing front
description = Must be 'emulated' for a fake camera, 'webcam<N>' for a web camera, or 'none' if front camera is disabled.
diff --git a/android/tools/gen-hw-config.py b/android/tools/gen-hw-config.py
index a55d7a3..201ef04 100755
--- a/android/tools/gen-hw-config.py
+++ b/android/tools/gen-hw-config.py
@@ -71,65 +71,23 @@ class Item:
self.description = ""
self.enum_values = []
- # gets base type for an enum value.
- # This is a very basic implementation of enum parser that assumes that enum
- # is formatted as such:
- #
- # enum(type: val1[, val2[, ..., valN] [, ...])
- #
- # where:
- # - 'type' defines type of enumerated values, and must be one of the types
- # listed in typesToMacros
- # - 'val1'... 'valN' lists enumerated values, separated with a comma.
- # - '...' is a special value indicating that AVD editor may set property
- # value that doesn't match values enumerated in the .ini file. However,
- # default value set for the property must match one of the enumerated
- # values.
- # This method provides some basic checking for the format, but it could, or
- # should be improved.
- #
- def trueenumtype(self,type):
- # Make sure enum ends with a ')'
- if not type.endswith(")"):
- print"Bad enum fomat in '" + type + "'"
- sys.exit(1)
- # Cut substring between 'enum(', and terminating ')'
- enum_data = type[5:len(type)-1]
- # Locate enum's value type
- type_index = enum_data.find(':')
- if type_index == -1:
- print "Property '" + self.name + "': Value type is missing in enum."
- sys.exit(1)
- value_type = enum_data[:type_index].strip()
- # Make sure value type is known
- if not value_type in typesToMacros:
- print "Property '" + self.name + "': Unknown value type '" + value_type + "' in enum."
- sys.exit(1)
- # Save list of enumerated values, stripped of spaces.
- for value in enum_data[type_index+1:].split(','):
- self.enum_values.append(value.strip())
- return value_type
-
- # gets true basic type for a type obtained from the .ini file
- # Here we simply check if type is an enum, and if so, we extract basic
- # type for enumerated values.
- def truetype(self,type):
- if type.startswith("enum("):
- return self.trueenumtype(type.strip())
- return type
-
def add(self,key,val):
if key == 'type':
- self.type = self.truetype(val)
+ self.type = val
+ elif key == 'enum':
+ # Build list of enumerated values
+ self.enum_values = [ s.strip() for s in val.split(',') ]
+ # If default value has been already set, make sure it's in the list
+ if self.default and not self.default in self.enum_values:
+ print "Property '" + self.name + "': Default value '" + self.default + "' is missing in enum: ",
+ print self.enum_values,
+ sys.exit(1)
elif key == 'default':
- if len(val) > 0 and len(self.enum_values) > 0:
- # Make sure that default value (if set) is present in enum.
- if self.enum_values.count(val) == 0:
- print "Property '" + self.name + "': Default value '" + val + "' is missing in enum: ",
- print self.enum_values,
- sys.exit(1)
- else:
- self.default = val
+ # If this is an enum, make sure that default value is in the list.
+ if val and self.enum_values and not val in self.enum_values:
+ print "Property '" + self.name + "': Default value '" + val + "' is missing in enum: ",
+ print self.enum_values,
+ sys.exit(1)
else:
self.default = val
elif key == 'abstract':