LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 837|回复: 1

请问关于D-Bus的问题?

[复制链接]
发表于 2008-6-27 17:55:20 | 显示全部楼层 |阅读模式
我刚接触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包里都找不到,它们从哪调用的?
发表于 2009-3-3 16:22:51 | 显示全部楼层
dbus-glib 封装了 dbus.
高级货.
http://dbus.freedesktop.org/doc/ ... ml#sample-program-1

至于org_gnome_Rhythmbox_Player_get_playing,我也不知道.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表