GLib BlueZ interface library ---------------------------- Derived from AGL Bluetooth binding source at [https://git.automotivelinux.org/apps/agl-service-bluetooth/] Source refactoring from the binding (not necessarily exhaustive): * bluetooth-agent.c -> bluez-agent.c * bluetooth-api.c -> api.c, call_work.c * bluetooth-bluez.c -> bluez-call.c * bluetooth-common.h -> common.h, bluez-call.h, call_work.h * bluetooth-conf.c -> conf.c * bluetooth-util.c -> mostly redundant, required things moved to api.c, bluez-call.c Copyright dates in files reflect their original creation dates and include revisions made in agl-service-bluetooth before December 2021. Building -------- The build requirements are: * glib 2.0 headers and libraries (from e.g. glib2-devel on Fedora or CentOS, libglib2.0-dev on Debian or Ubuntu). * meson To build: ``` meson build/ ninja -C build/ ``` Usage Notes ----------- * Users only need include `bluez-glib.h` and link to the library. * API calls generally return a gboolean, with `FALSE` indicating failure. * `bluez_init` must be called before any other API calls except `bluez_set_log_level` or one of the callback registration functions (e.g. `bluez_add_adapter_event_callback`). * A return code of `TRUE` from `bluez_init` indicates D-Bus connection to **BlueZ** has succeeded, but other API calls will not be useful until the provided callback has been called indicating a success status. This behavior stems from the possibility of running on systems without Bluetooth adapters present. * Callbacks may be registered after calling `bluez_init`, but note that there is a possibility that registration calls may briefly block if they occur during processing of an associated event. * It is advised that only one primary user of the library enable agent and autoconnect support to avoid conflicts. Contributing ------------ Questions can be sent to the agl-dev-community mailing list at . Bugs can be filed on the AGL JIRA instance at . Source contributions need to go through the AGL Gerrit instance, see .