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


Reply via email to