de.vdheide.mp3
Class ID3v2Header

java.lang.Object
  extended byde.vdheide.mp3.ID3v2Header

public class ID3v2Header
extends java.lang.Object

This class contains an ID3v2 header


Constructor Summary
ID3v2Header()
          Create a new (empty) header
ID3v2Header(byte version, byte revision, boolean unsynch, boolean extended_header, boolean experimental, int length)
          Build a ID3v2 header
ID3v2Header(java.io.InputStream in)
          Creates an ID3v2 header from an input stream.
 
Method Summary
 byte[] getBytes()
          Convert header to array of bytes
 boolean getExperimental()
           
 int getTagSize()
          Get length of tag
 boolean getUnsynchronization()
           
 boolean hasExtendedHeader()
           
static boolean isHeader(byte[] head)
          Checks if bytes contain a correct header
 void readFromFile(java.io.InputStream in)
          Reads header from stream in Header must start at file position.
 void setExperimental(boolean act)
          Set / unset experimental
 void setExtendedHeader(boolean act)
          Set / unset extended header present
 void setTagSize(int size)
          Set length of tag
 void setUnsynchronization(boolean act)
          Set / unset unsynchronization bit
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ID3v2Header

public ID3v2Header()
Create a new (empty) header


ID3v2Header

public ID3v2Header(byte version,
                   byte revision,
                   boolean unsynch,
                   boolean extended_header,
                   boolean experimental,
                   int length)
Build a ID3v2 header

Parameters:
version - ID3v2 version
revision - ID3v2 revision
unsynch - Use unsynchronization scheme?
extended_header - Use extended header?
experimental - Is experimental?
length - ID3v2 tag length

ID3v2Header

public ID3v2Header(java.io.InputStream in)
            throws ID3v2IllegalVersionException,
                   NoID3v2HeaderException,
                   java.io.IOException
Creates an ID3v2 header from an input stream.

Parameters:
in - Stream to read from
Throws:
ID3v2IllegalVersionException - If tag has a revision higher than ID3v2.VERSION.ID3v2.REVISION
NoID3v2HeaderException - If file does not contain an ID3v2 header
java.io.IOException - If an I/O error occurs
Method Detail

readFromFile

public void readFromFile(java.io.InputStream in)
                  throws ID3v2IllegalVersionException,
                         NoID3v2HeaderException,
                         java.io.IOException
Reads header from stream in Header must start at file position.

Parameters:
in - Stream to read from
Throws:
ID3v2IllegalVersionException - If tag has a revision higher than ID3v2.VERSION.ID3v2.REVISION
NoID3v2HeaderException - If file does not contain an ID3v2 header
java.io.IOException - If an I/O error occurs

isHeader

public static boolean isHeader(byte[] head)
Checks if bytes contain a correct header

Parameters:
head - Array of bytes to be checked
Returns:
true if header is correct

getUnsynchronization

public boolean getUnsynchronization()
Returns:
true if unsynchronization bit is set

setUnsynchronization

public void setUnsynchronization(boolean act)
Set / unset unsynchronization bit

Parameters:
act - True: Set unsynchronization bit

hasExtendedHeader

public boolean hasExtendedHeader()
Returns:
true if extended header is present

setExtendedHeader

public void setExtendedHeader(boolean act)
Set / unset extended header present

Parameters:
act - True: Set extended header present bit

getExperimental

public boolean getExperimental()
Returns:
true if the tag should be considered experimental

setExperimental

public void setExperimental(boolean act)
Set / unset experimental

Parameters:
act - True: Set experimental bit

getTagSize

public int getTagSize()
Get length of tag

Returns:
Length of tag without header (complete length - 10)

setTagSize

public void setTagSize(int size)
Set length of tag

Parameters:
size - Size to set

getBytes

public byte[] getBytes()
Convert header to array of bytes

Returns:
Header as bytes, ready to write