1 /*
2  *   libdi - CD Audio Device Interface Library
3  *
4  *   Copyright (C) 1993-2004  Ti Kan
5  *   E-mail: xmcd@amb.org
6  *
7  *   This program is free software; you can redistribute it and/or modify
8  *   it under the terms of the GNU General Public License as published by
9  *   the Free Software Foundation; either version 2 of the License, or
10  *   (at your option) any later version.
11  *
12  *   This program is distributed in the hope that it will be useful,
13  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  *   GNU General Public License for more details.
16  *
17  *   You should have received a copy of the GNU General Public License
18  *   along with this program; if not, write to the Free Software
19  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20  */
21 #ifndef __FBIOC_H__
22 #define __FBIOC_H__
23 
24 #if defined(DI_FBIOC) && !defined(DEMO_ONLY)
25 
26 #ifndef lint
27 static char *_fbioc_h_ident_ = "@(#)fbioc.h	6.27 04/04/06";
28 #endif
29 
30 #include <sys/cdio.h>
31 
32 #ifndef CDIOCREADAUDIO
33 #define CDIOCREADAUDIO	_IOWR('c',31,struct ioc_read_audio)
34 
35 struct ioc_read_audio
36 {
37 	u_char          address_format;
38 	union msf_lba	address;
39 	int		nframes;
40 	u_char		*buffer;
41 };
42 #endif  /* CDIOCREADAUDIO */
43 
44 /* Ioctl name lookup table structure */
45 typedef struct {
46 	unsigned int	cmd;
47 	char		*name;
48 } iocname_t;
49 
50 /*
51  * Public functions
52  */
53 extern void	fbioc_enable(int);
54 extern void	fbioc_disable(int);
55 extern bool_t	fbioc_is_enabled(int);
56 extern bool_t	fbioc_send(int, unsigned int, void *, bool_t);
57 extern void	fbioc_init(curstat_t *, di_tbl_t *);
58 extern bool_t	fbioc_playmode(curstat_t *);
59 extern bool_t	fbioc_check_disc(curstat_t *);
60 extern void	fbioc_status_upd(curstat_t *);
61 extern void	fbioc_lock(curstat_t *, bool_t);
62 extern void	fbioc_repeat(curstat_t *, bool_t);
63 extern void	fbioc_shuffle(curstat_t *, bool_t);
64 extern void	fbioc_load_eject(curstat_t *);
65 extern void	fbioc_ab(curstat_t *);
66 extern void	fbioc_sample(curstat_t *);
67 extern void	fbioc_level(curstat_t *, byte_t, bool_t);
68 extern void	fbioc_play_pause(curstat_t *);
69 extern void	fbioc_stop(curstat_t *, bool_t);
70 extern void	fbioc_chgdisc(curstat_t *);
71 extern void	fbioc_prevtrk(curstat_t *);
72 extern void	fbioc_nexttrk(curstat_t *);
73 extern void	fbioc_previdx(curstat_t *);
74 extern void	fbioc_nextidx(curstat_t *);
75 extern void	fbioc_rew(curstat_t *, bool_t);
76 extern void	fbioc_ff(curstat_t *, bool_t);
77 extern void	fbioc_warp(curstat_t *);
78 extern void	fbioc_route(curstat_t *);
79 extern void	fbioc_mute_on(curstat_t *);
80 extern void	fbioc_mute_off(curstat_t *);
81 extern void	fbioc_cddajitter(curstat_t *);
82 extern void	fbioc_debug(void);
83 extern void	fbioc_start(curstat_t *);
84 extern void	fbioc_icon(curstat_t *, bool_t);
85 extern void	fbioc_halt(curstat_t *);
86 extern char	*fbioc_methodstr(void);
87 
88 #else	/* DI_FBIOC DEMO_ONLY */
89 
90 #define fbioc_init	NULL
91 
92 #endif	/* DI_FBIOC DEMO_ONLY */
93 
94 #endif	/* __FBIOC_H__ */
95 
96