Add the base code for gtest verification
[platform/core/connectivity/bluetooth-agent.git] / ag-agent / bluetooth-ag-handler.h
1 /*
2  * bluetoth-ag-handler.h
3  *
4  * Copyright (c) 2014 - 2015 Samsung Electronics Co., Ltd. All rights reserved.
5  *
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>
10  *
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
14  *
15  *              http://www.apache.org/licenses/LICENSE-2.0
16  *
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.
22  *
23  */
24
25 #ifndef __DEF_BT_AG_HANDLER_H_
26 #define __DEF_BT_AG_HANDLER_H_
27
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31
32 #include <stdio.h>
33 #include <stdint.h>
34 #include <stdlib.h>
35 #include <glib.h>
36 #include "bluetooth-ag-agent.h"
37
38 #define BT_HFP_SPEAKER_GAIN 'S'
39 #define BT_HFP_MICROPHONE_GAIN 'M'
40
41 #define AG_RING_INTERVAL 1500
42
43 typedef struct {
44         gboolean wbs_enable;
45         uint8_t i2s_enable;
46         uint8_t is_master;
47         uint8_t clock_rate;
48         uint8_t pcm_interface_rate;
49 } wbs_options;
50
51 /* BD Address */
52 typedef struct {
53         uint8_t b[6];
54 } __attribute__((packed)) bt_addr;
55
56 int _bt_hfp_supported_features(bt_ag_info_t *hs, const char *buf);
57 int _bt_hfp_report_indicators(bt_ag_info_t *hs, const char *buf);
58 int _bt_hfp_enable_indicators(bt_ag_info_t *hdset, const char *buffer);
59 int _bt_hfp_call_hold(bt_ag_info_t *hs, const char *buf);
60 int _bt_hfp_answer_call(bt_ag_info_t *hs, const char *buf);
61 int _bt_hfp_dial_number(bt_ag_info_t *hs, const char *buf);
62 int _bt_hfp_signal_gain_setting(bt_ag_info_t *hs, const char *buf);
63 int _bt_hfp_terminate_call(bt_ag_info_t *hs, const char *buf);
64 int _bt_hfp_key_press(bt_ag_info_t *hs, const char *buf);
65 int _bt_hfp_last_dialed_number(bt_ag_info_t *hs, const char *buf);
66 int _bt_hfp_response_and_hold(bt_ag_info_t *hs, const char *buf);
67 int _bt_hfp_cli_notification(bt_ag_info_t *hs, const char *buf);
68 int _bt_hfp_dtmf_tone(bt_ag_info_t *hs, const char *buf);
69 int _bt_hfp_subscriber_number(bt_ag_info_t *hs, const char *buf);
70 int _bt_hfp_list_current_calls(bt_ag_info_t *hs, const char *buf);
71 int _bt_hfp_extended_errors(bt_ag_info_t *hs, const char *buf);
72 int _bt_hfp_call_waiting_notify(bt_ag_info_t *hs, const char *buf);
73 int _bt_hfp_operator_selection(bt_ag_info_t *hs, const char *buf);
74 int _bt_hfp_nr_and_ec(bt_ag_info_t *hs, const char *buf);
75 int _bt_hfp_voice_dial(bt_ag_info_t *hs, const char *buf);
76 int _bt_hfp_apl_command(bt_ag_info_t *hs, const char *buf);
77 int _bt_hfp_apl_command(bt_ag_info_t *hs, const char *buf);
78 int _bt_hfp_indicators_activation(bt_ag_info_t *hs, const char *buf);
79 int _bt_hfp_select_pb_memory(bt_ag_info_t *hs, const char *buf);
80 int _bt_hfp_read_pb_entries(bt_ag_info_t *hs, const char *buf);
81 int _bt_hfp_select_character_set(bt_ag_info_t *hs, const char *buf);
82 int _bt_hfp_find_pb_entires(bt_ag_info_t *hs, const char *buf);
83 int _bt_hfp_get_signal_quality(bt_ag_info_t *hs, const char *buf);
84 int _bt_hfp_get_battery_charge_status(bt_ag_info_t *hs, const char *buf);
85 int _bt_calling_stopped_indicator(void);
86 int _bt_incoming_call_indicator(const char *number, int type);
87 int _bt_call_waiting_indicator(const char *number, int type);
88 void _bt_hfp_deinitialize(void);
89 gboolean __bt_ring_timer_cb(gpointer data);
90 bt_hfp_agent_error_t _bt_hfp_event_indicator(int index);
91 void _bt_hfp_set_ag_indicator(uint32_t ag_features,
92                                 const bt_ag_indicators_t *ag_indicators,
93                                 int rh, const char *chld);
94 int _bt_calling_stopped_indicator(void);
95 int _bt_incoming_call_indicator(const char *number, int type);
96 int _bt_dial_number_response(void *t_device, bt_hfp_agent_error_t err);
97 int _bt_event_reporting_response(void *t_device,
98                                 bt_hfp_agent_error_t err);
99 int _bt_terminate_call_response(void *t_device,
100                                 hfp_state_manager_err_t err);
101 int _bt_call_hold_response(void *t_device, bt_hfp_agent_error_t err);
102 int _bt_key_press_response(void *t_device, bt_hfp_agent_error_t err);
103 int _bt_subscriber_number_indicator(const char *call_num,
104                                 int type, int service);
105 int _bt_subscriber_number_response(void *t_device,
106                                         bt_hfp_agent_error_t err);
107 int _bt_list_current_call_indicator(bt_ag_info_t *hs, int index, int direction,
108         int mode, int status, const char *call_num, int conference, int t_num);
109 int _bt_list_current_calls_response(void *t_device,
110                                         bt_hfp_agent_error_t err);
111 int _bt_nr_and_ec_response(void *t_device, bt_hfp_agent_error_t err);
112 int _bt_voice_dial_response(void *t_device, bt_hfp_agent_error_t err);
113 int _bt_indicators_activation_response(void *t_device,
114                                         bt_hfp_agent_error_t err);
115 int _bt_select_phonebook_memory_status_response(void *t_device,
116                                                 const char *path,
117                                                 uint32_t total, uint32_t used,
118                                                 bt_hfp_agent_error_t err);
119 int _bt_select_phonebook_memory_list_response(void *t_device,
120                                                 const char *buf,
121                                                 bt_hfp_agent_error_t err);
122 int _bt_select_phonebook_memory_response(void *t_device,
123                                                 bt_hfp_agent_error_t err);
124 int _bt_read_phonebook_entries_list_response(void *t_device,
125                                                 uint32_t used,
126                                                 uint32_t number_length,
127                                                 uint32_t name_length,
128                                                 bt_hfp_agent_error_t err);
129 int _bt_read_phonebook_entries_response(void *t_device,
130                                         bt_hfp_agent_error_t err);
131 int _bt_find_phonebook_entries_status_indicator(uint32_t number_length,
132                                         uint32_t name_length);
133 int _bt_find_phonebook_entries_status_response(void *t_device,
134                                                 bt_hfp_agent_error_t err);
135 int _bt_supported_character_generic_response(void *t_device,
136                                                 char *character_set_list,
137                                                 bt_hfp_agent_error_t err);
138 int _bt_set_characterset_generic_response(void *t_device,
139                                         bt_hfp_agent_error_t err);
140 int _bt_signal_quality_response(void *t_device,
141                                                 int32_t rssi,
142                                                 int32_t ber,
143                                                 bt_hfp_agent_error_t err);
144 int _bt_battery_charge_status_response(void *t_device,
145                                                 int32_t bcs,
146                                                 int32_t bcl,
147                                                 bt_hfp_agent_error_t err);
148 int _bt_operator_selection_indicator(int mode, const char *oper);
149 int _bt_operator_selection_response(void *t_device,
150                                         bt_hfp_agent_error_t err);
151 int _bt_transmit_dtmf_response(void *t_device,
152                         bt_hfp_agent_error_t err);
153 int _bt_find_phonebook_entries_response(void *t_device,
154                                         bt_hfp_agent_error_t err);
155 int _bt_response_and_hold_response(void *t_device,
156                                         bt_hfp_agent_error_t err);
157 int _bt_answer_call_response(void *hs, bt_hfp_agent_error_t err);
158 int _bt_read_phonebook_entries_indicator(const char *name,
159                                         const char *number,
160                                         uint32_t handle);
161 int _bt_hfp_get_activity_status_rsp(void *t_device,
162                                                 int status,
163                                                 bt_hfp_agent_error_t err);
164 int _bt_hfp_get_activity_status(bt_ag_info_t *device, const char *buf);
165 int _bt_hfp_set_speaker_gain(bt_ag_info_t *hs,
166                 uint16_t gain_value);
167 int _bt_hfp_set_microphone_gain(bt_ag_info_t *hs,
168                 uint16_t gain_value);
169 int _bt_hfp_set_voice_dial(bt_ag_info_t *hs,
170                 gboolean enable);
171 int _bt_hfp_get_equipment_identity_rsp(void *t_device,
172                                 char *identity, bt_hfp_agent_error_t err);
173 int _bt_hfp_get_imsi_rsp(void *t_device,
174                 char *mcc, char *mnc, char *msin, bt_hfp_agent_error_t err);
175 int _bt_hfp_get_creg_status_rsp(void *t_device,
176                 int n, int status, bt_hfp_agent_error_t err);
177 int _bt_hfp_get_model_info_rsp(void *t_device,
178                                 char *model, bt_hfp_agent_error_t err);
179 int _bt_hfp_get_device_manufacturer_rsp(void *t_device,
180                                 char *manufacturer, bt_hfp_agent_error_t err);
181 int _bt_hfp_get_revision_info_rsp(void *t_device,
182                                 char *revision, bt_hfp_agent_error_t err);
183 int _bt_hfp_vendor_cmd(bt_ag_info_t *hs, const char *buf);
184 int _bt_hfp_send_vendor_cmd(bt_ag_info_t *hs,
185                 const char *cmd);
186 int _bt_vendor_cmd_response(void *t_device, bt_hfp_agent_error_t err);
187
188 #ifdef __cplusplus
189 }
190 #endif
191 #endif /* __DEF_BT_AG_HANDLER_H_ */