OSDN Git Service

id3v2: use an enum for encodings instead of magic numbers.
authorAnton Khirnov <anton@khirnov.net>
Wed, 19 Jan 2011 09:13:25 +0000 (10:13 +0100)
committerMans Rullgard <mans@mansr.com>
Fri, 21 Jan 2011 18:42:10 +0000 (18:42 +0000)
Signed-off-by: Mans Rullgard <mans@mansr.com>
libavformat/id3v2.c
libavformat/id3v2.h

index 95ec0b0..62eee15 100644 (file)
@@ -74,7 +74,7 @@ static void read_ttag(AVFormatContext *s, ByteIOContext *pb, int taglen, const c
 
     switch (get_byte(pb)) { /* encoding type */
 
-    case 0:  /* ISO-8859-1 (0 - 255 maps directly into unicode) */
+    case ID3v2_ENCODING_ISO8859:
         q = dst;
         while (taglen-- && q - dst < dstlen - 7) {
             uint8_t tmp;
@@ -83,7 +83,7 @@ static void read_ttag(AVFormatContext *s, ByteIOContext *pb, int taglen, const c
         *q = 0;
         break;
 
-    case 1:  /* UTF-16 with BOM */
+    case ID3v2_ENCODING_UTF16BOM:
         taglen -= 2;
         switch (get_be16(pb)) {
         case 0xfffe:
@@ -96,7 +96,7 @@ static void read_ttag(AVFormatContext *s, ByteIOContext *pb, int taglen, const c
         }
         // fall-through
 
-    case 2:  /* UTF-16BE without BOM */
+    case ID3v2_ENCODING_UTF16BE:
         q = dst;
         while (taglen > 1 && q - dst < dstlen - 7) {
             uint32_t ch;
@@ -108,7 +108,7 @@ static void read_ttag(AVFormatContext *s, ByteIOContext *pb, int taglen, const c
         *q = 0;
         break;
 
-    case 3:  /* UTF-8 */
+    case ID3v2_ENCODING_UTF8:
         len = FFMIN(taglen, dstlen);
         get_buffer(pb, dst, len);
         dst[len] = 0;
index 25ee53e..c2e1add 100644 (file)
 #define ID3v2_FLAG_ENCRYPTION  0x0004
 #define ID3v2_FLAG_COMPRESSION 0x0008
 
+enum ID3v2Encoding {
+    ID3v2_ENCODING_ISO8859  = 0,
+    ID3v2_ENCODING_UTF16BOM = 1,
+    ID3v2_ENCODING_UTF16BE  = 2,
+    ID3v2_ENCODING_UTF8     = 3,
+};
+
 /**
  * Detect ID3v2 Header.
  * @param buf   must be ID3v2_HEADER_SIZE byte long