CVSROOT: /var/cvs/freesci
Module name: freesci
Changes by: freesci 2002/09/22 20:28:37 GMT
Modified files:
. : ChangeLog README
src/include : soundserver.h
src/sound : Makefile.am sfx_save.c sfx_save.cfsml sound.c
Added files:
src/sound : thread_ss_sdl.c
Log message:
Okay, here's the new threaded soundserver. It replaces the old
polled_ss_sdl() soundserver.
It's structurally fundamentally different than the other soundservers --
all bookkeeping operations happen within VM context, and only the note
loop is split off in another thread. When a song changes due to an
event, the song thread exits and a new one is started. If no music is
playing (suspended or whathaveyou) then there's no background thread at
all.
Notes:
0) Remove the polled_ss_sdl.c when the win32 project files are updated
to reflect the new soundserver.
1) Savegames slightly tweaked to reflect the shared status of song
data. Does not change on-disk format at all.
2) Soundserver currently runs full-tilt, maxing out the CPU but is
overwise very responsive. Optimization work will follow. :)
3) Next up is to abstract out all the threading stuff so we can use
system native threads across the board as necessary.
4) Save/restore appears to work. However, there is a bit of a delay
before the music playback starts again. I'm investigating this now.
- Pizza