diff mbox series

[1/2] sdl_mixer: add FluidSynth support

Message ID 20200702152547.258093-1-paul@crapouillou.net
State Accepted
Headers show
Series [1/2] sdl_mixer: add FluidSynth support | expand

Commit Message

Paul Cercueil July 2, 2020, 3:25 p.m. UTC
Add support for MIDI playback using FluidSynth.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
---
 package/sdl_mixer/sdl_mixer.mk | 11 +++++++++++
 1 file changed, 11 insertions(+)

Comments

Thomas Petazzoni July 12, 2020, 1:56 p.m. UTC | #1
On Thu,  2 Jul 2020 17:25:46 +0200
Paul Cercueil <paul@crapouillou.net> wrote:

> Add support for MIDI playback using FluidSynth.
> 
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>  package/sdl_mixer/sdl_mixer.mk | 11 +++++++++++
>  1 file changed, 11 insertions(+)

I've applied both patches, but I've changed a bit how the .mk file
handles the option. After both patches, it looks like this:

ifeq ($(BR2_PACKAGE_FLUIDSYNTH),y)
SDL_MIXER_DEPENDENCIES += fluidsynth
SDL_MIXER_CONF_OPTS += \
	--enable-music-midi \
	--enable-music-fluidsynth-midi
SDL_MIXER_HAS_MIDI = YES
endif

ifeq ($(BR2_PACKAGE_SDL_MIXER_MIDI_TIMIDITY),y)
SDL_MIXER_CONF_OPTS += \
	--enable-music-midi \
	--enable-music-timidity-midi
SDL_MIXER_HAS_MIDI = YES
endif

ifneq ($(SDL_MIXER_HAS_MIDI),YES)
SDL_MIXER_CONF_OPTS += --disable-music-midi
endif

Thanks!

Thomas
Paul Cercueil July 12, 2020, 5:39 p.m. UTC | #2
Hi Thomas,

Le dim. 12 juil. 2020 à 15:56, Thomas Petazzoni 
<thomas.petazzoni@bootlin.com> a écrit :
> On Thu,  2 Jul 2020 17:25:46 +0200
> Paul Cercueil <paul@crapouillou.net> wrote:
> 
>>  Add support for MIDI playback using FluidSynth.
>> 
>>  Signed-off-by: Paul Cercueil <paul@crapouillou.net>
>>  ---
>>   package/sdl_mixer/sdl_mixer.mk | 11 +++++++++++
>>   1 file changed, 11 insertions(+)
> 
> I've applied both patches, but I've changed a bit how the .mk file
> handles the option. After both patches, it looks like this:
> 
> ifeq ($(BR2_PACKAGE_FLUIDSYNTH),y)
> SDL_MIXER_DEPENDENCIES += fluidsynth
> SDL_MIXER_CONF_OPTS += \
> 	--enable-music-midi \
> 	--enable-music-fluidsynth-midi
> SDL_MIXER_HAS_MIDI = YES
> endif
> 
> ifeq ($(BR2_PACKAGE_SDL_MIXER_MIDI_TIMIDITY),y)
> SDL_MIXER_CONF_OPTS += \
> 	--enable-music-midi \
> 	--enable-music-timidity-midi
> SDL_MIXER_HAS_MIDI = YES
> endif
> 
> ifneq ($(SDL_MIXER_HAS_MIDI),YES)
> SDL_MIXER_CONF_OPTS += --disable-music-midi
> endif

It won't work then. --enable-music-midi automatically enables 
--enable-music-{native,fluidsynth,timidity}-midi, so these need to be 
manually disabled. Otherwise when you enable e.g. Fluidsynth, it will 
also enable Timidity even though the SDL_MIXER_MIDI_TIMIDITY option is 
OFF.

Cheers,
-Paul

> Thanks!
> 
> Thomas
> --
> Thomas Petazzoni, CTO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
Thomas Petazzoni July 12, 2020, 7:06 p.m. UTC | #3
On Sun, 12 Jul 2020 19:39:36 +0200
Paul Cercueil <paul@crapouillou.net> wrote:

> > I've applied both patches, but I've changed a bit how the .mk file
> > handles the option. After both patches, it looks like this:
> > 
> > ifeq ($(BR2_PACKAGE_FLUIDSYNTH),y)
> > SDL_MIXER_DEPENDENCIES += fluidsynth
> > SDL_MIXER_CONF_OPTS += \
> > 	--enable-music-midi \
> > 	--enable-music-fluidsynth-midi
> > SDL_MIXER_HAS_MIDI = YES
> > endif
> > 
> > ifeq ($(BR2_PACKAGE_SDL_MIXER_MIDI_TIMIDITY),y)
> > SDL_MIXER_CONF_OPTS += \
> > 	--enable-music-midi \
> > 	--enable-music-timidity-midi
> > SDL_MIXER_HAS_MIDI = YES
> > endif
> > 
> > ifneq ($(SDL_MIXER_HAS_MIDI),YES)
> > SDL_MIXER_CONF_OPTS += --disable-music-midi
> > endif  
> 
> It won't work then. --enable-music-midi automatically enables 
> --enable-music-{native,fluidsynth,timidity}-midi, so these need to be 
> manually disabled. Otherwise when you enable e.g. Fluidsynth, it will 
> also enable Timidity even though the SDL_MIXER_MIDI_TIMIDITY option is 
> OFF.

So, I guess we need this instead:

ifeq ($(BR2_PACKAGE_FLUIDSYNTH),y)
SDL_MIXER_DEPENDENCIES += fluidsynth
SDL_MIXER_CONF_OPTS += --enable-music-fluidsynth-midi
SDL_MIXER_HAS_MIDI = YES
else
SDL_MIXER_CONF_OPTS += --disable-music-fluidsynth-midi
endif

ifeq ($(BR2_PACKAGE_SDL_MIXER_MIDI_TIMIDITY),y)
SDL_MIXER_CONF_OPTS += --enable-music-timidity-midi
SDL_MIXER_HAS_MIDI = YES
else
SDL_MIXER_CONF_OPTS += --disable-music-timidity-midi
endif

ifeq ($(SDL_MIXER_HAS_MIDI),YES)
SDL_MIXER_CONF_OPTS += --disable-music-midi
else
SDL_MIXER_CONF_OPTS += --disable-music-midi
endif

what do you think ?

Thomas
Paul Cercueil July 12, 2020, 7:15 p.m. UTC | #4
Le dim. 12 juil. 2020 à 21:06, Thomas Petazzoni 
<thomas.petazzoni@bootlin.com> a écrit :
> On Sun, 12 Jul 2020 19:39:36 +0200
> Paul Cercueil <paul@crapouillou.net> wrote:
> 
>>  > I've applied both patches, but I've changed a bit how the .mk file
>>  > handles the option. After both patches, it looks like this:
>>  >
>>  > ifeq ($(BR2_PACKAGE_FLUIDSYNTH),y)
>>  > SDL_MIXER_DEPENDENCIES += fluidsynth
>>  > SDL_MIXER_CONF_OPTS += \
>>  > 	--enable-music-midi \
>>  > 	--enable-music-fluidsynth-midi
>>  > SDL_MIXER_HAS_MIDI = YES
>>  > endif
>>  >
>>  > ifeq ($(BR2_PACKAGE_SDL_MIXER_MIDI_TIMIDITY),y)
>>  > SDL_MIXER_CONF_OPTS += \
>>  > 	--enable-music-midi \
>>  > 	--enable-music-timidity-midi
>>  > SDL_MIXER_HAS_MIDI = YES
>>  > endif
>>  >
>>  > ifneq ($(SDL_MIXER_HAS_MIDI),YES)
>>  > SDL_MIXER_CONF_OPTS += --disable-music-midi
>>  > endif
>> 
>>  It won't work then. --enable-music-midi automatically enables
>>  --enable-music-{native,fluidsynth,timidity}-midi, so these need to 
>> be
>>  manually disabled. Otherwise when you enable e.g. Fluidsynth, it 
>> will
>>  also enable Timidity even though the SDL_MIXER_MIDI_TIMIDITY option 
>> is
>>  OFF.
> 
> So, I guess we need this instead:
> 
> ifeq ($(BR2_PACKAGE_FLUIDSYNTH),y)
> SDL_MIXER_DEPENDENCIES += fluidsynth
> SDL_MIXER_CONF_OPTS += --enable-music-fluidsynth-midi
> SDL_MIXER_HAS_MIDI = YES
> else
> SDL_MIXER_CONF_OPTS += --disable-music-fluidsynth-midi
> endif
> 
> ifeq ($(BR2_PACKAGE_SDL_MIXER_MIDI_TIMIDITY),y)
> SDL_MIXER_CONF_OPTS += --enable-music-timidity-midi
> SDL_MIXER_HAS_MIDI = YES
> else
> SDL_MIXER_CONF_OPTS += --disable-music-timidity-midi
> endif
> 
> ifeq ($(SDL_MIXER_HAS_MIDI),YES)
> SDL_MIXER_CONF_OPTS += --disable-music-midi
> else
> SDL_MIXER_CONF_OPTS += --disable-music-midi
> endif
> 
> what do you think ?

That would work.

-Paul

> Thomas
> --
> Thomas Petazzoni, CTO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
diff mbox series

Patch

diff --git a/package/sdl_mixer/sdl_mixer.mk b/package/sdl_mixer/sdl_mixer.mk
index 73eb821ff3..a35b184a23 100644
--- a/package/sdl_mixer/sdl_mixer.mk
+++ b/package/sdl_mixer/sdl_mixer.mk
@@ -23,10 +23,21 @@  SDL_MIXER_CONF_OPTS = \
 	--without-x \
 	--with-sdl-prefix=$(STAGING_DIR)/usr \
 	--disable-music-midi \
+	--disable-music-native-midi \
+	--disable-music-timidity-midi \
 	--disable-music-mod \
 	--disable-music-mp3 \
 	--disable-music-flac # configure script fails when cross compiling
 
+ifeq ($(BR2_PACKAGE_FLUIDSYNTH),y)
+SDL_MIXER_DEPENDENCIES += fluidsynth
+SDL_MIXER_CONF_OPTS += \
+	--enable-music-midi \
+	--enable-music-fluidsynth-midi
+else
+SDL_MIXER_CONF_OPTS += --disable-music-fluidsynth-midi
+endif
+
 ifeq ($(BR2_PACKAGE_LIBMAD),y)
 SDL_MIXER_CONF_OPTS += --enable-music-mp3-mad-gpl
 SDL_MIXER_DEPENDENCIES += libmad