*** BMP PLUGIN PORTS ***
BMP (
Beep Media Player) is a nice multimedia player, forked from
XMMS code. While XMMS uses the old GTK+1 toolkit, BMP is based on the GTK+2 one (which uses unicode, has a nicer look and is overall better). Moreover, while XMMS code is a bit old and messy, many fixes and improvements have been made in the code for BMP.
The backside of the medal is that XMMS plugins (which are a lot!) are not supported by BMP. They need to be ported from GTK+1 to GTK+2; this is not so difficult, but there are some operations that need to be accomplished to ensure the proper functioning of the plugin in BMP:
- plugin code must link to GTK+2 libraries (gtk-2.0, glib-2.0, atk, pango) instead of GTK+1 ones;
- some GTK+1 functions (like on-top window creation) needs some adjustments fot GTK+2;
- some GTK+1 widgets no longer exist in GTK+2 and code using those widgets needs to be rewritten; in example, gtk_text from GTK+1 needs to be replaced with a proper use of gtk_text_view and gtk_text_buffer in GTK+2;
- all displayable string (like track titles and plugin descriptions) must be in UTF-8 encoding; conversions can be done using functions like g_locale_to_utf8;
- other stuff (use of libbmp VFS for file operations, ConfigDB for configuration retrieval/storage, ...).
There are more details about plugin porting on
BMP Wiki.
In this page of develia.org there are information, patches and sources of XMMS plugins that I've ported to BMP. Please, do not bother the original plugin authors with BMP-related questions. These ports are still experimental, so use them at your own risk! :)
XMMS-SID » BMP-SID
Type: | INPUT plugin |
Official homepage: | http://www.tnsp.org/xmms-sid.php |
Description: | XMMS-SID is a plugin for playing music that is commonly referred as "SID-tunes" aka music from Commodore 64 computer and it's close relatives. For the actual playing, XMMS-SID can utilize several emulator engines (libSIDPlay v1, libSIDPlay v2 with reSID-builder). |
My notes: | while doing this experimental port, I went a bit further; I've merged the BMP-SID code along with the original code, and made some additions in Makefile.am and configure.in; now it is possible to compile the BMP-SID plugin (named libbmpsid.so instead of libxmmssid.so) as well as the XMMS-SID plugin, the choice can be made by simply giving (or not) --enable-bmpsid at configure time. |
Source code for the BMP-aware version of XMMS-SID
(remember to use
--enable-bmpsid at configure time):
xmms-sid-0.8.0beta15-with-bmpsid-0.02.tar.bz2
For curious people, diffs containing all changes made to port the plugin:
(after patching, configure & co. need to be regenerated with autotools)
xmms-sid-0.8.0beta15-with-bmpsid-0.02-autotools.diff
xmms-sid-0.8.0beta15-with-bmpsid-0.02-sources.diff
A couple of screenshots of the plugin working with BMP:
about box options dialog
XMMS-OpenSPC » BMP-OpenSPC
Source code of BMP-OpenSPC:
bmp-OpenSPC-0.0.3-0.02.tar.bz2
For curious people, a diff containing all changes made to port the plugin:
(after patching, configure & co. need to be regenerated with autotools)
xmms-openspc-0.0.3-bmp-openspc-0.02.diff
A screenshot of the plugin working with BMP:
options dialog
XMMS LADSPA » BMP LADSPA
Type: | EFFECT plugin |
Link: | http://www.ecs.soton.ac.uk/~njl98r/code/ladspa/ |
Description: | XMMS LADSPA is an effect plugin for XMMS that provides (some of) the power of the Linux Audio Developer's Simple Plugin API to your everyday MP3 and all-around media player |
My notes: | another experimental port, now I can use the AM pitchshifter and freeverb effects on BMP, yay! I've made some changes in the makefile, you can compile the plugin for xmms or for bmp by using make xmms or make bmp; XMMS LADSPA of course doesn't provide LADSPA plugins, it only provides a way to use them in XMMS/BMP; you can get the LADSPA plugins from ladspa.org or plugin.org.uk, or you can also pick the handy Slackware tarball (called ladspa-kit) from develia.org, in tarballs->multimedia section. |
Source code of BMP LADSPA:
xmms_ladspa-1.1-with-bmp-support-0.01.tar.bz2
For curious people, a diff containing all changes made to port the plugin:
xmms_ladspa-1.1-with-bmp-support-0.01.diff
A screenshot of the plugin working with BMP:
plugin selector plugin configuration