Tag: dbus

如何编译基本的D-Bus / glib示例?

我正在尝试学习如何使用带有C绑定的D-Bus。 我以前从未使用过D-Bus。 我正在学习本教程 ,我认为这是官方教程 (Freedesktop.org)。 我已经读过它,直到这个段落给出了第一个示例程序,但不幸的是我在这个页面上没有看到任何关于如何编译它或包含哪些库的指示。 我错过了什么 ? 我的操作系统是Ubuntu 10.04 32bit。 我安装了libdbus-glib-1-dev软件包。 我尝试在源文件的开头添加#include ,并使用 $ gcc -ldbus-1 -I/usr/include/dbus-1.0/ -I/usr/lib/i386-linux-gnu/dbus-1.0/include -o my_dbus.bin my_dbus.c 但我一直都在失败: my_dbus.c: In function ‘main’: my_dbus.c:7:3: error: unknown type name ‘DBusGConnection’ my_dbus.c:8:3: error: unknown type name ‘GError’ … 我是否错过了教程中的一点? 不,你能帮我编译一下这段代码吗? 提前致谢。

使用gnome多媒体键无法让dbus信号监听器在C中工作

我正在尝试创建自己的应用程序,它将使用dbus监听gnome中的媒体键。 我找到了一个在python中运行的脚本,我试图通过将其转换为C来使其工作。我的c代码构建并正确运行但它不响应dbus信号。 这个python代码有效: #!/usr/bin/env python “””Printing out gnome multi media keys via dbus-python. “”” import gobject import dbus import dbus.service import dbus.mainloop.glib def on_mediakey(comes_from, what): “”” gets called when multimedia keys are pressed down. “”” print (‘comes from:%s what:%s’) % (comes_from, what) if what in [‘Stop’,’Play’,’Next’,’Previous’]: print (‘Got a multimedia key!’) else: print (‘Got a […]

如何确定使用哪种D-Bus绑定

如果屏幕保护程序正在运行或屏幕被锁定,我正试图检测所有Linux。 人们推荐dbus。 所以现在我试图用x11或C API自动检测什么样的dbus可用,然后使用它。 像qdubs,gdbus等? 谢谢

DBusWatch和DBusTimeout示例

我需要在C中编写一个应用程序,用于在dbus消息队列上异步发送和读取消息。 我已经读过,为此我应该使用连接提供的DBusWatch和DBusTimeout对象,但我找不到如何在任何地方使用这些对象的示例… 目前我使用dbus_connection_read_write_dispatch来做到这一点,但我已经读过它不推荐用于异步操作,所以我将不得不切换到创建我自己的main loop并使用它… 我的问题最接近的答案是这一个: http://lists.freedesktop.org/archives/dbus/2007-September/008555.html , 建议查看我所做的dbus-gmain.c文件,但是我发现有一个调用dbus_connection_set_watch_functions和dbus_connection_set_timeout_functions ,其他函数作为参数 – 我应该覆盖这些函数吗? 我应该按原样使用它们吗? 我根本无法弄清楚如何使用这些来读取和写入dbus消息队列… 任何想法都会受到欢迎……