Lines Matching refs:backend
63 pa_bluetooth_backend *backend;
141 static pa_dbus_pending* hf_dbus_send_and_add_to_pending(pa_bluetooth_backend *backend, DBusMessage *m,
146 pa_assert(backend);
149 pa_assert_se(dbus_connection_send_with_reply(pa_dbus_connection_get(backend->connection), m, &call, -1));
151 p = pa_dbus_pending_new(pa_dbus_connection_get(backend->connection), m, call, backend, call_data);
152 PA_LLIST_PREPEND(pa_dbus_pending, backend->pending, p);
164 r = dbus_connection_send_with_reply_and_block(pa_dbus_connection_get(card->backend->connection), m, -1, err);
247 static void hf_audio_agent_card_removed(pa_bluetooth_backend *backend, const char *path);
256 hf_audio_agent_card_removed(card->backend, card->path);
261 static struct hf_audio_card *hf_audio_card_new(pa_bluetooth_backend *backend, const char *path) {
265 card->backend = backend;
269 card->device_unlink_slot = pa_hook_connect(pa_bluetooth_discovery_hook(backend->discovery, PA_BLUETOOTH_HOOK_DEVICE_UNLINK),
371 static void hf_audio_agent_card_found(pa_bluetooth_backend *backend, const char *path, DBusMessageIter *props_i) {
378 pa_assert(backend);
384 card = hf_audio_card_new(backend, path);
418 d = pa_bluetooth_discovery_get_device_by_address(backend->discovery, card->remote_address, card->local_address);
424 card->transport = pa_bluetooth_transport_new(d, backend->ofono_bus_id, path, p, NULL, 0);
431 pa_hashmap_put(backend->cards, card->path, card);
439 static void hf_audio_agent_card_removed(pa_bluetooth_backend *backend, const char *path) {
442 pa_assert(backend);
447 card = pa_hashmap_remove(backend->cards, path);
457 pa_bluetooth_backend *backend;
461 pa_assert_se(backend = p->context_data);
485 hf_audio_agent_card_found(backend, path, &props_i);
493 PA_LLIST_REMOVE(pa_dbus_pending, backend->pending, p);
506 static void ofono_bus_id_destroy(pa_bluetooth_backend *backend) {
507 pa_hashmap_remove_all(backend->cards);
509 if (backend->ofono_bus_id) {
510 pa_xfree(backend->ofono_bus_id);
511 backend->ofono_bus_id = NULL;
512 pa_bluetooth_discovery_set_ofono_running(backend->discovery, false);
519 pa_bluetooth_backend *backend;
522 pa_assert_se(backend = p->context_data);
531 backend->ofono_bus_id = pa_xstrdup(dbus_message_get_sender(r));
533 hf_audio_agent_get_cards(backend);
538 PA_LLIST_REMOVE(pa_dbus_pending, backend->pending, p);
541 pa_bluetooth_discovery_set_ofono_running(backend->discovery, backend->ofono_bus_id != NULL);
565 static void hf_audio_agent_unregister(pa_bluetooth_backend *backend) {
569 pa_assert(backend);
570 pa_assert(backend->connection);
572 if (backend->ofono_bus_id) {
573 pa_assert_se(m = dbus_message_new_method_call(backend->ofono_bus_id, "/", HF_AUDIO_MANAGER_INTERFACE, "Unregister"));
575 pa_assert_se(dbus_connection_send(pa_dbus_connection_get(backend->connection), m, NULL));
577 ofono_bus_id_destroy(backend);
584 pa_bluetooth_backend *backend = data;
588 pa_assert(backend);
591 if (!pa_safe_streq(backend->ofono_bus_id, sender) && !pa_streq(DBUS_SERVICE_DBUS, sender))
612 ofono_bus_id_destroy(backend);
617 hf_audio_agent_register(backend);
637 hf_audio_agent_card_found(backend, p, &props_i);
646 hf_audio_agent_card_removed(backend, p);
657 pa_bluetooth_backend *backend = data;
659 pa_assert(backend);
662 if (!pa_safe_streq(backend->ofono_bus_id, sender)) {
667 pa_log_debug("HF audio agent has been unregistered by oFono (%s)", backend->ofono_bus_id);
669 ofono_bus_id_destroy(backend);
682 pa_bluetooth_backend *backend = data;
684 pa_assert(backend);
687 if (!pa_safe_streq(backend->ofono_bus_id, sender)) {
701 card = pa_hashmap_get(backend->cards, path);
730 pa_bluetooth_backend *backend = data;
734 pa_assert(backend);
759 pa_assert_se(dbus_connection_send(pa_dbus_connection_get(backend->connection), r, NULL));
767 pa_bluetooth_backend *backend;
775 backend = pa_xnew0(pa_bluetooth_backend, 1);
776 backend->core = c;
777 backend->discovery = y;
778 backend->cards = pa_hashmap_new_full(pa_idxset_string_hash_func, pa_idxset_string_compare_func, NULL,
783 if (!(backend->connection = pa_dbus_bus_get(c, DBUS_BUS_SYSTEM, &err))) {
786 pa_xfree(backend);
791 if (!dbus_connection_add_filter(pa_dbus_connection_get(backend->connection), filter_cb, backend, NULL)) {
793 pa_dbus_connection_unref(backend->connection);
794 pa_xfree(backend);
798 if (pa_dbus_add_matches(pa_dbus_connection_get(backend->connection), &err,
805 dbus_connection_remove_filter(pa_dbus_connection_get(backend->connection), filter_cb, backend);
806 pa_dbus_connection_unref(backend->connection);
807 pa_xfree(backend);
811 pa_assert_se(dbus_connection_register_object_path(pa_dbus_connection_get(backend->connection), HF_AUDIO_AGENT_PATH,
812 &vtable_hf_audio_agent, backend));
814 hf_audio_agent_register(backend);
816 return backend;
819 void pa_bluetooth_ofono_backend_free(pa_bluetooth_backend *backend) {
820 pa_assert(backend);
822 pa_dbus_free_pending_list(&backend->pending);
824 hf_audio_agent_unregister(backend);
826 dbus_connection_unregister_object_path(pa_dbus_connection_get(backend->connection), HF_AUDIO_AGENT_PATH);
828 pa_dbus_remove_matches(pa_dbus_connection_get(backend->connection),
835 dbus_connection_remove_filter(pa_dbus_connection_get(backend->connection), filter_cb, backend);
837 pa_dbus_connection_unref(backend->connection);
839 pa_hashmap_free(backend->cards);
841 pa_xfree(backend);