Source file: /~heha/hs/puh.zip/id3tag.h

#pragma once
enum{
 CHANGED_FLAG	=1,
 ADD_V2_FLAG	=2,
 V1_ONLY_FLAG   =4,
 V2_ONLY_FLAG   =8,
 SPACE_V1_FLAG  =16,
 PAD_V2_FLAG    =32,
};

enum {
  MIMETYPE_NONE,
  MIMETYPE_JPEG,
  MIMETYPE_PNG,
  MIMETYPE_GIF
};

typedef struct FrameDataNode {
  struct FrameDataNode *nxt;
  uint32_t fid;             /* Frame Identifier                 */
  char    lng[4];          /* 3-character language descriptor  */
  struct {
    union {
      char   *l;       /* ptr to Latin-1 chars             */
      unsigned short *u; /* ptr to UCS-2 text                */
      unsigned char *b; /* ptr to raw bytes                 */
    } ptr;
    size_t  dim;
    int     enc;         /* 0:Latin-1, 1:UCS-2, 2:RAW        */
  } dsc  , txt;
} FrameDataNode;

typedef struct id3tag_spec {
    /* private data members */
  unsigned int flags;
  int     year;
  char   *title;
  char   *artist;
  char   *album;
  char   *comment;
  int     track_id3v1;
  int     genre_id3v1;
  unsigned char *albumart;
  unsigned int albumart_size;
  unsigned int padding_size;
  int     albumart_mimetype;
  char    language[4]; /* the language of the frame's content, according to ISO-639-2 */
  FrameDataNode *v2_head, *v2_tail;
} id3tag_spec;


Detected encoding: ASCII (7 bit)2