2 * bluetoth-ag-handler.h
4 * Copyright (c) 2014 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: Hocheol Seo <hocheol.seo@samsung.com>
7 * Chethan TN <chethan.tn@samsung.com>
8 * Chanyeol Park <chanyeol.park@samsung.com>
9 * Rakesh MK <rakesh.mk@samsung.com>
11 * Licensed under the Apache License, Version 2.0 (the "License");
12 * you may not use this file except in compliance with the License.
13 * You may obtain a copy of the License at
15 * http://www.apache.org/licenses/LICENSE-2.0
17 * Unless required by applicable law or agreed to in writing, software
18 * distributed under the License is distributed on an "AS IS" BASIS,
19 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 * See the License for the specific language governing permissions and
21 * limitations under the License.
29 #include "bluetooth-ag-agent.h"
31 #define BT_HFP_SPEAKER_GAIN 'S'
32 #define BT_HFP_MICROPHONE_GAIN 'M'
34 #define AG_RING_INTERVAL 1500
41 uint8_t pcm_interface_rate;
47 } __attribute__((packed)) bt_addr;
49 int _bt_hfp_supported_features(bt_ag_info_t *hs, const char *buf);
50 int _bt_hfp_report_indicators(bt_ag_info_t *hs, const char *buf);
51 int _bt_hfp_enable_indicators(bt_ag_info_t *hdset, const char *buffer);
52 int _bt_hfp_call_hold(bt_ag_info_t *hs, const char *buf);
53 int _bt_hfp_answer_call(bt_ag_info_t *hs, const char *buf);
54 int _bt_hfp_dial_number(bt_ag_info_t *hs, const char *buf);
55 int _bt_hfp_signal_gain_setting(bt_ag_info_t *hs, const char *buf);
56 int _bt_hfp_terminate_call(bt_ag_info_t *hs, const char *buf);
57 int _bt_hfp_key_press(bt_ag_info_t *hs, const char *buf);
58 int _bt_hfp_last_dialed_number(bt_ag_info_t *hs, const char *buf);
59 int _bt_hfp_response_and_hold(bt_ag_info_t *hs, const char *buf);
60 int _bt_hfp_cli_notification(bt_ag_info_t *hs, const char *buf);
61 int _bt_hfp_dtmf_tone(bt_ag_info_t *hs, const char *buf);
62 int _bt_hfp_subscriber_number(bt_ag_info_t *hs, const char *buf);
63 int _bt_hfp_list_current_calls(bt_ag_info_t *hs, const char *buf);
64 int _bt_hfp_extended_errors(bt_ag_info_t *hs, const char *buf);
65 int _bt_hfp_call_waiting_notify(bt_ag_info_t *hs, const char *buf);
66 int _bt_hfp_operator_selection(bt_ag_info_t *hs, const char *buf);
67 int _bt_hfp_nr_and_ec(bt_ag_info_t *hs, const char *buf);
68 int _bt_hfp_voice_dial(bt_ag_info_t *hs, const char *buf);
69 int _bt_hfp_apl_command(bt_ag_info_t *hs, const char *buf);
70 int _bt_hfp_apl_command(bt_ag_info_t *hs, const char *buf);
71 int _bt_hfp_indicators_activation(bt_ag_info_t *hs, const char *buf);
72 int _bt_hfp_select_pb_memory(bt_ag_info_t *hs, const char *buf);
73 int _bt_hfp_read_pb_entries(bt_ag_info_t *hs, const char *buf);
74 int _bt_hfp_select_character_set(bt_ag_info_t *hs, const char *buf);
75 int _bt_hfp_find_pb_entires(bt_ag_info_t *hs, const char *buf);
76 int _bt_hfp_get_signal_quality(bt_ag_info_t *hs, const char *buf);
77 int _bt_hfp_get_battery_charge_status(bt_ag_info_t *hs, const char *buf);
78 int _bt_calling_stopped_indicator(void);
79 int _bt_incoming_call_indicator(const char *number, int type);
80 int _bt_call_waiting_indicator(const char *number, int type);
81 void _bt_hfp_deinitialize(void);
82 gboolean __bt_ring_timer_cb(gpointer data);
83 bt_hfp_agent_error_t _bt_hfp_event_indicator(int index);
84 void _bt_hfp_set_ag_indicator(uint32_t ag_features,
85 const bt_ag_indicators_t *ag_indicators,
86 int rh, const char *chld);
87 int _bt_calling_stopped_indicator(void);
88 int _bt_incoming_call_indicator(const char *number, int type);
89 int _bt_dial_number_response(void *t_device, bt_hfp_agent_error_t err);
90 int _bt_event_reporting_response(void *t_device,
91 bt_hfp_agent_error_t err);
92 int _bt_terminate_call_response(void *t_device,
93 hfp_state_manager_err_t err);
94 int _bt_call_hold_response(void *t_device, bt_hfp_agent_error_t err);
95 int _bt_key_press_response(void *t_device, bt_hfp_agent_error_t err);
96 int _bt_subscriber_number_indicator(const char *call_num,
97 int type, int service);
98 int _bt_subscriber_number_response(void *t_device,
99 bt_hfp_agent_error_t err);
100 int _bt_list_current_call_indicator(bt_ag_info_t *hs, int index, int direction,
101 int mode, int status, const char *call_num, int conference, int t_num);
102 int _bt_list_current_calls_response(void *t_device,
103 bt_hfp_agent_error_t err);
104 int _bt_nr_and_ec_response(void *t_device, bt_hfp_agent_error_t err);
105 int _bt_voice_dial_response(void *t_device, bt_hfp_agent_error_t err);
106 int _bt_indicators_activation_response(void *t_device,
107 bt_hfp_agent_error_t err);
108 int _bt_select_phonebook_memory_status_response(void *t_device,
110 uint32_t total, uint32_t used,
111 bt_hfp_agent_error_t err);
112 int _bt_select_phonebook_memory_list_response(void *t_device,
114 bt_hfp_agent_error_t err);
115 int _bt_select_phonebook_memory_response(void *t_device,
116 bt_hfp_agent_error_t err);
117 int _bt_read_phonebook_entries_list_response(void *t_device,
119 uint32_t number_length,
120 uint32_t name_length,
121 bt_hfp_agent_error_t err);
122 int _bt_read_phonebook_entries_response(void *t_device,
123 bt_hfp_agent_error_t err);
124 int _bt_find_phonebook_entries_status_indicator(uint32_t number_length,
125 uint32_t name_length);
126 int _bt_find_phonebook_entries_status_response(void *t_device,
127 bt_hfp_agent_error_t err);
128 int _bt_supported_character_generic_response(void *t_device,
129 char *character_set_list,
130 bt_hfp_agent_error_t err);
131 int _bt_set_characterset_generic_response(void *t_device,
132 bt_hfp_agent_error_t err);
133 int _bt_signal_quality_response(void *t_device,
136 bt_hfp_agent_error_t err);
137 int _bt_battery_charge_status_response(void *t_device,
140 bt_hfp_agent_error_t err);
141 int _bt_operator_selection_indicator(int mode, const char *oper);
142 int _bt_operator_selection_response(void *t_device,
143 bt_hfp_agent_error_t err);
144 int _bt_transmit_dtmf_response(void *t_device,
145 bt_hfp_agent_error_t err);
146 int _bt_find_phonebook_entries_response(void *t_device,
147 bt_hfp_agent_error_t err);
148 int _bt_response_and_hold_response(void *t_device,
149 bt_hfp_agent_error_t err);
150 int _bt_answer_call_response(void *hs, bt_hfp_agent_error_t err);
151 int _bt_hfp_get_activity_status_rsp(void *t_device,
153 bt_hfp_agent_error_t err);
154 int _bt_hfp_get_activity_status(bt_ag_info_t *device, const char *buf);
155 int _bt_hfp_set_speaker_gain(bt_ag_info_t *hs,
156 uint16_t gain_value);
157 int _bt_hfp_set_microphone_gain(bt_ag_info_t *hs,
158 uint16_t gain_value);
159 int _bt_hfp_set_voice_dial(bt_ag_info_t *hs,
161 int _bt_hfp_get_equipment_identity_rsp(void *t_device,
162 char *identity, bt_hfp_agent_error_t err);
163 int _bt_hfp_get_imsi_rsp(void *t_device,
164 char *mcc, char *mnc, char *msin, bt_hfp_agent_error_t err);
165 int _bt_hfp_get_creg_status_rsp(void *t_device,
166 int n, int status, bt_hfp_agent_error_t err);
167 int _bt_hfp_get_model_info_rsp(void *t_device,
168 char *model, bt_hfp_agent_error_t err);
169 int _bt_hfp_get_device_manufacturer_rsp(void *t_device,
170 char *manufacturer, bt_hfp_agent_error_t err);
171 int _bt_hfp_get_revision_info_rsp(void *t_device,
172 char *revision, bt_hfp_agent_error_t err);
173 int _bt_hfp_vendor_cmd(bt_ag_info_t *hs, const char *buf);
174 int _bt_hfp_send_vendor_cmd(bt_ag_info_t *hs,
176 int _bt_vendor_cmd_response(void *t_device,
177 bt_hfp_agent_error_t err);