diff options
Diffstat (limited to 'Src/id3v2/id3_frame.h')
-rw-r--r-- | Src/id3v2/id3_frame.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/Src/id3v2/id3_frame.h b/Src/id3v2/id3_frame.h new file mode 100644 index 00000000..ca40caf1 --- /dev/null +++ b/Src/id3v2/id3_frame.h @@ -0,0 +1,55 @@ +// The authors have released ID3Lib as Public Domain(PD) and claim no copyright, +// patent or other intellectual property protection in this work. This means that +// it may be modified, redistributed and used in commercial and non-commercial +// software and hardware without restrictions. ID3Lib is distributed on an "AS IS" +// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. +// +// The ID3Lib authors encourage improvements and optimisations to be sent to the +// ID3Lib coordinator, currently Dirk Mahoney(dirk@id3.org). Approved +// submissions may be altered, and will be included and released under these terms. +// +// Mon Nov 23 18:34:01 1998 + +#pragma once + +#include "id3_types.h" +#include "id3_field.h" +#include "id3_header_frame.h" + + +class ID3_Frame +{ +public: + ID3_Frame(ID3_FrameID id = ID3FID_NOFRAME); + ~ID3_Frame(void); + + void Clear(void); + void SetID(ID3_FrameID id); + ID3_FrameID GetID(void); + ID3_Field& Field(ID3_FieldID name); + + // *** PRIVATE INTERNAL DATA - DO NOT USE *** PRIVATE INTERNAL DATA - DO NOT USE *** + + bool HasChanged(void); + void SetVersion(uchar ver, uchar rev); + void Parse(uchar *buffer, luint size); + luint Size(void); + luint Render(uchar *buffer); + char encryptionID[256]; // the encryption method with which this frame is encrypted + char groupingID[256]; // the group to which this frame belongs + bool compression; // should we try to compress? + bool hasChanged; // has the frame changed since the last parse/render? + bitset fieldBits; // which fields are present? + ID3_FrameID frameID; // what frame are we? + +protected: + void UpdateStringTypes(void); + void UpdateFieldDeps(void); + lsint FindField(ID3_FieldID name); + uchar version; // what version tag? + uchar revision; // what revision tag? + luint numFields; // how many fields are in this frame? + ID3_Field **fields; // an array of field object pointers +}; + + |