hfp_gsm_model: check gsm call index

This commit is contained in:
Matthias Ringwald 2020-02-24 16:53:28 +01:00
parent 208aaac26d
commit a9a127199b

View File

@ -89,21 +89,25 @@ static void set_callsetup_status(hfp_callsetup_status_t status){
}
static inline void set_enhanced_call_status_active(int index_in_table){
if ((index_in_table < 0) || (index_in_table > HFP_GSM_MAX_NR_CALLS)) return;
gsm_calls[index_in_table].enhanced_status = HFP_ENHANCED_CALL_STATUS_ACTIVE;
gsm_calls[index_in_table].used_slot = 1;
}
static inline void set_enhanced_call_status_held(int index_in_table){
if ((index_in_table < 0) || (index_in_table > HFP_GSM_MAX_NR_CALLS)) return;
gsm_calls[index_in_table].enhanced_status = HFP_ENHANCED_CALL_STATUS_HELD;
gsm_calls[index_in_table].used_slot = 1;
}
static inline void set_enhanced_call_status_response_hold(int index_in_table){
if ((index_in_table < 0) || (index_in_table > HFP_GSM_MAX_NR_CALLS)) return;
gsm_calls[index_in_table].enhanced_status = HFP_ENHANCED_CALL_STATUS_CALL_HELD_BY_RESPONSE_AND_HOLD;
gsm_calls[index_in_table].used_slot = 1;
}
static inline void set_enhanced_call_status_initiated(int index_in_table){
if ((index_in_table < 0) || (index_in_table > HFP_GSM_MAX_NR_CALLS)) return;
if (gsm_calls[index_in_table].direction == HFP_ENHANCED_CALL_DIR_OUTGOING){
gsm_calls[index_in_table].enhanced_status = HFP_ENHANCED_CALL_STATUS_OUTGOING_DIALING;
} else {
@ -117,15 +121,18 @@ static inline void set_enhanced_call_status_initiated(int index_in_table){
}
static int get_enhanced_call_status(int index_in_table){
if ((index_in_table < 0) || (index_in_table > HFP_GSM_MAX_NR_CALLS)) return -1;
if (!gsm_calls[index_in_table].used_slot) return -1;
return gsm_calls[index_in_table].enhanced_status;
}
static inline int is_enhanced_call_status_active(int index_in_table){
if ((index_in_table < 0) || (index_in_table > HFP_GSM_MAX_NR_CALLS)) return 0;
return get_enhanced_call_status(index_in_table) == HFP_ENHANCED_CALL_STATUS_ACTIVE;
}
static inline int is_enhanced_call_status_initiated(int index_in_table){
if ((index_in_table < 0) || (index_in_table > HFP_GSM_MAX_NR_CALLS)) return 0;
switch (get_enhanced_call_status(index_in_table)){
case HFP_ENHANCED_CALL_STATUS_OUTGOING_DIALING:
case HFP_ENHANCED_CALL_STATUS_OUTGOING_ALERTING:
@ -138,6 +145,7 @@ static inline int is_enhanced_call_status_initiated(int index_in_table){
}
static void free_call_slot(int index_in_table){
if ((index_in_table < 0) || (index_in_table > HFP_GSM_MAX_NR_CALLS)) return;
gsm_calls[index_in_table].used_slot = 0;
}