C# Class TagLib.IFD.IFDRenderer

This class contains all the IFD rendering code.
Mostra file Open project: rubenv/tripod Class Usage Examples

Public Methods

Method Description
IFDRenderer ( bool is_bigendian, IFDStructure structure, uint ifd_offset ) : System

Constructor. Will render the given IFD structure.

Render ( ) : ByteVector

Renders the current instance to a ByteVector.

Protected Methods

Method Description
CreateSubRenderer ( bool is_bigendian, IFDStructure structure, uint ifd_offset ) : IFDRenderer

Constructs a new IFD Renderer used to render a SubIFDEntry.

RenderEntry ( ByteVector entry_data, ushort tag, ushort type, uint count, uint offset ) : void

Adds the data of a single entry to entry_data.

RenderEntryData ( IFDEntry entry, ByteVector entry_data, ByteVector offset_data, uint data_offset ) : void

Renders a complete entry together with the data. The entry itself is stored in entry_data and the data of the entry is stored in offset_data if it cannot be stored in the offset. This method is called for every of this IFD and can be overwritten in subclasses to provide special behavior.

Private Methods

Method Description
RenderIFD ( IFDDirectory directory, uint ifd_offset, bool last ) : ByteVector

Renders the IFD to an ByteVector where the offset of the IFD itself is ifd_offset and all offsets contained in the IFD are adjusted accroding it.

Method Details

CreateSubRenderer() protected method

Constructs a new IFD Renderer used to render a SubIFDEntry.
protected CreateSubRenderer ( bool is_bigendian, IFDStructure structure, uint ifd_offset ) : IFDRenderer
is_bigendian bool /// If IFD should be encoded in BigEndian or not. ///
structure IFDStructure /// The IFD structure that will be rendered. ///
ifd_offset uint /// A value with the offset of the /// current IFD. All offsets inside the IFD must be adjusted /// according to this given offset. ///
return IFDRenderer

IFDRenderer() public method

Constructor. Will render the given IFD structure.
public IFDRenderer ( bool is_bigendian, IFDStructure structure, uint ifd_offset ) : System
is_bigendian bool /// If IFD should be encoded in BigEndian or not. ///
structure IFDStructure /// The IFD structure that will be rendered. ///
ifd_offset uint /// A value with the offset of the /// current IFD. All offsets inside the IFD must be adjusted /// according to this given offset. ///
return System

Render() public method

Renders the current instance to a ByteVector.
public Render ( ) : ByteVector
return ByteVector

RenderEntry() protected method

Adds the data of a single entry to entry_data.
protected RenderEntry ( ByteVector entry_data, ushort tag, ushort type, uint count, uint offset ) : void
entry_data ByteVector /// A to add the entry to. ///
tag ushort /// A with the tag of the entry. ///
type ushort /// A with the type of the entry. ///
count uint /// A with the data count of the entry, ///
offset uint /// A with the offset field of the entry. ///
return void

RenderEntryData() protected method

Renders a complete entry together with the data. The entry itself is stored in entry_data and the data of the entry is stored in offset_data if it cannot be stored in the offset. This method is called for every of this IFD and can be overwritten in subclasses to provide special behavior.
protected RenderEntryData ( IFDEntry entry, ByteVector entry_data, ByteVector offset_data, uint data_offset ) : void
entry IFDEntry /// A with the entry to render. ///
entry_data ByteVector /// A to add the entry to. ///
offset_data ByteVector /// A to add the entry data to if it cannot be /// stored in the offset field. ///
data_offset uint /// A with the offset, were the data of the /// entries starts. It is needed to adjust the offsets of the entries /// itself. ///
return void