org.farng.mp3.id3
Class FrameBodyCRM

java.lang.Object
  extended byorg.farng.mp3.AbstractMP3FileItem
      extended byorg.farng.mp3.AbstractMP3FragmentBody
          extended byorg.farng.mp3.id3.AbstractID3v2FrameBody
              extended byorg.farng.mp3.id3.FrameBodyCRM

public class FrameBodyCRM
extends AbstractID3v2FrameBody

4.20. Encrypted meta frame

This frame contains one or more encrypted frames. This enables protection of copyrighted information such as pictures and text, that people might want to pay extra for. Since standardisation of such an encryption scheme is beyond this document, all "CRM" frames begin with a terminated string with a URL containing an email address, or a link to a location where an email adress can be found, that belongs to the organisation responsible for this specific encrypted meta frame.

Questions regarding the encrypted frame should be sent to the indicated email address. If a $00 is found directly after the 'Frame size', the whole frame should be ignored, and preferably be removed. The 'Owner identifier' is then followed by a short content description and explanation as to why it's encrypted. After the 'content/explanation' description, the actual encrypted block follows.

When an ID3v2 decoder encounters a "CRM" frame, it should send the datablock to the 'plugin' with the corresponding 'owner identifier' and expect to receive either a datablock with one or several ID3v2 frames after each other or an error. There may be more than one "CRM" frames in a tag, but only one with the same 'owner identifier'.

Encrypted meta frame "CRM"
Frame size$xx xx xx
Owner identifier<textstring> $00 (00)
Content/explanation<textstring> $00 (00)
Encrypted datablock<binary data>

Version:
$Revision: 1.4 $
Author:
Eric Farng

Constructor Summary
FrameBodyCRM()
          Creates a new FrameBodyCRM object.
FrameBodyCRM(FrameBodyCRM body)
          Creates a new FrameBodyCRM object.
FrameBodyCRM(java.io.RandomAccessFile file)
          Creates a new FrameBodyCRM object.
FrameBodyCRM(java.lang.String owner, java.lang.String description, byte[] data)
          Creates a new FrameBodyCRM object.
 
Method Summary
 java.lang.String getIdentifier()
          ID string that usually corresponds to the class name, but can be displayed to the user.
 java.lang.String getOwner()
           
 void getOwner(java.lang.String description)
           
protected  void setupObjectList()
          Create the order of MP3Object objects that this body expects.
 
Methods inherited from class org.farng.mp3.id3.AbstractID3v2FrameBody
equals, readHeader, writeHeader
 
Methods inherited from class org.farng.mp3.AbstractMP3FragmentBody
appendToObjectList, getBriefDescription, getDescription, getObject, getObjectListIterator, getSize, has6ByteHeader, isSubsetOf, iterator, read, setObject, toString, write
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FrameBodyCRM

public FrameBodyCRM()
Creates a new FrameBodyCRM object.


FrameBodyCRM

public FrameBodyCRM(FrameBodyCRM body)
Creates a new FrameBodyCRM object.


FrameBodyCRM

public FrameBodyCRM(java.lang.String owner,
                    java.lang.String description,
                    byte[] data)
Creates a new FrameBodyCRM object.


FrameBodyCRM

public FrameBodyCRM(java.io.RandomAccessFile file)
             throws java.io.IOException,
                    InvalidTagException
Creates a new FrameBodyCRM object.

Method Detail

getIdentifier

public java.lang.String getIdentifier()
Description copied from class: AbstractMP3FileItem
ID string that usually corresponds to the class name, but can be displayed to the user. It is not indended to identify each individual instance.

Specified by:
getIdentifier in class AbstractMP3FileItem
Returns:
ID string

getOwner

public java.lang.String getOwner()

getOwner

public void getOwner(java.lang.String description)

setupObjectList

protected void setupObjectList()
Description copied from class: AbstractMP3FragmentBody
Create the order of MP3Object objects that this body expects. This method needs to be overwritten.

Specified by:
setupObjectList in class AbstractMP3FragmentBody


Copyright (c) 2004 Eric Farng