FrameBodyCRMpublic class FrameBodyCRM extends AbstractID3v2FrameBody implements ID3v22FrameBodyEncrypted 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 [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 $00 (00)
Content/explanation $00 (00)
Encrypted datablock |
Constructors Summary |
---|
public FrameBodyCRM()Creates a new FrameBodyCRM datatype.
// this.setObject(ObjectTypes.OBJ_OWNER, "");
// this.setObject(ObjectTypes.OBJ_DESCRIPTION, "");
// this.setObject("Encrypted datablock", new byte[0]);
| public FrameBodyCRM(FrameBodyCRM body)
super(body);
| public FrameBodyCRM(String owner, String description, byte[] data)Creates a new FrameBodyCRM datatype.
this.setObjectValue(DataTypes.OBJ_OWNER, owner);
this.setObjectValue(DataTypes.OBJ_DESCRIPTION, description);
this.setObjectValue(DataTypes.OBJ_ENCRYPTED_DATABLOCK, data);
| public FrameBodyCRM(ByteBuffer byteBuffer, int frameSize)Creates a new FrameBodyCRM datatype.
super(byteBuffer, frameSize);
|
Methods Summary |
---|
public java.lang.String | getIdentifier()The ID3v2 frame identifier
return ID3v22Frames.FRAME_ID_V2_ENCRYPTED_FRAME;
| public java.lang.String | getOwner()
return (String) getObjectValue(DataTypes.OBJ_OWNER);
| public void | getOwner(java.lang.String description)
setObjectValue(DataTypes.OBJ_OWNER, description);
| protected void | setupObjectList()
objectList.add(new StringNullTerminated(DataTypes.OBJ_OWNER, this));
objectList.add(new StringNullTerminated(DataTypes.OBJ_DESCRIPTION, this));
objectList.add(new ByteArraySizeTerminated(DataTypes.OBJ_ENCRYPTED_DATABLOCK, this));
|
|