如何使用C编程从dbus传递/返回结构
How to pass/return a structure from dbus using C programming?
我正在使用gstreamer-1.0构建一个音乐播放器。我使用sqlite3来存储mp3文件的元数据。我想使用dbus来实现gstreamer和数据库之间的通信。这基本上是将UI和音乐播放器的框架分开。而这样做,我想检索元数据已经存储在数据库中。我通过一个结构返回它。问题是,我如何编写xml文件,通过函数返回一个结构。我的结构和功能如下:
struct string_vars{
std::string title;
std::string album;
std::string artist;
std::string genre;
volatile long int real_time;
volatile long int current_time;
};
struct string_vars Gstreamer_class::req_meta_data(char *song_path
{
start_playbin_for_database(song_path);
return label_data;
}
我试过了:-
<method name="req_meta_data">
<arg type="s" name="song_path" direction="in">
<arg type="(issssxx)" name="label_data" direction="out">
</method>
我想这是错的。它给了我一个错误:-
无法加载"value- bus-music.xml":无法在这里放置元素make: *** [value-server-stub.h] Error 1
请帮帮我。
返回struct string_vars作为输出形参的签名如下
<method name="req_meta_data">
<arg type="s" name="song_path" direction="in">
<arg type="(ssssxx)" name="label_data" direction="out">
</method>
我删除了额外的" I "。
现在来看看你的问题,看起来你的构建系统被配置为从名为"value-dbus-music.xml"的dbus自省文件自动生成服务器端存根。
配置构建系统查找正确的XML文件
相关文章:
- 为什么将值返回函数传递给重载=运算符对运算符函数有效,而对其他运算符无效
- 将返回值从 exe 传递到 bat,并将其传递给 C# 中的进程
- C++方法是否可以根据传递给构造函数的参数具有不同的返回类型?
- C++:如何正确地将 deque::front() 返回的变量从函数中传递出去?
- 通过引用传递参数;函数返回类型是否必须为 VOID?
- 将数组作为多线程应用程序中函数的返回传递
- 如何在 c++ 窗口中将参数和返回的退出值传递到批处理文件/从批处理文件获取返回的退出值
- 为什么在按值返回时创建临时对象,而不是在按值传递给函数参数时创建临时对象
- 如何将一个函数的返回值作为另一个函数的参数传递?
- C++:如何使用传递引用在一个方法中返回多个值
- 复制构造函数、按值传递和按值返回、链式操作、编译器
- std::vector::p ush_back(T&&) 在直接传递返回 T&& 的函数时创建默认构造值 T
- 传递返回 void * 作为参数的函数
- 数组使用的堆栈(参数传递/返回)
- C++通过引用传递返回垃圾或错误的变量
- 将传递引用转换为传递返回
- 如何使用C编程从dbus传递/返回结构
- remove_if:传递返回bool的函数时谓词错误
- 内存分配问题传递/返回Struct *数组
- 在函数的出口通过引用传递(=返回)一个向量