/lib/SDL/CD.pm

http://github.com/PerlGameDev/SDL · Perl · 46 lines · 36 code · 9 blank · 1 comment · 0 complexity · e78d9d76b5eee290c0d4d975808ef8a3 MD5 · raw file

  1. package SDL::CD;
  2. use strict;
  3. use warnings;
  4. use vars qw(@ISA @EXPORT @EXPORT_OK);
  5. require Exporter;
  6. require DynaLoader;
  7. use SDL::Constants ':SDL::CDROM';
  8. our @ISA = qw(Exporter DynaLoader);
  9. use SDL::Internal::Loader;
  10. internal_load_dlls(__PACKAGE__);
  11. our $VERSION = 2.548;
  12. bootstrap SDL::CD;
  13. use base 'Exporter';
  14. our @EXPORT = @{ $SDL::Constants::EXPORT_TAGS{'SDL::CDROM'} };
  15. our %EXPORT_TAGS = (
  16. all => \@EXPORT,
  17. format => $SDL::Constants::EXPORT_TAGS{'SDL::CDROM/default'},
  18. status => $SDL::Constants::EXPORT_TAGS{'SDL::CDROM/status'},
  19. track_type => $SDL::Constants::EXPORT_TAGS{'SDL::CDROM/track_type'}
  20. );
  21. # Conversion functions from frames to Minute/Second/Frames and vice versa
  22. sub FRAMES_TO_MSF {
  23. my $frames = shift;
  24. my $F = $frames % CD_FPS;
  25. $frames /= CD_FPS;
  26. my $S = $frames % 60;
  27. $frames /= 60;
  28. my $M = $frames;
  29. return ( $M, $S, $F );
  30. }
  31. sub MSF_TO_FRAMES {
  32. my $M = shift;
  33. my $S = shift;
  34. my $F = shift;
  35. return ( $M * 60 * CD_FPS + $S * CD_FPS + $F );
  36. }
  37. 1;