%Image::ExifTool::UserDefined = ( 'Image::ExifTool::Olympus::Main' => { 0x600 => { #PH/4/22 Name => 'DriveMode', Writable => 'int16u', Count => -1, Notes => '2, 3 or 5 numbers: 1. Mode, 2. Shot number, 3. Mode bits, 5. Shutter mode, 6. Shooting mode (E-M1 II and later models)', PrintConv => q { my ($a,$b,$c,$d,$e,$f) = split ' ',$val; if ($f) { my %f = ( 0x01 => 'Single Shot', 0x03 => 'Sequential H', 0x11 => 'Single Shot; Anti-shock', 0x12 => 'Sequential L; Anti-shock', 0x14 => 'Self-Timer 12 sec; Anti-shock', 0x15 => 'Self-Timer 2 sec; Anti-shock', 0x16 => 'Custom Self-Timer; Anti-shock', 0x17 => 'Sequential; Anti-shock', 0x21 => 'High Res (OM); Electronical shutter', 0x22 => 'Sequential L; Electronical shutter', 0x23 => 'Sequential H; Electronical shutter', 0x24 => 'Self-Timer 2 sec; Electronical shutter', 0x25 => 'Self-Timer 12 sec; Electronical shutter', 0x26 => 'Custom Self-Timer; Electronical shutter', 0x27 => 'Sequential; Electronical shutter', 0x28 => 'High-speed Sequential SH1; Electronical shutter', 0x29 => 'High-speed Sequential SH2; Electronical shutter', 0x3a => 'HighRes (E-M1); Electronical shutter', 0x41 => 'ProCap H; Electronical shutter', 0x42 => 'ProCap L; Electronical shutter', 0x43 => 'ProCap; Electronical shutter', 0x48 => 'ProCap SH1; Electronical shutter', 0x49 => 'ProCap SH2; Electronical shutter', ); $f = $f{$f} || "Unknown ($f)"; if ($b == 0) { return "$f"; } else { return "$f, Shot $b"; } } if ($e) { $e = '; ' . ({ 2 => 'Anti-shock 0', 4 => 'Electronic shutter' }->{$e} || "Unknown ($e)"); } else { $e = ''; } return "Single Shot$e" unless $a; if ($a == 5 and defined $c) { $a = DecodeBits($c, { #6 0 => 'AE', 1 => 'WB', 2 => 'FL', 3 => 'MF', 4 => 'ISO', #forum8906 5 => 'AE Auto', #forum8906 6 => 'Focus', #PH }) . ' Bracketing'; $a =~ s/, /+/g; } else { my %a = ( 1 => 'Continuous Shooting', 2 => 'Exposure Bracketing', 3 => 'White Balance Bracketing', 4 => 'Exposure+WB Bracketing', #6 ); $a = $a{$a} || "Unknown ($a)"; } return "$a, Shot $b$e"; }, }, }, ); 1; # Important: must return true