• Sam Lantinga's avatar
    Fixed bug #46 · c8264f63
    Sam Lantinga authored
    Date: Fri, 13 Jan 2006 18:09:45 -0500
    From: mhall4400 vipmail kvcc edu
    Subject: Possible SDL bug
    
    Greetings
    
    I believe Ive come across a bug in your SDL product (1.2.9), in the CD-ROM
    control portion of the library.
    
    When calling the SDL_CDPlay() function to play the last track of a CD using the
    offset and length from an SDL_CD structure generated by SDL_CDOpen(), I get the
    following error from a call to SDL_Error():
    
    mciSendCommand() error: The specified parameter is out of range for the
    specified command.
    
    The code returning the error is:
    SDL_CDPlay(g_playingDriveSDLCD,
    g_playingDriveSDLCD->track[trackNumberInt].offset,
    g_playingDriveSDLCD->track[trackNumberInt].length)
    
    Subtracting one from the length of the provided length seems to repair the
    problem:
    SDL_CDPlay(g_playingDriveSDLCD,
    g_playingDriveSDLCD->track[trackNumberInt].offset,
    (g_playingDriveSDLCD->track[trackNumberInt].length) - 1)
    
    Ive replicated this problem on Windows 98 SE (several months since last
    patch), fully-patched Window ME, seldom-patched Windows XP SP1, and
    fully-patched Windows XP SP2.
    
    While investigating the issue, I came across a line in your librarys win32
    source code in file \src\cdrom\win32\SDL_syscdrom.c (source code zip archive
    from your download page), function: SDL_SYS_CDGetTOC(), line 226 where you add
    1 to the value for length to fix MCI last track length bug.  This may be the
    source of the issue (because subtracting 1 from the length seems to resolve the
    issue).  Microsoft may have patched the referenced bug since you wrote that
    line.
    
    Mike Hall
    
    --HG--
    extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401528
    c8264f63
Name
Last commit
Last update
..
.cvsignore Loading commit data...
SDL_syscdrom.c Loading commit data...