mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-02 09:01:46 -05:00
bluetooth: Add device pointer to transport
Transports always have an associated device, so add the pointer as a member to the structure, and remove the discovery pointer since it already exists in the device object.
This commit is contained in:
parent
80dd7c1070
commit
b36686ea9a
2 changed files with 11 additions and 8 deletions
|
|
@ -1022,13 +1022,14 @@ int pa_bluetooth_transport_acquire(pa_bluetooth_transport *t, const char *access
|
||||||
uint16_t i, o;
|
uint16_t i, o;
|
||||||
|
|
||||||
pa_assert(t);
|
pa_assert(t);
|
||||||
pa_assert(t->y);
|
pa_assert(t->device);
|
||||||
|
pa_assert(t->device->discovery);
|
||||||
|
|
||||||
dbus_error_init(&err);
|
dbus_error_init(&err);
|
||||||
|
|
||||||
pa_assert_se(m = dbus_message_new_method_call(t->owner, t->path, "org.bluez.MediaTransport", "Acquire"));
|
pa_assert_se(m = dbus_message_new_method_call(t->owner, t->path, "org.bluez.MediaTransport", "Acquire"));
|
||||||
pa_assert_se(dbus_message_append_args(m, DBUS_TYPE_STRING, &accesstype, DBUS_TYPE_INVALID));
|
pa_assert_se(dbus_message_append_args(m, DBUS_TYPE_STRING, &accesstype, DBUS_TYPE_INVALID));
|
||||||
r = dbus_connection_send_with_reply_and_block(pa_dbus_connection_get(t->y->connection), m, -1, &err);
|
r = dbus_connection_send_with_reply_and_block(pa_dbus_connection_get(t->device->discovery->connection), m, -1, &err);
|
||||||
|
|
||||||
if (dbus_error_is_set(&err) || !r) {
|
if (dbus_error_is_set(&err) || !r) {
|
||||||
dbus_error_free(&err);
|
dbus_error_free(&err);
|
||||||
|
|
@ -1058,13 +1059,14 @@ void pa_bluetooth_transport_release(pa_bluetooth_transport *t, const char *acces
|
||||||
DBusError err;
|
DBusError err;
|
||||||
|
|
||||||
pa_assert(t);
|
pa_assert(t);
|
||||||
pa_assert(t->y);
|
pa_assert(t->device);
|
||||||
|
pa_assert(t->device->discovery);
|
||||||
|
|
||||||
dbus_error_init(&err);
|
dbus_error_init(&err);
|
||||||
|
|
||||||
pa_assert_se(m = dbus_message_new_method_call(t->owner, t->path, "org.bluez.MediaTransport", "Release"));
|
pa_assert_se(m = dbus_message_new_method_call(t->owner, t->path, "org.bluez.MediaTransport", "Release"));
|
||||||
pa_assert_se(dbus_message_append_args(m, DBUS_TYPE_STRING, &accesstype, DBUS_TYPE_INVALID));
|
pa_assert_se(dbus_message_append_args(m, DBUS_TYPE_STRING, &accesstype, DBUS_TYPE_INVALID));
|
||||||
dbus_connection_send_with_reply_and_block(pa_dbus_connection_get(t->y->connection), m, -1, &err);
|
dbus_connection_send_with_reply_and_block(pa_dbus_connection_get(t->device->discovery->connection), m, -1, &err);
|
||||||
|
|
||||||
if (dbus_error_is_set(&err)) {
|
if (dbus_error_is_set(&err)) {
|
||||||
pa_log("Failed to release transport %s: %s", t->path, err.message);
|
pa_log("Failed to release transport %s: %s", t->path, err.message);
|
||||||
|
|
@ -1089,12 +1091,13 @@ static int setup_dbus(pa_bluetooth_discovery *y) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static pa_bluetooth_transport *transport_new(pa_bluetooth_discovery *y, const char *owner, const char *path, enum profile p, const uint8_t *config, int size) {
|
static pa_bluetooth_transport *transport_new(pa_bluetooth_device *d, const char *owner, const char *path, enum profile p,
|
||||||
|
const uint8_t *config, int size) {
|
||||||
pa_bluetooth_transport *t;
|
pa_bluetooth_transport *t;
|
||||||
unsigned i;
|
unsigned i;
|
||||||
|
|
||||||
t = pa_xnew0(pa_bluetooth_transport, 1);
|
t = pa_xnew0(pa_bluetooth_transport, 1);
|
||||||
t->y = y;
|
t->device = d;
|
||||||
t->owner = pa_xstrdup(owner);
|
t->owner = pa_xstrdup(owner);
|
||||||
t->path = pa_xstrdup(path);
|
t->path = pa_xstrdup(path);
|
||||||
t->profile = p;
|
t->profile = p;
|
||||||
|
|
@ -1186,7 +1189,7 @@ static DBusMessage *endpoint_set_configuration(DBusConnection *conn, DBusMessage
|
||||||
|
|
||||||
sender = dbus_message_get_sender(m);
|
sender = dbus_message_get_sender(m);
|
||||||
|
|
||||||
t = transport_new(y, sender, path, p, config, size);
|
t = transport_new(d, sender, path, p, config, size);
|
||||||
if (nrec)
|
if (nrec)
|
||||||
t->nrec = nrec;
|
t->nrec = nrec;
|
||||||
pa_hashmap_put(d->transports, t->path, t);
|
pa_hashmap_put(d->transports, t->path, t);
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@ typedef enum pa_bluetooth_transport_hook {
|
||||||
} pa_bluetooth_transport_hook_t;
|
} pa_bluetooth_transport_hook_t;
|
||||||
|
|
||||||
struct pa_bluetooth_transport {
|
struct pa_bluetooth_transport {
|
||||||
pa_bluetooth_discovery *y;
|
pa_bluetooth_device *device;
|
||||||
char *owner;
|
char *owner;
|
||||||
char *path;
|
char *path;
|
||||||
enum profile profile;
|
enum profile profile;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue