annotate include/SDL_cdrom.h @ 4427:eada7e321df6 SDL-1.2

Fixed bug #943 Ozkan Sezer 2010-02-06 12:31:06 PST Hi: Here are some small fixes for compiling SDL against mingw-w64. (see http://mingw-w64.sourceforge.net/ . Despite the name, it supports both win32 and win64.) Two patches, one for SDL-1.2 and one for SDL-1.3 attached. src/audio/windx5/directx.h and src/video/windx5/directx.h (both SDL-1.2 and SDL-1.3.) I get compilation errors about some union not having a member named u1 and alike, because of other system headers being included before this one and them already defining DUMMYUNIONNAME and stuff. This header probably assumes that those stuff are defined in windef.h, but mingw-w64 headers define them in _mingw.h. Easily fixed by moving NONAMELESSUNION definition to the top of the file. SDL_dx5yuv.c (SDL-1.2-only) also needs to include the header before SDL_video.h to avoid the same problem. src/thread/win32/SDL_systhread.c (both SDL-1.2 and SDL-1.3.) : The __GNUC__ case for pfnSDL_CurrentBeginThread is 32-bit centric because _beginthreadex returns uintptr_t, not unsigned long which is 32 bits in win64. Changing the return type to uintptr_t fixes it. Hope these are useful. Thanks.
author Sam Lantinga <slouken@libsdl.org>
date Wed, 10 Mar 2010 15:04:13 +0000
parents 4c4113c2162c
children
rev   line source
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
1 /*
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
2 SDL - Simple DirectMedia Layer
4159
a1b03ba2fcd0 Updated copyright date
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
3 Copyright (C) 1997-2009 Sam Lantinga
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
4
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
5 This library is free software; you can redistribute it and/or
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1046
diff changeset
6 modify it under the terms of the GNU Lesser General Public
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
7 License as published by the Free Software Foundation; either
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1046
diff changeset
8 version 2.1 of the License, or (at your option) any later version.
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
9
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
10 This library is distributed in the hope that it will be useful,
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1046
diff changeset
13 Lesser General Public License for more details.
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
14
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1046
diff changeset
15 You should have received a copy of the GNU Lesser General Public
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1046
diff changeset
16 License along with this library; if not, write to the Free Software
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1046
diff changeset
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
18
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
19 Sam Lantinga
251
b8688cfdc232 Updated the headers with the correct e-mail address
Sam Lantinga <slouken@libsdl.org>
parents: 0
diff changeset
20 slouken@libsdl.org
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
21 */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
22
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
23 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
24 * @file SDL_cdrom.h
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
25 * This is the CD-audio control API for Simple DirectMedia Layer
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
26 */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
27
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
28 #ifndef _SDL_cdrom_h
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
29 #define _SDL_cdrom_h
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
30
1353
7ba544e2888d Started the process of improving configure support, and merging C types
Sam Lantinga <slouken@libsdl.org>
parents: 1312
diff changeset
31 #include "SDL_stdinc.h"
1358
c71e05b4dc2e More header massaging... works great on Windows. ;-)
Sam Lantinga <slouken@libsdl.org>
parents: 1356
diff changeset
32 #include "SDL_error.h"
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
33
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
34 #include "begin_code.h"
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
35 /* Set up for C function definitions, even when using C++ */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
36 #ifdef __cplusplus
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
37 extern "C" {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
38 #endif
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
39
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
40 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
41 * @file SDL_cdrom.h
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
42 * In order to use these functions, SDL_Init() must have been called
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
43 * with the SDL_INIT_CDROM flag. This causes SDL to scan the system
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
44 * for CD-ROM drives, and load appropriate drivers.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
45 */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
46
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
47 /** The maximum number of CD-ROM tracks on a disk */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
48 #define SDL_MAX_TRACKS 99
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
49
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
50 /** @name Track Types
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
51 * The types of CD-ROM track possible
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
52 */
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
53 /*@{*/
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
54 #define SDL_AUDIO_TRACK 0x00
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
55 #define SDL_DATA_TRACK 0x04
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
56 /*@}*/
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
57
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
58 /** The possible states which a CD-ROM drive can be in. */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
59 typedef enum {
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
60 CD_TRAYEMPTY,
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
61 CD_STOPPED,
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
62 CD_PLAYING,
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
63 CD_PAUSED,
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
64 CD_ERROR = -1
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
65 } CDstatus;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
66
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
67 /** Given a status, returns true if there's a disk in the drive */
1046
f09d5edfc7a3 Added some parentheses for a little more macro safety. Recommended by Petri
Ryan C. Gordon <icculus@icculus.org>
parents: 911
diff changeset
68 #define CD_INDRIVE(status) ((int)(status) > 0)
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
69
911
04a403e4ccf5 Date: Mon, 3 May 2004 03:15:01 +0100
Sam Lantinga <slouken@libsdl.org>
parents: 769
diff changeset
70 typedef struct SDL_CDtrack {
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
71 Uint8 id; /**< Track number */
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
72 Uint8 type; /**< Data or audio track */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
73 Uint16 unused;
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
74 Uint32 length; /**< Length, in frames, of this track */
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
75 Uint32 offset; /**< Offset, in frames, from start of disk */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
76 } SDL_CDtrack;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
77
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
78 /** This structure is only current as of the last call to SDL_CDStatus() */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
79 typedef struct SDL_CD {
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
80 int id; /**< Private drive identifier */
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
81 CDstatus status; /**< Current drive status */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
82
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
83 /** The rest of this structure is only valid if there's a CD in drive */
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
84 /*@{*/
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
85 int numtracks; /**< Number of tracks on disk */
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
86 int cur_track; /**< Current track position */
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
87 int cur_frame; /**< Current frame offset within current track */
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
88 SDL_CDtrack track[SDL_MAX_TRACKS+1];
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
89 /*@}*/
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
90 } SDL_CD;
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
91
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
92 /** @name Frames / MSF Conversion Functions
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
93 * Conversion functions from frames to Minute/Second/Frames and vice versa
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
94 */
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
95 /*@{*/
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
96 #define CD_FPS 75
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
97 #define FRAMES_TO_MSF(f, M,S,F) { \
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
98 int value = f; \
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
99 *(F) = value%CD_FPS; \
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
100 value /= CD_FPS; \
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
101 *(S) = value%60; \
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
102 value /= 60; \
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
103 *(M) = value; \
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
104 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
105 #define MSF_TO_FRAMES(M, S, F) ((M)*60*CD_FPS+(S)*CD_FPS+(F))
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
106 /*@}*/
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
107
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
108 /* CD-audio API functions: */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
109
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
110 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
111 * Returns the number of CD-ROM drives on the system, or -1 if
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
112 * SDL_Init() has not been called with the SDL_INIT_CDROM flag.
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
113 */
337
9154ec9ca3d2 Explicitly specify the SDL API calling convention (C by default)
Sam Lantinga <slouken@libsdl.org>
parents: 297
diff changeset
114 extern DECLSPEC int SDLCALL SDL_CDNumDrives(void);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
115
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
116 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
117 * Returns a human-readable, system-dependent identifier for the CD-ROM.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
118 * Example:
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
119 * - "/dev/cdrom"
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
120 * - "E:"
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
121 * - "/dev/disk/ide/1/master"
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
122 */
337
9154ec9ca3d2 Explicitly specify the SDL API calling convention (C by default)
Sam Lantinga <slouken@libsdl.org>
parents: 297
diff changeset
123 extern DECLSPEC const char * SDLCALL SDL_CDName(int drive);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
124
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
125 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
126 * Opens a CD-ROM drive for access. It returns a drive handle on success,
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
127 * or NULL if the drive was invalid or busy. This newly opened CD-ROM
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
128 * becomes the default CD used when other CD functions are passed a NULL
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
129 * CD-ROM handle.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
130 * Drives are numbered starting with 0. Drive 0 is the system default CD-ROM.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
131 */
337
9154ec9ca3d2 Explicitly specify the SDL API calling convention (C by default)
Sam Lantinga <slouken@libsdl.org>
parents: 297
diff changeset
132 extern DECLSPEC SDL_CD * SDLCALL SDL_CDOpen(int drive);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
133
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
134 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
135 * This function returns the current status of the given drive.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
136 * If the drive has a CD in it, the table of contents of the CD and current
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
137 * play position of the CD will be stored in the SDL_CD structure.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
138 */
337
9154ec9ca3d2 Explicitly specify the SDL API calling convention (C by default)
Sam Lantinga <slouken@libsdl.org>
parents: 297
diff changeset
139 extern DECLSPEC CDstatus SDLCALL SDL_CDStatus(SDL_CD *cdrom);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
140
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
141 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
142 * Play the given CD starting at 'start_track' and 'start_frame' for 'ntracks'
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
143 * tracks and 'nframes' frames. If both 'ntrack' and 'nframe' are 0, play
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
144 * until the end of the CD. This function will skip data tracks.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
145 * This function should only be called after calling SDL_CDStatus() to
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
146 * get track information about the CD.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
147 * For example:
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
148 * @code
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
149 * // Play entire CD:
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
150 * if ( CD_INDRIVE(SDL_CDStatus(cdrom)) )
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
151 * SDL_CDPlayTracks(cdrom, 0, 0, 0, 0);
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
152 * // Play last track:
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
153 * if ( CD_INDRIVE(SDL_CDStatus(cdrom)) ) {
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
154 * SDL_CDPlayTracks(cdrom, cdrom->numtracks-1, 0, 0, 0);
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
155 * }
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
156 * // Play first and second track and 10 seconds of third track:
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
157 * if ( CD_INDRIVE(SDL_CDStatus(cdrom)) )
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
158 * SDL_CDPlayTracks(cdrom, 0, 0, 2, 10);
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
159 * @endcode
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
160 *
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
161 * @return This function returns 0, or -1 if there was an error.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
162 */
337
9154ec9ca3d2 Explicitly specify the SDL API calling convention (C by default)
Sam Lantinga <slouken@libsdl.org>
parents: 297
diff changeset
163 extern DECLSPEC int SDLCALL SDL_CDPlayTracks(SDL_CD *cdrom,
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
164 int start_track, int start_frame, int ntracks, int nframes);
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
165
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
166 /**
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
167 * Play the given CD starting at 'start' frame for 'length' frames.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
168 * @return It returns 0, or -1 if there was an error.
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
169 */
337
9154ec9ca3d2 Explicitly specify the SDL API calling convention (C by default)
Sam Lantinga <slouken@libsdl.org>
parents: 297
diff changeset
170 extern DECLSPEC int SDLCALL SDL_CDPlay(SDL_CD *cdrom, int start, int length);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
171
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
172 /** Pause play
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
173 * @return returns 0, or -1 on error
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
174 */
337
9154ec9ca3d2 Explicitly specify the SDL API calling convention (C by default)
Sam Lantinga <slouken@libsdl.org>
parents: 297
diff changeset
175 extern DECLSPEC int SDLCALL SDL_CDPause(SDL_CD *cdrom);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
176
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
177 /** Resume play
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
178 * @return returns 0, or -1 on error
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
179 */
337
9154ec9ca3d2 Explicitly specify the SDL API calling convention (C by default)
Sam Lantinga <slouken@libsdl.org>
parents: 297
diff changeset
180 extern DECLSPEC int SDLCALL SDL_CDResume(SDL_CD *cdrom);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
181
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
182 /** Stop play
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
183 * @return returns 0, or -1 on error
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
184 */
337
9154ec9ca3d2 Explicitly specify the SDL API calling convention (C by default)
Sam Lantinga <slouken@libsdl.org>
parents: 297
diff changeset
185 extern DECLSPEC int SDLCALL SDL_CDStop(SDL_CD *cdrom);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
186
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
187 /** Eject CD-ROM
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
188 * @return returns 0, or -1 on error
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
189 */
337
9154ec9ca3d2 Explicitly specify the SDL API calling convention (C by default)
Sam Lantinga <slouken@libsdl.org>
parents: 297
diff changeset
190 extern DECLSPEC int SDLCALL SDL_CDEject(SDL_CD *cdrom);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
191
4217
4c4113c2162c Fixed bug #706
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
192 /** Closes the handle for the CD-ROM drive */
337
9154ec9ca3d2 Explicitly specify the SDL API calling convention (C by default)
Sam Lantinga <slouken@libsdl.org>
parents: 297
diff changeset
193 extern DECLSPEC void SDLCALL SDL_CDClose(SDL_CD *cdrom);
0
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
194
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
195
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
196 /* Ends C function definitions when using C++ */
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
197 #ifdef __cplusplus
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
198 }
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
199 #endif
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
200 #include "close_code.h"
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
201
74212992fb08 Initial revision
Sam Lantinga <slouken@lokigames.com>
parents:
diff changeset
202 #endif /* _SDL_video_h */