Package tagger :: Module id3v2frame :: Class ID3v2BaseFrame
[show private | hide private]
[frames | no frames]

Class ID3v2BaseFrame

Known Subclasses:
ID3v2_2_Frame, ID3v2_3_Frame

Base ID3v2 Frame for 2.2, 2.3 and 2.4

Abstract class that defines basic functions that are common for 2.2, 2.3 and 2.4.

o_* functions means output_*, they output a bytestring encoding the given data

x_* functions means extract_*, they extract data into accessible structures when given a suitable length bytestream
Method Summary
  __init__(self, frame, fid)
creates an ID3v2BaseFrame structure.
  new_frame_header(self)
creates a new frame header
  o_apic(self)
  o_bin(self)
  o_comm(self)
  o_geob(self)
  o_pcnt(self)
  o_string(self, s, toenc, fromenc)
Converts a String or Unicode String to a byte string of specified encoding.
  o_text(self)
Output text bytestring
  o_url(self)
  o_wxxx(self)
  output(self)
Create a bytestring representing the frame contents and the field
  output_field(self)
  parse_field(self)
  parse_frame_header(self, frame)
Parse the frame header from a bytestring
  x_apic(self)
Extract APIC
  x_bin(self)
  x_comm(self)
extract comment field
  x_geob(self)
Extract GEOB
  x_pcnt(self)
Extract Play Count
  x_text(self)
Extract Text Fields
  x_url(self)
  x_wxxx(self)
Extract URL

Instance Variable Summary
  encoding: optional - for text fields we have the encoding name
  fid: frame id code
  flags: dictionary of flags for this frame
  length: length of the frame in bytes
  rawdata: rawdata of the rest of the frame minus the header
  strings: a list of strings for text fields

Class Variable Summary
dict format_flags: format flags required
int header_length: header portion length
dict status_flags: status flags required
dict supported: supported frame ids

Method Details

__init__(self, frame=None, fid=None)
(Constructor)

creates an ID3v2BaseFrame structure. If you specify frame, then it will go into parse mode. If you specify the fid, then it will create a new frame.
Parameters:
frame - frame bytestring
fid - frame id for creating a new frame

new_frame_header(self)

creates a new frame header

o_string(self, s, toenc, fromenc='latin_1')

Converts a String or Unicode String to a byte string of specified encoding.
Parameters:
toenc - Encoding which we wish to convert to. This can be either ID3V2_FIELD_ENC_* or the actual python encoding type
fromenc - converting from encoding specified

o_text(self)

Output text bytestring

output(self)

Create a bytestring representing the frame contents and the field

To Do:

  • no syncsafing
  • no status format flags used

parse_frame_header(self, frame)

Parse the frame header from a bytestring
Parameters:
frame - bytestring of the frame
           (type=string)

To Do: apple's id3 tags doesn't seem to follow the unsync safe format

x_apic(self)

Extract APIC

set: encoding, mimetype, desc, pict, picttype

x_comm(self)

extract comment field

sets: encoding, lang, shortcomment, longcomment

x_geob(self)

Extract GEOB

set: encoding, mimetype, filename, desc, obj

x_pcnt(self)

Extract Play Count

sets: counter

x_text(self)

Extract Text Fields

To Do:

handle multiple strings seperated by

sets: encoding, strings

x_wxxx(self)

Extract URL

set: encoding, desc, url

Instance Variable Details

encoding

optional - for text fields we have the encoding name

fid

frame id code

flags

dictionary of flags for this frame

length

length of the frame in bytes

rawdata

rawdata of the rest of the frame minus the header

strings

a list of strings for text fields

Class Variable Details

format_flags

format flags required
Type:
dict
Value:
{}                                                                     

header_length

header portion length
Type:
int
Value:
0                                                                     

status_flags

status flags required
Type:
dict
Value:
{}                                                                     

supported

supported frame ids
Type:
dict
Value:
{}                                                                     

Generated by Epydoc 2.0 on Mon May 10 00:11:04 2004 http://epydoc.sf.net