linuxOS_AP05/external/bluez-alsa/src/hfp.h

131 lines
3.5 KiB
C
Raw Normal View History

2025-06-02 05:59:07 +00:00
/*
* BlueALSA - hfp.h
* Copyright (c) 2016-2018 Arkadiusz Bokowy
* 2017 Juha Kuikka
*
* This file is a part of bluez-alsa.
*
* This project is licensed under the terms of the MIT license.
*
*/
#ifndef BLUEALSA_HFP_H_
#define BLUEALSA_HFP_H_
/* HFP codec IDs */
#define HFP_CODEC_UNDEFINED 0x00
#define HFP_CODEC_CVSD 0x01
#define HFP_CODEC_MSBC 0x02
/* SDP AG feature flags */
#define SDP_HFP_AG_FEAT_TWC (1 << 0)
#define SDP_HFP_AG_FEAT_ECNR (1 << 1)
#define SDP_HFP_AG_FEAT_VREC (1 << 2)
#define SDP_HFP_AG_FEAT_RING (1 << 3)
#define SDP_HFP_AG_FEAT_VTAG (1 << 4)
#define SDP_HFP_AG_FEAT_WBAND (1 << 5)
/* SDP HF feature flags */
#define SDP_HFP_HF_FEAT_ECNR (1 << 0)
#define SDP_HFP_HF_FEAT_TWC (1 << 1)
#define SDP_HFP_HF_FEAT_CLI (1 << 2)
#define SDP_HFP_HF_FEAT_VREC (1 << 3)
#define SDP_HFP_HF_FEAT_VOLUME (1 << 4)
#define SDP_HFP_HF_FEAT_WBAND (1 << 5)
/* AG feature flags */
#define HFP_AG_FEAT_TWC (1 << 0)
#define HFP_AG_FEAT_ECNR (1 << 1)
#define HFP_AG_FEAT_VREC (1 << 2)
#define HFP_AG_FEAT_RING (1 << 3)
#define HFP_AG_FEAT_VTAG (1 << 4)
#define HFP_AG_FEAT_REJECT (1 << 5)
#define HFP_AG_FEAT_ECS (1 << 6)
#define HFP_AG_FEAT_ECC (1 << 7)
#define HFP_AG_FEAT_EERC (1 << 8)
#define HFP_AG_FEAT_CODEC (1 << 9)
#define HFP_AG_FEAT_HFIND (1 << 10)
#define HFP_AG_FEAT_ESOC (1 << 11)
/* HF feature flags */
#define HFP_HF_FEAT_ECNR (1 << 0)
#define HFP_HF_FEAT_TWC (1 << 1)
#define HFP_HF_FEAT_CLI (1 << 2)
#define HFP_HF_FEAT_VREC (1 << 3)
#define HFP_HF_FEAT_VOLUME (1 << 4)
#define HFP_HF_FEAT_ECS (1 << 5)
#define HFP_HF_FEAT_ECC (1 << 6)
#define HFP_HF_FEAT_CODEC (1 << 7)
#define HFP_HF_FEAT_HFIND (1 << 8)
#define HFP_HF_FEAT_ESOC (1 << 9)
/* Apple's extension feature flags */
#define XAPL_FEATURE_BATTERY (1 << 1)
#define XAPL_FEATURE_DOCKING (1 << 2)
#define XAPL_FEATURE_SIRI (1 << 3)
#define XAPL_FEATURE_DENOISE (1 << 4)
/**
* HFP Connection States */
enum __attribute__ ((packed)) hfp_state {
HFP_DISCONNECTED,
HFP_SLC_BRSF_SET,
HFP_SLC_BRSF_SET_OK,
HFP_SLC_BAC_SET_OK,
HFP_SLC_CIND_TEST,
HFP_SLC_CIND_TEST_OK,
HFP_SLC_CIND_GET,
HFP_SLC_CIND_GET_OK,
HFP_SLC_CMER_SET_OK,
/* Established Service Level Connection */
HFP_SLC_CONNECTED,
HFP_CC_BCS_SET,
HFP_CC_BCS_SET_OK,
/* Established Codec Connection */
HFP_CC_CONNECTED,
HFP_CONNECTED,
};
/**
* HFP Indicators */
enum __attribute__ ((packed)) hfp_ind {
HFP_IND_NULL = 0,
HFP_IND_SERVICE,
HFP_IND_CALL,
HFP_IND_CALLSETUP,
HFP_IND_CALLHELD,
HFP_IND_SIGNAL,
HFP_IND_ROAM,
HFP_IND_BATTCHG,
__HFP_IND_MAX
};
/* no Home/Roam network available */
#define HFP_IND_SERVICE_NONE 0
/* Home/Roam network available */
#define HFP_IND_SERVICE_ACTIVE 1
/* no calls in progress */
#define HFP_IND_CALL_NONE 0
/* at least one call is in progress */
#define HFP_IND_CALL_ACTIVE 1
/* currently not in call set up */
#define HFP_IND_CALLSETUP_NONE 0
/* an incoming call process ongoing */
#define HFP_IND_CALLSETUP_IN 1
/* an outgoing call set up is ongoing */
#define HFP_IND_CALLSETUP_OUT 2
/* remote party being alerted in an outgoing call */
#define HFP_IND_CALLSETUP_OUT_ALERT 3
/* no calls held */
#define HFP_IND_CALLHELD_NONE 0
/* call on hold with other active call */
#define HFP_IND_CALLHELD_SWAP 1
/* call on hold, no active call */
#define HFP_IND_CALLHELD_HOLD 2
/* roaming is not active */
#define HFP_IND_ROAM_NONE 0
/* a roaming is active */
#define HFP_IND_ROAM_ACTIVE 1
#endif