Complete.Org: Mailing Lists: Archives: freeciv-dev: February 2002:
[Freeciv-Dev] Re: [Patch] Sound8
Home

[Freeciv-Dev] Re: [Patch] Sound8

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Freeciv-Dev <freeciv-dev@xxxxxxxxxxx>
Subject: [Freeciv-Dev] Re: [Patch] Sound8
From: Jason Short <vze2zq63@xxxxxxxxxxx>
Date: Tue, 12 Feb 2002 18:07:51 -0500
Reply-to: jdorje@xxxxxxxxxxxx

Per I. Mathisen wrote:
On Tue, 12 Feb 2002, Raimar Falke wrote:

I also got this "{ss}..."  messages. It looks like I have to ask Per
for this.


This happens when you call the esd_stop_something function, which is meant
to stop looping of a sample, and the sample isn't loooping. I put that in
because this stopped another bug from happening sometimes that caused
infinite looping (i think), and the esd_kill_something function which is
the right one to use simply isn't imlemented in the library.
esd_free_something is called on the "oldest" element in the circular buffer if it hasn't already been reset.

Unfortunately, the code never actually resets the elements when the sound sample it corresponds to is freed, so once the buffer is full this will happen every time a sample is played.

Fixing it isn't trivial, unless there are more ESD library functions that are currently in use.

Assuming ESD doesn't have a "maximum channels" limit, one solution would be to just start the sample and not track it at all thereafter. Then it can end at its own time...the problem being that on shutodwn() there is no way for us to stop it. Obviously the music sample ID must be tracked, since only one music should be playing at a time - but with music we can be pretty sure that it won't stop until we tell it to.


And SDL has similar (though not identical) problems...

jason



[Prev in Thread] Current Thread [Next in Thread]