List FAQ

SourceForge Project Page


Hosted by: SourceForge.net Logo




Your donation to improve these apps is always appreciated!

Before you buy please read the refund policy


Overview

Main Player window

PlayerX is a media front end for playback in Linux & Windows systems. It is written using the latest version of the Gimp toolkit GT http://www.gtk.org/ for Windows and UNIX.

Player X is based on ideas of media players such as: WinAmp (win32), XINE, and others. What makes PlayerX unique is its complete multiplatform support. The Core player compiles and runs in Windows or Linux systems without modificatiions whatsoever.

PlayerX has the following features:

  1. Multi-platform support: Linux & Windows running the Gimp Toolkit.
  2. Skin based interface ported from GQMpeg http://gqmpeg.sourceforge.net/
    1. Available skins:
      1. built-in: Chrome (ported from XINE)
      2. Galaxy: Ported from XINE
      3. Toothy by Microsoft (taken from win32 media player)
  3. Built-in Pluging support: All media playback is done thru plugins.
  4. Available plugings are:
    1. Linux: MPG (for mp3 layer 1,2,3 playback), GnomeCD (for CD playback)
    2. Windows:
      1. MPG (for mp3 layer 1,2,3 playback)
      2. MCI - Media Control Interface: for wav, avi, midi, and CD audio playback

Architecture

Core

The Core PlayerX program loads the skin based user interface and the plugins installed in the user's home.

Plugins are located in:

User's home directory

  1. $HOME/.player_x/plugings (linux)
  2. C:\Documents and Settings\Administrator\.player_x\plugings (win32)

Env var: PX_PLUGINS_HOME

Skins are loaded from: User's home directory

  1. $HOME/.player_x/skins (linux)
  2. C:\Documents and Settings\Administrator\.player_x\skins (win32)

Plugin Architecture

Plugins are loaded by reading a simple plugin.xml spec file located in the folder described above. The XML file describes symbols or functions the plugin must implement as well as mime types supported & menu extensions to the Core Popup menu. For example:

<!-- Win32 MCI  plugin spec file -->
<plugin name="MCI Plugin" shortdesc="Media Control Interface Plugin" 
lib="mci" >
	<!-- The symbols/methods are required and must be implemented -->
	<symbol signal="S_PLAY" name="mciWndPlay" />

	<symbol signal="S_STOP" name="mciWndStop" />
	<symbol signal="S_PAUSE" name="mciWndPauseResume" />
	<symbol signal="S_ACTIVE" name="mciWndActive" />
	<symbol signal="S_GET_LENGTH" name="mciWndLength" />
	<symbol signal="S_SEEK_FRAME" name="mciWndSeek" />
	<symbol signal="S_STREAM_INFO" name="mciWndOpen" />

	<!-- volume methods -->
	<symbol signal="S_GET_VOLUME" name="mciWndGetVolume" />
	<symbol signal="S_SET_VOLUME" name="mciWndSetVolume" />

	<!-- These symbols control the Audio CD Playback -->
	<!-- They are optional -->
	<symbol signal="S_AUCD_START" name="mciWndPlayCD" />

	<symbol signal="S_AUCD_NEXT" name="mciWndNextCDTrack" />
	<symbol signal="S_AUCD_PREV" name="mciWndPrevCDTrack" />

	<!-- Supported mime types: -->
	<!-- Tells the core what files can be loaded into the playlist -->
	<mime ext=".wav" type="audio/wav" />
	<mime ext=".avi" type="audio/avi" />

	<mime ext=".mid" type="audio/midi" />

	<!-- Core Popup menu extensions -->
	<!-- They will beadded to the main plugins popup menu -->
	<menu name="Start CD player" icon="gtk-cdrom" action="mciWndPlayCD" />
	<menu name="Next CD track" icon="" action="mciWndNextCDTrack" />
	<menu name="Prev CD track" icon="" action="mciWndPrevCDTrack" />
</plugin>

Calaxy Skin
Skin Interface


The skin library (libskin.{dll,so}) is a port from the GQMPeg SLIK skin interface (http://gqmpeg.sourceforge.net/) modified to compile and run in win32.

Modifications from the original SLIK branch include:

  1. Skin specs are based on XML instead of plain text files
  2. Miscellaneous imporvements: Tootip additions, etc.

Player X XML Skin specification uses the following widgets for media playback. All names of the widgets are required and cannnot change.

Toothy Skin
<!-- Galaxy Skin XML -->
<!-- XML Skin SPEC - See SKINSPEC.DTD -->
<!-- Main Background -->
<ui name="main"
	image="MainBg.png" 
	focus_alpha="0">

<!-- media navigation btns: play.pause, stop, next, prev -->
<button  name="next"
	prelight="TRUE"
	image="MainNext.png"
	y="88"
	x="156" />
<button  name="play"
	prelight="TRUE"
	indicator="TRUE"
	image="MainPlay.png"
	y="88"
	x="76" />

<button  name="stop"
	prelight="TRUE"
	indicator="TRUE"
	image="MainStop.png"
	y="88"
	x="50" />

<button  name="prev"
	prelight="TRUE"
	image="MainPrev.png"
	y="88"
	x="129" />

<!-- these btns control the device type: Media files (Audio) and CD -->
<button  name="btnAudio"
	prelight="TRUE"
	image="MainAU.png"
	y="2"
	x="305" />

<button  name="btnCD"
	prelight="TRUE"
	image="MainCD.png"
	y="5"
	x="340" />

<button  name="playlist"
	prelight="TRUE"
	image="MainEject.png"
	y="88"
	x="182" />


<button  name="exit"
	prelight="TRUE"
	image="MainPower.png"
	y="86"
	x="8" />

<!-- Song & timer labels -->
<text  name="titlelabel"
	data="Title goes here	"
	image="LettersTitle.png"
	length="25"
	y="35"
	x="20" />

<text  name="timelabel"
	data="00:00:00"
	image="LettersTitle.png"
	length="12"
	y="35"
	x="200" />


<text  name="applabel"
	data="MP3 Player"
	image="LettersTitle.png"
	length="10"
	y="100"
	x="293" />

<!-- 2 sliders: volume and song playback -->

<slider  name="volume"
	sizeable="FALSE"
	stretch="FALSE"
	border_2="0"
	border_1="0"
	trough_length="70"
	vertical="FALSE"
	reversed="FALSE"
	prelight="FALSE"
	pressable="FALSE"
	length="70"
	y="56"
	x="345"
	image="MainVolumeBg.png" />


<slider  name="play"
	sizeable="FALSE"
	stretch="FALSE"
	border_2="0"
	border_1="0"
	trough_length="250"
	vertical="FALSE"
	reversed="FALSE"
	prelight="FALSE"
	pressable="FALSE"
	length="236"
	y="57"
	x="36"
	image="SliderHBg.png" />
</ui>

Plugin List

  1. MPG (Linux/Win32): For mp3 playback
  2. GnomeCD (Linux): For audio CD playback
  3. MCI CDAudio (Win32): For Audio CD devices under Windows
  4. MCI WAV/MIDI (Win32): For WAVE/MIDI playback under windows

 

Author: Vladimir Silva