#------------------------------------------------------------------------------
# File:         ExifTool_config  -->  ~/.ExifTool_config
#
# Description:  Sample user configuration file for Image::ExifTool
#
# Notes:        This example file shows how to define your own shortcuts and
#               add new EXIF, IPTC, XMP and PNG tags.  Note that unknown tags
#               are extracted even if they aren't defined, but tags must be
#               defined to be written.  Also note that it is possible to
#               override an existing tag definition with a new tag.
#
#               As an example, the following 9 new tags are defined below:
#
#                   1.  EXIF:NewEXIFTag
#                   2.  IPTC:NewIPTCTag
#                   3.  XMP-xxx:NewXMPxxxTag1
#                   4.  XMP-xxx:NewXMPxxxTag2
#                   5.  XMP-xxx:NewXMPxxxTag3
#                   6.  XMP-xmp:NewXMPxmpTag
#                   7.  PNG:NewPngTag1
#                   8.  PNG:NewPngTag2
#                   9.  PNG:NewPngTag3
#
#               To activate this file, copy it to ".ExifTool_config" in your
#               home directory or in a directory specified by the EXIFTOOL_HOME
#               environment variable.  This causes ExifTool to automatically
#               load the file when run.
#               
#               For detailed information on the definition of tag tables and
#               tag information hashes, see lib/Image/ExifTool/README.
#------------------------------------------------------------------------------

# Shortcut tags are used when extracting information to simplify
# commonly used commands.  They can be used to represent groups
# of tags, or to provide an alias for a tag name.
%Image::ExifTool::Shortcuts::UserDefined = (
    MyShortcut => ['createdate','exposuretime','aperture'],
    MyAlias => 'FocalLengthIn35mmFormat',
);

# This is a basic example of the definition for a new XMP namespace.
# After defining this table (which may have any name), a corresponding
# "SubDirectory" entry must be added to the Main XMP table through
# the %Image::ExifTool::UserDefined definition below.
%Image::ExifTool::UserDefined::xxx = (
    GROUPS => { 0 => 'XMP', 1 => 'XMP-xxx', 2 => 'Image' },
    NAMESPACE => [ 'xxx' => 'http://ns.myname.com/xxx/1.0/' ],
    WRITABLE => 'string',
    NewXMPxxxTag1 => { },
    NewXMPxxxTag2 => { Groups => { 2 => 'Author' } },
    NewXMPxxxTag3 => { List => 'Bag' },
);

# The %Image::ExifTool::UserDefined hash defines new tags to be
# added to existing tables.
%Image::ExifTool::UserDefined = (
    # All EXIF tags are added to the Main table, and WriteGroup is used to
    # specify where the tag is written (default is ExifIFD if not specified)
    'Image::ExifTool::Exif::Main' => {
        0xd000 => {
            Name => 'NewEXIFTag',
            Writable => 'int16u',
            WriteGroup => 'IFD0',
        },
    },
    # IPTC tags are added to a specific record type (ie. application record):
    'Image::ExifTool::IPTC::ApplicationRecord' => {
        300 => {
            Name => 'NewIPTCTag',
            Format => 'string[0,16]',
        },
    },
    # new XMP namespaces must be added to the Main XMP table
    'Image::ExifTool::XMP::Main' => {
        xxx => {
            SubDirectory => {
                TagTable => 'Image::ExifTool::UserDefined::xxx',
            },
        },
    },
    # XMP tags may also be added to existing namespaces
    'Image::ExifTool::XMP::xmp' => {
        NewXMPxmpTag => { Groups => { 2 => 'Author' } },
    },
    # new PNG tags are added to the PNG::TextualData table
    'Image::ExifTool::PNG::TextualData' => {
        NewPngTag1 => { },
        NewPngTag2 => { },
        NewPngTag3 => { },
    },
);

#------------------------------------------------------------------------------
