Home | History | Annotate | Download | only in cdrom
      1 /*
      2     SDL - Simple DirectMedia Layer
      3     Copyright (C) 1997-2006 Sam Lantinga
      4 
      5     This library is SDL_free software; you can redistribute it and/or
      6     modify it under the terms of the GNU Lesser General Public
      7     License as published by the Free Software Foundation; either
      8     version 2.1 of the License, or (at your option) any later version.
      9 
     10     This library is distributed in the hope that it will be useful,
     11     but WITHOUT ANY WARRANTY; without even the implied warranty of
     12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     13     Lesser General Public License for more details.
     14 
     15     You should have received a copy of the GNU Lesser General Public
     16     License along with this library; if not, write to the Free Software
     17     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
     18 
     19     Sam Lantinga
     20     slouken (at) libsdl.org
     21 */
     22 #include "SDL_config.h"
     23 
     24 /* This is the system specific header for the SDL CD-ROM API */
     25 
     26 /* Structure of CD audio control functions */
     27 extern struct CDcaps {
     28 	/* Get the name of the specified drive */
     29 	const char *(*Name)(int drive);
     30 
     31 	/* Open the specified drive, returning a drive id, or -1 on error */
     32 	int (*Open)(int drive);
     33 
     34 	/* Get table-of-contents (number of tracks + track info) for disk.
     35 	   The TOC information should be stored in the cdrom structure.
     36 	   This function should return 0 on success, or -1 on error.
     37 	 */
     38 	int (*GetTOC)(SDL_CD *cdrom);
     39 
     40 	/* Return the current status and play position, in frames, of the
     41 	   drive.  'position' may be NULL, and if so, should be ignored.
     42 	 */
     43 	CDstatus (*Status)(SDL_CD *cdrom, int *position);
     44 
     45 	/* Play from frame 'start' to 'start+len' */
     46 	int (*Play)(SDL_CD *cdrom, int start, int len);
     47 
     48 	/* Pause play */
     49 	int (*Pause)(SDL_CD *cdrom);
     50 
     51 	/* Resume play */
     52 	int (*Resume)(SDL_CD *cdrom);
     53 
     54 	/* Stop play */
     55 	int (*Stop)(SDL_CD *cdrom);
     56 
     57 	/* Eject the current disk */
     58 	int (*Eject)(SDL_CD *cdrom);
     59 
     60 	/* Close the specified drive */
     61 	void (*Close)(SDL_CD *cdrom);
     62 } SDL_CDcaps;
     63 
     64 /* The number of available CD-ROM drives on the system */
     65 extern int SDL_numcds;
     66 
     67 /* Function to scan the system for CD-ROM drives and fill SDL_CDcaps.
     68  * This function should set SDL_numcds to the number of available CD
     69  * drives.  Drive 0 should be the system default CD-ROM.
     70  * It should return 0, or -1 on an unrecoverable fatal error.
     71 */
     72 extern int  SDL_SYS_CDInit(void);
     73 
     74 /* Function to perform any system-specific CD-ROM related cleanup */
     75 extern void SDL_SYS_CDQuit(void);
     76 
     77