mirror of
https://github.com/albfan/miraclecast.git
synced 2025-03-09 23:38:56 +00:00
miracle-wfdctl: fix variety kinds of dbus interface issues
This commit is contained in:
parent
51cdba4d46
commit
e62a7f547d
1 changed files with 39 additions and 13 deletions
|
@ -444,16 +444,22 @@ static int wfd_dbus_sink_get_session(sd_bus *bus,
|
|||
_shl_free_ char *session_path = NULL;
|
||||
int r;
|
||||
|
||||
if(!s->session) {
|
||||
return 0;
|
||||
if(s->session) {
|
||||
wfd_dbus_get_session_path(s->session, &session_path);
|
||||
}
|
||||
else {
|
||||
session_path = strdup("/");
|
||||
}
|
||||
if(!session_path) {
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
r = wfd_dbus_get_session_path(s->session, &session_path);
|
||||
r = sd_bus_message_append(reply, "o", session_path);
|
||||
if(0 > r) {
|
||||
return r;
|
||||
}
|
||||
|
||||
return sd_bus_message_append(reply, "o", session_path);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int wfd_dbus_sink_get_peer(sd_bus *bus,
|
||||
|
@ -473,7 +479,12 @@ static int wfd_dbus_sink_get_peer(sd_bus *bus,
|
|||
return r;
|
||||
}
|
||||
|
||||
return sd_bus_message_append(reply, "o", peer_path);
|
||||
r = sd_bus_message_append(reply, "o", peer_path);
|
||||
if(0 > r) {
|
||||
return r;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//static int wfd_dbus_sink_has_audio(sd_bus *bus,
|
||||
|
@ -552,16 +563,21 @@ static int wfd_dbus_session_get_sink(sd_bus *bus,
|
|||
int r;
|
||||
|
||||
if(wfd_session_get_id(s) != WFD_SESSION_DIR_OUT) {
|
||||
return 0;
|
||||
sink_path = strdup("/");
|
||||
}
|
||||
else {
|
||||
wfd_dbus_get_sink_path(wfd_out_session_get_sink(s), &sink_path);
|
||||
}
|
||||
if(!sink_path) {
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
r = wfd_dbus_get_sink_path(wfd_out_session_get_sink(s),
|
||||
&sink_path);
|
||||
r = sd_bus_message_append(reply, "o", sink_path);
|
||||
if(0 > r) {
|
||||
return r;
|
||||
}
|
||||
|
||||
return sd_bus_message_append(reply, "o", sink_path);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int wfd_dbus_get_session_presentation_url(sd_bus *bus,
|
||||
|
@ -573,9 +589,14 @@ static int wfd_dbus_get_session_presentation_url(sd_bus *bus,
|
|||
sd_bus_error *ret_error)
|
||||
{
|
||||
struct wfd_session *s = userdata;
|
||||
return sd_bus_message_append(reply,
|
||||
int r = sd_bus_message_append(reply,
|
||||
"s",
|
||||
wfd_session_get_stream_url(s));
|
||||
wfd_session_get_stream_url(s) ? : "");
|
||||
if(0 > r) {
|
||||
return r;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int wfd_dbus_get_session_state(sd_bus *bus,
|
||||
|
@ -587,7 +608,12 @@ static int wfd_dbus_get_session_state(sd_bus *bus,
|
|||
sd_bus_error *ret_error)
|
||||
{
|
||||
struct wfd_session *s = userdata;
|
||||
return sd_bus_message_append(reply, "i", wfd_session_get_state(s));
|
||||
int r = sd_bus_message_append(reply, "i", wfd_session_get_state(s));
|
||||
if(0 > r) {
|
||||
return r;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int _wfd_fn_session_properties_changed(struct wfd_session *s, char **names)
|
||||
|
@ -634,7 +660,7 @@ static const sd_bus_vtable wfd_dbus_session_vtable[] = {
|
|||
SD_BUS_METHOD("Pause", NULL, NULL, wfd_dbus_session_pause, SD_BUS_VTABLE_UNPRIVILEGED),
|
||||
SD_BUS_METHOD("Teardown", NULL, NULL, wfd_dbus_session_teardown, SD_BUS_VTABLE_UNPRIVILEGED),
|
||||
SD_BUS_PROPERTY("Sink", "o", wfd_dbus_session_get_sink, 0, SD_BUS_VTABLE_PROPERTY_CONST),
|
||||
SD_BUS_PROPERTY("Url", "o", wfd_dbus_get_session_presentation_url, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
|
||||
SD_BUS_PROPERTY("Url", "s", wfd_dbus_get_session_presentation_url, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
|
||||
SD_BUS_PROPERTY("State", "i", wfd_dbus_get_session_state, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
|
||||
SD_BUS_VTABLE_END,
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue