blob: 89808c6575a775122e2947eedcc561d691074ca7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
/*
* This file has been modified for the cdrkit suite.
*
* The behaviour and appearence of the program code below can differ to a major
* extent from the version distributed by the original author(s).
*
* For details, see Changelog file distributed with the cdrkit package. If you
* received this file from another source then ask the distributing person for
* a log of modifications.
*
*/
/* @(#)cdtext.h 1.5 04/03/02 Copyright 1999-2004 J. Schilling */
/*
* Generic CD-Text support definitions
*
* Copyright (c) 1999-2004 J. Schilling
*/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; see the file COPYING. If not, write to the Free Software
* Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef CDTEXT_H
#define CDTEXT_H
/*
* Strings for the CD-Text Pack Type indicators 0x80...0x8F
* We cannot use a plain structure here because we like to loop
* over all members.
*/
typedef struct textcodes {
char *textcodes[16];
} textptr_t;
#define tc_title textcodes[0x00]
#define tc_performer textcodes[0x01]
#define tc_songwriter textcodes[0x02]
#define tc_composer textcodes[0x03]
#define tc_arranger textcodes[0x04]
#define tc_message textcodes[0x05]
#define tc_diskid textcodes[0x06]
#define tc_genre textcodes[0x07]
#define tc_toc textcodes[0x08]
#define tc_toc2 textcodes[0x09]
#define tc_closed_info textcodes[0x0d]
#define tc_isrc textcodes[0x0e]
/*
* binaere Felder sind
* Disc ID (Wirklich ???)
* Genre ID
* TOC
* Second TOC
* Size information
*/
/*
* Genre codes from Enhanced CD Specification page 21
*/
#define GENRE_UNUSED 0 /* not used */
#define GENRE_UNDEFINED 1 /* not defined */
#define GENRE_ADULT_CONTEMP 2 /* Adult Contemporary */
#define GENRE_ALT_ROCK 3 /* Alternative Rock */
#define GENRE_CHILDRENS 4 /* Childrens Music */
#define GENRE_CLASSIC 5 /* Classical */
#define GENRE_CHRIST_CONTEMP 6 /* Contemporary Christian */
#define GENRE_COUNTRY 7 /* Country */
#define GENRE_DANCE 8 /* Dance */
#define GENRE_EASY_LISTENING 9 /* Easy Listening */
#define GENRE_EROTIC 10 /* Erotic */
#define GENRE_FOLK 11 /* Folk */
#define GENRE_GOSPEL 12 /* Gospel */
#define GENRE_HIPHOP 13 /* Hip Hop */
#define GENRE_JAZZ 14 /* Jazz */
#define GENRE_LATIN 15 /* Latin */
#define GENRE_MUSICAL 16 /* Musical */
#define GENRE_NEWAGE 17 /* New Age */
#define GENRE_OPERA 18 /* Opera */
#define GENRE_OPERETTA 19 /* Operetta */
#define GENRE_POP 20 /* Pop Music */
#define GENRE_RAP 21 /* RAP */
#define GENRE_REGGAE 22 /* Reggae */
#define GENRE_ROCK 23 /* Rock Music */
#define GENRE_RYTHMANDBLUES 24 /* Rhythm & Blues */
#define GENRE_SOUNDEFFECTS 25 /* Sound Effects */
#define GENRE_SPOKEN_WORD 26 /* Spoken Word */
#define GENRE_WORLD_MUSIC 28 /* World Music */
#define GENRE_RESERVED 29 /* Reserved is 29..32767 */
#define GENRE_RIAA 32768 /* Registration by RIAA 32768..65535 */
/*
* Character codings used in CD-Text data.
* Korean and Mandarin Chinese to be defined in sept 1996
*/
#define CC_8859_1 0x00 /* ISO 8859-1 */
#define CC_ASCII 0x01 /* ISO 646, ASCII (7 bit) */
#define CC_RESERVED_02 0x02 /* Reserved codes 0x02..0x7f */
#define CC_KANJI 0x80 /* Music Shift-JIS Kanji */
#define CC_KOREAN 0x81 /* Korean */
#define CC_CHINESE 0x82 /* Mandarin Chinese */
#define CC_RESERVED_83 0x83 /* Reserved codes 0x83..0xFF */
/*
* The language code is encoded as specified in ANNEX 1 to part 5 of EBU
* Tech 32 58 -E (1991).
*
* The current language codes are guessed
*/
#define LANG_CZECH 6 /* 0x06 */
#define LANG_DANISH 7 /* 0x07 */
#define LANG_GERMAN 8 /* 0x08 */
#define LANG_ENGLISH 9 /* 0x09 */
#define LANG_SPANISH 10 /* 0x0A */
#define LANG_FRENCH 15 /* 0x0F */
#define LANG_ITALIAN 21 /* 0x15 */
#define LANG_HUNGARIAN 27 /* 0x1B */
#define LANG_DUTCH 29 /* 0x1D */
#define LANG_NORWEGIAN 30 /* 0x1E */
#define LANG_POLISH 32 /* 0x20 */
#define LANG_PORTUGUESE 33 /* 0x21 */
#define LANG_SLOVENE 38 /* 0x26 */
#define LANG_FINNISH 39 /* 0x27 */
#define LANG_SWEDISH 40 /* 0x28 */
#define LANG_RUSSIAN 86 /* 0x56 */
#define LANG_KOREAN 101 /* 0x65 */
#define LANG_JAPANESE 105 /* 0x69 */
#define LANG_GREEK 112 /* 0x70 */
#define LANG_CHINESE 117 /* 0x75 */
#endif
|