| /* Copyright (c) 2013 The Chromium OS Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef CRAS_HFP_SLC_H_ |
| #define CRAS_HFP_SLC_H_ |
| |
| struct hfp_slc_handle; |
| |
| /* Callback to call when service level connection initialized. */ |
| typedef int (*hfp_slc_init_cb)(struct hfp_slc_handle *handle); |
| |
| /* Callback to call when service level connection disconnected. */ |
| typedef int (*hfp_slc_disconnect_cb)(struct hfp_slc_handle *handle); |
| |
| /* Creates an hfp_slc_handle to poll the RFCOMM file descriptor |
| * to read and handle received AT commands. |
| * Args: |
| * fd - the rfcomm fd used to initialize service level connection |
| * is_hsp - if the slc handle is created for headset profile |
| * device - The bt device associated with the created slc object |
| * init_cb - the callback function to be triggered when a service level |
| * connection is initialized. |
| * disconnect_cb - the callback function to be triggered when the service |
| * level connection is disconnected. |
| */ |
| struct hfp_slc_handle *hfp_slc_create(int fd, int is_hsp, |
| struct cras_bt_device *device, |
| hfp_slc_init_cb init_cb, |
| hfp_slc_disconnect_cb disconnect_cb); |
| |
| /* Destroys an hfp_slc_handle. */ |
| void hfp_slc_destroy(struct hfp_slc_handle *handle); |
| |
| /* Sets the call status to notify handsfree device. */ |
| int hfp_set_call_status(struct hfp_slc_handle *handle, int call); |
| |
| /* Fakes the incoming call event for qualification test. */ |
| int hfp_event_incoming_call(struct hfp_slc_handle *handle, |
| const char *number, |
| int type); |
| |
| /* Handles the call status changed event. |
| * AG will send notification to HF accordingly. */ |
| int hfp_event_update_call(struct hfp_slc_handle *handle); |
| |
| /* Handles the call setup status changed event. |
| * AG will send notification to HF accordingly. */ |
| int hfp_event_update_callsetup(struct hfp_slc_handle *handle); |
| |
| /* Handles the call held status changed event. |
| * AG will send notification to HF accordingly. */ |
| int hfp_event_update_callheld(struct hfp_slc_handle *handle); |
| |
| /* Sets battery level which is required for qualification test. */ |
| int hfp_event_set_battery(struct hfp_slc_handle *handle, int value); |
| |
| /* Sets signal strength which is required for qualification test. */ |
| int hfp_event_set_signal(struct hfp_slc_handle *handle, int value); |
| |
| /* Sets service availability which is required for qualification test. */ |
| int hfp_event_set_service(struct hfp_slc_handle *handle, int value); |
| |
| /* Sets speaker gain value to headsfree device. */ |
| int hfp_event_speaker_gain(struct hfp_slc_handle *handle, int gain); |
| |
| #endif /* CRAS_HFP_SLC_H_ */ |