device.h revision 88d7897d4c6e129c52d7f84a670d49e712e27fd1
1a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz/* 2a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * 3a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * BlueZ - Bluetooth protocol stack for Linux 4a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * 5de72271829f6bfd21aa6550a2ac6d81e35b53cadMarcel Holtmann * Copyright (C) 2006-2007 Nokia Corporation 6fb333f1c88df9c50529a390297565a6627bcf7adMarcel Holtmann * Copyright (C) 2004-2009 Marcel Holtmann <marcel@holtmann.org> 7a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * 8a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * 9a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * This program is free software; you can redistribute it and/or modify 10a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * it under the terms of the GNU General Public License as published by 11a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * the Free Software Foundation; either version 2 of the License, or 12a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * (at your option) any later version. 13a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * 14a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * This program is distributed in the hope that it will be useful, 15a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * but WITHOUT ANY WARRANTY; without even the implied warranty of 16a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * GNU General Public License for more details. 18a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * 19a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * You should have received a copy of the GNU General Public License 20a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * along with this program; if not, write to the Free Software 21a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 22a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz * 23a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz */ 24a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz 251a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann#define GENERIC_AUDIO_UUID "00001203-0000-1000-8000-00805F9B34FB" 26a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz 271a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann#define HSP_HS_UUID "00001108-0000-1000-8000-00805F9B34FB" 281a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann#define HSP_AG_UUID "00001112-0000-1000-8000-00805F9B34FB" 29a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz 301a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann#define HFP_HS_UUID "0000111E-0000-1000-8000-00805F9B34FB" 311a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann#define HFP_AG_UUID "0000111F-0000-1000-8000-00805F9B34FB" 32a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz 331a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann#define ADVANCED_AUDIO_UUID "0000110D-0000-1000-8000-00805F9B34FB" 34a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz 351a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann#define A2DP_SOURCE_UUID "0000110A-0000-1000-8000-00805F9B34FB" 361a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann#define A2DP_SINK_UUID "0000110B-0000-1000-8000-00805F9B34FB" 37a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz 381a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann#define AVRCP_REMOTE_UUID "0000110E-0000-1000-8000-00805F9B34FB" 391a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann#define AVRCP_TARGET_UUID "0000110C-0000-1000-8000-00805F9B34FB" 40a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz 41a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz/* Move these to respective .h files once they exist */ 42779b2cbee39544eefd8c09152e856ecc854c6707Johan Hedberg#define AUDIO_SOURCE_INTERFACE "org.bluez.AudioSource" 4326dc8445ffa66aa3c933442848c3a92070b25fb7Johan Hedberg#define AUDIO_CONTROL_INTERFACE "org.bluez.Control" 441a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann 45a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentzstruct source; 46a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentzstruct control; 47a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentzstruct target; 48d013a1eaa7beebbb49c1fe0015c70ad81566d97cJohan Hedbergstruct sink; 49d013a1eaa7beebbb49c1fe0015c70ad81566d97cJohan Hedbergstruct headset; 50d013a1eaa7beebbb49c1fe0015c70ad81566d97cJohan Hedbergstruct gateway; 5197e8180cfd8a2f31153bf40fed14826e064f7476Johan Hedbergstruct dev_priv; 52a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz 53caf9fdd6d0183afc3b21d1cd82eb637773c131deMarcel Holtmannstruct audio_device { 54548026e08bd9b83b3685d515a916e2cf674184f3Johan Hedberg struct btd_device *btd_dev; 55548026e08bd9b83b3685d515a916e2cf674184f3Johan Hedberg 561a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann DBusConnection *conn; 571a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann char *path; 581a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann bdaddr_t src; 591a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann bdaddr_t dst; 601a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann 6180b1146a20aed2b63119a4d6557e6c9ec9b084c2Johan Hedberg gboolean auto_connect; 6280b1146a20aed2b63119a4d6557e6c9ec9b084c2Johan Hedberg 631a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann struct headset *headset; 641a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann struct gateway *gateway; 651a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann struct sink *sink; 661a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann struct source *source; 671a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann struct control *control; 681a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann struct target *target; 698569aed5570e415a2d4361c521c0b511684e3b7eJohan Hedberg 7088d7897d4c6e129c52d7f84a670d49e712e27fd1Johan Hedberg guint hs_preauth_id; 7188d7897d4c6e129c52d7f84a670d49e712e27fd1Johan Hedberg 7297e8180cfd8a2f31153bf40fed14826e064f7476Johan Hedberg struct dev_priv *priv; 73a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz}; 74a53371133fb399bd7fc70c131a82b64e7e20bac8Luiz Augusto von Dentz 7560ec17b68922904833973af118ff91e0f1df1b04Luiz Augusto von Dentzstruct audio_device *audio_device_register(DBusConnection *conn, 765063d28f172642d0e51c49f1e5d5881c87a36f20Luiz Augusto von Dentz struct btd_device *device, 7712d81a98fe65d109c0b1caa242e96b005bcc8209Luiz Augusto von Dentz const char *path, const bdaddr_t *src, 7812d81a98fe65d109c0b1caa242e96b005bcc8209Luiz Augusto von Dentz const bdaddr_t *dst); 791a03aad91407d5b170787c24e32edfc2e673d76cMarcel Holtmann 8060ec17b68922904833973af118ff91e0f1df1b04Luiz Augusto von Dentzvoid audio_device_unregister(struct audio_device *device); 8192f94938b981fe6a892e365670d5fa4d58c94283Marcel Holtmann 829c3f955375abff0d9ec2c151a5ad4b402c0ac29eJohan Hedberggboolean audio_device_is_active(struct audio_device *dev, 8360ec17b68922904833973af118ff91e0f1df1b04Luiz Augusto von Dentz const char *interface); 84e7e1be5d17f182e5d4119fc47cc18732511e363eLuiz Augusto von Dentz 85e7e1be5d17f182e5d4119fc47cc18732511e363eLuiz Augusto von Dentztypedef void (*authorization_cb) (DBusError *derr, void *user_data); 86e7e1be5d17f182e5d4119fc47cc18732511e363eLuiz Augusto von Dentz 8788d7897d4c6e129c52d7f84a670d49e712e27fd1Johan Hedbergint audio_device_cancel_authorization(struct audio_device *dev, 8888d7897d4c6e129c52d7f84a670d49e712e27fd1Johan Hedberg authorization_cb cb, void *user_data); 8988d7897d4c6e129c52d7f84a670d49e712e27fd1Johan Hedberg 90e7e1be5d17f182e5d4119fc47cc18732511e363eLuiz Augusto von Dentzint audio_device_request_authorization(struct audio_device *dev, 91e7e1be5d17f182e5d4119fc47cc18732511e363eLuiz Augusto von Dentz const char *uuid, authorization_cb cb, 92e7e1be5d17f182e5d4119fc47cc18732511e363eLuiz Augusto von Dentz void *user_data); 93