Release Audacious


sebt3

homebrew player (P. & C.)
Joined
Sep 9, 2008
Messages
4,886
Age
43
Location
France
Website
sebt3.openpandora.org
Hi boys,

like many I wasn't realy pleased by gmplayer. So I cross-compiled and packaged audacious with most it's plugins (obviously the GL plugins are off).
It's on the file archive grab it there.

Post feed-back here :)
 
Ehi seb you are a porting machine... :D

I wanna test all your game/app but unfortunately my Pandora isn't here.... :(
 
Fabulous!

Could I ask you for the steps you made on setting up the environment? the configure commands, and environment variables needed for successfully cross-compiling? I'm trying to port some programs, but I'm still battling with the set up, specially with linking with the right libraries. I'm on debian sid.

For example, for the sake of learning I was just trying to cross-compile audacious and I can't get it to find zlib, nor my system installed one nor the cross-compiled for arm-geabi.
 
joseluisjazz said:
Fabulous!

Could I ask you for the steps you made on setting up the environment? the configure commands, and environment variables needed for successfully cross-compiling? I'm trying to port some programs, but I'm still battling with the set up, specially with linking with the right libraries.
I had plan to write something, but I'm not good at this :(
First, I'm a debian/sid user for a long time but my coding skill are weak (I've written my first c code this week in more than 10 years...)
So when I find cpasjuste guide I was quite pleased. He didn't document much because his stuff is obvious to use :
- copie the 3 files somewhere (I choosed ~/Projects/Pandora/setup)
- chmod 755 the 2 *.sh files
- run toolchain.sh and then pnd_libs.sh
Now you've a cross-compiling toolchain installed.
Now you need packaging scripts :
- a script that will generate PXML.xml file for you :)
copy this script to : /usr/local/pandora/arm-2009q3/bin/genpxml with usual 755 file perm on it (toolchain.sh have added this to your PATH)
- a script that create the pnd
copy this script to : /usr/local/pandora/arm-2009q3/bin/pnd_make with usual 755 file perm on it
you may need to tweak this one.
Finally, you'll need to set-up your target : sudo "mkdir -p /mnt/utmp;chown $USER /mnt/utmp"

I added this to my .bashrc too :
pndmake_auto(){
pnd_make -c -p ~/Projects/Pandora/PNDs/$1.pnd -d /mnt/utmp/$1 -i /mnt/utmp/$1/icon.png
}

Easy so far ? :) Let's have a bit of shared knowledge :
/usr/local/pandora/arm-2009q3/bin/arm-none-linux-gnueabi-gcc is your compiler
libs are in : /usr/local/pandora/arm-2009q3/usr/lib
include : /usr/local/pandora/arm-2009q3/usr/include

Choose a simple package to port (I would recommand any SDL games that have no other deps), debian provide many of them at a little "apt-get source" away :) I'll take lbreakout2 as example. But the others lgames should be as easy to port (easy, left some parts from that cake :p ).
Extract it to ~/Projects/Pandora, cd into it :
cd ~/Projects/Pandora/lbreakout2-2.6.1
Set up build variables :
export CPPFLAGS="-I/usr/local/pandora/arm-2009q3/usr/include" LDFLAGS="-L/usr/local/pandora/arm-2009q3/usr/lib -Wl,-rpath,/usr/local/pandora/arm-2009q3/usr/lib"
./configure --host=arm-none-linux-gnueabi --with-gnu-ld --with-sdl-prefix=/usr/local/pandora/arm-2009q3/usr --prefix=/mnt/utmp/lbreakout2
--host tell configure we are cross-compiling to target "arm-none-linux-gnueabi" (begining of our gcc binary)
As most code use predefined (at compile time) path for data-files, we set the prefix to where our pnd will be mounted on the system.

If you don't miss build dependencies on your system and in your target system (/usr/local/pandora/arm-2009q3/*) this should run fine
Now build and install (as a user, no sudo involved...) :
make install

Now build the PXML :
genpxml
Edit it to fit your needs (be sure to read this before changing categories ; may want to remove the cpu-frenquency stuff) :
$EDITOR /mnt/utmp/lbreakout2/PXML.xml
Create an icon named /mnt/utmp/lbreakout2/icon.png
And finally build the pnd :
pndmake_auto lbreakout2

Test and enjoy your newly created games :)

Now, more advanced topic :

- when porting from debian, it's always a good idea to start with dpkg-buildpackage (even if this mean that you'll need to install all the build dependency on your x86 system) as you'll have debian patches applied and this will save you *hours* of hacking

- adding pandora control support :
this thread is your friend. (don't forget that "sed -ibck" is your friend too)

- Missing a header in your target directory :
check that this lib is available on your pandora (opkg list-installed)
if so find here your packages. add them to the library list, run pnd_lib.sh and make again
if not, you'll have to bundle that lib in your pnd (download its source, and install in the same prefix).

- Some libraries don't use standard include directory, let's have a look at my CPPFLAGS for audacious :
export CPPFLAGS="-I/usr/local/pandora/arm-2009q3/usr/include -I/usr/local/pandora/arm-2009q3/usr/include/gtk-2.0 -I/mnt/utmp/audacious/include -I/mnt/utmp/audacious/include/libmowgli -I/usr/local/pandora/arm-2009q3/usr/include/cairo -I/usr/local/pandora/arm-2009q3/usr/include/pango-1.0 -I/usr/local/pandora/arm-2009q3/usr/lib/gtk-2.0/include -I/usr/local/pandora/arm-2009q3/usr/include/atk-1.0 -I/usr/local/pandora/arm-2009q3/usr/include/glib-2.0 -I/usr/local/pandora/arm-2009q3/usr/lib/glib-2.0/include"
If you change this env variable, you'll need to reconfigure (as configure hard-code this in the Makefile)


- pkg_config don't find your package :
first be sure to use arm-none-linux-gnueabi-pkg-config
be sure that the *pc files are pointed out by PKG_CONFIG_PATH (ex : export PKG_CONFIG_PATH=/mnt/utmp/audacious/lib/pkgconfig)

- Save problem :
genpxml have already generated a script to set $HOME in the aufs fixing the nand write problem (which isn't one by the way...)
But some games save hiscores and such in a system wild allready existing file. This won't work because of an aufs bugs with FAT32.
To fix move these files in an other directory in /mnt/utmp/lbreakout2 and edit the launch script to copy them in the right place for the first run.


- Debugging on the pandy :
cd ~/Desktop
CMD=$(awk -F= '/Exec/{print $2}' lbreakout*desktop)

To mount your PND without executing it :
$CMD -m
Unmount with :
$CMD -u

pnd_run also generate a log in /tmp/


ready to see many new ports now :p
 
Last edited by a moderator:
sebt3 said:
Hi boys,

like many I wasn't realy pleased by gmplayer. So I cross-compiled and packaged audacious with most it's plugins (obviously the GL plugins are off).
It's on the file archive grab it there.

Post feed-back here :)
Auto reply :D

I was about to report sound problem with high change on screen. Then I discover that this use most of our CPU. Don't know why just yet
There is maybe a reason around this fact :
seb@seb:~/Projects/Pandora/vlc/vlc-1.1.0$ find . -type f -name *h -exec grep float {} ;|wc -l
142


By the way, any mod to split these 2 topics please ?
 
Last edited by a moderator:
GizmoTheGreen said:
can i request deadbeef? :)
oh, right
seems to work nicely here!
though its using OSS. no ALSA...
Sure :
http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,6,114

performence isn't better and still using oss emulation (still have to setup alsa dev env)
 
Last edited by a moderator:
sebt3 said:
GizmoTheGreen said:
can i request deadbeef? :)
oh, right
seems to work nicely here!
though its using OSS. no ALSA...
Sure :
http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,6,114

performence isn't better and still using oss emulation (still have to setup alsa dev env)

thanks alot! i know its probably not much better performance wise, but its my fav player :)
 
Last edited by a moderator:
Thankyou setb3! you are gold!

So I finally could cross-compile the fabulous most pager, although it was not as easy as I first thougth, and I'm sure I've done some things in not the best way. I'm open to critics. But anyway, here is the most bin and the complete most package. And here are the slang libs it depends on, and the whole slang package with include files, and plugins, because I'm not sure of what will be needed, if anything. ¿Could someone be kind of try it, to see if it works, please? It's very easy: "$ ./most example.txt". :) Thanks!

I share here the steps I followed, in case it's useful for others:
Code:
# download & compile dependencies
# -------------------------------
wget http://downloads.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip?use_mirror=sunet
wget http://www.geocities.jp/kosako3/oniguruma/archive/onig-5.9.2.tar.gz
wget ftp://ftp.fu-berlin.de/pub/unix/misc/slang/v2.2/slang-2.2.2.tar.bz2
wget ftp://space.mit.edu/pub/davis/most/most-5.0.0a.tar.bz2

tar xjf slang-2.2.2.tar.bz2; unzip pcre-8.10.zip; tar xzf onig-5.9.2.tar.gz; tar xjf most-5.0.0a.tar.bz2

cd pcre-8.10
./configure --host=arm-none-linux-gnueabi --with-gnu-ld --prefix=/usr/local/pandora/arm-2009q3/usr
make install; cd ..

cd onig-5.9.2
./configure --host=arm-none-linux-gnueabi --with-gnu-ld --prefix=/usr/local/pandora/arm-2009q3/usr
make install; cd ..

cd slang-2.2.2
./configure --host=arm-none-linux-gnueabi --with-gnu-ld --prefix=/mnt/utmp/slang2 --with-pcre=/usr/local/pandora/arm-2009q3/usr --with-onig=/usr/local/pandora/arm-2009q3/usr --with-png=/usr/local/pandora/arm-2009q3/usr --with-z=/usr/local/pandora/arm-2009q3/usr
make install; cd ..


# compile MOST
# ------------

cd most-5.0.0a
./configure --host=arm-none-linux-gnueabi --with-gnu-ld --prefix=/mnt/utmp/most --with-slang=/mnt/utmp/slang2/

# make sure your shell is /bin/bash
echo $SHELL
# if not, change it with chsh
chsh

# change line 18 of src/Makefile: 
cp src/Makefile src/Makefile.bkp1
sed '18cINSTALL     = /usr/bin/install -c --strip-program=/usr/local/pandora/arm-2009q3/bin/arm-none-linux-gnueabi-strip' src/Makefile.bkp1 > src/Makefile
# remove line 67 from src/Makefile
cp src/Makefile src/Makefile.bkp2; sed '67d' src/Makefile.bkp2 > src/Makefile

make install; cd ..


# create packages
# ------------
mkdir most_release && cd most_release
lastdir=`pwd`
cd /mnt/utmp/slang2 && tar czf $lastdir/libslang-2.2.2-pandora.tar.gz lib/ && tar czf $lastdir/slang-2.2.2_ALL-pandora.tar.gz *
cd /mnt/utmp/most && tar czf $lastdir/most-5.0.0a-pandora.tar.gz * ; cp bin/most $lastdir/
cd $lastdir && ls
 
sebt3 said:
GizmoTheGreen said:
can i request deadbeef? :)
oh, right
seems to work nicely here!
though its using OSS. no ALSA...
Sure :
http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,6,114

performence isn't better and still using oss emulation (still have to setup alsa dev env)
I just re-upped DeadBeef with alsa support.
 
Last edited by a moderator:
Just a quick tip:

Save Winamp 2.x Skins like this (this is a copy of the Refugee-Skin of Audacious as a test). Your skin could be in ...\Skins\myskin
skinst.gif

customize.org has a huge collection of those old skins. They are *.wsz files. WinRar is able to open those files. Put this bunch of files (that are in the wsz) in the appdata-path just like in the screenshot. Done thanks to the overlay mechanics of pnd ;)
Or save the wsz directly in ...\Skins without extracting.

Edit: Did not work with those skins from customize.org. Their names were listed in the preferences but they did not work, also showed no preview pic in the list. Hmm.
 
sebt3 said:
sebt3 said:
GizmoTheGreen said:
can i request deadbeef? :)
oh, right
seems to work nicely here!
though its using OSS. no ALSA...
Sure :
http://dl.openhandhelds.org/cgi-bin/pandora.cgi?0,0,0,0,6,114

performence isn't better and still using oss emulation (still have to setup alsa dev env)
I just re-upped DeadBeef with alsa support.

Doesn't write to NAND, does it? (sorry, I probably seem paranoid, but that's because I am ;P)

-God Ginrai
 
Last edited by a moderator:
Hi, Crossfade Plugin doesn't seem to work in Audacious.

If you can get it to work I will be the happiest music-listener, that owns a pandora!

thanks for your efforts!
 
mcobit said:
Hi, Crossfade Plugin doesn't seem to work in Audacious.
I knew it when I was uploading it. I'll work again on it (alsa at least) when I'll have time : it's not weekend anymore...

God Ginrai said:
Doesn't write to NAND, does it? (sorry, I probably seem paranoid, but that's because I am ;P)
Don't expect my pnds to write to the NAND any more : my packaging script include this but.....
Why are that paranoid with your nand ?
I had a palm back in time. Every app store their config in the nand, we got apps there too... etc Do you know what killed my T3 ? battery : it have an average of 5mn of batery life :( . but still no bad block in the nand.
the nand wont be killed if you use it. but just try to not overuse it.

But if you're that paranoid, don't add and remove SD-card in your pandy : that write to nand (desktop files at least...)
 
Last edited by a moderator:
It would be really great, when you can get crossfading to work. When I think about it, without native alsa, it can not work because there is no mixer for two different audiostreams in OSS emulation.
 
sebt3 said:
mcobit said:
Hi, Crossfade Plugin doesn't seem to work in Audacious.
I knew it when I was uploading it. I'll work again on it (alsa at least) when I'll have time : it's not weekend anymore...

God Ginrai said:
Doesn't write to NAND, does it? (sorry, I probably seem paranoid, but that's because I am ;P)
Don't expect my pnds to write to the NAND any more : my packaging script include this but.....
Why are that paranoid with your nand ?
I had a palm back in time. Every app store their config in the nand, we got apps there too... etc Do you know what killed my T3 ? battery : it have an average of 5mn of batery life :( . but still no bad block in the nand.
the nand wont be killed if you use it. but just try to not overuse it.

But if you're that paranoid, don't add and remove SD-card in your pandy : that write to nand (desktop files at least...)

It's not that I want to eliminate all writing to NAND. I just want it to be minimal.

-God Ginrai
 
Last edited by a moderator:
Bosbeetle said:
any chance on audacious 2.4 that has the audioscrobbler plug-in
Here you go.
Beside being version 2.4-alpha2, here the packaging changes :
- added support for a few more input plugins (ffmpeg, fluidsynth)
- added alsa support
- composite support
- added audioscrobbler (not default upstream, have to be activated in the prefs)
- bluetooth audio build desactivated by upstream...
- all containers supported
 
Last edited by a moderator:
sebt3 said:
Bosbeetle said:
any chance on audacious 2.4 that has the audioscrobbler plug-in
Here you go.
Beside being version 2.4-alpha2, here the packaging changes :
- added support for a few more input plugins (ffmpeg, fluidsynth)
- added alsa support
- composite support
- added audioscrobbler (not default upstream, have to be activated in the prefs)
- bluetooth audio build desactivated by upstream...
- all containers supported


Thank you!
worshippy.gif
 
Last edited by a moderator:
Back
Top