Complete.Org: Mailing Lists: Archives: freeciv-dev: June 2002:
[Freeciv-Dev] Re: cygwin audio
Home

[Freeciv-Dev] Re: cygwin audio

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: cygwin audio
From: swamp-dog@xxxxxxxxxxxx (Guy Harrison)
Date: Sun, 23 Jun 2002 09:37:20 GMT

On Fri, 21 Jun 2002 14:02:57 GMT, swamp-dog@xxxxxxxxxxxx (Guy Harrison)
wrote:

>The freeciv build fails. 'configure' tests for SDL successfully but the
>existence of "-mno-cygwin" and other MINGW specifics within 'sdl-config'
>is a problem for CygWin/X. Strictly speaking, the whole sdl build is
>wrong for CygWin/X. It should be targeted at X not Win but as we're only
>after sound it can be ignored. I haven't checked if that can be fixed
>because we don't know if it works yet.
>
>I reckon it can be persuaded to build if I mess with 'sdl-config'.
>Should this be the case then *if* civclient "mixes" ok then as per
>Andreas' suggestion, it'll be worth seeing how much of sdl can be
>dispensed with.

Finally some good news: sdl works! Furthermore there are 'configure'
options to reduce size substantially. There may be more.

SDL-1.2.4:
--disable-video --disable-joystick --disable-cdrom --disable-static

SDL_mixer-1.2.4:
--disable-music-cmd --disable-music-mod --disable-music-midi
--disable-music-ogg --disable-music-mp3 --disable-static

Only one bug. It can be investigated later when it's verified that
SDL.dll and SDL_mixer.dll are stable. For now I make the assumption it
will affect MINGW also and it's circumvented (atm) thus...

<audio_sdl.c>
static void stop()
{
/*~~~*/
#if defined(__CYGWIN__) || defined(__MINGW32__)
        Mix_HaltMusic();
        Mix_FreeMusic(mus);
        mus=NULL;
#else
/*~~~*/
  /* fade out over 2 sec */
  Mix_FadeOutMusic(2000);       <- effectively "NOP" !
#endif
}
</audio_sdl.c>

...without that change, the startup (looped) sound plays forever behind
all the sound effects and drives you nuts. ;-)

I can't build the MINGW target. No Win32 GTK for a start. Methinks it's
time to try it.

I envisage SDL.dll and SDL_mixer.dll being installed into the MINGW
civclient.exe folder so that windows will find "ours" first: the
end-user may have full versions installed. Indeed they may desire to use
their full versions (dunno why - at own risk etc) in which case they
simply delete "our" versions.

A MINGW target built this way will *require* these two DLLs even if sdl
is disabled at runtime. I could write code to dynamically load them but
as it's time consuming & boring I ain't gonna do it until sdl is proven.


-- 
swamp-dog@xxxxxxxxxxxx


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