org.jaudiotagger.tag.id3.framebody
Class FrameBodyIPLS

java.lang.Object
  extended by org.jaudiotagger.tag.id3.AbstractTagItem
      extended by org.jaudiotagger.tag.id3.AbstractTagFrameBody
          extended by org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody
              extended by org.jaudiotagger.tag.id3.framebody.FrameBodyIPLS
All Implemented Interfaces:
ID3v23FrameBody

public class FrameBodyIPLS
extends AbstractID3v2FrameBody
implements ID3v23FrameBody

Involved People List ID3v22/v23 Only

Since there might be a lot of people contributing to an audio file in various ways, such as musicians and technicians, the 'Text information frames' are often insufficient to list everyone involved in a project. The 'Involved people list' is a frame containing the names of those involved, and how they were involved. The body simply contains a terminated string with the involvement directly followed by a terminated string with the involvee followed by a new involvement and so on. There may only be one "IPLS" frame in each tag.

Text encoding $xx People list strings

For more details, please refer to the ID3 specifications:

Version:
$Id: FrameBodyIPLS.java,v 1.20 2009/11/12 15:42:56 paultaylor Exp $
Author:
: Paul Taylor, : Eric Farng

Field Summary
 
Fields inherited from class org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody
TYPE_BODY
 
Fields inherited from class org.jaudiotagger.tag.id3.AbstractTagFrameBody
objectList
 
Fields inherited from class org.jaudiotagger.tag.id3.AbstractTagItem
logger
 
Constructor Summary
FrameBodyIPLS()
          Creates a new FrameBodyIPLS datatype.
FrameBodyIPLS(java.nio.ByteBuffer byteBuffer, int frameSize)
           
FrameBodyIPLS(FrameBodyIPLS body)
           
FrameBodyIPLS(FrameBodyTIPL body)
          Convert from V4 to V3 Frame
 
Method Summary
 java.lang.String getIdentifier()
          The ID3v23 frame identifier
 int getNumberOfPairs()
           
 int getNumberOfValues()
           
 java.lang.String getValueAtIndex(int index)
          Get value at index
protected  void setupObjectList()
          Consists of a text encoding , and then a series of null terminated Strings, there should be an even number of Strings as they are paired as involvement/involvee
 void write(java.io.ByteArrayOutputStream tagBuffer)
          Because have a text encoding we need to check the data values do not contain characters that cannot be encoded in current encoding before we write data.
 
Methods inherited from class org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody
createStructure, equals, getSize, read, setSize, setSize
 
Methods inherited from class org.jaudiotagger.tag.id3.AbstractTagFrameBody
getBriefDescription, getHeader, getLongDescription, getObject, getObjectValue, getTextEncoding, isSubsetOf, iterator, setHeader, setObjectValue, setTextEncoding, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FrameBodyIPLS

public FrameBodyIPLS()
Creates a new FrameBodyIPLS datatype.


FrameBodyIPLS

public FrameBodyIPLS(java.nio.ByteBuffer byteBuffer,
                     int frameSize)
              throws InvalidTagException
Throws:
InvalidTagException

FrameBodyIPLS

public FrameBodyIPLS(FrameBodyIPLS body)

FrameBodyIPLS

public FrameBodyIPLS(FrameBodyTIPL body)
Convert from V4 to V3 Frame

Parameters:
body -
Method Detail

getIdentifier

public java.lang.String getIdentifier()
The ID3v23 frame identifier

Specified by:
getIdentifier in class AbstractID3v2FrameBody
Returns:
the ID3v23 frame identifier for this frame type

write

public void write(java.io.ByteArrayOutputStream tagBuffer)
Because have a text encoding we need to check the data values do not contain characters that cannot be encoded in current encoding before we write data. If they do change the encoding.

Overrides:
write in class AbstractID3v2FrameBody

setupObjectList

protected void setupObjectList()
Consists of a text encoding , and then a series of null terminated Strings, there should be an even number of Strings as they are paired as involvement/involvee

Specified by:
setupObjectList in class AbstractTagFrameBody

getValueAtIndex

public java.lang.String getValueAtIndex(int index)
Get value at index

Parameters:
index -
Returns:
value at index

getNumberOfValues

public int getNumberOfValues()
Returns:
number of text values, shopuld be an even number because should make up pairs of values

getNumberOfPairs

public int getNumberOfPairs()
Returns:
number of text pairs