diff options
author | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
---|---|---|
committer | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
commit | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/id3v2/id3_header_frame.h | |
parent | 537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff) | |
download | winamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz |
Initial community commit
Diffstat (limited to 'Src/id3v2/id3_header_frame.h')
-rw-r--r-- | Src/id3v2/id3_header_frame.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/Src/id3v2/id3_header_frame.h b/Src/id3v2/id3_header_frame.h new file mode 100644 index 00000000..809c7bcc --- /dev/null +++ b/Src/id3v2/id3_header_frame.h @@ -0,0 +1,81 @@ +// 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 + + +#ifndef ID3LIB_HEADER_FRAME_H +#define ID3LIB_HEADER_FRAME_H + + +#include "id3_types.h" +#include "id3_header.h" +#include "id3_header_tag.h" +#include "id3_field.h" + + +#define ID3FL_TAGALTER_2_3 (1 << 15) +#define ID3FL_FILEALTER_2_3 (1 << 14) +#define ID3FL_SIGNED_2_3 (1 << 13) + +#define ID3FL_COMPRESSION_2_3 (1 << 7) +#define ID3FL_ENCRYPTION_2_3 (1 << 6) +#define ID3FL_GROUPING_2_3 (1 << 5) + +#define ID3FL_TAGALTER_2_4 (1 << 14) +#define ID3FL_FILEALTER_2_4 (1 << 13) +#define ID3FL_SIGNED_2_4 (1 << 12) + +#define ID3FL_COMPRESSION_2_4 (1 << 3) +#define ID3FL_ENCRYPTION_2_4 (1 << 2) +#define ID3FL_GROUPING_2_4 (1 << 6) +#define ID3FL_UNSYNC_2_4 (1 << 1) + +#define ID3FL_DATA_LENGTH_2_4 (1 << 0) + +struct ID3_FrameAttr +{ + ID3_FrameAttr(void) : size(0), flags(0) { memset(&textID, 0, sizeof(textID)); } + ~ID3_FrameAttr(void) {} + + char textID[5]; + luint size; + +public: + void ClearUnSync(int version); + void SetFlags(luint _flags); + bool HasCompression(int version); + bool HasDataLength(int version); + bool HasEncryption(int version); + bool HasGrouping(int version); + bool HasUnsync(int version); +private: + luint flags; +}; + + +class ID3_FrameHeader : public ID3_Header +{ +public: + virtual luint Size(void); + void SetFrameID(ID3_FrameID id); + luint GetFrameInfo(ID3_FrameAttr &attr, const uchar *buffer, size_t remSize); + virtual luint Render(uchar *buffer); + + // *** PRIVATE INTERNAL DATA - DO NOT USE *** PRIVATE INTERNAL DATA - DO NOT USE *** + +protected: + ID3_FrameID frameID; // which frame are we the header for? +}; + + +#endif + + |