(note: and add in "if (channel == -1) {}" bloc this :
Mix_FreeChunk(sample);
Progs)
On Sat, 29 Jul 2006 12:17:17 +0200
Romain Bignon <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I would make a little correction in my patch :
>
> In jukebox.cpp:
>
> > + chunks[channel] = sample;
> > +
> > if (channel == -1) {
> > MSG_DEBUG("jukebox", "Error: Jukebox::PlaySample: %s",
> > Mix_GetError());
> > }
>
> It might be changed to :
> > if (channel == -1) {
> > MSG_DEBUG("jukebox", "Error: Jukebox::PlaySample: %s",
> > Mix_GetError());
> > }
> > + else
> > + chunkds[channel] = sample;
>
> I don't think this causes a crash or a bug, but this is more correct.
>
> Progs
>
> It might be call only
>
> On Fri, 28 Jul 2006 16:14:21 +0200
> Romain Bignon <[EMAIL PROTECTED]> wrote:
>
> > Hello,
> >
> > I was reading sound/jukebox.cpp when I saw there were not any call for
> > Mix_FreeChunk()...
> >
> > I made a patch to erase this problem, but I think jukebox.cpp is really
> > badly programmed, and someone might remake this.
> >
> > Regards,
> >
> > Progs
> >
> > Index: jukebox.cpp
> > ===================================================================
> > --- jukebox.cpp (révision 936)
> > +++ jukebox.cpp (copie de travail)
> > @@ -80,6 +80,8 @@
> > std::cout << "Opened audio at " << m_config.frequency <<" Hz "<<
> > (audio_format&0xFF)
> > <<" bit " << std::endl;
> > }
> > + Mix_ChannelFinished(JukeBox::EndChunk); /* JukeBox::EndChunk() will be
> > called when any sound is finished */
> > +
> > m_init = true;
> >
> > LoadXML("share");
> > @@ -235,9 +237,20 @@
> >
> > int channel = Mix_PlayChannel(-1, sample, loop);
> >
> > + chunks[channel] = sample;
> > +
> > if (channel == -1) {
> > MSG_DEBUG("jukebox", "Error: Jukebox::PlaySample: %s",
> > Mix_GetError());
> > }
> > return channel;
> > }
> >
> > +void JukeBox::EndChunk(int channel)
> > +{
> > + Mix_Chunk* chk = jukebox.chunks[channel];
> > +
> > + if(!chk) return;
> > +
> > + Mix_FreeChunk(chk);
> > + jukebox.chunks[channel] = 0;
> > +}
> > Index: jukebox.h
> > ===================================================================
> > --- jukebox.h (révision 936)
> > +++ jukebox.h (copie de travail)
> > @@ -42,6 +42,8 @@
> >
> > std::multimap<std::string, std::string> m_soundsamples;
> >
> > + std::map<int, Mix_Chunk*> chunks;
> > +
> > struct s_m_config{
> > bool music;
> > bool effects;
> > @@ -53,6 +55,8 @@
> >
> > std::set<std::string> m_profiles_loaded;
> >
> > + static void EndChunk(int channel);
> > +
> > public:
> > JukeBox();
> > void Init();
> >
> > _______________________________________________
> > Wormux-dev mailing list
> > [email protected]
> > https://mail.gna.org/listinfo/wormux-dev
> >
>
> _______________________________________________
> Wormux-dev mailing list
> [email protected]
> https://mail.gna.org/listinfo/wormux-dev
>
_______________________________________________
Wormux-dev mailing list
[email protected]
https://mail.gna.org/listinfo/wormux-dev