<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Eean</id>
	<title>VideoLAN Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Eean"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Eean/"/>
	<updated>2026-11-04T17:14:39Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2010&amp;diff=15553</id>
		<title>SoC 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2010&amp;diff=15553"/>
		<updated>2010-02-21T22:44:09Z</updated>

		<summary type="html">&lt;p&gt;Eean: /* Main ideas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Google Summer of Code 2010.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This wiki page covers the attempt by the [[VideoLAN]] project to act as a mentoring organization for [http://code.google.com/soc/ Google Summer of Code], in order to improve {{VLC}} .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction &amp;amp; Information ==&lt;br /&gt;
&lt;br /&gt;
This wiki page covers the attempt by the [[VideoLAN]] project to act as a mentoring organization for [http://code.google.com/soc/ Google Summer of Code], in order to improve {{VLC}} .&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== VLC media player ===&lt;br /&gt;
{{VLC}} is a cross-platform multimedia player, encoder and streamer application.&lt;br /&gt;
It is one of the most successful open-source projects without any professional structure underneath.&lt;br /&gt;
&lt;br /&gt;
{{VLC}} is downloaded at an approximate monthly rate of 5 millions from the main website and that&#039;s not including third-party distributions (Linux)!&lt;br /&gt;
&lt;br /&gt;
You can find more information on [http://en.wikipedia.org/wiki/VLC_media_player VLC on Wikipedia] or on this [[Main_Page|wiki]].&lt;br /&gt;
&lt;br /&gt;
=== Summer of Code ===&lt;br /&gt;
&lt;br /&gt;
If selected and developed, SoC projects for VLC will be included in later releases.&lt;br /&gt;
All projects are covered by the GPL licence. (v2+)&lt;br /&gt;
&lt;br /&gt;
=== Ideas for VLC ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Read this&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This page is split in three lists of ideas:&lt;br /&gt;
&lt;br /&gt;
# [[Mini_Projects]] are short-span projects which can be given as Qualification tasks.&lt;br /&gt;
# The &#039;&#039;main ideas&#039;&#039; are what seem to be &#039;&#039;key projects&#039;&#039; for VLC and should be more &#039;&#039;thrilling&#039;&#039; than the other ones; we have assigned a potential mentor to each of these.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Original good ideas will be valued&#039;&#039;&#039;. Last year, half of the ideas were given by students.  We don&#039;t want to impose anything. This is free and Open Source software.&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t want to apply for SoC but want other ideas to develop on, check the [[Mini Projects]] page!&lt;br /&gt;
&lt;br /&gt;
And on the IRC channel, you can have even more ideas.&lt;br /&gt;
&lt;br /&gt;
== Main ideas ==&lt;br /&gt;
&lt;br /&gt;
=== Assembly optimizations in VLC ===&lt;br /&gt;
&lt;br /&gt;
If you are fond of writing ASM and you are fluent in MMX/SSE2, there are many interesting things in VLC to speed up.&lt;br /&gt;
* Profiling VLC.&lt;br /&gt;
* memcpy implementations in SSE* and MMX (see modules/misc/memcpy/fastmemcpy.h)&lt;br /&gt;
* video filters ASM speedups (see modules/video_filter/blend.c)&lt;br /&gt;
* audio filters ASM speedups (see modules/audio_filter/equalizer.c)&lt;br /&gt;
* Porting other ASM video filters to VLC.&lt;br /&gt;
&lt;br /&gt;
This project needs some good ASM knowledge and good C experience.&lt;br /&gt;
&lt;br /&gt;
* Stuff to read: http://www.agner.org/optimize/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:J-b|jb]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Add Proxy Support ===&lt;br /&gt;
&lt;br /&gt;
Add a central Proxy Server option for all the HTTP operations performed by vlc.This project will need to add a UI component to VLC and then converting the way VLC interacts with Various Websites like last.fm or imdb.com&lt;br /&gt;
&lt;br /&gt;
=== VLC Taskbar/Toolbar Mode ===&lt;br /&gt;
&lt;br /&gt;
To Develop a Toolbar mode which shows the sound current sound track information,and avails basic control to users eliminating the hassle of swtching between UIs.This mode is already available in many Media players.VLC is lacking this feature currently.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:J-b|jb]]&#039;&#039;&lt;br /&gt;
Proposed by : pk&lt;br /&gt;
&lt;br /&gt;
=== Audio Filters ===&lt;br /&gt;
&lt;br /&gt;
We are looking for a skilled audiophile that knows a lot about audio theory and practice:&lt;br /&gt;
* to create or implement new algorithms, like SRS WoW or other 3D effects&lt;br /&gt;
* to work on channels mixing,&lt;br /&gt;
* to work on tracks mixing,&lt;br /&gt;
* to create scriptable new audio filters in lua and enable users to create whatever audio filtering function they want in a Lua script.&lt;br /&gt;
&lt;br /&gt;
This project needs some good audio knowledge and good C experience.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: [[User:Geal|geal]]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Test Suite ===&lt;br /&gt;
This project aims at making automatic tests to improve VLC quality.&lt;br /&gt;
&lt;br /&gt;
* Write a series of tests for vlc-internal&lt;br /&gt;
* Integrate a framework for automated plugins testing with the automake build system&lt;br /&gt;
* Automate the different codec playback/mux/etc tests&lt;br /&gt;
* Automate the subtitles tests&lt;br /&gt;
* Write tests for the different bindings: Mac OS X Framework/Python Bindings... etc.&lt;br /&gt;
&lt;br /&gt;
This project is a code project, require good knowledge of C&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: Rémi&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Qt embedded interface ===&lt;br /&gt;
&lt;br /&gt;
VLC uses Qt for its main interfaces on desktop systems. It would be nice to have the same type of UI on systems like Maemo or Windows Mobile.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: ILEoo&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Phonon Webcam Support ===&lt;br /&gt;
Phonon is a multimedia abstraction layer with multiple backends, including VLC. The goal of this project would be to create an API to allow Phonon application to display and access webcams. The API would then be implemented in phonon-vlc and other backends, such as phonon-gst, as time permits.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed mentor: Ian Monroe&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Mini Projects - More ideas ==&lt;br /&gt;
&lt;br /&gt;
This sections welcomes all &#039;&#039;&#039;Original&#039;&#039;&#039; ideas which can be implemented in a short span of time.However, We have a more general page for ideas for Project in {{VLC}}, that could give you ideas: [[Mini_Projects]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Gmail Integration ===&lt;br /&gt;
&lt;br /&gt;
To Develop a Combination of VLC Patch and a FireFox Extension , working together to set currently Playing track as Custom Message in Gmail Chat. The FireFox Extension will fetch the track Information from VLC instance running and will&lt;br /&gt;
* Either, generate an XmlHttpRequest to send the new status to Server.&lt;br /&gt;
* Or, Fire the Gmail Eventlisteners accordingly. &lt;br /&gt;
The project succesfully completed this way will be Platform Independent.Had it been done through Google Talk Client , it would have been available for Windows users only.Had it been done using VLC&amp;lt;-&amp;gt;Google server interaction, it would have required User authentications ,Proxy Handling etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Proposed by :&#039;&#039; pk&lt;br /&gt;
&lt;br /&gt;
== Questions? Contact us? ==&lt;br /&gt;
If you need to contact us for any questions, you can:&lt;br /&gt;
* use the [http://www.videolan.org/developers/lists.html vlc-devel] mailing list,&lt;br /&gt;
* come on IRC irc://irc.videolan.org #videolan&lt;br /&gt;
* contact one of the mentors or the backup mentors,&lt;br /&gt;
* or contact [[User:J-b| Jean-Baptiste Kempf]]&lt;br /&gt;
&lt;br /&gt;
=== Mentors ===&lt;br /&gt;
The proposed mentors are:&lt;br /&gt;
* jpeg&lt;br /&gt;
* remi&lt;br /&gt;
* xtophe&lt;br /&gt;
* jb&lt;br /&gt;
* dionoea&lt;br /&gt;
* jpsaman&lt;br /&gt;
* jpd&lt;br /&gt;
&lt;br /&gt;
=== Administrators ===&lt;br /&gt;
* jb&lt;br /&gt;
* xtophe&lt;br /&gt;
&lt;br /&gt;
[[Category:Activities]] [[Category:SoC]]&lt;/div&gt;</summary>
		<author><name>Eean</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=DBus-spec&amp;diff=7519</id>
		<title>DBus-spec</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=DBus-spec&amp;diff=7519"/>
		<updated>2007-02-05T20:04:59Z</updated>

		<summary type="html">&lt;p&gt;Eean: /* amarok */ yes it will&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Specification for a Common, Desktop neutral, Media Player D-Bus interface&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please note this document is not specific to VLC and is a work in progress.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color: red; font-weight: bold&amp;quot;&amp;gt;THIS IS A DRAFT&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What follows has been largely stolen from http://bmpx.beep-media-player.org/site/MPRIS_Interfacing_Specification&lt;br /&gt;
&lt;br /&gt;
This is an attempt to create a specification for media players to use, for &#039;&#039;&#039;YOUR&#039;&#039;&#039; applications to be able to interact with &#039;&#039;&#039;ANY&#039;&#039;&#039; Media Player &#039;&#039;&#039;YOU&#039;&#039;&#039; want to use on &#039;&#039;&#039;ANY&#039;&#039;&#039; desktop &#039;&#039;&#039;YOU&#039;&#039;&#039; want to use.&lt;br /&gt;
&lt;br /&gt;
This is in the spirit of http://www.freedesktop.org and uses code and ideas from this project, most notably D-Bus : http://dbus.freedesktop.org and uses ideas from http://www.musicbrainz.org&lt;br /&gt;
&lt;br /&gt;
= Other players =&lt;br /&gt;
&lt;br /&gt;
How other &amp;quot;Media Players&amp;quot; interact with D-Bus&lt;br /&gt;
&lt;br /&gt;
== bmpx ==&lt;br /&gt;
&lt;br /&gt;
http://bmpx.beep-media-player.org/site/MPRIS_Interfacing_Specification&lt;br /&gt;
&lt;br /&gt;
== banshee ==&lt;br /&gt;
&lt;br /&gt;
http://cvs.gnome.org/viewcvs/*checkout*/banshee/src/Banshee.Base/DBusPlayer.cs&lt;br /&gt;
&lt;br /&gt;
== rhythmbox ==&lt;br /&gt;
&lt;br /&gt;
http://cvs.gnome.org/viewcvs/rhythmbox/remote/dbus/rb-client.c?view=markup&lt;br /&gt;
&lt;br /&gt;
== muine ==&lt;br /&gt;
&lt;br /&gt;
http://cvs.gnome.org/viewcvs/muine/DBusLib/Player.cs?view=markup&lt;br /&gt;
&lt;br /&gt;
== amarok ==&lt;br /&gt;
&lt;br /&gt;
http://amarok.kde.org/wiki/DCOP_Functions&lt;br /&gt;
(D-Bus will replace DCOP in KDE4, Amarok 2.0)&lt;br /&gt;
&lt;br /&gt;
= Definitions =&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Media Player&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
An application, either with GUI or GUI-less (or which allows for both modes of operation) which is capable of playing back audio/video streams. The means by which it does accomplish that (e.g. which audio backend to use, and which output method) is out of the scope of this document.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Media Player&amp;quot; &#039;&#039;&#039;must&#039;&#039;&#039;:&lt;br /&gt;
* Be able to play back at least local storage file streams.&lt;br /&gt;
* Be able to play back at least one stream at a time.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Client&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
The Client is an unspecified application that will interact with the &amp;quot;Media Player&amp;quot; using D-Bus protocol.&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
* A softphone, that pauses, or step the volume down, when a call is being received.&lt;br /&gt;
* An applet that nicely integrates in your desktop environment, to control your &amp;quot;Media Player&amp;quot;.&lt;br /&gt;
* An instant messaging client which informs your buddies of what you&#039;re listening to.&lt;br /&gt;
* A monitor that stores in a database what you are listening to, for statistics purpose.&lt;br /&gt;
* A video editing software that calls an external &amp;quot;Media Player&amp;quot; to preview your work.&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Tracklist&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
A list of media files which resides within the &amp;quot;Media Player&amp;quot;, and whose implementation is opaque to the remote interface.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Tracklist&amp;quot; &#039;&#039;&#039;must&#039;&#039;&#039;:&lt;br /&gt;
* Hold an ordered list of locations of the media files as URIs (e.g. file:// or &amp;lt;nowiki&amp;gt;http://&amp;lt;/nowiki&amp;gt;). The implementation of this can be opaque, which means, it does not neccesarily need to store URIs, but upon remote request, it must be able to return an URI for a given media file.&lt;br /&gt;
* Keep the list in an ordered fashion. The order can be changed at any time trough e.g. sorting algorithms, in which case the &amp;quot;Media Player&amp;quot; must send information about the reordering trough it&#039;s remote interface&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;Tracklist&amp;quot; &#039;&#039;&#039;can&#039;&#039;&#039;, but does not &#039;&#039;&#039;need&#039;&#039;&#039; to:&lt;br /&gt;
* Hold &amp;quot;Metadata&amp;quot; about media files&lt;br /&gt;
&lt;br /&gt;
== &amp;quot;Metadata&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Metadata&amp;quot; is data that the files carry within themselves as a means of self-identification (commonly known as &amp;quot;tags&amp;quot;), or data that has been retrieved about the files trough other means, e.g. an internet service that provides additional data about particular media files.&lt;br /&gt;
&amp;quot;Metadata&amp;quot; is an array of dict entries, like (&amp;quot;length&amp;quot;, 253), (&amp;quot;name&amp;quot;, &amp;quot;Bolero&amp;quot;), (&amp;quot;video-codec&amp;quot;, &amp;quot;DIVX&amp;quot;). The dict entry is in the form (string, variant) eg: {sv}.&lt;br /&gt;
&lt;br /&gt;
Furthermore, &amp;quot;Metadata&amp;quot; can be split into two categories:&lt;br /&gt;
&lt;br /&gt;
1) Technical metadata:&lt;br /&gt;
* &amp;quot;URI&amp;quot;:&amp;quot;s&amp;quot;&lt;br /&gt;
* &amp;quot;length&amp;quot;:&amp;quot;i&amp;quot; (length in seconds)&lt;br /&gt;
* &amp;quot;video-codec&amp;quot;:&amp;quot;s&amp;quot; (video codec as a fourcc)&lt;br /&gt;
* &amp;quot;audio-codec&amp;quot;:&amp;quot;s&amp;quot; (audio codec as a fourcc)&lt;br /&gt;
* &amp;quot;video-bitrate&amp;quot;:&amp;quot;i&amp;quot; video bitrate&lt;br /&gt;
* &amp;quot;audio-bitrate&amp;quot;:&amp;quot;i&amp;quot; audio bitrate&lt;br /&gt;
* &amp;quot;audio-samplerate&amp;quot;:&amp;quot;i&amp;quot; (audio samplerate)&lt;br /&gt;
&lt;br /&gt;
2) Informational metadata&lt;br /&gt;
* &amp;quot;name&amp;quot;:&amp;quot;s&amp;quot;&lt;br /&gt;
* &amp;quot;artist&amp;quot;:&amp;quot;s&amp;quot;&lt;br /&gt;
* &amp;quot;album&amp;quot;:&amp;quot;s&amp;quot;&lt;br /&gt;
* &amp;quot;unique-id&amp;quot;:&amp;quot;s&amp;quot; : Musicbrainz Track Identifier as specified on http://musicbrainz.org/docs/specs/metadata_tags.html&lt;br /&gt;
* &amp;quot;genre&amp;quot;:&amp;quot;s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This list is informative, and can be extended up to your needs, for example: &amp;quot;age of the captain&amp;quot;:&amp;quot;i&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Only Required fields are: &amp;quot;URI&amp;quot; and &amp;quot;length&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= D-Bus =&lt;br /&gt;
&lt;br /&gt;
== The Service ==&lt;br /&gt;
&lt;br /&gt;
org.freedesktop.MediaPlayer&lt;br /&gt;
&lt;br /&gt;
All &amp;quot;Media Players&amp;quot; &#039;&#039;&#039;must&#039;&#039;&#039; request this name and do not let other &amp;quot;Media Players&amp;quot; &#039;steal&#039; this name.&lt;br /&gt;
Using libdbus, that would be:&lt;br /&gt;
&lt;br /&gt;
 DBusConnection *dbus_connection;&lt;br /&gt;
 DBusError dbus_error;&lt;br /&gt;
 dbus_bus_request_name( dbus_connection, &amp;quot;org.freedesktop.MediaPlayer&amp;quot;, 0, &amp;amp;dbus_error );&lt;br /&gt;
&lt;br /&gt;
To be able to request the name, and so, be able to communicate via D-Bus, no &amp;quot;Media Player&amp;quot; must be running. The &amp;quot;Media Player&amp;quot; may call the Quit method, and wait till the name is unregistered, to ensure this is the case.&lt;br /&gt;
&lt;br /&gt;
: I think this is a bad idea, it&#039;s not the place for a interop Spec to force single instance behaviour without a good reason (i run amarok all the time and use vlc to play videos or streams...). Why not suggest that mediaplayers register with the well known service name (&amp;quot;org.freedesktop.MediaPlayer&amp;quot;) with the options QueueService and suggest the media player should register an application specific service in addition?&lt;br /&gt;
&lt;br /&gt;
: if done that way we gain the feature to query the dbus daemon for all clients queued for that dbus name, so enumerating all current musicplayers that support the Spec is not problem. Contacting the players is not problem to because every client on dbus has a unique name anyway. DBus signal do AFAIK carry the dbus service name of the sending client, so there is no trouble knowing which player send a signal. [[User:textshell|textshell]]&lt;br /&gt;
&lt;br /&gt;
== The Object Hierarchy ==&lt;br /&gt;
&lt;br /&gt;
* / : Media Player identification&lt;br /&gt;
&lt;br /&gt;
* /Player : Playback control&lt;br /&gt;
&lt;br /&gt;
* /TrackList : TrackList management&lt;br /&gt;
&lt;br /&gt;
== The interface ==&lt;br /&gt;
&lt;br /&gt;
All methods must be accessed through the interface org.freedesktop.MediaPlayer&lt;br /&gt;
&lt;br /&gt;
i.e. calling Quit with qdbus would be:&lt;br /&gt;
 $ qdbus org.freedesktop.MediaPlayer /Player org.freedesktop.MediaPlayer.Quit&lt;br /&gt;
&lt;br /&gt;
== The Methods ==&lt;br /&gt;
&lt;br /&gt;
* /&lt;br /&gt;
&lt;br /&gt;
Identity : Identify the &amp;quot;Media Player&amp;quot; as in &amp;quot;VLC 0.9.0&amp;quot;, &amp;quot;bmpx 0.34.9&amp;quot;, &amp;quot;Totem 2.16.2&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;Identity&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;arg type=&amp;quot;s&amp;quot; direction=&amp;quot;out&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* /TrackList&lt;br /&gt;
&lt;br /&gt;
GetMetadata : Gives all meta data available for element at given position in the &amp;quot;TrackList&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;method name=&amp;quot;GetMetadata&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;arg type=&amp;quot;i&amp;quot; direction=&amp;quot;in&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;arg type=&amp;quot;a{sv}&amp;quot; direction=&amp;quot;out&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GetCurrentTrack : Position of Current URI in the &amp;quot;TrackList&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;GetCurrentTrack&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;arg type=&amp;quot;i&amp;quot; direction=&amp;quot;out&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GetLength : Number of elements in the &amp;quot;TrackList&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;GetLength&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;arg type=&amp;quot;i&amp;quot; direction=&amp;quot;out&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AddTrack : Appends an URI in the &amp;quot;TrackList&amp;quot;, play it immediately if the 2nd argument is TRUE&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;AddTrack&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;arg type=&amp;quot;s&amp;quot; /&amp;gt;&lt;br /&gt;
     &amp;lt;arg type=&amp;quot;b&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
DelTrack : Removes an URI from the &amp;quot;TrackList&amp;quot;, given its position&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;DelTrack&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;arg type=&amp;quot;i&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* /Player&lt;br /&gt;
&lt;br /&gt;
Next : Goes to the next element (what if we&#039;re at the end?)&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;Next&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prev : Goes to the previous element (what if we&#039;re at the beginning?)&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;Prev&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pause : If playing : pause. If paused : unpause. If stopped : start playing&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;Pause&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stop : Stop playing.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;Stop&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Play : If playing : rewind to the beginning of current track, else : start playing.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;Play&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Quit : Makes the &amp;quot;Media Player&amp;quot; exit.&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;method name=&amp;quot;Quit&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GetStatus : Return the status of &amp;quot;Media Player&amp;quot;: 0 = Playing, 1 = Paused, 2 = Stopped.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;GetStatus&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;arg type=&amp;quot;i&amp;quot; direction=&amp;quot;out&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
VolumeSet : Sets the volume (argument must be in [0;100])&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;VolumeSet&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;arg type=&amp;quot;i&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
GetVolume : Returns the current volume (must be in [0;100])&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;method name=&amp;quot;VolumeGet&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;arg type=&amp;quot;i&amp;quot; direction=&amp;quot;out&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PositionSet : Sets the playing position (argument must be in [0;100])&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;method name=&amp;quot;PositionSet&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;arg type=&amp;quot;i&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PositionGet : Returns the playing position (must be in [0;100])&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;method name=&amp;quot;PositionGet&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;arg type=&amp;quot;i&amp;quot; direction=&amp;quot;out&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/method&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The signals ==&lt;br /&gt;
&lt;br /&gt;
TrackChange : Signal is emitted when the &amp;quot;Media Player&amp;quot; plays another &amp;quot;Track&amp;quot;. Argument of the signal is the metadata attached to the new &amp;quot;Track&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;signal name=&amp;quot;TrackChange&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;arg type=&amp;quot;a{sv}&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/signal&amp;gt;&lt;br /&gt;
&lt;br /&gt;
StatusChange : Signal is emitted when the status of the &amp;quot;Media Player&amp;quot; change. The argument has the same meaning than the value returned by GetStatus.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;signal name=&amp;quot;StatusChange&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;arg type=&amp;quot;i&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/signal&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CapabilityChange : [TODO] Signal is emitted when the &amp;quot;Media Player&amp;quot; changes capabilities, Flags are CAN_GO_NEXT CAN_GO_PREV CAN_PAUSE CAN_PLAY CAN_SEEK CAN_PROVIDE_METADATA PROVIDES_TIMING&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;signal name=&amp;quot;CapabilityChange&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;arg type=TODO /&amp;gt;&lt;br /&gt;
   &amp;lt;/signal&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See Also =&lt;br /&gt;
* [http://bmpx.beep-media-player.org/site/MPRIS_Interfacing_Specification MPRIS Interfacing Specification] (BMPx wiki)&lt;br /&gt;
* [http://wiki.xmms2.xmms.se/index.php/Media_Player_Interfaces Media Player Interfaces] (XMMS2 wiki)&lt;/div&gt;</summary>
		<author><name>Eean</name></author>
	</entry>
</feed>