~ubuntu-branches/ubuntu/precise/exiv2/precise

« back to all changes in this revision

Viewing changes to src/minoltamn.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Anthony Mercatante
  • Date: 2006-12-07 18:40:10 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20061207184010-0ouu8v0dr8nznob9
Tags: 0.12-0ubuntu1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
 */
21
21
/*
22
22
  File:      minoltamn.cpp
23
 
  Version:   $Rev: 808 $
 
23
  Version:   $Rev: 986 $
24
24
  Author(s): Gilles Caulier (gc) <caulier.gilles@kdemail.net>
25
25
             Andreas Huggel (ahu) <ahuggel@gmx.net>
26
26
  History:   06-May-06, gc: submitted
29
29
 
30
30
// *****************************************************************************
31
31
#include "rcsid.hpp"
32
 
EXIV2_RCSID("@(#) $Id: minoltamn.cpp 808 2006-06-01 15:09:39Z ahuggel $");
 
32
EXIV2_RCSID("@(#) $Id: minoltamn.cpp 986 2006-11-21 15:43:11Z ahuggel $")
33
33
 
34
34
// *****************************************************************************
35
35
// included header files
53
53
 
54
54
    //! Lookup table to translate Minolta color mode values to readable labels
55
55
    extern const TagDetails minoltaColorMode[] = {
56
 
        { 0,  "Natural Color" },
57
 
        { 1,  "Black & White" },
58
 
        { 2,  "Vivid Color"   },
59
 
        { 3,  "Solarization"  },
60
 
        { 4,  "AdobeRGB"      },
61
 
        { 13, "Natural sRGB"  },
62
 
        { 14, "Natural+ sRGB" }
 
56
        { 0,  "Natural Color"  },
 
57
        { 1,  "Black & White"  },
 
58
        { 2,  "Vivid Color"    },
 
59
        { 3,  "Solarization"   },
 
60
        { 4,  "AdobeRGB"       },
 
61
        { 5,  "Sepia"          },
 
62
        { 9,  "Natural"        },
 
63
        { 12, "Portrait"       },
 
64
        { 13, "Natural sRGB"   },
 
65
        { 14, "Natural+ sRGB"  },
 
66
        { 15, "Landscape"      },
 
67
        { 16, "Evening"        },       
 
68
        { 17, "Night Scene"    },    
 
69
        { 18, "Night Portrait" }    
63
70
    };
64
71
 
65
72
    //! Lookup table to translate Minolta image quality values to readable labels
66
73
    extern const TagDetails minoltaImageQuality[] = {
67
 
        { 0, "Raw"       },
68
 
        { 1, "Superfine" },
69
 
        { 2, "Fine"      },
70
 
        { 3, "Standard"  },
71
 
        { 4, "Economy"   },
72
 
        { 5, "Extrafine" }
 
74
        { 0, "Raw"        },
 
75
        { 1, "Super Fine" },
 
76
        { 2, "Fine"       },
 
77
        { 3, "Standard"   },
 
78
        { 4, "Economy"    },
 
79
        { 5, "Extra Fine" }
73
80
    };
74
81
 
75
82
    //! Lookup table to translate Minolta zone matching values
86
93
    };
87
94
 
88
95
    //! Lookup table to translate Minolta Lens id values to readable labels
 
96
    /* NOTE: duplicate tags value are : 
 
97
       0/25520, 4/25920, 13/25610, 19/25910, 22/26050/26070,
 
98
       25500/25501/26130, 25540/25541/25850, 25580/25581, 2564025641,
 
99
       25720/25721, 25790/25791, 25960/25961, 25980/25981, 26150/26151
 
100
    */
89
101
    extern const TagDetails minoltaLensID[] = {
 
102
        { 0,     "AF28-85mm F3.5-4.5"                                                         },
90
103
        { 1,     "AF80-200mm F2.8G"                                                           },
91
104
        { 2,     "AF28-70mm F2.8G"                                                            },
 
105
        { 3,     "AF28-80mm F4-5.6"                                                           },
 
106
        { 4,     "AF85mm F1.4G"                                                               },
 
107
        { 5,     "AF35-70mm F3.5-4.5"                                                         },
92
108
        { 6,     "AF24-85mm F3.5-4.5"                                                         },
93
 
        { 7,     "AF100-400mm F4.5-6.7(D)"                                                    },
 
109
        { 7,     "AF100-300mm F4.5-5.6(D) APO or AF100-400mm F4.5-6.7(D)"                     },
94
110
        { 8,     "AF70-210mm F4.5-5.6"                                                        },
95
 
        { 11,    "AF300mm F4G"                                                                },
96
 
        { 12,    "AF100mm F2.8 Soft"                                                          },
97
 
        { 15,    "AF400mm F4.5G"                                                              },
 
111
        { 9,     "AF50mm F3.5 Macro"                                                          },
 
112
        { 10,    "AF28-105mm F3.5-4.5"                                                        },
 
113
        { 11,    "AF300mm F4G APO"                                                            },
 
114
        { 12,    "AF100mm F2.8 Soft Focus"                                                    },
 
115
        { 13,    "AF75-300mm F4.5-5.6"                                                        },
 
116
        { 14,    "AF100-400mm F4.5-6.7 APO"                                                   },
 
117
        { 15,    "AF400mm F4.5G APO"                                                          },
98
118
        { 16,    "AF17-35mm F3.5G"                                                            },
99
 
        { 19,    "AF35mm/1.4"                                                                 },
 
119
        { 17,    "AF20-35mm F3.5-4.5"                                                         },
 
120
        { 18,    "AF28-80mm F3.5-5.6"                                                         },
 
121
        { 19,    "AF35mm F1.4G"                                                               },
100
122
        { 20,    "STF135mm F2.8[T4.5]"                                                        },
101
 
        { 23,    "AF200mm F4G Macro"                                                          },
 
123
        { 22,    "AF35-80mm F4-5.6"                                                           },
 
124
        { 23,    "AF200mm F4G APO Macro"                                                      },
102
125
        { 24,    "AF24-105mm F3.5-4.5(D) or SIGMA 18-50mm F2.8 or Sigma DC 18-125mm F4-5,6 D" },
103
 
        { 25,    "AF100-300mm F4.5-5.6(D)"                                                    },
104
 
        { 27,    "AF85mm F1.4G"                                                               },
 
126
        { 25,    "AF100-300mm F4.5-5.6 APO(D)"                                                },
 
127
        { 27,    "AF85mm F1.4G(D)"                                                            },
105
128
        { 28,    "AF100mm F2.8 Macro(D)"                                                      },
106
129
        { 29,    "AF75-300mm F4.5-5.6(D)"                                                     },
107
130
        { 30,    "AF28-80mm F3.5-5.6(D)"                                                      },
108
131
        { 31,    "AF50mm F2.8 Macro(D) or AF50mm F3.5 Macro"                                  },
109
 
        { 32,    "AF100-400mm F4.5-6.7(D) x1.5"                                               },
110
 
        { 33,    "AF70-200mm F2.8G SSM"                                                       },
 
132
        { 32,    "AF100-400mm F4.5-6.7(D) x1.5 or AF300mm F2.8G APO(D) SSM"                   },
 
133
        { 33,    "AF70-200mm F2.8G APO(D) SSM"                                                },
111
134
        { 35,    "AF85mm F1.4G(D) Limited"                                                    },
 
135
        { 36,    "AF28-100mm F3.5-5.6(D)"                                                     },
112
136
        { 38,    "AF17-35mm F2.8-4(D)"                                                        },
113
137
        { 39,    "AF28-75mm F2.8(D)"                                                          },
114
138
        { 40,    "AFDT18-70mm F3.5-5.6(D)"                                                    },
115
 
        { 41,    "TAMRON Di II LD 11-18mm F4-5.6"                                             },
 
139
        { 41,    "AFDT11-18mm F4.5-5.6(D)"                                                    },
 
140
        { 42,    "AFDT18-200mm F3.5-6.3(D)"                                                   },
116
141
        { 128,   "TAMRON 18-200, 28-300 or 80-300mm F3.5-6.3"                                 },
 
142
        { 25500, "AF50mm F1.7"                                                                },
117
143
        { 25501, "AF50mm F1.7"                                                                },
 
144
        { 25510, "AF35-70mm F1.4"                                                             },
 
145
        { 25520, "AF28-85mm F3.5-4.5"                                                         },
118
146
        { 25521, "TOKINA 19-35mm F3.5-4.5 or TOKINA 28-70mm F2.8 AT-X"                        },
 
147
        { 25530, "AF28-135mm F4-4.5"                                                          },
 
148
        { 25540, "AF35-105mm F3.5-4.5"                                                        },
119
149
        { 25541, "AF35-105mm F3.5-4.5"                                                        },
 
150
        { 25550, "AF70-210mm F4"                                                              },
120
151
        { 25551, "AF70-210mm F4 Macro or SIGMA 70-210mm F4-5.6 APO"                           },
 
152
        { 25560, "AF135mm F2.8"                                                               },
 
153
        { 25570, "AF28mm F2.8"                                                                },
 
154
        { 25580, "AF24-50mm F4"                                                               },
121
155
        { 25581, "AF24-50mm F4"                                                               },
 
156
        { 25600, "AF100-200mm F4.5"                                                           },
 
157
        { 25610, "AF75-300mm F4.5-5.6"                                                        },
122
158
        { 25611, "SIGMA 70-300mm F4-5.6 or SIGMA 300mm F4 APO Macro"                          },
 
159
        { 25620, "AF50mm F1.4"                                                                },
123
160
        { 25621, "AF50mm F1.4 NEW"                                                            },
 
161
        { 25630, "AF300mm F2.8G APO"                                                          },
124
162
        { 25631, "AF300mm F2.8G"                                                              },
 
163
        { 25640, "AF50mm F2.8 Macro"                                                          },
125
164
        { 25641, "AF50mm F2.8 Macro"                                                          },
126
 
        { 25661, "AF24mm F2.8"                                                                },
 
165
        { 25650, "AF600mm F4 APO"                                                             },
 
166
        { 25660, "AF24mm F2.8"                                                                },
 
167
        { 25661, "AF24mm F2.8 or SIGMA 17-35mm F2.8-4.0 EX-D"                                 },
 
168
        { 25720, "AF500mm F8 Reflex"                                                          },
127
169
        { 25721, "AF500mm F8 Reflex"                                                          },
 
170
        { 25780, "AF16mm F2.8 Fisheye"                                                        },
128
171
        { 25781, "AF16mm F2.8 Fisheye or SIGMA 8mm F4 Fisheye"                                },
 
172
        { 25790, "AF20mm F2.8"                                                                },
129
173
        { 25791, "AF20mm F2.8"                                                                },
 
174
        { 25810, "AF100mm F2.8 Macro"                                                         },
130
175
        { 25811, "AF100mm F2.8 Macro(D) or TAMRON 90mm F2.8 Macro or SIGMA 180mm F5.6 Macro"  },
 
176
        { 25850, "AF35-105mm F3.5-4.5"                                                        },
131
177
        { 25858, "TAMRON 24-135mm F3.5-5.6"                                                   },
 
178
        { 25880, "AF70-210mm F3.5-4.5"                                                        },
 
179
        { 25890, "AF80-200mm F2.8 APO"                                                        },
132
180
        { 25891, "TOKINA 80-200mm F2.8"                                                       },
 
181
        { 25910, "AF35mm F1.4G"                                                               },
 
182
        { 25920, "AF85mm F1.4G"                                                               },
133
183
        { 25921, "AF85mm F1.4G(D)"                                                            },
 
184
        { 25930, "AF200mm F2.8 APO"                                                           },
134
185
        { 25931, "AF200mm F2.8G"                                                              },
 
186
        { 25940, "AF 3X-1X F1.7-2.8 Macro"                                                    },
 
187
        { 25960, "AF28mm F2"                                                                  },
135
188
        { 25961, "AF28mm F2"                                                                  },
 
189
        { 25970, "AF35mm F2"                                                                  },
 
190
        { 25980, "AF100mm F2"                                                                 },
136
191
        { 25981, "AF100mm F2"                                                                 },
 
192
        { 26040, "AF80-200mm F4.5-5.6"                                                        },
 
193
        { 26050, "AF35-80mm F4-5.6"                                                           },
 
194
        { 26060, "AF100-300mm F4.5-5.6"                                                       },
137
195
        { 26061, "AF100-300mm F4.5-5.6(D) or SIGMA 105mm F2.8 Macro EX-DG"                    },
 
196
        { 26070, "AF35-80mm F4-5.6"                                                           },
 
197
        { 26080, "AF300mm F2.8G APO High Speed"                                               },
138
198
        { 26081, "AF300mm F2.8G"                                                              },
 
199
        { 26090, "AF600mm F4G APO High Speed"                                                 },
 
200
        { 26120, "AF200mm F2.8G APO High Speed"                                               },
139
201
        { 26121, "AF200mm F2.8G(D)"                                                           },
 
202
        { 26130, "AF50mm F1.7"                                                                },
140
203
        { 26131, "AF50mm F1.7"                                                                },
 
204
        { 26150, "AF28-105mm F3.5-4.5 Xi"                                                     },
 
205
        { 26151, "AF28-105mm F3.5-4.5 Xi"                                                     },
 
206
        { 26160, "AF35-200mm F4.5-5.6 Xi"                                                     },
 
207
        { 26180, "AF28-80mm F4-5.6 Xi"                                                        },
 
208
        { 26190, "AF80-200mm F4.5-5.6 Xi"                                                     },
 
209
        { 26210, "AF100-300mm F4.5-5.6 Xi"                                                    },
 
210
        { 26240, "AF35-80mm F4-5.6 Power"                                                     },
141
211
        { 26241, "AF35-80mm F4-5.6"                                                           },
142
212
        { 45741, "AF200mm F2.8G x2 or TOKINA 300mm F2.8 x2"                                   }
143
213
    };
170
240
        TagInfo(0xffff, "(UnknownMinoltaMakerNoteTag)", "(UnknownMinoltaMakerNoteTag)", "Unknown MinoltaMakerNote tag", minoltaIfdId, makerTags, invalidTypeId, printValue)
171
241
    };
172
242
 
 
243
    const TagInfo* MinoltaMakerNote::tagList()
 
244
    {
 
245
        return tagInfo_;
 
246
    }
 
247
 
173
248
    // -- Standard Minolta camera settings ---------------------------------------------------------------
174
249
 
175
250
    //! Lookup table to translate Minolta Std camera settings exposure mode values to readable labels
215
290
    //! Lookup table to translate Minolta Std camera settings image quality values to readable labels
216
291
    extern const TagDetails minoltaImageQualityStd[] = {
217
292
        { 0, "Raw"        },
218
 
        { 1, "Superfine"  },
 
293
        { 1, "Super Fine"  },
219
294
        { 2, "Fine"       },
220
295
        { 3, "Standard"   },
221
296
        { 4, "Economy"    },
297
372
        { 0, "None"           },
298
373
        { 1, "Portrait"       },
299
374
        { 2, "Text"           },
300
 
        { 3, "Night portrait" },
 
375
        { 3, "Night Portrait" },
301
376
        { 4, "Sunset"         },
302
 
        { 5, "Sports action"  }
 
377
        { 5, "Sports Action"  }
303
378
    };
304
379
 
305
380
    //! Lookup table to translate Minolta Std camera settings ISO settings values to readable labels
314
389
 
315
390
    //! Lookup table to translate Minolta Std camera settings model values to readable labels
316
391
    extern const TagDetails minoltaModelStd[] = {
317
 
        { 0, "DiMAGE 7 or X31"   },
318
 
        { 1, "DiMAGE 5"          },
319
 
        { 2, "DiMAGE S304"       },
320
 
        { 3, "DiMAGE S404"       },
321
 
        { 4, "DiMAGE 7i"         },
322
 
        { 5, "DiMAGE 7Hi"        },
323
 
        { 6, "DiMAGE A1"         },
324
 
        { 7, "DiMAGE A2 or S414" }
 
392
        { 0, "DiMAGE 7, X1, X21, or X31" },
 
393
        { 1, "DiMAGE 5"                  },
 
394
        { 2, "DiMAGE S304"               },
 
395
        { 3, "DiMAGE S404"               },
 
396
        { 4, "DiMAGE 7i"                 },
 
397
        { 5, "DiMAGE 7Hi"                },
 
398
        { 6, "DiMAGE A1"                 },
 
399
        { 7, "DiMAGE A2 or S414"         }
325
400
    };
326
401
 
327
402
    //! Lookup table to translate Minolta Std camera settings interval mode values to readable labels
399
474
    extern const TagDetails minoltaFlashMeteringStd[] = {
400
475
        { 0, "ADI (Advanced Distance Integration)" },
401
476
        { 1, "Pre-flash TTl"                       },
402
 
        { 2, "Manual flash control"                }
 
477
        { 2, "Manual Flash Control"                }
403
478
    };
404
479
 
405
480
    std::ostream& MinoltaMakerNote::printMinoltaExposureSpeedStd(std::ostream& os, const Value& value)
531
606
        TagInfo(0x003F, "FlashMetering", "Flash Metering", "Flash metering", minoltaCsNewIfdId, makerTags, unsignedLong, EXV_PRINT_TAG(minoltaFlashMeteringStd)),
532
607
 
533
608
        // End of list marker
534
 
        TagInfo(0xffff, "(UnknownMinoltaCsTag)", "(UnknownMinoltaCsTag)", "Unknown Minolta Camera Settings tag", minoltaCsNewIfdId, makerTags, invalidTypeId, printValue)
 
609
        TagInfo(0xffff, "(UnknownMinoltaCsStdTag)", "(UnknownMinoltaCsStdTag)", "Unknown Minolta Camera Settings tag", minoltaCsNewIfdId, makerTags, invalidTypeId, printValue)
535
610
    };
536
611
 
 
612
    const TagInfo* MinoltaMakerNote::tagListCsStd()
 
613
    {
 
614
        return tagInfoCsStd_;
 
615
    }
 
616
 
537
617
    // -- Minolta Dynax 7D camera settings ---------------------------------------------------------------
538
618
 
539
619
    //! Lookup table to translate Minolta Dynax 7D camera settings exposure mode values to readable labels
544
624
        { 3, "Manual"            },
545
625
        { 4, "Auto"              },
546
626
        { 5, "Program-shift A"   },
547
 
        { 5, "Program-shift S"   }
 
627
        { 6, "Program-shift S"   }
548
628
    };
549
629
 
550
630
    //! Lookup table to translate Minolta Dynax 7D camera settings image size values to readable labels
585
665
 
586
666
    //! Lookup table to translate Minolta Dynax 7D camera settings AF points values to readable labels
587
667
    extern const TagDetails minoltaAFPoints7D[] = {
588
 
        { 0, "Center"        },
589
 
        { 1, "Top"           },
590
 
        { 2, "Top-Right"     },
591
 
        { 3, "Right"         },
592
 
        { 4, "Bottom-Right " },
593
 
        { 5, "Bottom"        },
594
 
        { 6, "Bottom-Left"   },
595
 
        { 7, "Left"          },
596
 
        { 8, "Top-Left"      }
 
668
        { 1,   "Center"        },
 
669
        { 2,   "Top"           },
 
670
        { 4,   "Top-Right"     },
 
671
        { 8,   "Right"         },
 
672
        { 16,  "Bottom-Right " },
 
673
        { 32,  "Bottom"        },
 
674
        { 64,  "Bottom-Left"   },
 
675
        { 128, "Left"          },
 
676
        { 256, "Top-Left"      }
597
677
    };
598
678
 
599
679
    //! Lookup table to translate Minolta Dynax 7D camera settings white balance values to readable labels
604
684
 
605
685
    //! Lookup table to translate Minolta Dynax 7D camera settings ISO settings values to readable labels
606
686
    extern const TagDetails minoltaISOSetting7D[] = {
 
687
        { 0, "Auto"  },
607
688
        { 1, "100"  },
608
689
        { 3, "200"  },
609
690
        { 4, "400"  },
679
760
        TagInfo(0xffff, "(UnknownMinoltaCs7DTag)", "(UnknownMinoltaCs7DTag)", "Unknown Minolta Camera Settings 7D tag", minoltaCs7DIfdId, makerTags, invalidTypeId, printValue)
680
761
    };
681
762
 
 
763
    const TagInfo* MinoltaMakerNote::tagListCs7D()
 
764
    {
 
765
        return tagInfoCs7D_;
 
766
    }
 
767
 
682
768
    // -- Minolta Dynax 5D camera settings ---------------------------------------------------------------
683
769
 
684
 
    //! Lookup table to translate Minolta Dynax 5D camera settings image size values to readable labels
685
 
    extern const TagDetails minoltaImageSize5D[] = {
686
 
        { 0, "Large"  },
687
 
        { 1, "Medium" },
688
 
        { 2, "Small"  }
689
 
    };
690
 
 
691
770
    //! Lookup table to translate Minolta Dynax 5D camera settings exposure mode values to readable labels
692
771
    extern const TagDetails minoltaExposureMode5D[] = {
693
772
        { 0,    "Program"           },
698
777
        { 4131, "Connected Copying" }
699
778
    };
700
779
 
 
780
    //! Lookup table to translate Minolta Dynax 5D camera settings image size values to readable labels
 
781
    extern const TagDetails minoltaImageSize5D[] = {
 
782
        { 0, "Large"  },
 
783
        { 1, "Medium" },
 
784
        { 2, "Small"  }
 
785
    };
 
786
 
701
787
    //! Lookup table to translate Minolta Dynax 5D camera settings image quality values to readable labels
702
788
    extern const TagDetails minoltaImageQuality5D[] = {
703
789
        { 0,  "Raw"      },
863
949
        TagInfo(0xffff, "(UnknownMinoltaCs5DTag)", "(UnknownMinoltaCs5DTag)", "Unknown Minolta Camera Settings 5D tag", minoltaCs5DIfdId, makerTags, invalidTypeId, printValue)
864
950
    };
865
951
 
 
952
    const TagInfo* MinoltaMakerNote::tagListCs5D()
 
953
    {
 
954
        return tagInfoCs5D_;
 
955
    }
 
956
 
866
957
    // TODO : Add camera settings tags info "New2"...
867
958
 
868
959
    //! @cond IGNORE
1078
1169
        return headerSize() + ifd.size() + ifd.dataSize();
1079
1170
    } // MinoltaMakerNote::size
1080
1171
 
1081
 
    long MinoltaMakerNote::assemble(Entry& e, IfdId ifdId, uint16_t tag, ByteOrder byteOrder) const
 
1172
    long MinoltaMakerNote::assemble(Entry&    e,
 
1173
                                    IfdId     ifdId, 
 
1174
                                    uint16_t  tag, 
 
1175
                                    ByteOrder /*byteOrder*/) const
1082
1176
    {
1083
1177
        DataBuf buf(1024);
1084
1178
        memset(buf.pData_, 0x0, 1024);
1103
1197
        return len;
1104
1198
    } // MinoltaMakerNote::assemble
1105
1199
 
1106
 
    long MinoltaMakerNote::assembleStd(Entry& e, IfdId ifdId, uint32_t tag, ByteOrder byteOrder) const
 
1200
    long MinoltaMakerNote::assembleStd(Entry&    e,
 
1201
                                       IfdId     ifdId,
 
1202
                                       uint32_t  tag,
 
1203
                                       ByteOrder /*byteOrder*/) const
1107
1204
    {
1108
1205
        DataBuf buf(1024);
1109
1206
        memset(buf.pData_, 0x0, 1024);