|
我刚接触D-Bus,现在在看rhythmbox的源码,其中的rb-client.c中用到了D-Bus.
但它用的是dbus-glib.h中的方法,看不太明白:
bus_proxy = dbus_g_proxy_new_for_name (bus,
"org.freedesktop.DBus",
"/org/freedesktop/DBus",
"org.freedesktop.DBus");
if (!dbus_g_proxy_call (bus_proxy, "StartServiceByName", &error,
G_TYPE_STRING, "org.gnome.Rhythmbox",
G_TYPE_UINT, 0,
G_TYPE_INVALID,
G_TYPE_UINT, &start_service_reply,
G_TYPE_INVALID)) {
g_warning ("%s", error->message);
exit (1);
}
...
/* 5. play/pause/stop */
org_gnome_Rhythmbox_Player_get_playing (player_proxy, &is_playing, &error);
if (!annoy (&error)) {
rb_debug ("playback state: %d", is_playing);
if (play || pause || play_pause) {
if (is_playing != play || play_pause) {
rb_debug ("calling playPause to change playback state");
org_gnome_Rhythmbox_Player_play_pause (player_proxy, FALSE, &error);
annoy (&error);
} else {
rb_debug ("no need to change playback state");
}
} else if (stop) {
g_warning ("not implemented yet");
}
}
请问dbus-glib与dbus有什么区别和联系?谢谢!
还有org_gnome_Rhythmbox_Player_get_playing等方法在源码包及dbus包里都找不到,它们从哪调用的? |
|