BMPx
# BMPx

BMPx es el sucesor de Beep Media Player (BMP). Es un reproductor de audio (reproductor multimedia) de código libre para POSIX.

## Introducción

Mientras el BMP original fue un proyecto nacido de XMMS, el nuevo BMPx comparte sólo una mínima cantidad de código con la base original procedente de XMMS o BMP, y fue básicamente reescrito desde cero.

BMPx descarta el viejo sistema de plugins de XMMS y usa actualmente GStreamer (0.10.x) como la biblioteca para la reproducción de audio. Previa al lanzamiento de la versión 0.14.0, el motor de audio se basaba en las librerías Xine.

Hay previsiones para el desarrollo de pieles basadas en SVG, pero a finales de 2005, están todavía esos planes en fase temprana. Sin embargo, no hay planes para soportar las pieles de Winamp 3/5 "Modern" directamente. Hay una biblioteca que en teoría es capaz de cargar esas pieles (al menos hasta ahora parcialmente), llamada libWAL, pero el núcleo del código de las pieles de Winamp3/5 está bien guardado por AOL, no es realmente posible la realización de un cargador de pieles totalmente operativo con estas pieles a no ser que se haga un duro trabajo de ingeniería inversa para hacerlo.

Por otro lado, los desarrolladores decidieron definir un nuevo formato de piel, que también mejorarían en unos cuantos fallos del formato de pieles de WAL, tales como permitir los objetos vectorizados (en forma de SVG), y caminos vectorizados o en forma de spline lo que permitían por ejemplo a los deslizadores moverse (pensar en un deslizador de volumen con forma de ola, por ejemplo), solo por decir alguna de sus características.

## Relación con Beep Media Player y XMMS

BMPx fue reescrito por completo desde cero, y prácticamente no comparte código con BMP (y por tanto tampoco indirectamente con XMMS). Incluso en BMP, los desarrolladores ya habían reconstruido entre un 60% y un 70% del código. El código que han reescrito desde cero incluye, pero no está limitado a:

* El motor de reproducción
* El motor de pieles; también posee un motor para pieles de Winamp 2.x, pero ha sido reescrito desde cero
* El núcleo (Pero es difícil decir si XMMS tiene un "núcleo" o no)
* Todos los sistemas y diálogos adicionales para interfaz de usuario
* La interfaz remota (Ahora se basa en DBus y no tiene nada que ver con el sistema de sockets de XMMS)
* El motor de base de datos y el "backend" (escrito por Chong Kai Xiong, el otro líder de desarrollo de BMP/BMPx) y el almacenamiento en disco (escrito por Milosz Derezynski). XMMS no tiene base de datos en absoluto.

Esta lista podría continuar, pero es suficiente para decir que casi todo ha sido reescrito, excepto una pequeña parte tomada del viejo código, que la mayoría incluían funciones auxiliares para maniputar estructuras de datos como GLists, vectores de cadenas, etc.. y algunas utilidades para ficheros, e incluso aquellas funciones que ya habían sido reconstruidas por los desarrolladores de BMP en la etapa de desarrollo de BMP.

BMPx comparte como mucho un 2-3% de código con la fuente original que es XMMS.

