Home | History | Annotate | Download | only in server

Lines Matching refs:transport

45 	struct cras_bt_transport *transport;
47 transport = calloc(1, sizeof(*transport));
48 if (transport == NULL)
51 transport->object_path = strdup(object_path);
52 if (transport->object_path == NULL) {
53 free(transport);
57 transport->conn = conn;
58 dbus_connection_ref(transport->conn);
60 transport->fd = -1;
61 transport->volume = -1;
63 DL_APPEND(transports, transport);
65 return transport;
68 void cras_bt_transport_set_endpoint(struct cras_bt_transport *transport,
70 transport->endpoint = endpoint;
73 void cras_bt_transport_destroy(struct cras_bt_transport *transport)
75 DL_DELETE(transports, transport);
77 dbus_connection_unref(transport->conn);
79 if (transport->fd >= 0)
80 close(transport->fd);
82 free(transport->object_path);
83 free(transport->configuration);
84 free(transport);
90 syslog(LOG_INFO, "Bluetooth Transport: %s removed",
99 struct cras_bt_transport *transport;
101 DL_FOREACH(transports, transport) {
102 if (strcmp(transport->object_path, object_path) == 0)
103 return transport;
112 struct cras_bt_transport *transport;
116 DL_FOREACH(transports, transport) {
127 transport_list[num_transports++] = transport;
135 const struct cras_bt_transport *transport)
137 return transport->object_path;
141 const struct cras_bt_transport *transport)
143 return transport->device;
147 const struct cras_bt_transport *transport)
149 return transport->profile;
152 int cras_bt_transport_configuration(const struct cras_bt_transport *transport,
155 if (len < transport->configuration_len)
158 memcpy(configuration, transport->configuration,
159 transport->configuration_len);
165 const struct cras_bt_transport *transport)
167 return transport->state;
170 int cras_bt_transport_fd(const struct cras_bt_transport *transport)
172 return transport->fd;
175 uint16_t cras_bt_transport_write_mtu(const struct cras_bt_transport *transport)
177 return transport->write_mtu;
193 static void cras_bt_transport_state_changed(struct cras_bt_transport *transport)
195 if (transport->endpoint &&
196 transport->endpoint->transport_state_changed)
197 transport->endpoint->transport_state_changed(
198 transport->endpoint,
199 transport);
202 /* Updates bt_device when certain transport property has changed. */
203 static void cras_bt_transport_update_device(struct cras_bt_transport *transport)
205 if (!transport->device)
208 /* When the transport has non-negaive volume, it means the remote
213 if (transport->volume != -1) {
214 cras_bt_device_set_use_hardware_volume(transport->device, 1);
216 transport->device,
217 transport->volume * 100 / 127);
222 struct cras_bt_transport *transport,
247 transport->profile =
252 transport->state;
253 transport->state =
256 if (transport->state != old_state)
258 transport);
267 transport->codec = value;
273 transport->device = cras_bt_device_get(obj_path);
274 if (!transport->device) {
276 "transport properties",
278 transport->device =
279 cras_bt_device_create(transport->conn,
281 cras_bt_transport_update_device(transport);
295 free(transport->configuration);
296 transport->configuration_len = 0;
298 transport->configuration = malloc(len);
299 if (transport->configuration) {
300 memcpy(transport->configuration, value, len);
301 transport->configuration_len = len;
308 transport->volume = volume;
309 cras_bt_transport_update_device(transport);
323 transport->device = NULL;
325 transport->profile = 0;
327 transport->state = CRAS_BT_TRANSPORT_STATE_IDLE;
329 transport->codec = 0;
331 free(transport->configuration);
332 transport->configuration = NULL;
333 transport->configuration_len = 0;
353 int cras_bt_transport_set_volume(struct cras_bt_transport *transport,
364 transport->object_path,
381 if (!dbus_connection_send_with_reply(transport->conn, method_call,
403 int cras_bt_transport_acquire(struct cras_bt_transport *transport)
408 if (transport->fd >= 0)
413 transport->object_path,
422 transport->conn,
427 syslog(LOG_ERR, "Failed to acquire transport %s: %s",
428 transport->object_path, dbus_error.message);
444 DBUS_TYPE_UNIX_FD, &(transport->fd),
445 DBUS_TYPE_UINT16, &(transport->read_mtu),
446 DBUS_TYPE_UINT16, &(transport->write_mtu),
459 int cras_bt_transport_try_acquire(struct cras_bt_transport *transport)
467 transport->object_path,
476 transport->conn,
481 syslog(LOG_ERR, "Failed to try acquire transport %s: %s",
482 transport->object_path, dbus_error.message);
509 /* Done TryAcquired the transport so it won't be released in bluez,
511 if (transport->fd != fd)
518 /* Callback to trigger when transport release completed. */
528 syslog(LOG_WARNING, "Release transport returned error: %s",
537 int cras_bt_transport_release(struct cras_bt_transport *transport,
544 if (transport->fd < 0)
547 /* Close the transport on our end no matter whether or not the server
550 close(transport->fd);
551 transport->fd = -1;
555 transport->object_path,
565 transport->conn,
570 syslog(LOG_ERR, "Failed to release transport %s: %s",
571 transport->object_path, dbus_error.message);
589 transport->conn,
603 transport, NULL)) {