mirror of
https://github.com/albfan/miraclecast.git
synced 2025-03-09 23:38:56 +00:00
Separate go_neg_request and provision_discovery
Signed-off-by: Andrey Gusakov <andrey.gusakov@cogentembedded.com>
This commit is contained in:
parent
563a415a24
commit
0d54cd4e0b
7 changed files with 75 additions and 1 deletions
|
@ -308,6 +308,7 @@ static const sd_bus_vtable peer_dbus_vtable[] = {
|
|||
0,
|
||||
SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
|
||||
SD_BUS_SIGNAL("ProvisionDiscovery", "ss", 0),
|
||||
SD_BUS_SIGNAL("GoNegRequest", "ss", 0),
|
||||
SD_BUS_VTABLE_END
|
||||
};
|
||||
|
||||
|
@ -408,6 +409,31 @@ void peer_dbus_provision_discovery(struct peer *p,
|
|||
log_vERR(r);
|
||||
}
|
||||
|
||||
void peer_dbus_go_neg_request(struct peer *p,
|
||||
const char *type,
|
||||
const char *pin)
|
||||
{
|
||||
_shl_free_ char *node = NULL;
|
||||
int r;
|
||||
|
||||
if (!type)
|
||||
return;
|
||||
if (!pin)
|
||||
pin = "";
|
||||
|
||||
node = peer_dbus_get_path(p);
|
||||
if (!node)
|
||||
return;
|
||||
|
||||
r = sd_bus_emit_signal(p->l->m->bus,
|
||||
node,
|
||||
"org.freedesktop.miracle.wifi.Peer",
|
||||
"GoNegRequest",
|
||||
"ss", type, pin);
|
||||
if (r < 0)
|
||||
log_vERR(r);
|
||||
}
|
||||
|
||||
void peer_dbus_formation_failure(struct peer *p, const char *reason)
|
||||
{
|
||||
_shl_free_ char *node = NULL;
|
||||
|
|
|
@ -200,6 +200,16 @@ void peer_supplicant_provision_discovery(struct peer *p,
|
|||
peer_dbus_provision_discovery(p, prov, pin);
|
||||
}
|
||||
|
||||
void peer_supplicant_go_neg_request(struct peer *p,
|
||||
const char *prov,
|
||||
const char *pin)
|
||||
{
|
||||
if (!p || !p->public)
|
||||
return;
|
||||
|
||||
peer_dbus_go_neg_request(p, prov, pin);
|
||||
}
|
||||
|
||||
void peer_supplicant_formation_failure(struct peer *p,
|
||||
const char *reason)
|
||||
{
|
||||
|
|
|
@ -1008,6 +1008,8 @@ static void supplicant_event_p2p_prov_disc_pbc_req(struct supplicant *s,
|
|||
sp->prov = t;
|
||||
free(sp->pin);
|
||||
sp->pin = NULL;
|
||||
|
||||
peer_supplicant_provision_discovery(sp->p, sp->prov, sp->pin);
|
||||
}
|
||||
|
||||
static void supplicant_event_p2p_go_neg_request(struct supplicant *s,
|
||||
|
@ -1048,7 +1050,7 @@ static void supplicant_event_p2p_go_neg_request(struct supplicant *s,
|
|||
|
||||
if (!sp->g) {
|
||||
log_debug("GO Negotiation Request from %s", mac);
|
||||
peer_supplicant_provision_discovery(sp->p, sp->prov, sp->pin);
|
||||
peer_supplicant_go_neg_request(sp->p, sp->prov, sp->pin);
|
||||
} else {
|
||||
log_debug("GO Negotiation Request from already connected peer %s",
|
||||
mac);
|
||||
|
@ -1098,6 +1100,8 @@ static void supplicant_event_p2p_prov_disc_show_pin(struct supplicant *s,
|
|||
sp->prov = t;
|
||||
free(sp->pin);
|
||||
sp->pin = u;
|
||||
|
||||
peer_supplicant_provision_discovery(sp->p, sp->prov, sp->pin);
|
||||
}
|
||||
|
||||
static void supplicant_event_p2p_prov_disc_enter_pin(struct supplicant *s,
|
||||
|
@ -1130,6 +1134,8 @@ static void supplicant_event_p2p_prov_disc_enter_pin(struct supplicant *s,
|
|||
sp->prov = t;
|
||||
free(sp->pin);
|
||||
sp->pin = NULL;
|
||||
|
||||
peer_supplicant_provision_discovery(sp->p, sp->prov, sp->pin);
|
||||
}
|
||||
|
||||
static void supplicant_event_p2p_go_neg_success(struct supplicant *s,
|
||||
|
|
|
@ -101,6 +101,9 @@ void peer_supplicant_wfd_subelements_changed(struct peer *p);
|
|||
void peer_supplicant_provision_discovery(struct peer *p,
|
||||
const char *prov,
|
||||
const char *pin);
|
||||
void peer_supplicant_go_neg_request(struct peer *p,
|
||||
const char *prov,
|
||||
const char *pin);
|
||||
void peer_supplicant_formation_failure(struct peer *p, const char *reason);
|
||||
void peer_supplicant_connected_changed(struct peer *p, bool connected);
|
||||
|
||||
|
@ -109,6 +112,9 @@ void peer_dbus_properties_changed(struct peer *p, const char *prop, ...);
|
|||
void peer_dbus_provision_discovery(struct peer *p,
|
||||
const char *prov,
|
||||
const char *pin);
|
||||
void peer_dbus_go_neg_request(struct peer *p,
|
||||
const char *type,
|
||||
const char *pin);
|
||||
void peer_dbus_formation_failure(struct peer *p, const char *reason);
|
||||
void peer_dbus_added(struct peer *p);
|
||||
void peer_dbus_removed(struct peer *p);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue