ref: a1aa7038ba62a46b1173b609e4c884b1919d3949
dir: /dat.h/
enum decmsg{
START,
STOP,
PAUSE,
};
/*
* Dec represents a decoder process.
* ctl is the control channel for pausing, starting, and stoping the proc.
*/
typedef struct Dec Dec;
struct Dec{
int decpid;
int ctlpid;
Channel *ctl;
};
/*
* ID3v1 represents the first version of ID3 metainformation.
* The spec does not define character set, so we treat it as
* UTF8, which should cover most bases.
* See: http://id3.org/ID3v1
*/
typedef struct ID3v1 ID3v1;
struct ID3v1{
Rune *title;
Rune *artist;
Rune *album;
int year;
Rune *comment;
char genre;
};
typedef struct VorbisMeta VorbisMeta;
struct VorbisMeta{
uint ncom;
Rune **key;
Rune **val;
};
typedef struct FlacPic FlacPic;
struct FlacPic{
char *mime;
Rune *desc;
Point p;
uvlong size;
uchar *data;
Image *i;
};
typedef struct FlacMeta FlacMeta;
struct FlacMeta{
VorbisMeta *com;
FlacPic *pic;
};