I'm using CHDK on the G15 and found it incomplete with regards to keyboard support (could not use "debug action" shortcut).
I propose the following modifications to files in platform/g15:
Index: platform/g15/kbd.c
===================================================================
--- platform/g15/kbd.c (revision 3118)
+++ platform/g15/kbd.c (working copy)
@@ -35,6 +35,8 @@
}
static KeyMap keymap[] = {
+ { 0, KEY_METERING ,0x00000400 },
+ { 0, KEY_AE_LOCK ,0x00020000 },
{ 0, KEY_SET ,0x00000800 }, // Found @0xff4a0d2c, levent 0x08
{ 0, KEY_RIGHT ,0x00001000 }, // Found @0xff4a0d34, levent 0x07
{ 0, KEY_DOWN ,0x00002000 }, // Found @0xff4a0d3c, levent 0x05
Index: platform/g15/platform_camera.h
===================================================================
--- platform/g15/platform_camera.h (revision 3118)
+++ platform/g15/platform_camera.h (working copy)
@@ -20,6 +20,7 @@
// for information on each setting. If the default values are correct for your camera then
// don't override them again in here.
+ #define SHORTCUT_TOGGLE_RAW KEY_METERING
#define CAM_PROPSET 5
#define CAM_DRYOS 1
#define CAM_DRYOS_2_3_R39 1
@@ -37,8 +38,9 @@
#define CAM_HAS_NATIVE_ND_FILTER 1 // Camera has built-in ND filter with Canon menu support for enable/disable
#define CAM_ADJUSTABLE_ALT_BUTTON 1
- #define CAM_ALT_BUTTON_NAMES { "Playback", "Video", "Display" }
- #define CAM_ALT_BUTTON_OPTIONS { KEY_PRINT, KEY_VIDEO, KEY_DISPLAY }
+ #define CAM_ALT_BUTTON_NAMES { "Shrtcut", "Video", "Meter", "AE Lock", "Erase" }
+ #define CAM_ALT_BUTTON_OPTIONS { KEY_PRINT, KEY_VIDEO, KEY_DISPLAY, KEY_AE_LOCK, KEY_ERASE }
+ #define CAM_DISP_BUTTON_NAME "METER"
#undef CAM_CAN_SD_OVER_NOT_IN_MF
#undef CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO