5 [DBus (name
= "org.gnome.SettingsDaemon.MediaKeys")]
6 interface MediaKeys
: GLib
.Object
{
7 public abstract void GrabMediaPlayerKeys (string application
, uint32 time
);
8 public abstract void ReleaseMediaPlayerKeys (string application
);
9 public signal void MediaPlayerKeyPressed (string application
, string keys
);
12 public class MMKeys
: Gmpc
.Plugin
.Base
{
13 public const int[] pversion
= {0,0,0};
14 private DBus
.Connection conn
;
15 private MediaKeys keys
;
17 public signal void play ();
18 public signal void next ();
19 public signal void previous();
20 public signal void stop ();
21 public signal void pause();
24 public override weak string get_name() {
28 public override weak int[] get_version() {
31 private void callback (MediaKeys mkeys
, string application
, string keys
) {
32 if(this
.get_enabled() == false) return;
33 if(application
!= "gmpc") return;
34 if(keys
== "Play") MPD
.Player
.play(server
);
35 else if(keys
== "Pause") MPD
.Player
.pause(server
);
36 else if(keys
== "Next") MPD
.Player
.next(server
);
37 else if(keys
== "Previous") MPD
.Player
.prev(server
);
38 else if(keys
== "Stop") MPD
.Player
.stop(server
);
41 stdout
.printf("Constructing plugin");
42 /* Set the plugin as an internal one and of type pl_browser */
44 conn
= DBus
.Bus
.get (DBus
.BusType
.SESSION
);
45 keys
= (MediaKeys
) conn
.get_object ( "org.gnome.SettingsDaemon",
46 "/org/gnome/SettingsDaemon/MediaKeys");
48 keys
.GrabMediaPlayerKeys("gmpc", (uint)0);
49 keys
.MediaPlayerKeyPressed
+= callback;
52 keys
.ReleaseMediaPlayerKeys("gmpc");
56 public Type
plugin_get_type () {
57 return typeof (MMKeys
);