module Sdlcdrom: sig
.. end
This module provides CD-ROM handling
exception SDLcdrom_exception of string
Exception used to report errors
exception Trayempty
Exception to report that thre's no cd in the drive
Types
type
cdrom_drive
abstract type for handling cdrom
type
cdrom_drive_status =
| |
CD_TRAYEMPTY |
| |
CD_STOPPED |
| |
CD_PLAYING |
| |
CD_PAUSED |
enumeration of different status cdrom drive
type
track_type =
| |
TRACK_AUDIO |
| |
TRACK_DATA |
the types of CD-ROM track possible
type
track = {
|
id : int ; |
|
kind : track_type ; |
|
length : int ; |
|
offset : int ; |
}
type
cdrom_info = {
|
num_tracks : int ; |
|
curr_track : int ; |
|
curr_frame : int ; |
|
tracks : track array ; |
}
General API
An SDLcdrom_exception is raised on errors
val get_num_drives : unit -> int
get_num_drives
returns the number of CD-ROM drives on the system
val drive_name : int -> string
drive_name drive
returns a human-readable, system-dependent identifier
for the CD-ROM.
drive
is the index of the drive. Drive indices start to 0 and end
at get_num_drives()-1
.
CD-ROM drive handling
val cd_open : int -> cdrom_drive
cd_open drive
open a CD-ROM drive for access
val cd_close : cdrom_drive -> unit
Closes the handle for the cdrom_drive
val cd_status : cdrom_drive -> cdrom_drive_status
Returns the current status of the given drive.
val cd_info : cdrom_drive -> cdrom_info
Raises Trayempty
if there's no cd in the drive
Returns the table of contents of the CD and current play position
Playing audio tracks
val msf_of_frames : int -> int * int * int
val frames_of_msf : int * int * int -> int
val cd_play_tracks : cdrom_drive ->
start_track:int ->
start_frame:int -> num_tracks:int -> num_frames:int -> unit
cd_play_tracks cdrom_drive start_track start_frame num_tracks num_frames
play the given CD with these parameters
Raises Trayempty
if there's no cd in the drive
start_track
: the starting track
start_frame
: the starting frame
num_tracks
: the number of tracks to play
num_frames
: the number of frames to play
val cd_play_track : cdrom_drive -> track -> unit
Play the track n on the given cdrom_drive
val cd_pause : cdrom_drive -> unit
Pause play
val cd_resume : cdrom_drive -> unit
Resume play
val cd_stop : cdrom_drive -> unit
Stop play
val cd_eject : cdrom_drive -> unit
Eject CD-ROM