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
|
/*
* libdi - CD Audio Player Device Interface Library
*
* Copyright (C) 1993-1999 Ti Kan
* E-mail: ti@amb.org
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/*
* Toshiba vendor-unique support
*
* The name "Toshiba" is a trademark of Toshiba Corporation, and is
* used here for identification purposes only.
*/
#ifndef __VU_TOSH_H__
#define __VU_TOSH_H__
#ifdef VENDOR_TOSHIBA
#ifndef LINT
static char *_vu_tosh_h_ident_ = "@(#)vu_tosh.h 6.8 99/02/15";
#endif
/* Toshiba vendor-unique commands */
#define OP_VT_AUDSRCH 0xc0 /* Toshiba audio track search */
#define OP_VT_AUDPLAY 0xc1 /* Toshiba play audio */
#define OP_VT_STILL 0xc2 /* Toshiba still */
#define OP_VT_SETSTOP 0xc3 /* Toshiba set stop time */
#define OP_VT_EJECT 0xc4 /* Toshiba caddy eject */
#define OP_VT_RDSUBQ 0xc6 /* Toshiba read status */
#define OP_VT_RDINFO 0xc7 /* Toshiba read disk info */
#define OP_VT_RDMODE 0xc8 /* Toshiba read CDROM mode */
/* Toshiba audio status codes */
#define TAUD_PLAYING 0x00
#define TAUD_PAUSED 0x01
#define TAUD_SRCH_PAUSED 0x02
#define TAUD_OTHER 0x03
/* Return data lengths */
#define SZ_VT_RDSUBQ 10 /* Toshiba read sub-code Q data size */
#define SZ_VT_RDINFO 4 /* Toshiba read disc info data size */
#define SZ_VT_RDMODE 1 /* Toshiba read cdrom mode data size */
/* Toshiba read sub-code Q command data */
typedef struct tsubq_data {
unsigned int audio_status:8; /* audio status */
#if _BYTE_ORDER_ == _L_ENDIAN_
unsigned int preemph:1; /* preemphasis */
unsigned int copyallow:1; /* digital copy allow */
unsigned int trktype:1; /* 0=audio 1=data */
unsigned int audioch:1; /* 0=2ch 1=4ch */
unsigned int reserved:4; /* reserved */
#else /* _BYTE_ORDER_ == _B_ENDIAN_ */
unsigned int reserved:4; /* reserved */
unsigned int audioch:1; /* 0=2ch 1=4ch */
unsigned int trktype:1; /* 0=audio 1=data */
unsigned int copyallow:1; /* digital copy allow */
unsigned int preemph:1; /* preemphasis */
#endif /* _BYTE_ORDER_ */
unsigned int trkno:8; /* track number (BCD) */
unsigned int idxno:8; /* index number (BCD) */
byte_t rel_min; /* trk relative minutes (BCD) */
byte_t rel_sec; /* trk relative seconds (BCD) */
byte_t rel_frame; /* trk relative frame (BCD) */
byte_t abs_min; /* absolute minutes (BCD) */
byte_t abs_sec; /* absolute seconds (BCD) */
byte_t abs_frame; /* absolute frame (BCD) */
byte_t pad1[2]; /* pad for alignment */
} tsubq_data_t;
/* Toshiba read disc information command data */
typedef struct tinfo_00 { /* track information */
byte_t first_trk; /* first track (BCD) */
byte_t last_trk; /* last track (BCD) */
byte_t reserved[2]; /* reserved */
} tinfo_00_t;
typedef struct tinfo_01 { /* lead-out track starting time */
byte_t min; /* minutes (BCD) */
byte_t sec; /* seconds (BCD) */
byte_t frame; /* frame (BCD) */
byte_t reserved; /* reserved */
} tinfo_01_t;
typedef struct tinfo_02 { /* specified track starting time */
byte_t min; /* minutes (BCD) */
byte_t sec; /* seconds (BCD) */
byte_t frame; /* frame (BCD) */
byte_t reserved; /* reserved */
} tinfo_02_t;
/* Public function prototypes */
extern bool_t tosh_playaudio(byte_t, word32_t, word32_t, msf_t *, msf_t *,
byte_t, byte_t);
extern bool_t tosh_pause_resume(bool_t);
extern bool_t tosh_get_playstatus(curstat_t *, byte_t *);
extern bool_t tosh_get_toc(curstat_t *);
extern bool_t tosh_mute(bool_t);
extern bool_t tosh_eject(void);
extern void tosh_init(void);
#else
#define tosh_init NULL
#endif /* VENDOR_TOSHIBA */
#endif /* __VU_TOSH_H__ */
|