5 # Copyright (C) 2005 David J. Goehrig <dgoehrig@cpan.org>
7 # ------------------------------------------------------------------------------
9 # This library is free software; you can redistribute it and/or
10 # modify it under the terms of the GNU Lesser General Public
11 # License as published by the Free Software Foundation; either
12 # version 2.1 of the License, or (at your option) any later version.
14 # This library is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 # Lesser General Public License for more details.
19 # You should have received a copy of the GNU Lesser General Public
20 # License along with this library; if not, write to the Free Software
21 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23 # ------------------------------------------------------------------------------
25 # Please feel free to send questions, suggestions or improvements to:
38 use vars qw(@ISA @EXPORT);
40 @EXPORT = qw/ &CD_NUM_DRIVES /;
45 my $class = ref($proto) || $proto;
48 $self = \SDL::CDOpen($number);
49 croak SDL::GetError() if ( SDL::CD_ERROR() eq SDL::CDStatus($$self));
60 return SDL::CDNumDrives();
65 return SDL::CDName($$self);
70 return SDL::CDstatus($$self);
74 my ($self,$start,$length,$fs,$fl) = @_;
75 return SDL::CDPlayTracks($$self,$start,$length,$fs,$fl);
80 return SDL::CDPause($$self);
85 return SDL::CDResume($$self);
90 return SDL::CDStop($$self);
95 return SDL::CDEject($$self);
100 return SDL::CDId($$self);
105 return SDL::CDNumTracks($$self);
108 my $buildtrack = sub {
111 $track{-id} = SDL::CDTrackId($ptr);
112 $track{-type} = SDL::CDTrackType($ptr);
113 $track{-length} = SDL::CDTrackLength($ptr);
114 $track{-offset} = SDL::CDTrackOffset($ptr);
121 return &$buildtrack(SDL::CDTrack($$self,$number));
126 return $self->track(SDL::CDCurTrack($$self));
131 return SDL::CDCurFrame($$self);