Logo Search packages:      
Sourcecode: f-spot version File versions  Download package

override IFDEntry TagLib::IFD::Makernotes::Nikon3MakernoteReader::ParseIFDEntry ( ushort  tag,
ushort  type,
uint  count,
long  base_offset,
uint  offset 
) [inline, protected, virtual]

Try to parse the given IFD entry, used to discover format-specific entries.

tag A System.UInt16 with the tag of the entry.
type A System.UInt16 with the type of the entry.
count A System.UInt32 with the data count of the entry.
base_offset A System.Int64 with the base offset which every offsets in the IFD are relative to.
offset A System.UInt32 with the offset of the entry.
A IFDEntry with the given parameters, or null if none was parsed, after which the normal TIFF parsing is used.

Reimplemented from TagLib::IFD::IFDReader.

Definition at line 95 of file Nikon3MakernoteReader.cs.

References TagLib::IFD::IFDReader::Read().

                  if (tag == (ushort) Nikon3MakerNoteEntryTag.Preview) {
                        // SubIFD with Preview Image
                        // The entry itself is usually a long
                        // TODO: handle JPEGInterchangeFormat and JPEGInterchangeFormatLength correctly

                        // The preview field contains a long with an offset to an IFD
                        // that contains the preview image. We need to be careful
                        // though: this IFD does not contain a valid next-offset
                        // pointer. For this reason, we only read the first IFD and
                        // ignore the rest (which is preview image data, directly
                        // starting after the IFD entries).

                        type = (ushort) IFDEntryType.IFD;

                        IFDStructure ifd_structure = new IFDStructure ();
                        IFDReader reader = CreateSubIFDReader (file, is_bigendian, ifd_structure, base_offset, offset, max_offset);

                        reader.Read (1);
                        return new SubIFDEntry (tag, type, (uint) ifd_structure.Directories.Length, ifd_structure);
                  return base.ParseIFDEntry (tag, type, count, base_offset, offset);

Generated by  Doxygen 1.6.0   Back to index