All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.drew.metadata.exif.makernotes.SamsungType2MakernoteDescriptor Maven / Gradle / Ivy

/*
 * Copyright 2002-2017 Drew Noakes
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 *
 * More information about this project is available at:
 *
 *    https://drewnoakes.com/code/exif/
 *    https://github.com/drewnoakes/metadata-extractor
 */

package com.drew.metadata.exif.makernotes;

import com.drew.lang.annotations.NotNull;
import com.drew.lang.annotations.Nullable;
import com.drew.metadata.TagDescriptor;

import static com.drew.metadata.exif.makernotes.SamsungType2MakernoteDirectory.*;

/**
 * Provides human-readable string representations of tag values stored in a {@link SamsungType2MakernoteDirectory}.
 * 

* Tag reference from: http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Samsung.html * * @author Kevin Mott https://github.com/kwhopper * @author Drew Noakes https://drewnoakes.com */ @SuppressWarnings("WeakerAccess") public class SamsungType2MakernoteDescriptor extends TagDescriptor { public SamsungType2MakernoteDescriptor(@NotNull SamsungType2MakernoteDirectory directory) { super(directory); } @Override @Nullable public String getDescription(int tagType) { switch (tagType) { case TagMakerNoteVersion: return getMakernoteVersionDescription(); case TagDeviceType: return getDeviceTypeDescription(); case TagSamsungModelId: return getSamsungModelIdDescription(); case TagCameraTemperature: return getCameraTemperatureDescription(); case TagFaceDetect: return getFaceDetectDescription(); case TagFaceRecognition: return getFaceRecognitionDescription(); default: return super.getDescription(tagType); } } @Nullable public String getMakernoteVersionDescription() { return getVersionBytesDescription(TagMakerNoteVersion, 2); } @Nullable public String getDeviceTypeDescription() { Integer value = _directory.getInteger(TagDeviceType); if (value == null) return null; switch (value) { case 0x1000: return "Compact Digital Camera"; case 0x2000: return "High-end NX Camera"; case 0x3000: return "HXM Video Camera"; case 0x12000: return "Cell Phone"; case 0x300000: return "SMX Video Camera"; default: return String.format("Unknown (%d)", value); } } @Nullable public String getSamsungModelIdDescription() { Integer value = _directory.getInteger(TagSamsungModelId); if (value == null) return null; switch (value) { case 0x100101c: return "NX10"; /*case 0x1001226: return "HMX-S10BP";*/ case 0x1001226: return "HMX-S15BP"; case 0x1001233: return "HMX-Q10"; /*case 0x1001234: return "HMX-H300";*/ case 0x1001234: return "HMX-H304"; case 0x100130c: return "NX100"; case 0x1001327: return "NX11"; case 0x170104e: return "ES70, ES71 / VLUU ES70, ES71 / SL600"; case 0x1701052: return "ES73 / VLUU ES73 / SL605"; case 0x1701300: return "ES28 / VLUU ES28"; case 0x1701303: return "ES74,ES75,ES78 / VLUU ES75,ES78"; case 0x2001046: return "PL150 / VLUU PL150 / TL210 / PL151"; case 0x2001311: return "PL120,PL121 / VLUU PL120,PL121"; case 0x2001315: return "PL170,PL171 / VLUUPL170,PL171"; case 0x200131e: return "PL210, PL211 / VLUU PL210, PL211"; case 0x2701317: return "PL20,PL21 / VLUU PL20,PL21"; case 0x2a0001b: return "WP10 / VLUU WP10 / AQ100"; case 0x3000000: return "Various Models (0x3000000)"; case 0x3a00018: return "Various Models (0x3a00018)"; case 0x400101f: return "ST1000 / ST1100 / VLUU ST1000 / CL65"; case 0x4001022: return "ST550 / VLUU ST550 / TL225"; case 0x4001025: return "Various Models (0x4001025)"; case 0x400103e: return "VLUU ST5500, ST5500, CL80"; case 0x4001041: return "VLUU ST5000, ST5000, TL240"; case 0x4001043: return "ST70 / VLUU ST70 / ST71"; case 0x400130a: return "Various Models (0x400130a)"; case 0x400130e: return "ST90,ST91 / VLUU ST90,ST91"; case 0x4001313: return "VLUU ST95, ST95"; case 0x4a00015: return "VLUU ST60"; case 0x4a0135b: return "ST30, ST65 / VLUU ST65 / ST67"; case 0x5000000: return "Various Models (0x5000000)"; case 0x5001038: return "Various Models (0x5001038)"; case 0x500103a: return "WB650 / VLUU WB650 / WB660"; case 0x500103c: return "WB600 / VLUU WB600 / WB610"; case 0x500133e: return "WB150 / WB150F / WB152 / WB152F / WB151"; case 0x5a0000f: return "WB5000 / HZ25W"; case 0x6001036: return "EX1"; case 0x700131c: return "VLUU SH100, SH100"; case 0x27127002: return "SMX - C20N"; default: return String.format("Unknown (%d)", value); } } @Nullable private String getCameraTemperatureDescription() { return getFormattedInt(TagCameraTemperature, "%d C"); } @Nullable public String getFaceDetectDescription() { return getIndexedDescription(TagFaceDetect, "Off", "On"); } @Nullable public String getFaceRecognitionDescription() { return getIndexedDescription(TagFaceRecognition, "Off", "On"); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy