Index: src/panasonicmn.cpp
===================================================================
diff --git a/trunk/src/panasonicmn.cpp b/trunk/src/panasonicmn.cpp
--- a/trunk/src/panasonicmn.cpp	(Revision 3195)
+++ b/trunk/src/panasonicmn.cpp	(Arbeitskopie)
@@ -52,6 +52,7 @@
 
     //! Quality, tag 0x0001
     extern const TagDetails panasonicQuality[] = {
+        { 1, N_("TIFF")           },
         { 2, N_("High")           },
         { 3, N_("Normal")         },
         { 6, N_("Very High")      },
@@ -69,7 +70,8 @@
         {  8, N_("Flash")           },
         { 10, N_("Black and white") },
         { 11, N_("Manual")          },
-        { 11, N_("Manual")          }           // To silence compiler warning
+        { 12, N_("Shade")           },
+        { 13, N_("Kelvin")          }
     };
 
     //! FocusMode, tag 0x0007
@@ -78,7 +80,9 @@
         {  2, N_("Manual")             },
         {  4, N_("Auto, focus button") },
         {  5, N_("Auto, continuous")   },
-        {  5, N_("Auto, continuous")   }        // To silence compiler warning
+        {  6, N_("AF-S")               },
+        {  7, N_("AF-C")               },
+        {  8, N_("AF-F")               }
     };
 
     //! ImageStabilizer, tag 0x001a
@@ -85,7 +89,9 @@
     extern const TagDetails panasonicImageStabilizer[] = {
         {  2, N_("On, Mode 1") },
         {  3, N_("Off")        },
-        {  4, N_("On, Mode 2") }
+        {  4, N_("On, Mode 2") },
+        {  5, N_("Panning")    },
+        {  6, N_("On, Mode 3") },
     };
 
     //! Macro, tag 0x001c
@@ -92,7 +98,8 @@
     extern const TagDetails panasonicMacro[] = {
         {   1, N_("On")         },
         {   2, N_("Off")        },
-        { 257, N_("Tele-macro") }
+        { 257, N_("Tele-macro") },
+        { 513, N_("Macro-zoom") }
     };
 
     //! ShootingMode, tag 0x001f and SceneMode, tag 0x8001
@@ -113,6 +120,8 @@
         { 13, N_("Panning")                        },
         { 14, N_("Simple")                         },
         { 15, N_("Color effects")                  },
+        { 16, N_("Self Portrait")                  },
+        { 17, N_("Economy")                        },
         { 18, N_("Fireworks")                      },
         { 19, N_("Party")                          },
         { 20, N_("Snow")                           },
@@ -130,14 +139,55 @@
         { 32, N_("Sunset")                         },
         { 33, N_("Pet")                            },
         { 34, N_("Intelligent ISO")                },
+        { 35, N_("Clipboard")                      },
         { 36, N_("High speed continuous shooting") },
         { 37, N_("Intelligent auto")               },
+        { 39, N_("Multi-aspect")                   },
+        { 41, N_("Transform")                      },
+        { 42, N_("Flash Burst")                    },
+        { 43, N_("Pin Hole")                       },
+        { 44, N_("Film Grain")                     },
+        { 45, N_("My Color")                       },
+        { 46, N_("Photo Frame")                    },
+        { 51, N_("HDR")                            },
+        { 55, N_("Handheld Night Shot")            },
+        { 57, N_("3D")                             },
+        { 59, N_("Creative Control")               },
+        { 62, N_("Panorama")                       },
+        { 63, N_("Glass Through")                  },
+        { 64, N_("HDR")                            },
+        { 66, N_("Digital Filter")                 },
+        { 67, N_("Clear Portrait")                 },
+        { 68, N_("Silky Skin")                     },
+        { 69, N_("Backlit Softness")               },
+        { 70, N_("Clear in Backlight")             },
+        { 71, N_("Relaxing Tone")                  },
+        { 72, N_("Sweet Child's Face")             },
+        { 73, N_("Distinct Scenery")               },
+        { 74, N_("Bright Blue Sky")                },
+        { 75, N_("Romantic Sunset Glow")           },
+        { 76, N_("Vivid Sunset Glow")              },
+        { 77, N_("Glistening Water")               },
+        { 78, N_("Clear Nightscape")               },
+        { 79, N_("Cool Night Sky")                 },
+        { 80, N_("Warm Glowing Nightscape")        },
+        { 81, N_("Artistic Nightscape")            },
+        { 82, N_("Glittering Illuminations")       },
+        { 83, N_("Clear Night Portrait")           },
+        { 84, N_("Soft Image of a Flower")         },
+        { 85, N_("Appetizing Food")                },
+        { 86, N_("Cute Desert")                    },
+        { 87, N_("Freeze Animal Motion")           },
+        { 88, N_("Clear Sports Shot")              },
+        { 89, N_("Monochrome")                     },
+        { 90, N_("Creative Control")               }
     };
 
     //! Audio, tag 0x0020
     extern const TagDetails panasonicAudio[] = {
-        { 1, N_("Yes") },
-        { 2, N_("No")  }
+        { 1, N_("Yes")    },
+        { 2, N_("No")     },
+        { 3, N_("Stereo") }
     };
 
     //! ColorEffect, tag 0x0028
@@ -146,7 +196,8 @@
         { 2, N_("Warm")            },
         { 3, N_("Cool")            },
         { 4, N_("Black and white") },
-        { 5, N_("Sepia")           }
+        { 5, N_("Sepia")           },
+        { 6, N_("Happy")           }
     };
 
     //! BustMode, tag 0x002a
@@ -180,18 +231,28 @@
 
     //! SelfTimer, tag 0x002e
     extern const TagDetails panasonicSelfTimer[] = {
-        { 1, N_("Off") },
-        { 2, N_("10s") },
-        { 3, N_("2s")  }
+        { 1, N_("Off")                },
+        { 2, N_("10 s")               },
+        { 3, N_("2 s")                },
+        { 4, N_("10 s / 3 pictures")  }
     };
 
     //! Rotation, tag 0x0030
     extern const TagDetails panasonicRotation[] = {
         { 1, N_("Horizontal (normal)") },
+        { 3, N_("Rotate 180")          },
         { 6, N_("Rotate 90 CW")        },
         { 8, N_("Rotate 270 CW")       }
     };
 
+    //! AFAssistLamp, tag 0x0031
+    extern const TagDetails panasonicAFAssistLamp[] = {
+        { 1, N_("Fired")                     },
+        { 2, N_("Enabled but Not Used")      },
+        { 3, N_("Disabled but Required")     },
+        { 4, N_("Disabled and Not Required") }
+    };
+
     //! ColorMode, tag 0x0032
     extern const TagDetails panasonicColorMode[] = {
         { 0, N_("Normal")  },
@@ -220,17 +281,111 @@
         { 2, N_("Destination") }
     };
 
+    //! TextStamp, tag 0x003b, 0x003e, 000x8008 and 0x8009
+    extern const TagDetails panasonicTextStamp[] = {
+        { 1, N_("Off") },
+        { 2, N_("On")  }
+    };
+
     //! FilmMode, tag 0x0042
     extern const TagDetails panasonicFilmMode[] = {
-        { 1, N_("Standard (color)") },
-        { 2, N_("Dynamic (color)")  },
-        { 3, N_("Nature (color)")   },
-        { 4, N_("Smooth (color)")   },
-        { 5, N_("Standard (B&W)")   },
-        { 6, N_("Dynamic (B&W)")    },
-        { 7, N_("Smooth (B&W)")     }
+        {  1, N_("Standard (color)") },
+        {  2, N_("Dynamic (color)")  },
+        {  3, N_("Nature (color)")   },
+        {  4, N_("Smooth (color)")   },
+        {  5, N_("Standard (B&W)")   },
+        {  6, N_("Dynamic (B&W)")    },
+        {  7, N_("Smooth (B&W)")     },
+        { 10, N_("Nostalgic")        },
+        { 11, N_("Vibrant")          }
     };
 
+    //! Flash curtain, tag 0x0048
+    extern const TagDetails panasonicFlashCurtain[] = {
+        { 0, N_("n/a") },
+        { 1, N_("1st") },
+        { 2, N_("2nd") }
+    };
+
+    //! Intelligent exposure, tag 0x005d
+    extern const TagDetails panasonicIntelligentExposure[] = {
+        { 0, N_("Off")      },
+        { 1, N_("Low")      },
+        { 2, N_("Standard") },
+        { 3, N_("High")     }
+    };
+
+    //! Flash warning, tag 0x0062
+    extern const TagDetails panasonicFlashWarning[] = {
+        { 0, N_("No")                               },
+        { 1, N_("Yes (flash required but disabled") }
+    };
+
+    //! Intelligent resolution, tag 0x0070
+    extern const TagDetails panasonicIntelligentResolution[] = {
+        { 0, N_("Off")      },
+        { 1, N_("Low")      },
+        { 2, N_("Standard") },
+        { 3, N_("High")     },
+        { 4, N_("Extended") }
+    };
+
+    //! Intelligent D-Range, tag 0x0079
+    extern const TagDetails panasonicIntelligentDRange[] = {
+        { 0, N_("Off")      },
+        { 1, N_("Low")      },
+        { 2, N_("Standard") },
+        { 3, N_("High")     }
+    };
+
+    //! Photo Style, tag 0x0089
+    extern const TagDetails panasonicPhotoStyle[] = {
+        { 0, N_("NoAuto")             },
+        { 1, N_("Standard or Custom") },
+        { 2, N_("Vivid")              },
+        { 3, N_("Natural")            },
+        { 4, N_("Monochrome")         },
+        { 5, N_("Scenery")            },
+        { 6, N_("Portrait")           }
+    };
+
+    //! Timer recording, tag 0x0096
+    extern const TagDetails panasonicTimerRecording[] = {
+        { 0, N_("Off")                   },
+        { 1, N_("Time Lapse")            },
+        { 2, N_("Stop-Motion Animation") }
+    };
+
+    //! HDR, tag 0x009e
+    extern const TagDetails panasonicHDR[] = {
+        {     0, N_("Off")         },
+        {   100, N_("1 EV")        },
+        {   200, N_("2 EV")        },
+        {   300, N_("3 EV")        },
+        { 32868, N_("1 EV (Auto)") },
+        { 32968, N_("2 EV (Auto)") },
+        { 33068, N_("3 EV (Auto)") }
+    };
+
+    //! Shutter Type, tag 0x009f
+    extern const TagDetails panasonicShutterType[] = {
+        { 0, N_("Mechanical") },
+        { 1, N_("Electronic") },
+        { 2, N_("Hybrid")     }
+    };
+
+    //! Touch AE, tag 0x00ab
+    extern const TagDetails panasonicTouchAE[] = {
+        { 0, N_("Off") },
+        { 1, N_("On")  }
+    };
+
+    //! Flash Fired, tag 0x8007
+    extern const TagDetails panasonicFlashFired[] = {
+        { 1, N_("No")  },
+        { 2, N_("Yes") }
+    };
+
     // Panasonic MakerNote Tag Info
     const TagInfo PanasonicMakerNote::tagInfo_[] = {
         TagInfo(0x0001, "Quality", N_("Quality"), N_("Image Quality"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicQuality)),
@@ -259,7 +414,7 @@
         TagInfo(0x002e, "SelfTimer", N_("Self Timer"), N_("Self timer"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicSelfTimer)),
         TagInfo(0x002f, "0x002f", "0x002f", N_("Unknown"), panasonicId, makerTags, unsignedShort, -1, printValue),
         TagInfo(0x0030, "Rotation", N_("Rotation"), N_("Rotation"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicRotation)),
-        TagInfo(0x0031, "0x0031", "0x0031", N_("Unknown"), panasonicId, makerTags, unsignedShort, -1, printValue),
+        TagInfo(0x0031, "AFAssistLamp", N_("AF Assist Lamp"), N_("AF Assist Lamp"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicAFAssistLamp)),
         TagInfo(0x0032, "ColorMode", N_("Color Mode"), N_("Color mode"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicColorMode)),
         TagInfo(0x0033, "BabyAge", N_("Baby Age"), N_("Baby (or pet) age"), panasonicId, makerTags, asciiString, -1, printValue),
         TagInfo(0x0034, "OpticalZoomMode", N_("Optical Zoom Mode"), N_("Optical zoom mode"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicOpticalZoomMode)),
@@ -267,15 +422,44 @@
         TagInfo(0x0036, "TravelDay", N_("Travel Day"), N_("Travel day"), panasonicId, makerTags, unsignedShort, -1, printValue),
         TagInfo(0x0039, "Contrast", N_("Contrast"), N_("Contrast"), panasonicId, makerTags, unsignedShort, -1, printValue),
         TagInfo(0x003a, "WorldTimeLocation", N_("World Time Location"), N_("World time location"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicWorldTimeLocation)),
+        TagInfo(0x003b, "TextStamp", N_("Text Stamp"), N_("Text Stamp"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicTextStamp)),
         TagInfo(0x003c, "ProgramISO", N_("Program ISO"), N_("Program ISO"), panasonicId, makerTags, unsignedShort, -1, printValue),
+        TagInfo(0x003d, "AdvancedSceneType", N_("Advanced Scene Type"), N_("Advanced Scene Type"), panasonicId, makerTags, unsignedShort, -1, printValue),
+        TagInfo(0x003e, "TextStamp2", N_("Text Stamp"), N_("Text Stamp"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicTextStamp)),
+        TagInfo(0x003f, "FacesDetected", N_("Faces detected"), N_("Faces detected"), panasonicId, makerTags, unsignedShort, -1, printValue),
         TagInfo(0x0040, "Saturation", N_("Saturation"), N_("Saturation"), panasonicId, makerTags, unsignedShort, -1, printValue),
         TagInfo(0x0041, "Sharpness", N_("Sharpness"), N_("Sharpness"), panasonicId, makerTags, unsignedShort, -1, printValue),
         TagInfo(0x0042, "FilmMode", N_("Film Mode"), N_("Film mode"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicFilmMode)),
+        TagInfo(0x0044, "ColorTempKelvin", N_("Color Temp Kelvin"), N_("Color Temperatur in Kelvin"), panasonicId, makerTags, unsignedShort, -1, printValue),
         TagInfo(0x0046, "WBAdjustAB", N_("WB Adjust AB"), N_("WB adjust AB. Positive is a shift toward blue."), panasonicId, makerTags, unsignedShort, -1, printValue),
         TagInfo(0x0047, "WBAdjustGM", N_("WB Adjust GM"), N_("WBAdjustGM. Positive is a shift toward green."), panasonicId, makerTags, unsignedShort, -1, printValue),
+        TagInfo(0x0048, "FlashCurtain", N_("Flash Curtain"), N_("Flash Curtain"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicFlashCurtain)),
+        TagInfo(0x004b, "ImageWidth", N_("Image width"), N_("Image width"), panasonicId, makerTags, unsignedLong, -1, printValue),
+        TagInfo(0x004c, "ImageHeight", N_("Image height"), N_("Image height"), panasonicId, makerTags, unsignedLong, -1, printValue),
+        TagInfo(0x004d, "AFPointPosition", N_("AF Point Position"), N_("AF Point Position"), panasonicId, makerTags, unsignedRational, -1, printValue),
+        TagInfo(0x004e, "FaceDetInfo", N_("Face detection info"), N_("Face detection info"), panasonicId, makerTags, undefined, -1, printValue),
         TagInfo(0x0051, "LensType", N_("Lens Type"), N_("Lens type"), panasonicId, makerTags, asciiString, -1, printValue),
         TagInfo(0x0052, "LensSerialNumber", N_("Lens Serial Number"), N_("Lens serial number"), panasonicId, makerTags, asciiString, -1, printValue),
         TagInfo(0x0053, "AccessoryType", N_("Accessory Type"), N_("Accessory type"), panasonicId, makerTags, asciiString, -1, printValue),
+        TagInfo(0x0059, "Transform", N_("Transform"), N_("Transform"), panasonicId, makerTags, undefined, -1, printValue),
+        TagInfo(0x005d, "IntelligentExposure", N_("Intelligent Exposure"), N_("Intelligent Exposure"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicIntelligentExposure)),
+        TagInfo(0x0061, "FaceRecInfo", N_("Face recognation info"), N_("Face recognation info"), panasonicId, makerTags, undefined, -1, printValue),
+        TagInfo(0x0062, "FlashWarning", N_("Flash Warning"), N_("Flash warning"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicFlashWarning)),
+        TagInfo(0x0065, "Title", N_("Title"), N_("Title"), panasonicId, makerTags, undefined, -1, printValue),
+        TagInfo(0x0066, "BabyName", N_("Baby Name"), N_("Baby name (or pet name)"), panasonicId, makerTags, undefined, -1, printValue),
+        TagInfo(0x0067, "Location", N_("Location"), N_("Location"), panasonicId, makerTags, undefined, -1, printValue),
+        TagInfo(0x0069, "Country", N_("Country"), N_("Country"), panasonicId, makerTags, undefined, -1, printValue),
+        TagInfo(0x006b, "State", N_("State"), N_("State"), panasonicId, makerTags, undefined, -1, printValue),
+        TagInfo(0x006d, "City", N_("City"), N_("City"), panasonicId, makerTags, undefined, -1, printValue),
+        TagInfo(0x006f, "Landmark", N_("Landmark"), N_("Landmark"), panasonicId, makerTags, undefined, -1, printValue),
+        TagInfo(0x0070, "IntelligentResolution", N_("Intelligent resolution"), N_("Intelligent resolution"), panasonicId, makerTags, unsignedByte, -1, EXV_PRINT_TAG(panasonicIntelligentResolution)),
+        TagInfo(0x0079, "IntelligentDRange", N_("Intelligent Dynamic Range"), N_("Intelligent Dynamic Range"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicIntelligentDRange)),
+        TagInfo(0x0086, "ManometerPressure", N_("Manometer Pressure"), N_("Manometer pressure"), panasonicId, makerTags, unsignedShort, -1, printValue),
+        TagInfo(0x0089, "PhotoStyle", N_("Photo style"), N_("Photo style"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicPhotoStyle)),
+        TagInfo(0x0096, "TimerRecording", N_("Timer Recording"), N_("Timer Recording"), panasonicId, makerTags, unsignedByte, -1, EXV_PRINT_TAG(panasonicTimerRecording)),
+        TagInfo(0x009e, "HDR", N_("HDR"), N_("HDR"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicHDR)),
+        TagInfo(0x009f, "ShutterType", N_("Shutter Type"), N_("Shutter Type"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicShutterType)),
+        TagInfo(0x00ab, "TouchAE", N_("TouchAE"), N_("TouchAE"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicTouchAE)),
         TagInfo(0x0e00, "PrintIM", N_("Print IM"), N_("PrintIM information"), panasonicId, makerTags, undefined, -1, printValue),
         TagInfo(0x4449, "0x4449", "0x4449", N_("Unknown"), panasonicId, makerTags, undefined, -1, printValue),
         TagInfo(0x8000, "MakerNoteVersion", N_("MakerNote Version"), N_("MakerNote version"), panasonicId, makerTags, undefined, -1, printExifVersion),
@@ -283,7 +467,11 @@
         TagInfo(0x8004, "WBRedLevel", N_("WB Red Level"), N_("WB red level"), panasonicId, makerTags, unsignedShort, -1, printValue),
         TagInfo(0x8005, "WBGreenLevel", N_("WB Green Level"), N_("WB green level"), panasonicId, makerTags, unsignedShort, -1, printValue),
         TagInfo(0x8006, "WBBlueLevel", N_("WB Blue Level"), N_("WB blue level"), panasonicId, makerTags, unsignedShort, -1, printValue),
+        TagInfo(0x8007, "FlashFired", N_("Flash Fired"), N_("Flash Fired"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicFlashFired)),
+        TagInfo(0x8008, "TextStamp3", N_("Text Stamp"), N_("Text Stamp"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicTextStamp)),
+        TagInfo(0x8009, "TextStamp4", N_("Text Stamp"), N_("Text Stamp"), panasonicId, makerTags, unsignedShort, -1, EXV_PRINT_TAG(panasonicTextStamp)),
         TagInfo(0x8010, "BabyAge", N_("Baby Age"), N_("Baby (or pet) age"), panasonicId, makerTags, asciiString, -1, printValue),
+        TagInfo(0x8012, "Transform2", N_("Transform"), N_("Transform"), panasonicId, makerTags, undefined, -1, printValue),
         // End of list marker
         TagInfo(0xffff, "(UnknownPanasonicMakerNoteTag)", "(UnknownPanasonicMakerNoteTag)", N_("Unknown PanasonicMakerNote tag"), panasonicId, makerTags, asciiString, -1, printValue)
     };
@@ -302,16 +490,19 @@
         }
         long l0 = value.toLong(0);
         long l1 = value.toLong(1);
-        if      (l0 ==  0 && l1 ==  1) os << _("Spot mode on");
-        else if (l0 ==  0 && l1 == 16) os << _("Spot mode off or 3-area (high speed)");
-        else if (l0 ==  1 && l1 ==  0) os << _("Spot focussing");
-        else if (l0 ==  1 && l1 ==  1) os << _("5-area");
-        else if (l0 == 16 && l1 ==  0) os << _("1-area");
-        else if (l0 == 16 && l1 == 16) os << _("1-area (high speed)");
-        else if (l0 == 32 && l1 ==  0) os << _("3-area (auto)");
-        else if (l0 == 32 && l1 ==  1) os << _("3-area (left)");
-        else if (l0 == 32 && l1 ==  2) os << _("3-area (center)");
-        else if (l0 == 32 && l1 ==  3) os << _("3-area (right)");
+        if      (l0 ==   0 && l1 ==  1) os << _("Spot mode on or 9 area");
+        else if (l0 ==   0 && l1 == 16) os << _("Spot mode off or 3-area (high speed)");
+        else if (l0 ==   0 && l1 == 23) os << _("23-area");
+        else if (l0 ==   1 && l1 ==  0) os << _("Spot focussing");
+        else if (l0 ==   1 && l1 ==  1) os << _("5-area");
+        else if (l0 ==  16 && l1 ==  0) os << _("1-area");
+        else if (l0 ==  16 && l1 == 16) os << _("1-area (high speed)");
+        else if (l0 ==  32 && l1 ==  0) os << _("3-area (auto)");
+        else if (l0 ==  32 && l1 ==  1) os << _("3-area (left)");
+        else if (l0 ==  32 && l1 ==  2) os << _("3-area (center)");
+        else if (l0 ==  32 && l1 ==  3) os << _("3-area (right)");
+        else if (l0 ==  64 && l1 ==  0) os << _("Face Detect");
+        else if (l0 == 128 && l1 ==  0) os << _("Spot Focusing 2");
         else os << value;
         return os;
     } // PanasonicMakerNote::print0x000f
