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;
|
_shl_free_ char *session_path = NULL;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
if(!s->session) {
|
if(s->session) {
|
||||||
return 0;
|
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) {
|
if(0 > r) {
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
return sd_bus_message_append(reply, "o", session_path);
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int wfd_dbus_sink_get_peer(sd_bus *bus,
|
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 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,
|
//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;
|
int r;
|
||||||
|
|
||||||
if(wfd_session_get_id(s) != WFD_SESSION_DIR_OUT) {
|
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),
|
r = sd_bus_message_append(reply, "o", sink_path);
|
||||||
&sink_path);
|
|
||||||
if(0 > r) {
|
if(0 > r) {
|
||||||
return 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,
|
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)
|
sd_bus_error *ret_error)
|
||||||
{
|
{
|
||||||
struct wfd_session *s = userdata;
|
struct wfd_session *s = userdata;
|
||||||
return sd_bus_message_append(reply,
|
int r = sd_bus_message_append(reply,
|
||||||
"s",
|
"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,
|
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)
|
sd_bus_error *ret_error)
|
||||||
{
|
{
|
||||||
struct wfd_session *s = userdata;
|
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)
|
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("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_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("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_PROPERTY("State", "i", wfd_dbus_get_session_state, 0, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
|
||||||
SD_BUS_VTABLE_END,
|
SD_BUS_VTABLE_END,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue