| 1 | /* -*- tab-width: 8; c-basic-offset: 4 -*- */ | 
|---|
| 2 | /* | 
|---|
| 3 | * Sample MCI CDAUDIO Wine Driver for Linux | 
|---|
| 4 | * | 
|---|
| 5 | * Copyright 1994 Martin Ayotte | 
|---|
| 6 | * Copyright 1999 Eric Pouech | 
|---|
| 7 | */ | 
|---|
| 8 |  | 
|---|
| 9 | #ifndef __WINE_CDROM_H__ | 
|---|
| 10 | #define __WINE_CDROM_H__ | 
|---|
| 11 |  | 
|---|
| 12 | #include <stdlib.h> | 
|---|
| 13 | // #include <unistd.h> | 
|---|
| 14 | #include "windef.h" | 
|---|
| 15 |  | 
|---|
| 16 | #ifdef HAVE_LINUX_CDROM_H | 
|---|
| 17 | # include <linux/cdrom.h> | 
|---|
| 18 | #endif | 
|---|
| 19 | #ifdef HAVE_LINUX_UCDROM_H | 
|---|
| 20 | # include <linux/ucdrom.h> | 
|---|
| 21 | #endif | 
|---|
| 22 | #ifdef HAVE_SYS_CDIO_H | 
|---|
| 23 | # include <sys/cdio.h> | 
|---|
| 24 | #endif | 
|---|
| 25 |  | 
|---|
| 26 | typedef struct { | 
|---|
| 27 | int                         unixdev; | 
|---|
| 28 | #if defined(linux) | 
|---|
| 29 | struct cdrom_subchnl        sc; | 
|---|
| 30 | #elif defined(__FreeBSD__) || defined(__NetBSD__) | 
|---|
| 31 | struct cd_sub_channel_info  sc; | 
|---|
| 32 | #endif | 
|---|
| 33 | /* those data reflect the cdaudio structure and | 
|---|
| 34 | * don't change while playing | 
|---|
| 35 | */ | 
|---|
| 36 | UINT16                      nTracks; | 
|---|
| 37 | UINT16                      nFirstTrack; | 
|---|
| 38 | UINT16                      nLastTrack; | 
|---|
| 39 | LPDWORD                     lpdwTrackLen; | 
|---|
| 40 | LPDWORD                     lpdwTrackPos; | 
|---|
| 41 | LPBYTE                      lpbTrackFlags; | 
|---|
| 42 | DWORD                       dwFirstFrame; | 
|---|
| 43 | DWORD                       dwLastFrame; | 
|---|
| 44 | /* those data change while playing */ | 
|---|
| 45 | int                         cdaMode; | 
|---|
| 46 | UINT16                      nCurTrack; | 
|---|
| 47 | DWORD                       dwCurFrame; | 
|---|
| 48 | } WINE_CDAUDIO; | 
|---|
| 49 |  | 
|---|
| 50 | #define WINE_CDA_DONTKNOW               0x00 | 
|---|
| 51 | #define WINE_CDA_NOTREADY               0x01 | 
|---|
| 52 | #define WINE_CDA_OPEN                   0x02 | 
|---|
| 53 | #define WINE_CDA_PLAY                   0x03 | 
|---|
| 54 | #define WINE_CDA_STOP                   0x04 | 
|---|
| 55 | #define WINE_CDA_PAUSE                  0x05 | 
|---|
| 56 |  | 
|---|
| 57 | int     CDAUDIO_Open(WINE_CDAUDIO* wcda); | 
|---|
| 58 | int     CDAUDIO_Close(WINE_CDAUDIO* wcda); | 
|---|
| 59 | int     CDAUDIO_Reset(WINE_CDAUDIO* wcda); | 
|---|
| 60 | int     CDAUDIO_Play(WINE_CDAUDIO* wcda, DWORD start, DWORD stop); | 
|---|
| 61 | int     CDAUDIO_Stop(WINE_CDAUDIO* wcda); | 
|---|
| 62 | int     CDAUDIO_Pause(WINE_CDAUDIO* wcda, int pauseOn); | 
|---|
| 63 | int     CDAUDIO_Seek(WINE_CDAUDIO* wcda, DWORD at); | 
|---|
| 64 | int     CDAUDIO_SetDoor(WINE_CDAUDIO* wcda, int open); | 
|---|
| 65 | UINT16  CDAUDIO_GetNumberOfTracks(WINE_CDAUDIO* wcda); | 
|---|
| 66 | BOOL    CDAUDIO_GetTracksInfo(WINE_CDAUDIO* wcda); | 
|---|
| 67 | BOOL    CDAUDIO_GetCDStatus(WINE_CDAUDIO* wcda); | 
|---|
| 68 |  | 
|---|
| 69 | #define CDFRAMES_PERSEC                 75 | 
|---|
| 70 | #define SECONDS_PERMIN                  60 | 
|---|
| 71 | #define CDFRAMES_PERMIN                 ((CDFRAMES_PERSEC) * (SECONDS_PERMIN)) | 
|---|
| 72 |  | 
|---|
| 73 | #ifndef CDROM_DATA_TRACK | 
|---|
| 74 | #define CDROM_DATA_TRACK 0x04 | 
|---|
| 75 | #endif | 
|---|
| 76 |  | 
|---|
| 77 | #endif | 
|---|
| 78 |  | 
|---|