The avplayer on the PMA can be controlled using qcop signals. This is a list of all known, tested, and working signals. The list is probably not complete.
|"stop()"||Stops the player. No effect if it is not playing.|
|"togglePaused()"||(Un-)Pauses the player. No effect if it is not playing.|
|"playCurrent()"||Starts playing the current item of the playlist. No effect is the player is not running. If the player is playing, the current Track is restarted.|
|"setPaused(int)" <n>||Unpauses the Player if <n> is 0, otherwise it pauses the player.|
|"setPlaymode(int)" <n>||Sets the playing mode of the player. <n> is a OR-ed bitmask, bit 0 (least significant) represents "Single", bit 1 represents "Scan", bit 2 represents "Repeat". However, I was not able to figure out how to set "Shuffle" yet. In particular, it is not bit 3. No effect if in video playing mode.|
|"skipForward()"||Skips forward one Track. No effect in video playing mode.|
|"skipBackward()"||Skips backward one Track. No effect in video playing mode.|
|"updateMediaLibrary()"||Issues an ARCLibrary update.|
|"play(QString)" <f>||Plays the media file with the absolute path <f>, bypassing the playlist. If the player GUI is not running, it is not started up - in this case, the player engine just starts playing the track without any GUI. This leads to a strange situation if the media file to be played is a video. The video image is hidden in this case.|
Volume Control is probably availible using QCop, too. But nobody was able to figure out the signal interface yet. So there is a different approach to get a volume contol command line interface, a little morning hack called "volctl". "volctl" can be found in the community branch of the openPMA Subversion repositry. The command line interface is pretty simple:
volctl without any arguments just writes the current volume setting to stdout and quits.
volctl <vol> with <vol> being an integer between 0 and 100 sets the volume to this level, writes the resulting level to stdout and quits.
volctl +<vol> raises the volume by <vol> (boundary checking is done to ensure a resulting level lower than or equal to 100), writes the resulting level to stdout and quits.
volctl -<vol> lowers the volume by <vol> (boundary checking is done to ensure a resulting greater than or equal to 0), writes the resulting level to stdout and quits.
If more than one argument is passed, volctl quits without doing anything. If an invalid argument (i.e. a string instead of a number) is passed, the volume is set to 0.
The ToggleApplet can toggle the external video, as well as the speaker and the screen-lock if fed with the right QCop Signals. This is a list of the signals investigated at the moment. The list is most probably incomplete.
|"toggleSpeaker()"||Toggles the speaker state and displays a message on the new state. No way to set the speaker state yet.|
|"toggleKeylock()"||Toggles the screen-lock and display a message on the new state. No way to set the screen-lock state.|
|"forceInternalVideo()"||Switches the video output to the internal LCD screen. No effect if LCD is already on.|
|"toggleExternalVideo()"||Toggles between internal and external video display. Setting either to LCD or to external is possibly by combining this with forceInternalVideo()|
|"suspendDevice()"||Suspends the PMA.|