1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
yauap - A simple command-line frontend for GStreamer
yauap is licenced under the GNU Lesser Public Licence.
See the file COPYING for details.
The latest version of yauap can be found at
http://savannah.nongnu.org/projects/yauap/
SUSE RPMs can be downloaded from
http://software.opensuse.org/download/home:/faust3/
Installation:
In order to compile and run yauap you will need to have at least the following
packages installed:
gcc
make
pkgconfig
gstreamer010
gstreamer010-plugins-base-oil
gstreamer010-plugins-good
gstreamer010-devel
gstreamer010-plugins-base-devel
dbus-1
dbus-1-x11
dbus-1-devel
dbus-1-glib
dbus-1-glib-devel
glib2
glib2-devel
Note that this list is for openSUSE 10.2. The packaging might be different
for your distribution.
Extract the yauap tarball with tar -xvzf yauap-version.tar.gz
Then cd to the source dir and type make.
If the build process completed without errors you can run
"make install" to install the player binary to /usr/bin/yauap
Afterwards yauap can be started by typing yauap on the command-line.
"yauap -h" will list the available command-line options.
To get started a simple yauap name_of_the_audio_file_you_want_to_play should do.
Keybindings:
SPACE
Pause/Unpause
<- ->
Seek backward/forward 10 seconds.
up and down
Seek backward/forward 1 minute.
q / ESC
Quit
/ and *
Decrease/increase volume.
Amarok Engine:
Amarok is a player with a nice graphical user interface available from
http://amarok.kde.org . Amarok can be configured to use yauap for the actual playback part.
In order to do this you need to compile Amarok with support for the yauap engine.
First install the following additional packages.
dbus-1-qt3
dbus-1-qt3-devel
Then get the latest Amarok svn sources and build them like described in http://amarok.kde.org/wiki/Installation_HowTo .
When you do the ./configure part make sure to pass the --with-yauap command-line switch to it.
Check the output of configure for
= The following extra functionality will be included:
...
= + yauap-engine
then continue with the Installation_HowTo
After the installation the engine should be selectable in Amarok under Settings->Configure Amarok->Engine
Development:
CVS is available at the project page http://savannah.nongnu.org/projects/yauap/.
The source layout
ChangeLog - contains the latest Changes
commandline/commandline.c - commandline control frontend for yauap
commandline/kbd.c - keyboard i/o helper functions
commandline/kbd.h - keyboard i/o declarations
contrib/* - RPM specfiles and an early version of the yauap-engine for amarok
COPYING - copy of the LGPL Licence
dbus-service/yauap-service.c - dbus control frontend for yauap
dbus-service/yauap-service.xml - Interface description for the yauap dbus service
main.c - main player code
Makefile - Makefile to build the main source dir and all subdirs
README - this file
yauap.h - c abstraction for the main player code (used by the frontends)
yauap itself (main.c) is abstracted to a C player object. See the player_t struct in yauap.h.
This player object initiates and controls the playback process. It uses GStreamer for the hard work.
Currently the player object (and thus GStreamer) can be controlled with 2 frontends:
1. The commandline frontend - It accepts commands from the keyboard and outputs status information to the console.
2. The dbus-service - It accepts commands from the DBus session bus and sends events to it. Basically it creates a GObject from
the C player struct and makes it accessible from the DBus.
Events (errors, track end, etc.) get passed from the player to the frontends.
The yauap DBus service:
As explained above the dbus-service will provide a yauapObject that is accessible via the org.yauap.CommandService.
The yauap object implements the org.yauap.CommandInterface with the following list of methods and their parameters:
Parametertypes can be found in dbus-service/yauap-service.xml
More detailed descriptions of the methods in yauap.h:
can_decode IN url OUT 1 on success 0 on failure
load IN url OUT 1 on success 0 on failure
quit
pause OUT 1 on success 0 on failure
stop OUT 1 on success 0 on failure
start IN start_offset in ms OUT 1 on success 0 on failure
seek IN offset in ms OUT 1 on success 0 on failure
get_length OUT length in ms
get_position OUT position in ms
get_metadata OUT NULL terminated string list of metadata in the form tag=value for example author=name etc...
get_audio_cd_contents IN cdrom_device (unix device name /dev/hdc etc.) OUT NULL terminated track list in the form
tracknr=length in seconds for example 01=400
get_scopedata OUT array with the size of 2048 bytes containing integer 16bit little endian stereo audio samples
get_volume OUT current volume in the range [0-100]
set_volume IN new_volume OUT 1 on success 0 on failure
Signals:
MetadataSignal: the streams metadata changed
EosSignal: the current stream ended
ErrorSignal IN message: a (fatal) error occured (note that the player will send an EosSignal afterwards)
2006.12.20
Sascha Sommer <ssommer@suse.de>
|