gpt4 book ai didi

c++ - 如何使用 C 编程从 dbus 传递/返回结构?

转载 作者:太空狗 更新时间:2023-10-29 23:17:40 27 4
gpt4 key购买 nike

我正在使用 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>

我猜错了。它给了我一个错误:-

Unable to load "value-dbus-music.xml": Can't put element here 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 自省(introspection)文件自动生成服务器端 stub 。
配置构建系统以查找正确的 XML 文件。

关于c++ - 如何使用 C 编程从 dbus 传递/返回结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17145240/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com