aboutsummaryrefslogtreecommitdiffstats
path: root/android/avd
diff options
context:
space:
mode:
Diffstat (limited to 'android/avd')
-rw-r--r--android/avd/hardware-properties.ini12
-rw-r--r--android/avd/info.c19
-rw-r--r--android/avd/info.h6
3 files changed, 37 insertions, 0 deletions
diff --git a/android/avd/hardware-properties.ini b/android/avd/hardware-properties.ini
index dabf166..0e650bb 100644
--- a/android/avd/hardware-properties.ini
+++ b/android/avd/hardware-properties.ini
@@ -83,6 +83,18 @@ default = yes
abstract = Keyboard lid support
description = Whether the QWERTY keyboard can be opened/closed.
+# The name of the hardware charmap for this device.
+#
+# NOTE: This should always be the default 'qwerty2' unless you have
+# modified the system image accordingly. This name is sent to
+# the kernel at boot time. Using an incorrect name will result
+# in an unusable machine.
+name = hw.keyboard.charmap
+type = string
+default = qwerty2
+abstract = Keyboard charmap name
+description = Name of the system keyboard charmap file.
+
# DPad keys
name = hw.dPad
type = boolean
diff --git a/android/avd/info.c b/android/avd/info.c
index 1ab066c..b8160a8 100644
--- a/android/avd/info.c
+++ b/android/avd/info.c
@@ -1162,3 +1162,22 @@ avdInfo_getSkinInfo( AvdInfo* i, char** pSkinName, char** pSkinDir )
AFREE(skinPath);
return;
}
+
+char*
+avdInfo_getCharmapFile( AvdInfo* i, const char* charmapName )
+{
+ char fileNameBuff[PATH_MAX];
+ const char* fileName;
+
+ if (charmapName == NULL || charmapName[0] == '\0')
+ return NULL;
+
+ if (strstr(charmapName, ".kcm") == NULL) {
+ snprintf(fileNameBuff, sizeof fileNameBuff, "%s.kcm", charmapName);
+ fileName = fileNameBuff;
+ } else {
+ fileName = charmapName;
+ }
+
+ return _avdInfo_getContentOrSdkFilePath(i, fileName);
+}
diff --git a/android/avd/info.h b/android/avd/info.h
index 2469f68..5cb3872 100644
--- a/android/avd/info.h
+++ b/android/avd/info.h
@@ -215,6 +215,12 @@ const char* avdInfo_getContentPath( AvdInfo* i );
*/
void avdInfo_getSkinInfo( AvdInfo* i, char** pSkinName, char** pSkinDir );
+/* Find a charmap file named <charmapName>.kcm for this AVD.
+ * Returns the path of the file on success, or NULL if not found.
+ * The result string must be freed by the caller.
+ */
+char* avdInfo_getCharmapFile( AvdInfo* i, const char* charmapName );
+
/* Returns TRUE iff in the Android build system */
int avdInfo_inAndroidBuild( AvdInfo* i );