1999-02-02 15:22:03 +00:00
|
|
|
/* -*- tab-width: 8; c-basic-offset: 4 -*- */
|
|
|
|
/*
|
|
|
|
* Sample MCI CDAUDIO Wine Driver for Linux
|
|
|
|
*
|
|
|
|
* Copyright 1994 Martin Ayotte
|
|
|
|
* Copyright 1999 Eric Pouech
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __WINE_CDROM_H__
|
|
|
|
#define __WINE_CDROM_H__
|
|
|
|
|
1999-02-17 13:51:06 +00:00
|
|
|
#include <stdlib.h>
|
|
|
|
#include <unistd.h>
|
1999-03-14 16:35:05 +00:00
|
|
|
#include "windef.h"
|
1999-02-17 13:51:06 +00:00
|
|
|
|
1999-02-02 15:22:03 +00:00
|
|
|
#ifdef HAVE_LINUX_CDROM_H
|
|
|
|
# include <linux/cdrom.h>
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_LINUX_UCDROM_H
|
|
|
|
# include <linux/ucdrom.h>
|
|
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_CDIO_H
|
|
|
|
# include <sys/cdio.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int unixdev;
|
|
|
|
#if defined(linux)
|
|
|
|
struct cdrom_subchnl sc;
|
|
|
|
#elif defined(__FreeBSD__) || defined(__NetBSD__)
|
|
|
|
struct cd_sub_channel_info sc;
|
|
|
|
#endif
|
1999-12-25 22:54:54 +00:00
|
|
|
/* those data reflect the cdaudio structure and
|
|
|
|
* don't change while playing
|
|
|
|
*/
|
1999-02-02 15:22:03 +00:00
|
|
|
UINT16 nTracks;
|
|
|
|
UINT16 nFirstTrack;
|
|
|
|
UINT16 nLastTrack;
|
|
|
|
LPDWORD lpdwTrackLen;
|
|
|
|
LPDWORD lpdwTrackPos;
|
|
|
|
LPBYTE lpbTrackFlags;
|
1999-12-25 22:54:54 +00:00
|
|
|
DWORD dwFirstFrame;
|
|
|
|
DWORD dwLastFrame;
|
|
|
|
/* those data change while playing */
|
|
|
|
int cdaMode;
|
|
|
|
UINT16 nCurTrack;
|
|
|
|
DWORD dwCurFrame;
|
1999-02-02 15:22:03 +00:00
|
|
|
} WINE_CDAUDIO;
|
|
|
|
|
|
|
|
#define WINE_CDA_DONTKNOW 0x00
|
|
|
|
#define WINE_CDA_NOTREADY 0x01
|
|
|
|
#define WINE_CDA_OPEN 0x02
|
|
|
|
#define WINE_CDA_PLAY 0x03
|
|
|
|
#define WINE_CDA_STOP 0x04
|
|
|
|
#define WINE_CDA_PAUSE 0x05
|
|
|
|
|
2000-01-29 21:11:47 +00:00
|
|
|
int CDAUDIO_Open(WINE_CDAUDIO* wcda, int drive);
|
|
|
|
int CDAUDIO_GetMediaType(WINE_CDAUDIO* wcda);
|
1999-02-02 15:22:03 +00:00
|
|
|
int CDAUDIO_Close(WINE_CDAUDIO* wcda);
|
|
|
|
int CDAUDIO_Reset(WINE_CDAUDIO* wcda);
|
|
|
|
int CDAUDIO_Play(WINE_CDAUDIO* wcda, DWORD start, DWORD stop);
|
|
|
|
int CDAUDIO_Stop(WINE_CDAUDIO* wcda);
|
|
|
|
int CDAUDIO_Pause(WINE_CDAUDIO* wcda, int pauseOn);
|
1999-03-15 15:14:43 +00:00
|
|
|
int CDAUDIO_Seek(WINE_CDAUDIO* wcda, DWORD at);
|
1999-02-02 15:22:03 +00:00
|
|
|
int CDAUDIO_SetDoor(WINE_CDAUDIO* wcda, int open);
|
|
|
|
UINT16 CDAUDIO_GetNumberOfTracks(WINE_CDAUDIO* wcda);
|
1999-02-26 11:11:13 +00:00
|
|
|
BOOL CDAUDIO_GetTracksInfo(WINE_CDAUDIO* wcda);
|
|
|
|
BOOL CDAUDIO_GetCDStatus(WINE_CDAUDIO* wcda);
|
1999-02-02 15:22:03 +00:00
|
|
|
|
|
|
|
#define CDFRAMES_PERSEC 75
|
|
|
|
#define SECONDS_PERMIN 60
|
1999-03-15 15:14:43 +00:00
|
|
|
#define CDFRAMES_PERMIN ((CDFRAMES_PERSEC) * (SECONDS_PERMIN))
|
1999-02-02 15:22:03 +00:00
|
|
|
|
|
|
|
#ifndef CDROM_DATA_TRACK
|
|
|
|
#define CDROM_DATA_TRACK 0x04
|
|
|
|
#endif
|
|
|
|
|
2000-01-29 21:11:47 +00:00
|
|
|
/* values borrowed from Linux 2.2.x cdrom.h */
|
|
|
|
#define CDS_NO_INFO 0
|
|
|
|
#define CDS_AUDIO 100
|
|
|
|
|
1999-02-02 15:22:03 +00:00
|
|
|
#endif
|
|
|
|
|