Dingux (Dingoo Linux) => Development => Topic started by: DiegoSLTS on February 24, 2012, 10:33:04 pm

Title: SDL Audio
Post by: DiegoSLTS on February 24, 2012, 10:33:04 pm
I'm trying to port an app to OpenDingux that uses SDL for video and audio, and I'm having problems with audio. In the wiki i found that "As the integrated SDL library has been compiled to use ALSA, all the programs which are using SDL for sound should work just fine on OpenDingux", but I just have segmentation faults. If I use SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO); it crashes there, if I remove SDL_INIT_AUDIO it keeps working until it reaches SDL_OpenAudio(&desired, &obtained).

I'm not really sure if the SDL_INIT_AUDIO is needed (in my pc the game works the same with or without it).

I tried to change the library, using libAO, but SDL uses a "callback" method that libAO doesn't have, and I don't want to reimplement that method with semaphores or something like that.

Any ideas? Does SDL audio work? Would it work in the final release of OD?
Title: Re: SDL Audio
Post by: pcercuei on February 25, 2012, 01:15:59 am
SDL audio has always been working fine, you're using developer version 2?

Oh, and make sure you're not linking statically, that could explain your problem.
Title: Re: SDL Audio
Post by: DiegoSLTS on February 26, 2012, 03:43:31 am
Thanks, it wasn't the static linking, but knowing that SDL sound should work I found that I wasn't using the toolchain in the right way. Now it works fine.
Title: Re: SDL Audio
Post by: protomank on July 24, 2012, 01:55:12 pm
Hey Diago, can you please tell me how you solved this?
My game, built for Dingux, does not have audio in openDingux even if it only uses SDL_Audio and SDL_Mixer. I tryied to build it using the opendingux toolchain/libraries, but the result was the same (probally I need to completaly clean my toolchain enviroenment).
Title: Re: SDL Audio
Post by: DiegoSLTS on July 24, 2012, 04:26:18 pm
I have the toolchain uncompressed in /opt, then in the Makefile I put something like this:

TOOLCHAIN = /opt/opendingux-toolchain
CXX = $(BINDIR)/mipsel-linux-g++
etc ...

Or you can add /opt/opendingux-toolchain/usr/bin to your PATH environment variable and ignore the TOOLCHAIN line. Also, I had to go in some folders of the toolchain to set the permissions of the executables because "make" couldn't execute them.

Then, for SDL you have to use sdl-config to get the available flags, but if you use only 'sdl-config --cflags' it runs the sdl-config file from your OS. What I had to do is this:
SDL_CFLAGS = `/opt/opendingux-toolchain/usr/bin/sdl-config --cflags`
SDL_LIBS = `/opt/opendingux-toolchain/usr/bin/sdl-config --libs`

That way it runs sdl-config from the toolchain and gets the correct flags. That solved my sound problem, hope it works.

Another option is opening "/opt/opendingux-toolchain/usr/bin/sdl-config" from the toolchain in a text editor and look there what's returning if "--cflags" or "--libs" is passed as a parameter, then you can just copy that in your Makefile instead, but it's not a good practice.

Anyway, it sounded like you mixed some files from an older toolchain with some of the latest, I don't think it's a good idea.
Title: Re: SDL Audio
Post by: protomank on July 24, 2012, 04:28:55 pm
Yeah, good chance that the problem is due to sdl-config, I did not tought on that. Tonight I'll give it a try, thanks a lot.
But still is strange that sound isn't working as the app should be compatible, even if compiled for Dingux.