view Makefile.minimal @ 1524:38a12fd1a2c1

Fixed bug #46 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
author Sam Lantinga <slouken@libsdl.org>
date Tue, 14 Mar 2006 05:34:39 +0000
parents b2b476a4a73c
children 38c1eb6b0083
line wrap: on
line source

# Makefile to build the SDL library

INCLUDE = -I./include
CFLAGS  = -g -O2 $(INCLUDE)
AR	= ar
RANLIB	= ranlib

TARGET  = libSDL.a
SOURCES = \
	src/*.c \
	src/audio/*.c \
	src/cdrom/*.c \
	src/cpuinfo/*.c \
	src/events/*.c \
	src/file/*.c \
	src/joystick/*.c \
	src/stdlib/*.c \
	src/thread/*.c \
	src/timer/*.c \
	src/video/*.c \
	src/audio/disk/*.c \
	src/video/dummy/*.c \
	src/joystick/dummy/*.c \
	src/cdrom/dummy/*.c \
	src/thread/generic/*.c \
	src/timer/dummy/*.c \
	src/loadso/dummy/*.c \

OBJECTS = $(shell echo $(SOURCES) | sed -e 's,\.c,\.o,g')

all: $(TARGET)

$(TARGET): $(OBJECTS)
	$(AR) crv $@ $^
	$(RANLIB) $@

clean:
	rm -f $(TARGET) $(OBJECTS)