Index: /trunk/platform/ixus65_sd630/shooting.c
===================================================================
--- /trunk/platform/ixus65_sd630/shooting.c	(revision 854)
+++ /trunk/platform/ixus65_sd630/shooting.c	(revision 855)
@@ -76,24 +76,45 @@
 };          
 
+/*
+canon modemap @FF973AD4 in 100a
+according to http://www.usa.canon.com/consumer/controller?act=ModelInfoAct&fcategoryid=224&modelid=12956#ModelTechSpecsAct
+Shooting Modes
+    Auto, Camera M, Portrait, 
+    Special Scene
+        Foliage, Snow, Beach, Fireworks, Underwater, Indoor,
+        Kids & Pets, Color Accent, Color Swap,
+    Night Snapshot, Digital Macro, My Colors, Stitch Assist, Movie
+
+Movie: 640 x 480 / 320 x 240 (30 fps/15 fps) available up to 1GB or 1 hour for each file size, 320 x 240 (1 min. at 60 fps), 160 x 120 (3 min. at 15 fps)
+*/
+/* names below mostly guessed from a540 and ixus60_sd600 */
 static const CapturemodeMap modemap[] = {
-    { MODE_AUTO,               6  },
-    { MODE_P,                  1  },
-    { MODE_TV,                 3  },
-    { MODE_AV,                 2  },
-    { MODE_M,                  0  },
-    { MODE_PORTRAIT,           9  },
-    { MODE_NIGHT,              8  },
-    { MODE_LANDSCAPE,          7  },
-    { MODE_VIDEO_STD,          18 },
-    { MODE_STITCH,             5  },
-    { MODE_MY_COLORS,          4  },
-    { MODE_SCN_WATER,          13 },
-    { MODE_SCN_NIGHT,          15 },
-    { MODE_SCN_CHILD,          16 },
-    { MODE_SCN_PARTY,          14 },
-    { MODE_SCN_GRASS,          10 },
-    { MODE_SCN_SNOW,           11 },
-    { MODE_SCN_BEACH,          12 },
-    { MODE_SCN_FIREWORK,       17 }
+    // common, should be OK
+    { MODE_P,                  32772 }, // may be called manual, but effectively P
+    { MODE_AUTO,               32768 },
+    { MODE_PORTRAIT,           32781 },
+    { MODE_STITCH,             33290 },
+
+    // the following match a540 and ixus60
+    { MODE_SCN_KIDS_PETS,      16399 }, // "kids and pets"
+    { MODE_SCN_INDOOR,         16400 }, // "indoor"
+    { MODE_SCN_FOLIAGE,        16401 }, // "foliage"
+    { MODE_SCN_SNOW,           16402 }, // "snow"
+    { MODE_SCN_BEACH,          16403 }, // "beach"
+    { MODE_SCN_FIREWORK,       16404 }, // "fireworks"
+    { MODE_SCN_UNDERWATER,     16405 }, // "under water"
+    { MODE_SCN_COLOR_ACCENT,   16920 }, // "color accent"
+    { MODE_SCN_COLOR_SWAP,     16921 }, // "color swap"
+
+    { MODE_DIGITAL_MACRO,      33288 }, // ixus60
+    { MODE_NIGHT_SNAPSHOT,     32779 }, // ixus60
+    { MODE_MY_COLORS,          32774 }, // by elimination: should be "my colors" ?
+
+    // match a540 and ixus60
+    { MODE_VIDEO_STD,          2593  }, //
+    { MODE_VIDEO_SPEED,        2594  }, // "fast frame rate"
+    { MODE_VIDEO_COMPACT,      2595  }, // "compact"
+    { MODE_VIDEO_COLOR_ACCENT, 2591  }, // "color accent"
+    { MODE_VIDEO_COLOR_SWAP,   2592  }, // "color swap"
 };
 
Index: /trunk/platform/a700/shooting.c
===================================================================
--- /trunk/platform/a700/shooting.c	(revision 854)
+++ /trunk/platform/a700/shooting.c	(revision 855)
@@ -75,5 +75,16 @@
 };          
 
+/*
+canon list @FFD5912C in 100b
+from http://www.usa.canon.com/consumer/controller?act=ModelInfoAct&tabact=ModelTechSpecsTabAct&fcategoryid=221&modelid=12944
+Shooting Modes
+    Auto; Creative: P, Av, Tv, M; Image: Portrait, Landscape, Night Scene, Special Scene (Foliage, Snow, Beach, Fireworks, Indoor, Kids & Pets, Night Snapshot, Color Accent, Color Swap), My Colors, Stitch Assist, Movie
+
+Video resolutions
+640 x 480 / 320 x 240 (30 fps/15 fps) available up to 1GB or 1 hour for each file size,
+320 x 240 (1 min. at 60 fps), 160 x 120 (3 min. at 15 fps)
+*/
 static const CapturemodeMap modemap[] = {
+    // common modes, probably OK
     { MODE_AUTO,               32768 },
     { MODE_P,                  32772 },
@@ -84,12 +95,21 @@
     { MODE_NIGHT,              32782 },
     { MODE_LANDSCAPE,          32780 },
-    { MODE_VIDEO_STD,          2596  },
-    { MODE_VIDEO_SPEED,        2597  },
-    { MODE_VIDEO_COMPACT,      2598  },
-    { MODE_VIDEO_MY_COLORS,    2595  },
-    { MODE_VIDEO_COLOR_ACCENT, 2594  },
     { MODE_STITCH,             33290 },
-    { MODE_MY_COLORS,          16922 },
-    { MODE_SCN_WATER,          16405 },
+//    { MODE_VIDEO_STD,          2596  }, // NOT in canon list!
+//    { MODE_VIDEO_SPEED,        2597  }, ""
+//    { MODE_VIDEO_COMPACT,      2598  }, ""
+//    { ???,    2595  }, was MODE_VIDEO_MY_COLORS
+//    { ???, 2594  }, was MODE_VIDEO_COLOR_ACCENT
+//    { ???, 2591  }, in canon list, not original map
+//    { ???, 2592  }, in canon list, not original map
+//    { ???, 2593  }, in canon list, not original map
+// the video mode numbers in the canon list and video modes in canon description match a540, so I'm using those values. NOT VERIFIED!
+    { MODE_VIDEO_STD,          2593  },
+    { MODE_VIDEO_SPEED,        2594  },
+    { MODE_VIDEO_COMPACT,      2595  },
+    { MODE_VIDEO_COLOR_ACCENT, 2591  },
+    { MODE_VIDEO_COLOR_SWAP,   2592  },
+//    { MODE_MY_COLORS,          16922 }, // NOT in canon list!
+//    { MODE_SCN_WATER,          16405 }, // NOT in canon list!
     { MODE_SCN_NIGHT,          16395 },
     { MODE_SCN_CHILD,          16399 },
@@ -99,5 +119,9 @@
     { MODE_SCN_BEACH,          16403 },
     { MODE_SCN_FIREWORK,       16404 },
-    { MODE_SCN_COLOR_ACCENT,   16921 }
+//    { ???,   16921 } ??? was MODE_SCN_COLOR_ACCENT
+//    { ???,   16920 } ??? 
+// using these from a540, NOT VERIFIED!
+    { MODE_SCN_COLOR_ACCENT,   16920 }, // "color accent"
+    { MODE_SCN_COLOR_SWAP,     16921 }, // "color swap"
 };
 
Index: /trunk/platform/a540/shooting.c
===================================================================
--- /trunk/platform/a540/shooting.c	(revision 854)
+++ /trunk/platform/a540/shooting.c	(revision 855)
@@ -76,4 +76,5 @@
 };          
 
+// canon mode list @FFD588D4 in 100b
 static const CapturemodeMap modemap[] = {
     { MODE_M,                  32769 },
Index: /trunk/platform/a640/shooting.c
===================================================================
--- /trunk/platform/a640/shooting.c	(revision 854)
+++ /trunk/platform/a640/shooting.c	(revision 855)
@@ -76,24 +76,47 @@
 };          
 
+/* 
+valid modes from 100b dump @FFD6ADE8, names guessed from a540, g7
+
+from http://www.usa.canon.com/consumer/controller?act=ModelInfoAct&fcategoryid=221&modelid=14109#ModelTechSpecsAct
+Shooting Modes
+    Auto; Creative: P, Av, Tv, M, C; Image: Portrait, Landscape, Night Scene,
+    Special Scene 
+        Foliage, Snow, Beach, Fireworks, Underwater, Indoor, Kids & Pets, 
+        Night Snapshot, Color Accent, Color Swap,
+    Stitch Assist, Movie
+move resolutions
+    640 x 480 / 320 x 240 (30 fps/15 fps) available up to 1GB or 1 hour for each file size, 
+    160 x 120 (3 min. at 15 fps))
+*/ 
 static const CapturemodeMap modemap[] = {
-    { MODE_AUTO,               6  },
-    { MODE_P,                  1  },
-    { MODE_TV,                 3  },
-    { MODE_AV,                 2  },
-    { MODE_M,                  0  },
-    { MODE_PORTRAIT,           9  },
-    { MODE_NIGHT,              8  },
-    { MODE_LANDSCAPE,          7  },
-    { MODE_VIDEO_STD,          18 },
-    { MODE_STITCH,             5  },
-    { MODE_MY_COLORS,          4  },
-    { MODE_SCN_WATER,          13 },
-    { MODE_SCN_NIGHT,          15 },
-    { MODE_SCN_CHILD,          16 },
-    { MODE_SCN_PARTY,          14 },
-    { MODE_SCN_GRASS,          10 },
-    { MODE_SCN_SNOW,           11 },
-    { MODE_SCN_BEACH,          12 },
-    { MODE_SCN_FIREWORK,       17 }
+    // above are common on most cameras except very old vxworks that use 0-n, should be OK
+    { MODE_M,                  32769 },
+    { MODE_P,                  32772 },
+    { MODE_AV,                 32770 },
+    { MODE_TV,                 32771 },
+    { MODE_STITCH,             33290 },
+    { MODE_AUTO,               32768 },
+    { MODE_LANDSCAPE,          32780 },
+    { MODE_NIGHT,              32782 }, // s3is a540 "night scene" on dial, different from "night snapshot" under "scene" below
+    { MODE_PORTRAIT,           32781 },
+
+    // unsure
+    { MODE_SCN_COLOR_ACCENT,   16921 }, // a540 MODE_SCN_COLOR_SWAP, g7 MODE_SCN_COLOR_ACCENT
+    { MODE_MY_COLORS,          16922 }, // g7 MODE_MY_COLORS
+    { MODE_SCN_FOLIAGE,        16401 }, // a540 "foliage" g7 SCN_GRASS
+    { MODE_SCN_SNOW,           16402 }, // a540, g7 "snow" 
+    { MODE_SCN_BEACH,          16403 }, // a540, g7 "beach"
+    { MODE_SCN_UNDERWATER,     16405 }, // a540 "under water"
+    { MODE_SCN_INDOOR,         16400 }, // a540 "indoor" g7 SCN_PARTY
+    { MODE_SCN_NIGHT,          16395 }, // a540 "night snapshot" g7 SCN_NIGHT
+    { MODE_SCN_KIDS_PETS,      16399 }, // a540 "kids and pets" g7 SCN_CHILD
+    { MODE_SCN_FIREWORK,       16404 }, // a540, g7 "fireworks"
+    // unsure
+    { MODE_VIDEO_COLOR_ACCENT,  2594 }, // a540 MODE_VIDEO_SPEED, g7 MODE_VIDEO_COLOR_ACCENT
+    { MODE_VIDEO_MY_COLORS,     2595 }, // a540 MODE_VIDEO_COMPACT, g7 MODE_VIDEO_MY_COLORS
+    { MODE_VIDEO_STD,           2596 }, // g7 MODE_VIDEO_STD
+    { MODE_VIDEO_COMPACT,       2598 }, // g7 MODE_VIDEO_COMPACT
+//    { ???,      8221  }, // in canon list, C maybe ?
 };
 
Index: /trunk/platform/ixus60_sd600/shooting.c
===================================================================
--- /trunk/platform/ixus60_sd600/shooting.c	(revision 854)
+++ /trunk/platform/ixus60_sd600/shooting.c	(revision 855)
@@ -76,4 +76,20 @@
 };          
 
+/*
+canon mode list @FF972614 in 100a
+modemap mostly verified in svn rev 780
+canon info
+http://www.usa.canon.com/consumer/controller?act=ModelInfoAct&tabact=ModelTechSpecsTabAct&fcategoryid=224&modelid=12913
+
+Shooting Modes
+    Auto, Camera M, Portrait, 
+    Special Scene 
+        Foliage, Snow, Beach, Fireworks, Underwater, Indoor,
+        Kids & Pets, Color Accent, Color Swap,
+    Night Snapshot, Digital Macro, My Colors, Stitch Assist, Movie
+Vide resolutions
+    640 x 480 / 320 x 240 (30 fps/15 fps) available up to 1GB or 1 hour for each file size, 
+    320 x 240 (1 min. at 60 fps), 160 x 120 (3 min. at 15 fps
+*/
 static const CapturemodeMap modemap[] = {
     { MODE_P,                  32772 }, // note, this is called Manual, but eqivalent to P on cameras with real manual
@@ -90,4 +106,5 @@
     { MODE_SCN_BEACH,          16403 }, // "beach"
     { MODE_STITCH,             33290 },
+    { MODE_MY_COLORS,          32774 }, // NOTE: guessed, wasn't in original mode map, is in canon list
     { MODE_SCN_FIREWORK,       16404 }, // "fireworks"
     { MODE_SCN_UNDERWATER,     16405 }, // "under water"
Index: /trunk/platform/a630/shooting.c
===================================================================
--- /trunk/platform/a630/shooting.c	(revision 854)
+++ /trunk/platform/a630/shooting.c	(revision 855)
@@ -76,24 +76,46 @@
 };          
 
+/* 
+ valid modes from 100c dump @FFD682D0, names guessed from a540, g7, 
+from
+http://www.usa.canon.com/consumer/controller?act=ModelInfoAct&tabact=ModelTechSpecsTabAct&fcategoryid=221&modelid=14108
+Shooting Modes
+    Auto; Creative: P, Av, Tv, M, C; Image: Portrait, Landscape, Night Scene, 
+    Special Scene
+        Foliage, Snow, Beach, Fireworks, Underwater, Indoor, Kids & Pets,
+        Night Snapshot, Color Accent, Color Swap,
+    Stitch Assist, Movie
+Video resolutions
+    640 x 480 / 320 x 240 (30 fps/15 fps) available up to 1GB or 1 hour for each file size,
+    160 x 120 (3 min. at 15 fps)
+*/
 static const CapturemodeMap modemap[] = {
-    { MODE_AUTO,               6  },
-    { MODE_P,                  1  },
-    { MODE_TV,                 3  },
-    { MODE_AV,                 2  },
-    { MODE_M,                  0  },
-    { MODE_PORTRAIT,           9  },
-    { MODE_NIGHT,              8  },
-    { MODE_LANDSCAPE,          7  },
-    { MODE_VIDEO_STD,          18 },
-    { MODE_STITCH,             5  },
-    { MODE_MY_COLORS,          4  },
-    { MODE_SCN_WATER,          13 },
-    { MODE_SCN_NIGHT,          15 },
-    { MODE_SCN_CHILD,          16 },
-    { MODE_SCN_PARTY,          14 },
-    { MODE_SCN_GRASS,          10 },
-    { MODE_SCN_SNOW,           11 },
-    { MODE_SCN_BEACH,          12 },
-    { MODE_SCN_FIREWORK,       17 }
+    // above are common on most cameras except very old vxworks that use 0-n, should be OK
+    { MODE_M,                  32769 },
+    { MODE_AV,                 32770 },
+    { MODE_TV,                 32771 },
+    { MODE_P,                  32772 },
+    { MODE_AUTO,               32768 },
+    { MODE_PORTRAIT,           32781 },
+    { MODE_LANDSCAPE,          32780 },
+    { MODE_STITCH,             33290 },
+    { MODE_NIGHT,              32782 }, // s3is a540 "night scene" on dial, different from "night snapshot" under "scene" below
+    // the following are suspect, but probably fairly similar scene modes
+    { MODE_SCN_NIGHT,          16395 }, // a540 "night snapshot" g7 SCN_NIGHT
+    { MODE_SCN_KIDS_PETS,      16399 }, // a540 "kids and pets" g7 SCN_CHILD
+    { MODE_SCN_INDOOR,         16400 }, // a540 "indoor" g7 SCN_PARTY
+    { MODE_SCN_FOLIAGE,        16401 }, // a540 "foliage" g7 SCN_GRASS
+    { MODE_SCN_SNOW,           16402 }, // a540, g7 "snow" 
+    { MODE_SCN_BEACH,          16403 }, // a540, g7 "beach"
+    { MODE_SCN_FIREWORK,       16404 }, // a540, g7 "fireworks"
+    { MODE_SCN_UNDERWATER,     16405 }, // a540 "under water"
+    // the following are very suspect
+    { MODE_MY_COLORS,          16922 }, // g7 MODE_MY_COLORS
+    { MODE_SCN_COLOR_ACCENT,   16921 }, // a540 MODE_SCN_COLOR_SWAP, g7 MODE_SCN_COLOR_ACCENT
+    { MODE_VIDEO_COLOR_ACCENT,  2594 }, // a540 MODE_VIDEO_SPEED, g7 MODE_VIDEO_COLOR_ACCENT
+    { MODE_VIDEO_MY_COLORS,     2595 }, // a540 MODE_VIDEO_COMPACT, g7 MODE_VIDEO_MY_COLORS
+    { MODE_VIDEO_STD,           2596 }, // g7 MODE_VIDEO_STD
+    { MODE_VIDEO_COMPACT,       2598 }, // g7 MODE_VIDEO_COMPACT
+//    { ???,      8221  }, // in canon list, C maybe ?
 };
 
Index: /trunk/platform/g7/shooting.c
===================================================================
--- /trunk/platform/g7/shooting.c	(revision 854)
+++ /trunk/platform/g7/shooting.c	(revision 855)
@@ -101,8 +101,12 @@
     { MODE_SCN_FIREWORK,       16404 },
     { MODE_SCN_ISO_3200,       16411 },
+// these two look like SCN modes
     { MODE_PORTRAIT,           16397 },
     { MODE_LANDSCAPE,          16396 },
     { MODE_SCN_SPORT,          16903 },
     { MODE_SCN_COLOR_ACCENT,   16921 }
+// from canon mode list in 100e dump @FF9B62B0
+//    { ???,          8222 },
+//    { ???,   8223 }
 };
 
