1 /* @(#)cdtext.h	1.5 04/03/02 Copyright 1999-2004 J. Schilling */
2 /*
3  *	Generic CD-Text support definitions
4  *
5  *	Copyright (c) 1999-2004 J. Schilling
6  */
7 /*
8  * The contents of this file are subject to the terms of the
9  * Common Development and Distribution License, Version 1.0 only
10  * (the "License").  You may not use this file except in compliance
11  * with the License.
12  *
13  * See the file CDDL.Schily.txt in this distribution for details.
14  * A copy of the CDDL is also available via the Internet at
15  * http://www.opensource.org/licenses/cddl1.txt
16  *
17  * When distributing Covered Code, include this CDDL HEADER in each
18  * file and include the License file CDDL.Schily.txt from this distribution.
19  */
20 
21 #ifndef	CDTEXT_H
22 #define	CDTEXT_H
23 
24 /*
25  * Strings for the CD-Text Pack Type indicators 0x80...0x8F
26  * We cannot use a plain structure here because we like to loop
27  * over all members.
28  */
29 typedef struct textcodes {
30 	char	*textcodes[16];
31 } textptr_t;
32 
33 #define	tc_title	textcodes[0x00]
34 #define	tc_performer	textcodes[0x01]
35 #define	tc_songwriter	textcodes[0x02]
36 #define	tc_composer	textcodes[0x03]
37 #define	tc_arranger	textcodes[0x04]
38 #define	tc_message	textcodes[0x05]
39 #define	tc_diskid	textcodes[0x06]
40 #define	tc_genre	textcodes[0x07]
41 #define	tc_toc		textcodes[0x08]
42 #define	tc_toc2		textcodes[0x09]
43 
44 #define	tc_closed_info	textcodes[0x0d]
45 #define	tc_isrc		textcodes[0x0e]
46 
47 /*
48  *	binaere Felder sind
49  *	Disc ID			(Wirklich ???)
50  *	Genre ID
51  *	TOC
52  *	Second TOC
53  *	Size information
54  */
55 
56 /*
57  * Genre codes from Enhanced CD Specification page 21
58  */
59 #define	GENRE_UNUSED		0	/* not used			    */
60 #define	GENRE_UNDEFINED		1	/* not defined			    */
61 #define	GENRE_ADULT_CONTEMP	2	/* Adult Contemporary		    */
62 #define	GENRE_ALT_ROCK		3	/* Alternative Rock		    */
63 #define	GENRE_CHILDRENS		4	/* Childrens Music		    */
64 #define	GENRE_CLASSIC		5	/* Classical			    */
65 #define	GENRE_CHRIST_CONTEMP	6	/* Contemporary Christian	    */
66 #define	GENRE_COUNTRY		7	/* Country			    */
67 #define	GENRE_DANCE		8	/* Dance			    */
68 #define	GENRE_EASY_LISTENING	9	/* Easy Listening		    */
69 #define	GENRE_EROTIC		10	/* Erotic			    */
70 #define	GENRE_FOLK		11	/* Folk				    */
71 #define	GENRE_GOSPEL		12	/* Gospel			    */
72 #define	GENRE_HIPHOP		13	/* Hip Hop			    */
73 #define	GENRE_JAZZ		14	/* Jazz				    */
74 #define	GENRE_LATIN		15	/* Latin			    */
75 #define	GENRE_MUSICAL		16	/* Musical			    */
76 #define	GENRE_NEWAGE		17	/* New Age			    */
77 #define	GENRE_OPERA		18	/* Opera			    */
78 #define	GENRE_OPERETTA		19	/* Operetta			    */
79 #define	GENRE_POP		20	/* Pop Music			    */
80 #define	GENRE_RAP		21	/* RAP				    */
81 #define	GENRE_REGGAE		22	/* Reggae			    */
82 #define	GENRE_ROCK		23	/* Rock Music			    */
83 #define	GENRE_RYTHMANDBLUES	24	/* Rhythm & Blues		    */
84 #define	GENRE_SOUNDEFFECTS	25	/* Sound Effects		    */
85 #define	GENRE_SPOKEN_WORD	26	/* Spoken Word			    */
86 #define	GENRE_WORLD_MUSIC	28	/* World Music			    */
87 #define	GENRE_RESERVED		29	/* Reserved is 29..32767	    */
88 #define	GENRE_RIAA		32768	/* Registration by RIAA 32768..65535 */
89 
90 /*
91  * Character codings used in CD-Text data.
92  * Korean and Mandarin Chinese to be defined in sept 1996
93  */
94 #define	CC_8859_1	0x00		/* ISO 8859-1			*/
95 #define	CC_ASCII	0x01		/* ISO 646, ASCII (7 bit)	*/
96 #define	CC_RESERVED_02	0x02		/* Reserved codes 0x02..0x7f	*/
97 #define	CC_KANJI	0x80		/* Music Shift-JIS Kanji	*/
98 #define	CC_KOREAN	0x81		/* Korean			*/
99 #define	CC_CHINESE	0x82		/* Mandarin Chinese		*/
100 #define	CC_RESERVED_83	0x83		/* Reserved codes 0x83..0xFF	*/
101 
102 
103 /*
104  * The language code is encoded as specified in ANNEX 1 to part 5 of EBU
105  * Tech 32 58 -E (1991).
106  *
107  * The current language codes are guessed
108  */
109 #define	LANG_CZECH	 6		/* 0x06				*/
110 #define	LANG_DANISH	 7		/* 0x07				*/
111 #define	LANG_GERMAN	 8		/* 0x08				*/
112 #define	LANG_ENGLISH	 9		/* 0x09				*/
113 #define	LANG_SPANISH	10		/* 0x0A				*/
114 #define	LANG_FRENCH	15		/* 0x0F				*/
115 #define	LANG_ITALIAN	21		/* 0x15				*/
116 #define	LANG_HUNGARIAN	27		/* 0x1B				*/
117 #define	LANG_DUTCH	29		/* 0x1D				*/
118 #define	LANG_NORWEGIAN	30		/* 0x1E				*/
119 #define	LANG_POLISH	32		/* 0x20				*/
120 #define	LANG_PORTUGUESE	33		/* 0x21				*/
121 #define	LANG_SLOVENE	38		/* 0x26				*/
122 #define	LANG_FINNISH	39		/* 0x27				*/
123 #define	LANG_SWEDISH	40		/* 0x28				*/
124 #define	LANG_RUSSIAN	86		/* 0x56				*/
125 #define	LANG_KOREAN	101		/* 0x65				*/
126 #define	LANG_JAPANESE	105		/* 0x69				*/
127 #define	LANG_GREEK	112		/* 0x70				*/
128 #define	LANG_CHINESE	117		/* 0x75				*/
129 
130 #endif
131