Skip to content

Instantly share code, notes, and snippets.

@nailanawshaba
Forked from ngoquang2708/system_bt.patch
Created November 24, 2017 17:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nailanawshaba/bf9c639d7f3036489a700c8688d110c4 to your computer and use it in GitHub Desktop.
Save nailanawshaba/bf9c639d7f3036489a700c8688d110c4 to your computer and use it in GitHub Desktop.
From beea56cd76d1f3159cbaf2d12d51e29ebeffb0ce Mon Sep 17 00:00:00 2001
From: mickybart <mickybart@pygoscelis.org>
Date: Tue, 12 Jan 2016 07:09:36 -0500
Subject: [PATCH] Add supports for BCM BT FM
---
bta/fm/bta_fm_legacy.c | 74 ++++
bta/fm/libbt-fmcore.a | Bin 0 -> 243186 bytes
bta/fm/libbt-fmrds.a | Bin 0 -> 175536 bytes
bta/include/bta_fm_api.h | 808 ++++++++++++++++++++++++++++++++++++++
bta/include/bta_fm_co.h | 88 +++++
bta/include/bta_fm_hwhdr.h | 293 ++++++++++++++
bta/include/bta_rds_api.h | 506 ++++++++++++++++++++++++
bta/sys/bta_sys_main.c | 2 +-
btif/co/bta_fm_co.c | 93 +++++
btif/include/btif_api.h | 6 +
btif/include/btif_fm.h | 101 +++++
btif/include/stack_manager.h | 7 +
btif/src/bluetooth.c | 12 +
btif/src/btif_core.c | 16 +
btif/src/btif_fm.c | 898 +++++++++++++++++++++++++++++++++++++++++++
btif/src/stack_manager.c | 120 +++++-
main/Android.mk | 41 ++
17 files changed, 3063 insertions(+), 2 deletions(-)
create mode 100644 bta/fm/bta_fm_legacy.c
create mode 100644 bta/fm/libbt-fmcore.a
create mode 100644 bta/fm/libbt-fmrds.a
create mode 100644 bta/include/bta_fm_api.h
create mode 100644 bta/include/bta_fm_co.h
create mode 100644 bta/include/bta_fm_hwhdr.h
create mode 100644 bta/include/bta_rds_api.h
create mode 100644 btif/co/bta_fm_co.c
create mode 100644 btif/include/btif_fm.h
create mode 100644 btif/src/btif_fm.c
diff --git a/bta/fm/bta_fm_legacy.c b/bta/fm/bta_fm_legacy.c
new file mode 100644
index 0000000..907a9a1
--- /dev/null
+++ b/bta/fm/bta_fm_legacy.c
@@ -0,0 +1,74 @@
+/******************************************************************************
+ *
+ * Copyright (C) 2003-2012 Broadcom Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ******************************************************************************/
+
+#include "bt_target.h"
+#include "btm_api.h"
+#include "btcore/include/module.h"
+#include "device/include/controller.h"
+
+void LogMsg_0(UINT32 trace_set_mask, const char *fmt_str) {
+ LogMsg(trace_set_mask, fmt_str);
+}
+
+void LogMsg_1(UINT32 trace_set_mask, const char *fmt_str, UINT32 p1) {
+
+ LogMsg(trace_set_mask, fmt_str, p1);
+}
+
+void LogMsg_2(UINT32 trace_set_mask, const char *fmt_str, UINT32 p1, UINT32 p2) {
+ LogMsg(trace_set_mask, fmt_str, p1, p2);
+}
+
+void LogMsg_3(UINT32 trace_set_mask, const char *fmt_str, UINT32 p1, UINT32 p2,
+ UINT32 p3) {
+ LogMsg(trace_set_mask, fmt_str, p1, p2, p3);
+}
+
+void LogMsg_4(UINT32 trace_set_mask, const char *fmt_str, UINT32 p1, UINT32 p2,
+ UINT32 p3, UINT32 p4) {
+ LogMsg(trace_set_mask, fmt_str, p1, p2, p3, p4);
+}
+
+void LogMsg_5(UINT32 trace_set_mask, const char *fmt_str, UINT32 p1, UINT32 p2,
+ UINT32 p3, UINT32 p4, UINT32 p5) {
+ LogMsg(trace_set_mask, fmt_str, p1, p2, p3, p4, p5);
+}
+
+void LogMsg_6(UINT32 trace_set_mask, const char *fmt_str, UINT32 p1, UINT32 p2,
+ UINT32 p3, UINT32 p4, UINT32 p5, UINT32 p6) {
+ LogMsg(trace_set_mask, fmt_str, p1, p2, p3, p4, p5, p6);
+}
+
+void GKI_sched_lock(void) {
+
+}
+
+void GKI_sched_unlock(void) {
+
+}
+
+tBTM_STATUS BTM_ReadLocalVersion (bt_version_t *p_vers) {
+ if (module_start_up(get_module(CONTROLLER_MODULE))) {
+ const controller_t *controller = controller_get_interface();
+
+ *p_vers = *(controller->get_bt_version());
+ return BTM_SUCCESS;
+ }
+
+ return BTM_ERR_PROCESSING;
+}
diff --git a/bta/fm/libbt-fmcore.a b/bta/fm/libbt-fmcore.a
new file mode 100644
index 0000000000000000000000000000000000000000..b1a71b95747b8fa1135293d27ce7e34a2b0d4095
GIT binary patch
literal 243186
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
z%0D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
literal 0
HcmV?d00001
diff --git a/bta/fm/libbt-fmrds.a b/bta/fm/libbt-fmrds.a
new file mode 100644
index 0000000000000000000000000000000000000000..d273db4c28cd0e802e822d7e35af37607e39482f
GIT binary patch
literal 175536
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
UJ-4E}O|@&dZz6l&vsU~5FRnU(1ONa4
literal 0
HcmV?d00001
diff --git a/bta/include/bta_fm_api.h b/bta/include/bta_fm_api.h
new file mode 100644
index 0000000..d7385eb
--- /dev/null
+++ b/bta/include/bta_fm_api.h
@@ -0,0 +1,808 @@
+/******************************************************************************
+ *
+ * Copyright (C) 2003-2012 Broadcom Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ******************************************************************************/
+
+/******************************************************************************
+ *
+ * This is the public interface file for the FM subsystem of
+ * BTA, Broadcom's Bluetooth application layer for mobile phones.
+ *
+ ******************************************************************************/
+#ifndef BTA_FM_API_H
+#define BTA_FM_API_H
+
+#include "bta_api.h"
+
+/*****************************************************************************
+** Constants and data types
+*****************************************************************************/
+/* Extra Debug Code */
+#ifndef BTA_FM_DEBUG
+#define BTA_FM_DEBUG FALSE
+#endif
+
+#ifndef BTA_FM_AF_INCLUDED
+#define BTA_FM_AF_INCLUDED TRUE
+#endif
+
+#ifndef BTA_FM_10KHZ_INCLUDED
+#define BTA_FM_10KHZ_INCLUDED TRUE
+#endif
+
+/* Scanning step option provided by software algorithm */
+#ifndef BTA_FM_SCAN_STEP_ALGO
+#define BTA_FM_SCAN_STEP_ALGO TRUE
+#endif
+
+/* noise floor estimation */
+#ifndef BTA_FM_NFE_DEFAILT
+#define BTA_FM_NFE_DEFAILT 93 /* default Noise floor value */
+#endif
+#ifndef BTA_FM_NFE_THRESH
+#define BTA_FM_NFE_THRESH 0x32 /* default NFE threshold 53 db */
+#endif
+#ifndef BTA_FM_NFE_SNR_STEREO
+#define BTA_FM_NFE_SNR_STEREO 19 /* Stereo audio mode SNR level above NFL */
+#endif
+#ifndef BTA_FM_NFE_SNR_MONO
+#define BTA_FM_NFE_SNR_MONO 10 /* Mono audio mode SNR level above NFL */
+#endif
+
+/* Max AF number */
+#ifndef BTA_FM_AF_MAX_NUM
+#define BTA_FM_AF_MAX_NUM 25
+#endif
+
+/* preset channel register max size 248 bytes, each channel will take 4/5 bytes depend on search mode
+ so max preset channel n has to be 5*n <= 248. set default to be 48 */
+#define BTA_FM_MAX_PRESET_STA 48 /* same number defined as I2C_PRESET_STA_MAX */
+
+enum
+{
+ BTA_FM_ENABLE_EVT, /* 0 BTA FM is enabled */
+ BTA_FM_DISABLE_EVT, /* 1 BTA FM is disabled */
+ BTA_FM_RDS_UPD_EVT, /* 2 read RDS data event */
+ BTA_FM_SEARCH_CMPL_EVT, /* 3 FM scanning is completed event */
+ BTA_FM_TUNE_EVT, /* 4 FM TUNE event */
+ BTA_FM_AUD_MODE_EVT, /* 5 Set audio mode completed */
+ BTA_FM_MUTE_AUD_EVT, /* 6 audio mute/unmute event */
+ BTA_FM_SCAN_STEP_EVT, /* 7 config scan step */
+ BTA_FM_RDS_MODE_EVT, /* 8 set RDS mode event */
+ BTA_FM_AUD_PATH_EVT, /* 9 set audio path completed */
+ BTA_FM_AUD_DATA_EVT, /* 10 audio quality live updating call back event */
+ BTA_FM_SET_DEEMPH_EVT, /* 11 configure deempahsis parameter event */
+ BTA_FM_SET_REGION_EVT, /* 12 set band region */
+ BTA_FM_NFL_EVT, /* 13 noise floor estimation event */
+ BTA_FM_RDS_TYPE_EVT, /* 14 Set RDS type event */
+ BTA_FM_CFG_BLEND_MUTE_EVT, /* 15 stereo/mono blend and soft mute configuration event */
+ BTA_FM_VOLUME_EVT, /* 16 volume event */
+ BTA_FM_SEARCH_EVT, /* 17 search event */
+ BTA_FM_AF_JMP_EVT /* 18 AF jump event */
+};
+
+
+typedef UINT8 tBTA_FM_EVT;
+
+enum
+{
+ BTA_FM_OK,
+ BTA_FM_SCAN_RSSI_LOW,
+ BTA_FM_SCAN_FAIL,
+ BTA_FM_SCAN_ABORT,
+ BTA_FM_SCAN_NO_RES,
+ BTA_FM_ERR,
+ BTA_FM_UNSPT_ERR,
+ BTA_FM_FLAG_TOUT_ERR,
+ BTA_FM_FREQ_ERR,
+ BTA_FM_VCMD_ERR,
+ BTA_FM_BUSY
+};
+typedef UINT8 tBTA_FM_STATUS;
+
+/* FM band region, bit 0, 1,2 of func_mask */
+#ifndef BTA_MAX_REGION_SETTING
+#if BTA_FM_10KHZ_INCLUDED == TRUE
+#define BTA_MAX_REGION_SETTING 6 /* max region code defined */
+#else
+#define BTA_MAX_REGION_SETTING 4 /* max region code defined */
+#endif
+#endif
+
+/* FM function mask */
+#define BTA_FM_REGION_NA 0x00 /* bit0/bit1/bit2: north america */
+#define BTA_FM_REGION_EUR 0x01 /* bit0/bit1/bit2: Europe */
+#define BTA_FM_REGION_JP 0x02 /* bit0/bit1/bit2: Japan */
+#define BTA_FM_REGION_JP_II 0x03 /* bit0/bit1/bit2: Japan II */
+#if BTA_FM_10KHZ_INCLUDED
+#define BTA_FM_REGION_RUS 0x04 /* bit0/bit1/bit2: Russia with extended */
+#define BTA_FM_REGION_CHN 0x05 /* bit0/bit1/bit2: China: 70.0 ~ 108.0 */
+#endif
+#define BTA_FM_RDS_BIT 1<<4 /* bit4: RDS functionality */
+#define BTA_FM_RBDS_BIT 1<<5 /* bit5: RBDS functionality, exclusive with RDS bit */
+#define BTA_FM_AF_BIT 1<<6 /* bit6: AF functionality */
+#define BTA_FM_SOFTMUTE_BIT 1<<8 /* bit8: SOFTMUTE functionality */
+typedef UINT16 tBTA_FM_FUNC_MASK;
+
+/* low 3 bits (bit0, 1, 2)of FUNC mask is region code */
+#if BTA_FM_10KHZ_INCLUDED
+#define BTA_FM_REGION_MAX BTA_FM_REGION_CHN
+#define BTA_FM_REGION_MASK (BTA_FM_REGION_EUR | BTA_FM_REGION_JP | BTA_FM_REGION_JP_II | BTA_FM_REGION_RUS | BTA_FM_REGION_CHN)
+#else
+#define BTA_FM_REGION_MAX BTA_FM_REGION_JP_II
+#define BTA_FM_REGION_MASK (BTA_FM_REGION_EUR | BTA_FM_REGION_JP | BTA_FM_REGION_JP_II) /* low 3 bits (bit0, 1)of FUNC mask is region code */
+#endif
+
+typedef UINT8 tBTA_FM_REGION_CODE;
+
+#define BTA_FM_DEEMPHA_50U 0 /* 6th bit in FM_AUDIO_CTRL0 set to 0, Europe default */
+#define BTA_FM_DEEMPHA_75U 1<<6 /* 6th bit in FM_AUDIO_CTRL0 set to 1, US default */
+typedef UINT8 tBTA_FM_DEEMPHA_TIME;
+
+#define BTA_FM_GET_FREQ(x) ((UINT16)((x * 10) - 64000))
+
+enum
+{
+ BTA_FM_SCH_RDS_NONE,
+ BTA_FM_SCH_RDS_PTY,
+ BTA_FM_SCH_RDS_TP
+};
+typedef UINT8 tBTA_FM_SCH_RDS_TYPE;
+
+typedef struct
+{
+ tBTA_FM_SCH_RDS_TYPE cond_type;
+ UINT8 cond_val;
+} tBTA_FM_SCH_RDS_COND;
+
+/* FM audio output mode */
+enum
+{
+ BTA_FM_AUTO_MODE, /* auto blend by default */
+ BTA_FM_STEREO_MODE, /* manual stereo switch */
+ BTA_FM_MONO_MODE, /* manual mono switch */
+ BTA_FM_SWITCH_MODE /* auto stereo, and switch activated */
+};
+typedef UINT8 tBTA_FM_AUDIO_MODE;
+
+/* FM audio output quality */
+#define BTA_FM_STEREO_ACTIVE 0x01 /* audio stereo detected */
+#define BTA_FM_MONO_ACTIVE 0x02 /* audio mono */
+#define BTA_FM_BLEND_ACTIVE 0x04 /* stereo blend active */
+
+typedef UINT8 tBTA_FM_AUDIO_QUALITY;
+
+/* FM audio routing configuration */
+#define BTA_FM_AUDIO_NONE BTA_DM_ROUTE_NONE /* No FM audio output */
+#define BTA_FM_AUDIO_DAC BTA_DM_ROUTE_DAC /* routing FM over analog output */
+#define BTA_FM_AUDIO_I2S BTA_DM_ROUTE_I2S /* routing FM over digital (I2S) output */
+#define BTA_FM_AUDIO_BT_MONO BTA_DM_ROUTE_BT_MONO /* routing FM over SCO */
+#define BTA_FM_AUDIO_BT_STEREO BTA_DM_ROUTE_BT_STEREO /* routing FM over BT Stereo */
+
+typedef UINT8 tBTA_FM_AUDIO_PATH;
+
+/* scan mode */
+#define BTA_FM_PRESET_SCAN I2C_FM_SEARCH_PRESET /* preset scan : bit0 = 1 */
+#define BTA_FM_NORMAL_SCAN I2C_FM_SEARCH_NORMAL /* normal scan : bit0 = 0 */
+typedef UINT8 tBTA_FM_SCAN_METHOD;
+
+/* frequency scanning direction */
+#define BTA_FM_SCAN_DOWN 0x00 /* bit7 = 0 scanning toward lower frequency */
+#define BTA_FM_SCAN_UP 0x80 /* bit7 = 1 scanning toward higher frequency */
+typedef UINT8 tBTA_FM_SCAN_DIR;
+
+#define BTA_FM_SCAN_FULL (BTA_FM_SCAN_UP | BTA_FM_NORMAL_SCAN|0x02) /* full band scan */
+#define BTA_FM_FAST_SCAN (BTA_FM_SCAN_UP | BTA_FM_PRESET_SCAN) /* use preset scan */
+#define BTA_FM_SCAN_NONE 0xff
+
+typedef UINT8 tBTA_FM_SCAN_MODE;
+
+#define BTA_FM_STEP_100KHZ 0x00
+#define BTA_FM_STEP_50KHZ 0x10
+typedef UINT8 tBTA_FM_STEP_TYPE;
+
+/* minimum and maximum value of start/stop SNR for stereo/mono blend */
+#define BTA_FM_START_SNR_MIN 0
+#define BTA_FM_START_SNR_MAX 63
+
+#define BTA_FM_STOP_SNR_MIN 0
+#define BTA_FM_STOP_SNR_MAX 63
+/* minimum and maximum value of start/stop RSSI for stereo/mono blend */
+#define BTA_FM_START_RSSI_MIN -128
+#define BTA_FM_START_RSSI_MAX 127
+
+#define BTA_FM_STOP_RSSI_MIN -128
+#define BTA_FM_STOP_RSSI_MAX 127
+/* minimum and maximum value of start SNR for soft mute */
+#define BTA_FM_START_MUTE_MIN 0
+#define BTA_FM_START_MUTE_MAX 63
+/* minimum and maximum value of ultimate mute attenuation level */
+#define BTA_FM_STOP_ATTEN_MIN -128
+#define BTA_FM_STOP_ATTEN_MAX 127
+/* minimum and maximum value of mute rate */
+#define BTA_FM_MUTE_RATE_MIN 0
+#define BTA_FM_MUTE_RATE_MAX 63
+/* minimum and maximum value of SNR reading adjustment */
+#define BTA_FM_SNR40_MIN -128
+#define BTA_FM_SNR40_MAX 127
+
+/* maximum FM audio volume */
+#define BTA_FM_VOLUME_MAX 255 //0x100
+
+typedef struct
+{
+ UINT8 start_snr; /* Above this SNR, the chip will be in stereo mode
+ if the RSSI is high enough, valid range 0 -63 default 43 */
+ UINT8 stop_snr; /* Below this SNR, the chip will be in MONO mode. valid range 0 -63, default 20*/
+ INT8 start_rssi; /* RSSI to start blending, assuming the FMRX_START_SNR
+ is exceeded. valid range -128 ~ 127, default - 56 */
+ INT8 stop_rssi; /* RSSI to stop blending, assuming FMRX_STOP_SNR is
+ not yet exceeded. valid range -128 ~ 127, default - 85 */
+}tBTA_FM_BLEND_CFG;
+
+typedef struct
+{
+ UINT8 start_mute; /* SNR to start muting. Below this SNR the chip will
+ partially mute until the ultimate mute attenuation
+ is reached. valid range 0 - 63, default 19 */
+ INT8 stop_atten; /* Ultimate mute attenuation level. valid range -128 ~ 127, default 26 */
+ UINT8 mute_rate; /* Rate at which muting occurs valid range 0 - 63, default 8 */
+ INT8 snr40; /* constant to add to SNR reading to get the actual SNR,
+ i.e. snr40 - snr_read = 40. valid range -128 ~ 127, default -77 */
+}tBTA_FM_SOFT_MUTE_CFG;
+
+/* struct of stereo/mono audio blend and soft mute parameters */
+typedef struct
+{
+ tBTA_FM_BLEND_CFG blend; /* stereo/mono blend threshold */
+ tBTA_FM_SOFT_MUTE_CFG soft_mute; /* soft mute parameters */
+
+}tBTA_FM_BLEND_MUTE;
+
+/* search criteria type */
+#define BTA_FM_CTYPE_SNR (1) /* SNR criteria */
+#define BTA_FM_CTYPE_QUALITY (2) /* preset scan quality (COS slope) threshold criteria */
+typedef UINT8 tBTA_FM_CTYPE;
+
+/* maximum SNR value */
+#define BTA_FM_SNR_MAX 31
+
+/* maximum COS value */
+#define BTA_FM_COS_MAX 127
+#define BTA_FM_COS_MIN -128
+
+typedef union
+{
+ INT8 snr; /* valid SNR value range from 0 ~ BTA_FM_SNR_MAX */
+ INT8 cos; /* valid COS slope value range from BTA_FM_COS_MIN ~ BTA_FM_COS_MAX */
+}tBTA_FM_CVALUE;
+
+/* RDS mode */
+enum
+{
+ BTA_FM_RDS,
+ BTA_FM_RBDS
+};
+typedef UINT8 tBTA_FM_RDS_B;
+
+enum
+{
+ BTA_FM_AF_FM = 1,
+ BTA_FM_AF_LF,
+ BTA_FM_AF_MF
+};
+typedef UINT8 tBTA_FM_AF_TYPE;
+
+/* AF structure */
+typedef struct
+{
+ UINT16 num_af; /* number of AF in list */
+ tBTA_FM_AF_TYPE af_type[BTA_FM_AF_MAX_NUM];
+ UINT16 af_list[BTA_FM_AF_MAX_NUM];
+}tBTA_FM_AF_LIST;
+
+typedef struct
+{
+ UINT16 pi_code; /* currently tuned frequency PI code */
+ tBTA_FM_AF_LIST af_list; /* AF frequency list */
+ UINT8 af_thresh; /* AF jump RSSI threshold*/
+} tBTA_FM_AF_PARAM;
+
+enum
+{
+ BTA_FM_NFL_LOW,
+ BTA_FM_NFL_MED,
+ BTA_FM_NFL_FINE
+};
+typedef UINT8 tBTA_FM_NFE_LEVL;
+
+/* channel tunning/scanning call back data */
+typedef struct
+{
+ tBTA_FM_STATUS status; /* operation status */
+ UINT8 rssi;
+ INT8 snr; /* current channel SNR value */
+ UINT16 freq; /* tuned frequency */
+}tBTA_FM_CHNL_DATA;
+
+
+/* set FM audio mode callback data */
+typedef struct
+{
+ tBTA_FM_STATUS status; /* operation status */
+ tBTA_FM_AUDIO_MODE audio_mode; /* audio mode */
+}tBTA_FM_MODE_INFO;
+
+/* set FM audio path callback data */
+typedef struct
+{
+ tBTA_FM_STATUS status; /* operation status */
+ tBTA_FM_AUDIO_PATH audio_path; /* audio path */
+}tBTA_FM_PATH_INFO;
+
+/* audio quality live updating call back data */
+typedef struct
+{
+ tBTA_FM_STATUS status; /* operation status */
+ UINT8 rssi; /* rssi strength */
+ INT8 snr; /* current channel SNR value */
+ tBTA_FM_AUDIO_QUALITY audio_mode; /* audio mode */
+}tBTA_FM_AUD_DATA;
+
+
+typedef struct
+{
+ tBTA_FM_STATUS status; /* operation status */
+ tBTA_FM_DEEMPHA_TIME time_const; /* deemphasis parameter */
+}tBTA_FM_DEEMPH_DATA;
+
+/* set FM audio mode callback data */
+typedef struct
+{
+ tBTA_FM_STATUS status; /* operation status */
+ BOOLEAN rds_on;
+ BOOLEAN af_on; /* audio mode */
+}tBTA_FM_RDS_MODE_INFO;
+
+typedef struct
+{
+ UINT8 rssi;
+ UINT16 freq;
+ INT8 cos; /* carrier offset */
+ INT8 snr; /* only valid when preset sscan mode 3 is used, otherwise set to 0 */
+}tBTA_FM_SCAN_DAT;
+
+typedef struct
+{
+ tBTA_FM_STATUS status;
+ BOOLEAN is_mute;
+}tBTA_FM_MUTE_STAT;
+
+typedef struct
+{
+ tBTA_FM_STATUS status;
+ tBTA_FM_REGION_CODE region;
+}tBTA_FM_REGION_INFO;
+
+typedef struct
+{
+ tBTA_FM_STATUS status;
+ tBTA_FM_RDS_B type;
+}tBTA_FM_RDS_TYPE;
+
+typedef struct
+{
+ tBTA_FM_STATUS status;
+ UINT8 data;
+ UINT8 index;
+ char text[65];
+}tBTA_FM_RDS_UPDATE;
+
+typedef struct
+{
+ tBTA_FM_STATUS status;
+ UINT8 rssi;
+}tBTA_FM_NFE;
+
+typedef struct
+{
+ tBTA_FM_STATUS status;
+ UINT16 volume;
+}tBTA_FM_VOLUME;
+
+/* Union of all FM callback structures */
+typedef union
+{
+ tBTA_FM_STATUS status; /* BTA_FM_DISABLE_EVT/
+ BTA_FM_ENABLE_EVT/
+ BTA_FM_AUD_PATH_EVT/
+ BTA_FM_RDS_MODE_EVT
+ BTA_FM_AUD_PATH_EVT
+ BTA_FM_RDS_UPD_EVT
+ BTA_FM_CFG_BLEND_MUTE_EVT call back data*/
+ tBTA_FM_CHNL_DATA chnl_info; /* BTA_FM_TUNE_EVT/BTA_FM_SEARCH_CMPL_EVT */
+ tBTA_FM_MODE_INFO mode_info; /* BTA_FM_AUD_MODE_EVT */
+ tBTA_FM_PATH_INFO path_info; /* BTA_FM_AUD_PATH_EVT */
+ tBTA_FM_AUD_DATA audio_data; /* BTA_FM_AUD_DATA_EVT call back data */
+ tBTA_FM_DEEMPH_DATA deemphasis; /* BTA_FM_SET_DEEMPH_EVT call back data */
+ tBTA_FM_RDS_MODE_INFO rds_mode; /* BTA_FM_RDS_MODE_EVT call back data */
+ tBTA_FM_SCAN_DAT scan_data; /* BTA_FM_SEARCH_EVT call back data */
+ tBTA_FM_MUTE_STAT mute_stat; /* BTA_FM_MUTE_AUD_EVT call back data */
+ tBTA_FM_STEP_TYPE scan_step; /* BTA_FM_SCAN_STEP_EVT callback data */
+ tBTA_FM_REGION_INFO region_info; /* BTA_FM_SET_REGION_EVT callback data */
+ tBTA_FM_RDS_TYPE rds_type;
+ tBTA_FM_RDS_UPDATE rds_update;
+ tBTA_FM_NFE nfloor;
+ tBTA_FM_VOLUME volume; /* BTA_FM_VOLUME_EVT */
+} tBTA_FM;
+
+/* run-time configuration struct */
+typedef struct
+{
+ UINT16 low_bound; /* lowest frequency boundary */
+ UINT16 high_bound; /* highest frequency boundary */
+ tBTA_FM_DEEMPHA_TIME deemphasis; /* FM de-emphasis time constant */
+ UINT8 scan_step; /* scanning step */
+} tBTA_FM_CFG_ENTY;
+
+typedef struct
+{
+ tBTA_FM_CFG_ENTY reg_cfg_tbl[BTA_MAX_REGION_SETTING];
+ /* region related setting table */
+ INT32 aud_timer_value;/* audio quality live updating timer
+ value, must be a non-0 positive value */
+ INT32 rds_timer_value;/* RDS data update timer */
+ INT32 enable_delay_val;/* FM enable delay time value, platform dependant */
+ UINT8 rds_read_size; /* how many RDS tuples per read */
+ UINT8 max_station; /* maximum number of FM stations for a full band scan
+ can not exceed BTA_FM_MAX_PRESET_STA */
+} tBTA_FM_CFG;
+
+/* BTA FM callback function */
+typedef void (tBTA_FM_CBACK)(tBTA_FM_EVT event, tBTA_FM *p_data);
+
+
+/*****************************************************************************
+** External Function Declarations
+*****************************************************************************/
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*******************************************************************************
+**
+** Function BTA_FmEnable
+**
+** Description Enable FM fuctionality.
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmEnable(tBTA_FM_FUNC_MASK func_mask,
+ tBTA_FM_CBACK *p_cback, UINT8 app_id);
+
+/*******************************************************************************
+**
+** Function BTA_FmDisable
+**
+** Description Disable FM functionality.
+**
+** Parameters none
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmDisable(void);
+
+/*******************************************************************************
+**
+** Function BTA_FmReadRDS
+**
+** Description Read RDS information. For every BTA_FmReadRDS API call,
+** will receive one or more application BTA_FM_RDS_UPD_EVT event
+** call back. For each call back event, 50 or less tuples of RDS
+** data will be returned.
+**
+** Parameters none
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmReadRDS(void);
+
+/*******************************************************************************
+**
+** Function BTA_FmSetSchCriteria
+**
+** Description Set FM search criteria if any special SNR condition wants to
+** be used.
+**
+** Parameters criteria_type: criteria type, can be SNR or preset quality.
+** p_value: pointer to search criteria value structure.
+**
+** Returns void
+**
+*******************************************************************************/
+extern tBTA_FM_STATUS BTA_FmSetSchCriteria(tBTA_FM_CTYPE criteria_type,
+ tBTA_FM_CVALUE *p_value );
+
+/*******************************************************************************
+**
+** Function BTA_FmSearchFreq
+**
+** Description Scan FM toward higher/lower frequency for next clear channel.
+** If no clear channel is found, BTA_FM_SEARCH_EVT event with
+** BTA_FM_SCAN_FAIL status will be returned.
+**
+** Parameters none
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmSearchFreq(tBTA_FM_SCAN_MODE scn_mode, UINT8 rssi_thresh,
+ tBTA_FM_SCH_RDS_COND *p_rds_cond);
+
+/*******************************************************************************
+**
+** Function BTA_FmTuneFreq
+**
+** Description Tune to a designated frequency, BTA_FM_TUNE_EVT will be returned
+** when tuning is finished.
+**
+** Parameters none
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmTuneFreq (UINT16 freq);
+
+/*******************************************************************************
+**
+** Function BTA_FmSearchAbort
+**
+** Description Abort a frequency scanning operation. BTA_FM_SEARCH_EVT will
+** be sent to application when operation is aborted, and the
+** stopping frequency is reported with the event.
+**
+** Parameters none
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmSearchAbort (void);
+
+/*******************************************************************************
+**
+** Function BTA_FmSetAudioMode
+**
+** Description Configure FM audio mode to be mono/stereo/blend. When operation
+** finishes, event BTA_FM_AUD_MODE_EVT will be returned.
+**
+** Parameters none
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmSetAudioMode ( tBTA_FM_AUDIO_MODE mode);
+
+/*******************************************************************************
+**
+** Function BTA_FmSetRDSMode
+**
+** Description Turn on/off RDS feature and AF algorithm.
+**
+** Parameters none
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmSetRDSMode (BOOLEAN rds_on, BOOLEAN af_on, tBTA_FM_AF_PARAM *p_af_struct);
+
+
+/*******************************************************************************
+**
+** Function BTA_FmConfigAudioPath
+**
+** Description Set FM audio path. When configuring FM audio over SCO, an
+** existing SCO connection is requested.
+**
+** Parameters audio_path: Bitmask of the paths to be turned ON.
+**
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmConfigAudioPath(tBTA_FM_AUDIO_PATH audio_path);
+
+/*******************************************************************************
+**
+** Function BTA_FmReadAudioQuality
+**
+** Description Turn on/off live audio data updating.
+**
+** Parameters turn_on: TRUE: updating audio quality data(rssi, mode).
+** FALSE: stop updaing audio quality data.
+**
+** Parameters none
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmReadAudioQuality(BOOLEAN turn_on);
+
+
+/*******************************************************************************
+**
+** Function BTA_FmConfigDeemphasis
+**
+** Description Config deemphasis parameter.
+**
+** Parameters
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmConfigDeemphasis(tBTA_FM_DEEMPHA_TIME time_const);
+
+/*******************************************************************************
+**
+** Function BTA_FmMute
+**
+** Description Mute/Unmute FM audio
+**
+** Parameters TRUE: mute audio
+** FALSE: unmute audio
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmMute(BOOLEAN mute);
+
+/*******************************************************************************
+**
+** Function BTA_FmSetScanStep
+**
+** Description Configure FM Scanning Step.
+**
+** Parameters step: 50KHz/ 100KHz step
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmSetScanStep(tBTA_FM_STEP_TYPE step);
+ /*******************************************************************************
+**
+** Function BTA_FmEstNoiseFloor
+**
+** Description Estimate noise floor.
+**
+** Parameters
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmEstNoiseFloor(tBTA_FM_NFE_LEVL level);
+
+/*******************************************************************************
+**
+** Function BTA_FmSetRegion
+**
+** Description Set a region for band selection.
+**
+** Parameters none
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmSetRegion (tBTA_FM_REGION_CODE region);
+
+/*******************************************************************************
+**
+** Function BTA_FmComboSearch
+**
+** Description A search function let user define frequency range
+** [start_freq, end_freq](inclusive bracket), mode,
+** search directions and multiple channel requirement.
+**
+** Parameters start_freq: Starting frequency of search operation range.
+** end_freq: Ending frequency of search operation, if the same
+** as start_freq, start_freq will be the only frequency in
+** search. When start_freq and end_freq is different and
+** back to back, will start from start_freq, hit the
+** boundary and wrap around search through the ending frequency.
+** rssi: search RSSI threshold.
+** direction: the direction to search in, it can only be either
+** BTA_FM_SCAN_DOWN or BTA_FM_SCAN_UP.
+** scn_method: search method, it can only be either BTA_FM_PRESET_SCAN
+** or BTA_FM_NORMAL_SCAN.
+** multi_chnl: Is multiple channels are required, or only find
+** next valid channel(seek).
+** p_rds_cond: RDS search oncdition, can not combine with
+** BTA_FM_PRESET_SCAN mode.
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmComboSearch(UINT16 start_freq, UINT16 end_freq, UINT8 rssi,
+ tBTA_FM_SCAN_DIR direction, tBTA_FM_SCAN_METHOD scn_method,
+ BOOLEAN multi_chnl, tBTA_FM_SCH_RDS_COND * p_rds_cond);
+
+/*******************************************************************************
+**
+** Function BTA_FmSetRdsRbds
+**
+** Description Choose the RDS mode - RDS/RBDS.
+**
+** Parameters rds_type: BTA_FM_RDS or BTA_FM_RBDS.
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmSetRdsRbds(tBTA_FM_RDS_B rds_type);
+
+/*******************************************************************************
+**
+** Function BTA_FmSetSignalNotifSetting
+**
+** Description Configure RSSI value polling interval.
+**
+** Parameters poll_interval: polling interval in milli second unit.
+**
+** Returns void
+**
+*******************************************************************************/
+extern tBTA_FM_STATUS BTA_FmSetSignalNotifSetting(INT32 poll_interval);
+
+/*******************************************************************************
+**
+** Function BTA_FmConfigBlendSoftMuteParams
+**
+** Description Configure RSSI and SNR threshold for audio blending and soft
+** mute.
+**
+** Parameters p_config: The pointer to the blending and soft mute parameters
+** structure.
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmConfigBlendSoftMuteParams(tBTA_FM_BLEND_MUTE *p_config);
+
+/*******************************************************************************
+**
+** Function BTA_FmVolumeControl
+**
+** Description This command control the audio volume. The audio volume is
+** a linear value of fraction of 1, range from 0 to 255, where
+** 255 stands for the highest volume. The default audio volume
+** on start is 255.
+**
+** Parameters volume: is an UINT16 type, value range from 0 to 255, where
+** 255 indicates the highest volume.
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmVolumeControl(UINT16 volume);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* BTA_FM_API_H */
+
diff --git a/bta/include/bta_fm_co.h b/bta/include/bta_fm_co.h
new file mode 100644
index 0000000..032eec7
--- /dev/null
+++ b/bta/include/bta_fm_co.h
@@ -0,0 +1,88 @@
+/******************************************************************************
+ *
+ * Copyright (C) 2003-2012 Broadcom Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ******************************************************************************/
+
+/******************************************************************************
+ *
+ * This is the interface file for FM call-out functions.
+ *
+ ******************************************************************************/
+#ifndef BTA_FM_CO_H
+#define BTA_FM_CO_H
+
+#include "bta_fm_api.h"
+#include "bta_rds_api.h"
+
+/*******************************************************************************
+**
+** Function bta_fm_co_init
+**
+** Description This callout function is executed by FM when it is
+** started by calling BTA_FmSetRDSMode() and RDS mode is turned
+** on. This function can be used by the phone to initialize
+** RDS decoder or other platform dependent and RDS related purposes.
+**
+**
+** Returns
+**
+*******************************************************************************/
+extern tBTA_FM_STATUS bta_fm_co_init(tBTA_FM_RDS_B rds_mode);
+
+/*******************************************************************************
+**
+** Function bta_fm_co_rds_data
+**
+** Description This function is called by FM when RDS data is ready.
+**
+** Parameter p_data: RDS data in three bytes array, which includes 2 bytes
+** RDS block data, and one byte control and correction indicator.
+**
+** Returns void
+**
+*******************************************************************************/
+extern tBTA_FM_STATUS bta_fm_co_rds_data(UINT8 * p_data, UINT16 len);
+
+/*******************************************************************************
+**
+** Function bta_fm_co_close
+**
+** Description This callout function is executed by FM when it is
+** started by calling BTA_FmSetRDSMode() and RDS mode is turned
+** off. This function can be used by the phone to reset RDS
+** decoder.
+**
+**
+** Returns
+**
+*******************************************************************************/
+extern void bta_fm_co_close(void);
+
+/*******************************************************************************
+**
+** Function bta_fm_co_rds_reset
+**
+** Description This function can be used by the phone to reset RDS
+** decoder.
+**
+**
+** Returns
+**
+*******************************************************************************/
+extern void bta_fm_co_reset_rds_engine(void);
+
+#endif /* BTA_FM_CO_H */
+
diff --git a/bta/include/bta_fm_hwhdr.h b/bta/include/bta_fm_hwhdr.h
new file mode 100644
index 0000000..7ee5b31
--- /dev/null
+++ b/bta/include/bta_fm_hwhdr.h
@@ -0,0 +1,293 @@
+/******************************************************************************
+ *
+ * Copyright (C) 2003-2012 Broadcom Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ******************************************************************************/
+
+/******************************************************************************
+ *
+ * FM hardware related register and corresponding bit definition.
+ *
+ ******************************************************************************/
+#ifndef BTA_FM_HWHDR_H
+#define BTA_FM_HWHDR_H
+
+#include "hcidefs.h"
+
+#define BTA_FM_2048_OP_CODE HCI_BRCM_FM_OPCODE
+#define BTA_FMTX_2048_OP_CODE HCI_BRCM_FMTX_OPCODE
+
+#define I2C_FM_REG_PAGE_CXT 0xab /* RX, TX contxt switch */
+
+/* FMRX I2C register Address */
+#define I2C_FM_REG_RDS_SYS 0x00
+#define I2C_FM_REG_FM_CTRL 0x01
+#define I2C_FM_REG_RDS_CTL0 0x02
+
+#define I2C_FM_REG_AUD_PAUS 0x04
+#define I2C_FM_REG_AUD_CTL0 0x05
+#define I2C_FM_REG_AUD_CTL1 0x06
+#define I2C_FM_REG_SCH_CTL0 0x07
+#define I2C_FM_SEARCH_SNR 0x08 /* search criteria for SNR */
+#define I2C_FM_REG_SCH_TUNE 0x09
+#define I2C_FM_REG_FM_FREQ 0x0a
+#define I2C_FM_REG_FM_FREQ1 0x0b
+#define I2C_FM_REG_AF_FREQ0 0x0c
+#define I2C_FM_REG_AF_FREQ1 0x0d
+#define I2C_FM_REG_CARRIER 0x0e
+#define I2C_FM_REG_RSSI 0x0f
+#define I2C_FM_REG_FM_RDS_MSK 0x10
+#define I2C_FM_REG_FM_RDS_MSK1 0x11
+#define I2C_FM_REG_FM_RDS_FLAG 0x12
+#define I2C_FM_REG_FM_RDS_FLAG1 0x13
+#define I2C_FM_REG_RDS_WLINE 0x14
+
+#define I2C_FM_REG_BB_MAC0 0x16
+#define I2C_FM_REG_BB_MAC1 0x17
+#define I2C_FM_REG_BB_MSK0 0x18
+#define I2C_FM_REG_BB_MSK1 0x19
+#define I2C_FM_REG_PI_MAC0 0x1a
+#define I2C_FM_REG_PI_MAC1 0x1b
+#define I2C_FM_REG_PI_MSK0 0x1c
+#define I2C_FM_REG_PI_MSK1 0x1d
+
+#define I2C_FM_REG_RCV_ID 0x28
+#define I2C_FM_REG_I2C_CFG 0x29
+#define I2C_FM_REG_RDS_DATA 0x80
+#define I2C_FM_REG_AF_FAILURE 0x90 /* AF jump failure reason code */
+#define I2C_FM_REG_PCM_ROUTE 0x4d
+#define I2C_FM_RES_PRESCAN_QUALITY 0xde /* preset scan CO slope threshold */
+#define I2C_FM_REG_SNR 0xdf /* SNR reading of currently tuned channel */
+#define I2C_FM_REG_VOLUME_CTRL 0xf8 /* audio control register */
+#define I2C_FM_REG_BLEND_MUTE 0xf9
+#define I2C_FM_SEARCH_BOUNDARY 0xfb /* search boundary */
+#define I2C_FM_SEARCH_METHOD 0xfc /* scan mode for 2048B0 FW */
+#define I2C_FM_REG_PRESET_MAX 0xfe
+#define I2C_FM_REG_SCH_STEP 0xfd
+#define I2C_FM_REG_PRESET_STA 0xff
+
+/* bits in register I2C_FM_REG_PAGE_CXT 0xab */
+/* Only bit[0] is used to select between FM RX and FM TX register pages
+ and interrupt sourcing. */
+#define I2C_FM_RX_ON 0x00
+#define I2C_FM_TX_ON 0x01
+
+/* bits in register I2C_FM_RDS_SYS 0x00 */
+#define I2C_FM_ON 0x01
+#define I2C_RDS_ON 0x02
+
+/* bits in register I2C_FM_REG_FM_CTRL 0x01 */
+#define I2C_BAND_REG_WEST 0x00
+#define I2C_BAND_REG_EAST 0x01
+#define I2C_STEREO_AUTO 0x02
+#define I2C_STEREO_MANUAL 0x04
+#define I2C_STEREO_SWITCH 0x08
+#define I2C_HI_LO_INJ 0x10
+
+/* bits in register I2C_FM_REG_RDS_CTL0 0x02 */
+#define I2C_RDS_CTRL_RDS 0x00
+#define I2C_RDS_CTRL_RBDS 0x01
+#define I2C_RDS_CTRL_FIFO_FLUSH 0x02
+
+/* bits in register I2C_FM_REG_AUD_PAUS 0x04 */
+#define I2C_AUD_PAUSE_21_THRESH 0x00 /* bit [0:3]audio pause RSSI magnitude threshold */
+#define I2C_AUD_PAUSE_18_THRESH 0x01
+#define I2C_AUD_PAUSE_15_THRESH 0x02
+#define I2C_AUD_PAUSE_12_THRESH 0x03
+#define I2C_AUD_PAUSE_20_MS 0x00 /* bit [4:7]audio pause duration */
+#define I2C_AUD_PAUSE_26_MS 0x10
+#define I2C_AUD_PAUSE_33_MS 0x20
+#define I2C_AUD_PAUSE_40_MS 0x30
+
+/* bits in register I2C_FM_REG_AUD_CTL0 0x05 */
+#define I2C_RF_MUTE 0x0001 /* bit0 */
+#define I2C_MANUAL_MUTE 0x0002 /* bit1 */
+#define I2C_Z_MUTE_LEFT_OFF 0x0004 /* bit2 */
+#define I2C_Z_MUTE_RITE_OFF 0x0008 /* bit3 */
+#define I2C_AUDIO_DAC_ON 0x0010 /* bit4 */
+#define I2C_AUDIO_I2S_ON 0x0020 /* bit5 */
+#define I2C_DEEMPHA_75_ON 0x0040 /* bit6 */
+#define I2C_AUDIO_BAND_WIDTH 0x0080 /* bit7 */
+
+/* FM search control */
+#define I2C_SCH_DIRCT_UP 0x80 /* bit7 on */
+#define I2C_SCH_DIRCT_DOWN 0x00 /* bit7 off */
+
+/* FM search tune mode, used to set I2C_FM_REG_SCH_TUNE 0x09 register */
+#define I2C_IDLE_MODE 0x00 /* Idle mode */
+#define I2C_PRE_SET_MODE 0x01 /* preset mode, used for tuning */
+#define I2C_AUTO_SCH_MODE 0x02 /* auto search, used for scanning */
+#define I2C_AF_JUMP_MODE 0x03 /* af jump mode */
+
+/* the highest bit on I2C_FM_REG_PCM_ROUTE register */
+#define I2C_PCM_ROUTE_ON_BIT 0x80 /* FM on SCO */
+
+/* MSB in I2C_FM_REG_SCH_CTL0 0x07 */
+#define I2C_SEARCH_UP_CTRL 0x80 /* scan upward */
+#define I2C_SEARCH_DN_CTRL 0x00 /* scan downward */
+
+
+/* bits in I2C_FM_REG_FM_RDS_FLAG 0x12 */
+#define I2C_MASK_SRH_TUNE_CMPL_BIT (0x0001 << 0) /* FM/RDS register search/tune cmpl bit */
+#define I2C_MASK_SRH_TUNE_FAIL_BIT (0x0001 << 1) /* FM/RDS register search/tune fail bit */
+#define I2C_MASK_RSSI_LOW_BIT (0x0001 << 2) /* FM/RDS registerRSSI low bit */
+#define I2C_MASK_CARR_HI_ERR_BIT (0x0001 << 3) /* FM/RDS register carrier high err bit */
+#define I2C_MASK_AUDIO_PAUSE_BIT (0x0001 << 4) /* audio has paused for the specific threshold and duration */
+#define I2C_MASK_STEREO_DETC_BIT (0x0001 << 5) /* FM/RDS register search/tune cmpl bit */
+#define I2C_MASK_STEREO_ACTIVE_BIT (0x0001 << 6) /* FM/RDS register search/tune fail bit */
+/* second bytes of FM_RDS_FLG 0x13 */
+#define I2C_MASK_RDS_FIFO_WLINE_BIT (0x0100 << 1) /* RDS tuples are currently available at
+ a level >= waterline */
+#define I2C_MASK_BB_MATCH_BIT (0x0100 << 3) /* PI code match found */
+#define I2C_MASK_PI_MATCH_BIT (0x0100 << 5) /* PI code match found */
+
+
+/* I2C_FM_REG_RDS_DATA 0x80 reading */
+#define I2C_FM_RDS_END_TUPLE_1ST_BYTE 0x7c /* 1st byte of a RDS ending tuple */
+#define I2C_FM_RDS_END_TUPLE_2ND_BYTE 0xff /* 2nd byte of a RDS ending tuple */
+#define I2C_FM_RDS_END_TUPLE_3RD_BYTE 0xff /* 3rd byte of a RDS ending tuple */
+
+
+/* I2C_FM_REG_PRESET_STA readfing */
+#define I2C_PRESET_STA_MAX 62
+
+/* I2C_FM_SEARCH_METHOD */
+#define I2C_FM_SEARCH_NORMAL 0x00
+#define I2C_FM_SEARCH_PRESET 0x01 /* default: preset scan with CO */
+#define I2C_FM_SEARCH_RSSI 0x02
+#define I2C_FM_SEARCH_PRESET_SNR 0x03 /* preset scan with SNR */
+
+/* I2C_FM_REG_AF_FAILURE reason code detail */
+#define I2C_AF_FAIL_RESV 0x00 /* reserved */
+#define I2C_AF_FAIL_RSSI_LOW (1 << 4) /* RSSI low, bit 4*/
+#define I2C_AF_FAIL_FREQ_OSHI (1 << 5) /* Frequency Offset high, bit 5 */
+#define I2C_AF_FAIL_PI_ERR (3 << 4) /* PI mismatch, bit 4 & 5 */
+
+
+/* FMTX I2C register Address */
+#define I2C_FMTX_REG_MOD_CTRL 0x31 /* FMTX control */
+#define I2C_FMTX_CHRP_AFC_1 0x4f
+#define I2C_FMTX_CHRP_AFC_2 0x51
+#define I2C_FMTX_CHRP_FC_1 0x53
+#define I2C_FMTX_CHRP_FC_2 0x55
+#define I2C_FMTX_CHRP_MRK_1 0x57
+#define I2C_FMTX_CHRP_MRK_2 0x59
+#define I2C_FMTX_CHRP_SPC_1 0x5b
+#define I2C_FMTX_CHRP_SPC_2 0x5d
+#define I2C_FMTX_REG_MUTE 0x63
+#define I2C_FMTX_REG_CHNL_SET 0x6b
+#define I2C_FMTX_REG_CHNL_SET1 0x6c
+#define I2C_FMTX_REG_CHNL_BW_SET 0x6d
+#define I2C_FMTX_REG_REF_SET 0x70
+#define I2C_FMTX_REG_LOCK_GET 0x71
+#define I2C_FMTX_REG_PA_CTRL 0x72
+#define I2C_FMTX_REG_DEV_SET 0x74
+#define I2C_FMTX_CHRP_SET 0x75
+#define I2C_FMTX_SCAN_START 0x77 /* 4329A0 0xd0 */
+#define I2C_FMTX_SCAN_END 0x79 /* 4329A0 0xd3 */
+#define I2C_FMTX_AUDIO_LO_COUNT 0x7B
+#define I2C_FMTX_AUDIO_HI_COUNT 0x7C
+#define I2C_FMTX_AUDIO_THRESH_LO 0x7D
+#define I2C_FMTX_AUDIO_THRESH_HI 0x7E
+#define I2C_FMTX_REG_RDS_DATA 0x80
+#define I2C_FMTX_REG_MPX_LMT 0x97
+#define I2C_FMTX_REG_CTRL_SET 0xa3
+#define I2C_FMTX_REG_PI_SET 0xa4
+#define I2C_FMTX_REG_PI_SET1 0xa5
+#define I2C_FMTX_REG_RDS_TYPE 0xa6
+#define I2C_FMTX_REG_AF 0xa8
+#define I2C_FMTX_REG_DISP_SIZE 0xa9
+#define I2C_FMTX_REG_RDS_MODE 0xaa
+#define I2C_FMTX_REG_SCRL_RATE 0xad
+#define I2C_FMTX_REG_TOGL_AB 0xaf
+#define I2C_FMTX_REG_RDS_RPTR 0xb0
+#define I2C_FMTX_REG_RDS_COMIT 0xb1
+#define I2C_FMTX_REG_IRQ_MASK 0xbb
+#define I2C_FMTX_REG_IRQ_MASK1 0xbc
+#define I2C_FMTX_REG_IRQ_FLAG 0xbf
+#define I2C_FMTX_REG_IRQ_FLAG1 0xc0
+#define I2C_FMTX_REG_RDS_WLINE 0xc9
+#define I2C_FMTX_REG_RDS_WLINE1 0xca
+#define I2C_FMTX_REG_RDS_SPR0_CTRL 0xd0 /* used for scroll step on 4329A0 FPGA */
+#define I2C_FMTX_REG_RDS_SPR2_CTRL 0xd2 /* used for scroll step on 4329A0 */
+#define I2C_FMTX_REG_RDS_SPR3_CTRL 0xd3
+#define I2C_FMTX_AUDIO_MEAS_COUNT 0xd5
+#define I2C_FMTX_AUDIO_DETECT_STATUS 0xd7
+
+#define I2C_FMTX_REG_AUD_DEV 0xd4
+#define I2C_FMTX_REG_PILOT_DEV 0xd3
+
+
+#define I2C_FMTX_REG_PRESET_STA I2C_FM_REG_PRESET_STA
+
+
+/* I2C_FMTX_REG_MUTE values */
+#define I2C_FMTX_MUTE_R (1<<2) /* bit 2 */
+#define I2C_FMTX_MUTE_L (1<<1) /* bit 1 */
+#define I2C_FMTX_MUTE_BOTH 1
+#define I2C_FMTX_UNMUTE 0
+
+/* I2C_FMTX_REG_CTRL_SET values */
+#define I2C_FMTX_PLL_ON 0x01 /* bit 0*/
+#define I2C_FMTX_MONO_ON (0x01 << 1) /* bit 1*/
+#define I2C_FMTX_STEREO_ON 0x00 /* bit1 = 0*/
+#define I2C_FMTX_AUD_ROUTE_I2S 0x00 /* bit 3:2 = 0 */
+#define I2C_FMTX_AUD_ROUTE_ADC (0x01 << 2) /* bit3:2 : 1 */
+#define I2C_FMTX_AUD_ROUTE_LITE_STACK (0x02 << 2) /* bit3:2 : 10 */
+#define I2C_FMTX_PREEMPH_OFF 0x00 /* bit5:4: 0 */
+#define I2C_FMTX_PREEMPH_50 (0x01 << 4) /* bit5:4: 1 */
+#define I2C_FMTX_PREEMPH_75 (0x01 << 5) /* bit5:4: 2 */
+#define I2C_FMTX_REG_US_EUR 0x00 /* bit6: 0 */
+#define I2C_FMTX_REG_JAPAN (0x1 << 6) /* bit6: 1 */
+
+/* I2C_FMTX_REG_PA_CTRL values */
+#define I2C_FMTX_PWR_OUT_ENB 1
+#define I2C_FMTX_PWR_OUT_DSB 0
+#define I2C_FMTX_PWR_COARSE_0 (0 << 1)
+#define I2C_FMTX_PWR_COARSE_6 (1 << 1)
+#define I2C_FMTX_PWR_COARSE_12 (2 << 1)
+#define I2C_FMTX_PWR_COARSE_18 (3 << 1)
+#define I2C_FMTX_PWR_COARSE_MAX (7 << 1)
+#define I2C_FMTX_PWR_FINE_0 (0 << 4)
+#define I2C_FMTX_PWR_FINE_1 (1 << 4)
+#define I2C_FMTX_PWR_FINE_2 (2 << 4)
+#define I2C_FMTX_PWR_FINE_3 (3 << 4)
+#define I2C_FMTX_PWR_FINE_4 (4 << 4)
+#define I2C_FMTX_PWR_FINE_5 (5 << 4)
+#define I2C_FMTX_PWR_FINE_6 (6 << 4)
+#define I2C_FMTX_PWR_FINE_MAX (7 << 4)
+
+/* I2C_FMTX_REG_RDS_TYPE values */
+#define I2C_FMTX_RDS_TYPE_0A 0
+#define I2C_FMTX_RDS_TYPE_0B 1
+#define I2C_FMTX_RDS_TYPE_2A 2
+#define I2C_FMTX_RDS_TYPE_2B 3
+
+/* commit register setting */
+#define I2C_FMTX_RDS_COMIT_NOW 1
+#define I2C_FMTX_RDS_STOP_NOW 2
+
+/* I2C_FMTX_REG_IRQ_MASK/FLAG values */
+#define I2C_IRQ_AUD_SCLIP_BIT (0x0001 << 0)
+#define I2C_IRQ_AUD_HCLIP_BIT (0x0001 << 1)
+#define I2C_IRQ_SIG_FULL_BIT (0x0001 << 2)
+#define I2C_IRQ_TUNE_CMPL_BIT (0x0001 << 3)
+#define I2C_IRQ_AUD_STATUS_BIT (0x0001 << 4)
+#define I2C_IRQ_RSSI_SCAN_BIT (0x0001 << 5)
+/* second bytes of I2C_FMTX_REG_IRQ_MASK/FLAG */
+#define I2C_IRQ_COMIT_CMPL_BIT (0x0100 << 0)
+#define I2C_IRQ_RDS_TRANS_CMPL_BIT (0x0100 << 1)
+
+#endif /* BTA_FM_HWHDR_H */
diff --git a/bta/include/bta_rds_api.h b/bta/include/bta_rds_api.h
new file mode 100644
index 0000000..840030e
--- /dev/null
+++ b/bta/include/bta_rds_api.h
@@ -0,0 +1,506 @@
+/******************************************************************************
+ *
+ * Copyright (C) 2003-2012 Broadcom Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ******************************************************************************/
+
+/******************************************************************************
+ *
+ * This is the public interface file for the RDS decoder.
+ *
+ ******************************************************************************/
+#ifndef BTA_RDS_API_H
+#define BTA_RDS_API_H
+
+#include "bta_api.h"
+#include "bta_fm_api.h"
+
+/*****************************************************************************
+** Constants and data types
+*****************************************************************************/
+
+// TODO: FIx the issue
+// Defining the MACRO will cause compilation issue
+#ifndef BTA_RDS_DEBUG
+#define BTA_RDS_DEBUG FALSE
+#endif
+
+/* Maxinum number of different RDS streams supported by the decoder */
+#ifndef BTA_RDS_MAX_STREAM
+#define BTA_RDS_MAX_STREAM 1
+#endif
+
+/* RDS Decoder structure */
+#define BTA_RDS_PI_BIT (1<<0)
+#define BTA_RDS_PTY_BIT (1<<1)
+#define BTA_RDS_TP_BIT (1<<2)
+#define BTA_RDS_DI_BIT (1<<3)
+#define BTA_RDS_MS_BIT (1<<4)
+#define BTA_RDS_AF_BIT (1<<5)
+#define BTA_RDS_PS_BIT (1<<6)
+#define BTA_RDS_PTYN_BIT (1<<7)
+#define BTA_RDS_RT_BIT (1<<8)
+#define BTA_RDS_PIN_BIT (1<<9)
+#define BTA_RDS_CT_BIT (1<<10)
+#define BTA_RDS_ODA_BIT (1 <<11)
+#define BTA_RDS_TDC_BIT (1 <<12)
+#define BTA_RDS_EWS_BIT (1 << 13)
+#define BTA_RDS_SLC_BIT (1 << 14)
+#define BTA_RDS_EON_BIT (1 << 15)
+#define BTA_RDS_TMC_BIT (1 << 16)
+#define BTA_RDS_RTP_BIT (1 << 17)
+
+typedef UINT32 tBTA_RDS_FEATURE;
+
+
+
+/* RDS decoder event */
+enum
+{
+ BTA_RDS_REG_EVT, /* RDS decoder user register event*/
+ BTA_RDS_PI_EVT, /* PI code */
+ BTA_RDS_PTY_EVT, /* program type */
+ BTA_RDS_TP_EVT, /* traffic program identification */
+ BTA_RDS_DI_EVT, /* Decoder Identification */
+ BTA_RDS_MS_EVT, /* music speech content */
+ BTA_RDS_AF_EVT, /* Alternative Frequency */
+ BTA_RDS_PS_EVT, /* Program service name */
+ BTA_RDS_PTYN_EVT, /* program type name */
+ BTA_RDS_RT_EVT, /* Radio Text */
+ BTA_RDS_PIN_EVT, /* program Item number */
+ BTA_RDS_CT_EVT, /* clock time */
+ BTA_RDS_ODA_EVT, /* open data application */
+ BTA_RDS_TDC_EVT, /* transparent data channel */
+ BTA_RDS_EWS_EVT, /* emergency warning system */
+ BTA_RDS_SLC_EVT, /* slow labelling code */
+ BTA_RDS_RPTOR_EVT, /* charcter repertoire set */
+ BTA_RDS_EON_EVT, /* EON information, should be evalute with sub code */
+ BTA_RDS_TMC_EVT, /* Traffic Message Channel */
+ BTA_RDS_RTP_EVT, /* RT plus event */
+ BTA_RDS_STATS_EVT
+};
+typedef UINT32 tBTA_RDS_EVT;
+
+
+/* RDS status code */
+enum
+{
+ BTA_RDS_OK,
+ BTA_RDS_ERR, /* general error */
+ BTA_RDS_ERR_DAT, /* error RDS data */
+ BTA_RDS_ERR_INTL, /* internal error */
+ BTA_RDS_ERR_BAD_AID /* bad application ID error */
+};
+typedef UINT8 tBTA_RDS_STATUS;
+
+/* TP/TA flag */
+#define BTA_RDS_TP_NONE 0x00 /* TP, TA all 0 */
+#define BTA_RDS_TP_EON 0x10 /* TA 1; TP 0, no traffic serrvice, available on EON*/
+#define BTA_RDS_TP_AVAIL 0x01 /* TA 0; TP 1: traffic service available */
+#define BTA_RDS_TP_ACTIVE 0x11 /* TA: 1 TP 1: traffic service active now */
+#define BTA_RDS_TP_INVAL 0xff /* invalid TP/TA code */
+
+typedef UINT8 tBTA_FM_RDS_TP_TYPE;
+
+/* PTY definition, RDS set */
+enum
+{
+ BTA_RDS_PTY_NONE, /* 0 */
+ BTA_RDS_PTY_NEWS, /* 1 */
+ BTA_RDS_PTY_AFIRS, /* 2 */
+ BTA_RDS_PTY_INFO, /* 3 */
+ BTA_RDS_PTY_SPRT, /* 4 */
+ BTA_RDS_PTY_EDCT, /* 5 */
+ BTA_RDS_PTY_DRMA, /* 6 */
+ BTA_RDS_PTY_CLTR, /* 7 */
+ BTA_RDS_PTY_SCI, /* 8 */
+ BTA_RDS_PTY_VARI, /* 9 */
+ BTA_RDS_PTY_POP, /* 10 */
+ BTA_RDS_PTY_ROCK, /* 11 */
+ BTA_RDS_PTY_EASY, /* 12 */
+ BTA_RDS_PTY_LITE, /* 13 */
+ BRA_RDS_PTY_CLSC, /* 14 */
+ BTA_RDS_PTY_OTHR, /* 15 */
+ BTA_RDS_PTY_WTHR, /* 16 */
+ BTA_RDS_PTY_FINC, /* 17 */
+ BTA_RDS_PTY_CHLD, /* 18 */
+ BTA_RDS_PTY_SOCL, /* 19 */
+ BTA_RDS_PTY_RELG, /* 20 */
+ BTA_RDS_PTY_FONE, /* 21 */
+ BTA_RDS_PTY_TRVL, /* 22 */
+ BTA_RDS_PTY_LESR, /* 23 */
+ BTA_RDS_PTY_JAZZ, /* 24 */
+ BTA_RDS_PTY_CNTY, /* 25 */
+ BTA_RDS_PTY_NATI, /* 26 */
+ BTA_RDS_PTY_OLDI, /* 27 */
+ BTA_RDS_PTY_FOLK, /* 28 */
+ BTA_RDS_PTY_DOC, /* 29 */
+ BTA_RDS_PTY_TEST, /* 30 */
+ BTA_RDS_PTY_ALRM /* 31 */
+};
+
+/* PTY definition, RBDS set */
+enum
+{
+ BTA_RBDS_PTY_NONE, /* 0 */
+ BTA_RBDS_PTY_NEWS, /* 1 */
+ BTA_RBDS_PTY_INFM, /* 2 */
+ BTA_RBDS_PTY_SPRT, /* 3 */
+ BTA_RBDS_PTY_TALK, /* 4 */
+ BTA_RBDS_PTY_ROCK, /* 5 */
+ BTA_RBDS_PTY_CROCK, /* 6 */
+ BTA_RBDS_PTY_ADLT, /* 7 */
+ BTA_RBDS_PTY_SROCK, /* 8 */
+ BTA_RBDS_PTY_TOP, /* 9 */
+ BTA_RBDS_PTY_CNTY, /* 10 */
+ BTA_RBDS_PTY_OLDI, /* 11 */
+ BTA_RBDS_PTY_SOFT, /* 12 */
+ BTA_RBDS_PTY_NSTG, /* 13 */
+ BTA_RBDS_PTY_JAZZ, /* 14 */
+ BTA_RBDS_PTY_CLCS, /* 15 */
+ BTA_RBDS_PTY_RNB, /* 16 */
+ BTA_RBDS_PTY_SRNB, /* 17 */
+ BTA_RBDS_PTY_LAGU, /* 18 */
+ BTA_RBDS_PTY_RELM, /* 19 */
+ BTA_RBDS_PTY_RELT, /* 20 */
+ BTA_RBDS_PTY_PERS, /* 21 */
+ BTA_RBDS_PTY_PBLK, /* 22 */
+ BTA_RBDS_PTY_COLL, /* 23 */
+ BTA_RBDS_PTY_UN24, /* 24 */
+ BTA_RBDS_PTY_UN25, /* 25 */
+ BTA_RBDS_PTY_UN26, /* 26 */
+ BTA_RBDS_PTY_UN27, /* 27 */
+ BTA_RBDS_PTY_UN28, /* 28 */
+ BTA_RBDS_PTY_WTHR, /* 29 */
+ BTA_RBDS_PTY_TEST, /* 30 */
+ BTA_RBDS_PTY_ALER, /* 31 */
+ BTA_RDS_PTY_UNDEF /* 32 */
+};
+typedef UINT8 tBTA_RDS_PTY_VAL;
+
+
+/* PTY */
+typedef struct
+{
+ tBTA_RDS_PTY_VAL pty_val; /* PTY value */
+ UINT8 *p_str; /* PTY display string */
+} tBTA_RDS_PTY;
+
+/* CT data */
+typedef struct
+{
+ UINT32 day;
+ UINT8 hour;
+ UINT8 minute;
+ UINT8 sense;
+ UINT8 offset;
+} tBTA_RDS_CT;
+
+/* PIN data */
+typedef struct
+{
+ UINT8 day;
+ UINT8 hour;
+ UINT8 minute;
+} tBTA_RDS_PIN;
+
+/* music speech content type */
+enum
+{
+ BTA_RDS_SPEECH = 1,
+ BTA_RDS_MUSIC
+};
+typedef UINT8 tBTA_RDS_M_S;
+
+/* transprant data channell structure */
+typedef struct
+{
+ UINT8 chnl_num; /* channel number */
+ UINT8 len; /* data length */
+ UINT8 tdc_seg[4]; /* TDC data, max to 4 bytes */
+
+}tBTA_RDS_TDC_DATA;
+
+/* TMC coding Protocol types corresponding Application ID */
+#define BTA_RDS_TMC_ALERT 0xCD46
+#define BTA_RDS_TMC_ALERT_PLUS 0x4B02
+
+#define BTA_RDS_RT_PLUS_AID 0x4BD7
+
+/* segment data type, used for EWS, and ODA */
+typedef struct
+{
+ UINT8 data_5b; /* the 5 bits data carried in 2nd block */
+ UINT16 data_16b_1; /* 16 bits data carried in block 3 if group type A */
+ UINT16 data_16b_2; /* 16 bits data carried in block 4 */
+} tBTA_RDS_SEG_DATA;
+
+/* ODA */
+typedef struct
+{
+ UINT16 aid; /* ODA application ID */
+ UINT8 grp_type; /* group type which is carrying this AID */
+ union
+ {
+ tBTA_RDS_SEG_DATA msg_body; /* ODA message information */
+ UINT16 sys_info; /* ODA system information carried in group 3A block C */
+ } data_info;
+}tBTA_RDS_ODA_DATA;
+
+/* slow labelling code type */
+enum
+{
+ BTA_RDS_SLC_ECC, /* enhanced country code */
+ BTA_RDS_SLC_TMC,
+ BTA_RDS_SLC_PID,
+ BTA_RDS_SLC_LAG,
+ BTA_RDS_SLC_UNASSIGNED,
+ BTA_RDS_SLC_BRCST,
+ BTA_RDS_SLC_EWS
+};
+typedef UINT8 tBTA_RDS_SLC_TYPE;
+
+typedef struct
+{
+ UINT8 paging;
+ UINT8 ecc_code;
+}tBTA_RDS_ECC; /* ECC code */
+
+/* Slow labelling Code data */
+typedef union
+{
+ tBTA_RDS_ECC ecc; /* ECC code */
+ UINT16 language; /* language code */
+ UINT16 tmc_id; /* TMC ID */
+ UINT16 paging_id; /* paging ID */
+ UINT16 ews_channel; /* EWS channel ID */
+ UINT16 other; /* broadcaster data */
+} tBTA_RDS_SLC ;
+
+/* Slow labelling Code call back data*/
+typedef struct
+{
+ tBTA_RDS_SLC_TYPE slc_type;
+ tBTA_RDS_SLC data;
+
+}tBTA_RDS_SLC_DATA;
+
+
+enum
+{
+ BTA_RDS_RPTOR_SI,
+ BTA_RDS_RPTOR_SO,
+ BTA_RDS_RPTOR_LS2,
+ BTA_RDS_RPTOR_UNKNOW
+};
+typedef UINT8 tBTA_RDS_RPTOR_SET;
+
+enum
+{
+ BTA_RDS_EON_PS, /* EON PS */
+ BTA_RDS_EON_AF, /* EON AF method-A AF list */
+ BTA_RDS_EON_MAP_FREQ, /* EON mapped AF frequency */
+ BTA_RDS_EON_PIN, /* EON PIN info */
+ BTA_RDS_EON_PTY, /* EON PTY informtion */
+ BTA_RDS_EON_TA, /* TA information from 14A group, information only */
+ BTA_RDS_EON_TA_B, /* TA/TP information from group 14B */
+ BTA_RDS_EON_LINK /* EON linkage information */
+};
+typedef UINT8 tBTA_RDS_EON_CODE;
+
+typedef struct
+{
+ UINT16 tn_freq;
+ UINT16 on_freq;
+}tBTA_RDS_MAP_FREQ;
+
+typedef struct
+{
+ UINT8 la; /* Linkage Actuator */
+ UINT8 eg; /* Extended Generic indicator */
+ UINT8 ils; /* Internaltional Linkage Set Indicator */
+ UINT8 lsn_ci; /* Linkage Set Number : contry identifier */
+ UINT8 lsn_li; /* Linkage Set Number: linkage identifier */
+
+}tBTA_RDS_LINK_DATA;
+
+/* AF encoding method */
+enum
+{
+ BTA_RDS_AF_M_U, /* unknown */
+ BTA_RDS_AF_M_A, /* method - A */
+ BTA_RDS_AF_M_B /* method - B */
+};
+typedef UINT8 tBTA_RDS_AF_M_TYPE;
+
+typedef struct
+{
+ tBTA_FM_AF_LIST list;
+ tBTA_RDS_AF_M_TYPE method; /* method-A or method-B */
+ /* when method-B is used, the tuning frequency, for which
+ the associated Af list is valid, will be thelist.af_list[0] */
+
+}tBTA_RDS_AF_LIST;
+
+typedef struct
+{
+ UINT16 pi_eon;
+ tBTA_RDS_EON_CODE sub_code;
+ union
+ {
+ UINT8 *p_data; /* PS, PTY */
+ tBTA_FM_RDS_TP_TYPE ta_tp;
+ UINT8 ta; /* TA flag */
+ tBTA_RDS_AF_LIST af_data; /* AF */
+ tBTA_RDS_PIN pin; /* PIN */
+ tBTA_RDS_MAP_FREQ map_freq;
+ tBTA_RDS_LINK_DATA linkage; /* Linkage information */
+ }data;
+}tBTA_RDS_EON_DATA;
+
+#ifndef BTA_RDS_RTP_TAG_MAX
+#define BTA_RDS_RTP_TAG_MAX 6
+#endif
+
+typedef struct
+{
+ UINT8 content_type;
+ UINT8 start;
+ UINT8 len;
+} tBTA_RDS_RTP_TAG;
+
+typedef struct
+{
+ BOOLEAN running;
+ UINT8 tag_toggle;
+ UINT8 tag_num;
+ tBTA_RDS_RTP_TAG tag[BTA_RDS_RTP_TAG_MAX];
+} tBTA_RDS_RTP;
+
+typedef struct
+{
+ UINT8 *p_data;
+ UINT8 g_type;
+ BOOLEAN complete;
+} tBTA_RDS_RT;
+
+/* RDS callback data */
+typedef union
+{
+ tBTA_RDS_CT ct; /* Clock time */
+ tBTA_RDS_PIN pin; /* Program Item Number */
+ tBTA_RDS_STATUS status; /* status */
+ tBTA_RDS_AF_LIST af_data; /* AF */
+ tBTA_RDS_PTY pty; /* PTY callback data */
+ UINT16 pi_code; /* PI code */
+ UINT8 data8; /* UINT8 data, used for DI callback */
+ tBTA_FM_RDS_TP_TYPE ta_tp; /* TP/TA status */
+ UINT8 *p_data; /* data pointer to UINT8, used for PS, PTYN */
+ tBTA_RDS_RPTOR_SET rptor_set;
+ tBTA_RDS_M_S m_s; /* music speech feature */
+ tBTA_RDS_ODA_DATA oda; /* Open data application data, TMC */
+ tBTA_RDS_TDC_DATA tdc_data; /* transparent data channel data */
+ tBTA_RDS_SEG_DATA seg_data; /* EWS data */
+ tBTA_RDS_SLC_DATA slc; /* slow labelling codes */
+ tBTA_RDS_EON_DATA eon; /* EON data */
+ tBTA_RDS_RTP rtplus;
+ UINT32 stats[4]; /* statistics data */
+ tBTA_RDS_RT rt; /* used for RT */
+} tBTA_FM_RDS;
+
+typedef void (tBTA_RDS_CBACK)(tBTA_RDS_EVT event, tBTA_FM_RDS *p_data, UINT8 app_id);
+
+
+/*****************************************************************************
+** External Function Declarations
+*****************************************************************************/
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*******************************************************************************
+**
+** Function BTA_FmRDSInitDecoder
+**
+** Description This funtion initialize the RDS group decoder by resetting
+** default values to the RDS parser control block.
+**
+** Returns void
+**
+*******************************************************************************/
+extern void BTA_FmRDSInitDecoder(void);
+/*******************************************************************************
+**
+** Function BTA_FmRDSRegister
+**
+** Description This funtion register the user callback and app ID with RDS
+** decoder, together with the RDS feature mask they are interested
+** in. Use the function, a client:
+**
+** I. can be registered at RDS decoder,
+** II. deregister at decoder by sending the same app_id with a NULL
+** call back function; or
+** III. re-register the call back with different RDS feature mask.
+**
+**
+** Parameter rds_mask: RDS feature this client interested in
+** p_cback: call back function of the client
+** app_id: application ID associate with this client, it must be a
+** NONE-ZERO number.
+**
+** Returns void
+**
+*******************************************************************************/
+extern tBTA_RDS_STATUS BTA_FmRDSRegister(tBTA_FM_RDS_B mode, tBTA_RDS_FEATURE rds_mask,
+ tBTA_RDS_CBACK *p_cback, UINT8 app_id);
+
+/*******************************************************************************
+**
+** Function BTA_FmRDSResetDecoder
+**
+** Description Reset RDS decoder decoding control variable for a new parsing.
+** Usually this function is called when jumping to a new frequency,
+** and all the old RDS information should be erased.
+**
+** Returns app_id: application ID associate with a RDS stream, it must be a
+** NONE-ZERO positive number.
+**
+*******************************************************************************/
+extern tBTA_RDS_STATUS BTA_FmRDSResetDecoder(UINT8 app_id);
+/*******************************************************************************
+**
+** Function BTA_FmRDSDecode
+**
+** Description Parse the rds group
+**
+** Parameter p_data : input rds data in multiple tuples, which means it's
+** always 3n bytes.
+** len : the total length of p_data.
+**s
+** app_id: application ID associate with a RDS stream, it must be a
+** NONE-ZERO positive number.
+** Returns void
+**
+*******************************************************************************/
+extern tBTA_RDS_STATUS BTA_FmRDSDecode(UINT8 app_id, UINT8 *p_data, UINT16 length);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* BTA_RDS_API_H */
+
diff --git a/bta/sys/bta_sys_main.c b/bta/sys/bta_sys_main.c
index d85f37c..955d4a0 100644
--- a/bta/sys/bta_sys_main.c
+++ b/bta/sys/bta_sys_main.c
@@ -710,7 +710,7 @@ void bta_sys_disable(tBTA_SYS_HW_MODULE module)
return;
}
- for ( ; bta_id <= bta_id_max; bta_id++)
+ for ( ; bta_id < bta_id_max; bta_id++)
{
if (bta_sys_cb.reg[bta_id] != NULL)
{
diff --git a/btif/co/bta_fm_co.c b/btif/co/bta_fm_co.c
new file mode 100644
index 0000000..bfe20fe
--- /dev/null
+++ b/btif/co/bta_fm_co.c
@@ -0,0 +1,93 @@
+/*****************************************************************************
+**
+** Name: bta_fm_co.c
+**
+** Description: This file contains the FM callout function implementation
+** for Insight.
+**
+** Copyright (c) 2003-2010, Broadcom Corp., All Rights Reserved.
+** Widcomm Bluetooth Core. Proprietary and confidential.
+**
+*****************************************************************************/
+
+#include "bta_api.h"
+#include "bta_sys.h"
+#include "bta_fm_api.h"
+#include "bta_fm_co.h"
+#include "btif_fm.h"
+
+
+/*******************************************************************************
+**
+** Function bta_fm_co_init
+**
+** Description This callout function is executed by FM when it is
+** started by calling BTA_FmSetRDSMode(). This function can be
+** used by the phone to initialize RDS decoder.
+**
+**
+** Returns
+**
+*******************************************************************************/
+tBTA_FM_STATUS bta_fm_co_init(tBTA_FM_RDS_B rds_mode)
+{
+ APPL_TRACE_DEBUG("bta_fm_init_co");
+
+ BTA_FmRDSInitDecoder();
+
+ BTA_FmRDSRegister(rds_mode, 0xffffffff,
+ /*BTA_FM_RDS_PI_BIT|BTA_FM_RDS_AF_BIT|BTA_FM_RDS_PS_BIT|BTA_FM_RDS_RT_BIT,*/
+ btif_fm_rdsp_cback, BTIF_RDS_APP_ID);
+
+ BTA_FmRDSResetDecoder(BTIF_RDS_APP_ID);
+
+ return BTA_FM_OK;
+}
+
+/*******************************************************************************
+**
+** Function bta_fm_co_close
+**
+** Description This callout function is executed by FM when it is
+** started by calling BTA_FmSetRDSMode() to turn off RDS mode.
+** This function can be used by the phone to reset RDS decoder.
+**
+** Returns
+**
+*******************************************************************************/
+void bta_fm_co_close(void)
+{
+ BTA_FmRDSResetDecoder(BTIF_RDS_APP_ID);
+}
+
+/*******************************************************************************
+**
+** Function bta_fm_co_reset_rds_engine
+**
+** Description This function can be used by the phone to reset RDS decoder.
+** after the TUNE/SEARCH operation
+**
+** Returns
+**
+*******************************************************************************/
+void bta_fm_co_reset_rds_engine(void)
+{
+ BTA_FmRDSResetDecoder(BTIF_RDS_APP_ID);
+}
+
+/*******************************************************************************
+**
+** Function bta_fm_co_rds_data/
+**
+** Description This function is called by FM when RDS data is ready.
+**
+**
+**
+** Returns void
+**
+*******************************************************************************/
+tBTA_FM_STATUS bta_fm_co_rds_data(UINT8 * p_data, UINT16 len)
+{
+ return BTA_FmRDSDecode(BTIF_RDS_APP_ID, p_data, len);
+}
+
diff --git a/btif/include/btif_api.h b/btif/include/btif_api.h
index fc1b67a..0da3de5 100644
--- a/btif/include/btif_api.h
+++ b/btif/include/btif_api.h
@@ -407,4 +407,10 @@ void btif_dm_read_energy_info();
**
*******************************************************************************/
bt_status_t btif_config_hci_snoop_log(uint8_t enable);
+
+#ifdef BOARD_HAVE_FMRADIO_BCM
+void btif_enable_radio();
+void btif_disable_radio();
+#endif
+
#endif /* BTIF_API_H */
diff --git a/btif/include/btif_fm.h b/btif/include/btif_fm.h
new file mode 100644
index 0000000..523030e
--- /dev/null
+++ b/btif/include/btif_fm.h
@@ -0,0 +1,101 @@
+/******************************************************************************
+ *
+ * Copyright (C) 2009-2012 Broadcom Corporation
+ *
+ * This program is the proprietary software of Broadcom Corporation and/or its
+ * licensors, and may only be used, duplicated, modified or distributed
+ * pursuant to the terms and conditions of a separate, written license
+ * agreement executed between you and Broadcom (an "Authorized License").
+ * Except as set forth in an Authorized License, Broadcom grants no license
+ * (express or implied), right to use, or waiver of any kind with respect to
+ * the Software, and Broadcom expressly reserves all rights in and to the
+ * Software and all intellectual property rights therein.
+ * IF YOU HAVE NO AUTHORIZED LICENSE, THEN YOU HAVE NO RIGHT TO USE THIS
+ * SOFTWARE IN ANY WAY, AND SHOULD IMMEDIATELY NOTIFY BROADCOM AND DISCONTINUE
+ * ALL USE OF THE SOFTWARE.
+ *
+ * Except as expressly set forth in the Authorized License,
+ *
+ * 1. This program, including its structure, sequence and organization,
+ * constitutes the valuable trade secrets of Broadcom, and you shall
+ * use all reasonable efforts to protect the confidentiality thereof,
+ * and to use this information only in connection with your use of
+ * Broadcom integrated circuit products.
+ *
+ * 2. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED
+ * "AS IS" AND WITH ALL FAULTS AND BROADCOM MAKES NO PROMISES,
+ * REPRESENTATIONS OR WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY,
+ * OR OTHERWISE, WITH RESPECT TO THE SOFTWARE. BROADCOM SPECIFICALLY
+ * DISCLAIMS ANY AND ALL IMPLIED WARRANTIES OF TITLE, MERCHANTABILITY,
+ * NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF VIRUSES,
+ * ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
+ * CORRESPONDENCE TO DESCRIPTION. YOU ASSUME THE ENTIRE RISK ARISING
+ * OUT OF USE OR PERFORMANCE OF THE SOFTWARE.
+ *
+ * 3. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL BROADCOM
+ * OR ITS LICENSORS BE LIABLE FOR
+ * (i) CONSEQUENTIAL, INCIDENTAL, SPECIAL, INDIRECT, OR EXEMPLARY
+ * DAMAGES WHATSOEVER ARISING OUT OF OR IN ANY WAY RELATING TO
+ * YOUR USE OF OR INABILITY TO USE THE SOFTWARE EVEN IF BROADCOM
+ * HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES; OR
+ * (ii) ANY AMOUNT IN EXCESS OF THE AMOUNT ACTUALLY PAID FOR THE
+ * SOFTWARE ITSELF OR U.S. $1, WHICHEVER IS GREATER. THESE
+ * LIMITATIONS SHALL APPLY NOTWITHSTANDING ANY FAILURE OF
+ * ESSENTIAL PURPOSE OF ANY LIMITED REMEDY.
+ *
+ *****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename: btif_fm.h
+ *
+ * Description: Main API header file for all BTIF FM functions accessed
+ * from internal stack.
+ *
+ *****************************************************************************/
+
+#ifndef BTIF_FM_H
+#define BTIF_FM_H
+
+
+#include "bta_fm_api.h"
+#include "bta_rds_api.h"
+
+
+
+/*****************************************************************************
+** Constants & Macros
+******************************************************************************/
+#define BTIF_RDS_APP_ID 1
+
+/*****************************************************************************
+** Type definitions for callback functions
+******************************************************************************/
+
+/*****************************************************************************
+** Type definitions and return values
+******************************************************************************/
+
+/*****************************************************************************
+** Extern variables and functions
+******************************************************************************/
+ extern void btif_fm_rdsp_cback(tBTA_RDS_EVT event, tBTA_FM_RDS *p_data, UINT8 app_id);
+
+/*****************************************************************************
+** Functions
+******************************************************************************/
+
+
+/*****************************************************************************
+** BTIF CORE API
+******************************************************************************/
+
+/*****************************************************************************
+** BTIF AV API
+******************************************************************************/
+
+
+
+#endif /* BTIF_FM_H */
+
+
diff --git a/btif/include/stack_manager.h b/btif/include/stack_manager.h
index 1cb87fe..5e25041 100644
--- a/btif/include/stack_manager.h
+++ b/btif/include/stack_manager.h
@@ -27,6 +27,13 @@ typedef struct {
void (*clean_up_stack_async)(void);
bool (*get_stack_is_running)(void);
+
+#ifdef BOARD_HAVE_FMRADIO_BCM
+ bool (*start_up_radio)(void);
+ bool (*shut_down_radio)(void);
+
+ bool (*get_radio_is_running)(void);
+#endif
} stack_manager_t;
const stack_manager_t *stack_manager_get_interface();
diff --git a/btif/src/bluetooth.c b/btif/src/bluetooth.c
index 78c98eb..6f26d57 100644
--- a/btif/src/bluetooth.c
+++ b/btif/src/bluetooth.c
@@ -46,6 +46,9 @@
#ifdef WIPOWER_SUPPORTED
#include <hardware/wipower.h>
#endif
+#ifdef BOARD_HAVE_FMRADIO_BCM
+#include <hardware/bt_fm.h>
+#endif
#define LOG_NDDEBUG 0
#define LOG_TAG "bt_bluedroid"
@@ -124,6 +127,10 @@ extern wipower_interface_t *get_wipower_interface();
extern btrc_interface_t *btif_rc_ctrl_get_interface();
/*SDP search client*/
extern btsdp_interface_t *btif_sdp_get_interface();
+#ifdef BOARD_HAVE_FMRADIO_BCM
+/* fm */
+extern btfm_interface_t *btif_fm_get_interface();
+#endif
#if TEST_APP_INTERFACE == TRUE
extern const btl2cap_interface_t *btif_l2cap_get_interface(void);
@@ -421,6 +428,11 @@ static const void* get_profile_interface (const char *profile_id)
if (is_profile(profile_id, BT_PROFILE_AV_RC_CTRL_ID))
return btif_rc_ctrl_get_interface();
+#ifdef BOARD_HAVE_FMRADIO_BCM
+ if (is_profile(profile_id, BT_PROFILE_FM_ID))
+ return btif_fm_get_interface();
+#endif
+
return NULL;
}
diff --git a/btif/src/btif_core.c b/btif/src/btif_core.c
index ba717bb..5d74b11 100644
--- a/btif/src/btif_core.c
+++ b/btif/src/btif_core.c
@@ -266,6 +266,14 @@ int btif_is_enabled(void)
void btif_init_ok(UNUSED_ATTR uint16_t event, UNUSED_ATTR char *p_param) {
BTIF_TRACE_DEBUG("btif_task: received trigger stack init event");
+
+#ifdef BOARD_HAVE_FMRADIO_BCM
+ if (!event && stack_manager_get_interface()->get_radio_is_running()) {
+ future_ready(stack_manager_get_hack_future(), FUTURE_SUCCESS);
+ return;
+ }
+#endif
+
#if (BLE_INCLUDED == TRUE)
btif_dm_load_ble_local_keys();
#endif
@@ -703,6 +711,14 @@ void btif_disable_bluetooth_evt(void)
BTIF_TRACE_DEBUG("%s SSR triggered,Ignore EVT",__FUNCTION__);
return;
}
+
+#ifdef BOARD_HAVE_FMRADIO_BCM
+ if (stack_manager_get_interface()->get_radio_is_running()) {
+ future_ready(stack_manager_get_hack_future(), FUTURE_SUCCESS);
+ return;
+ }
+#endif
+
#if (defined(HCILP_INCLUDED) && HCILP_INCLUDED == TRUE)
bte_main_enable_lpm(FALSE);
#endif
diff --git a/btif/src/btif_fm.c b/btif/src/btif_fm.c
new file mode 100644
index 0000000..c1f1c79
--- /dev/null
+++ b/btif/src/btif_fm.c
@@ -0,0 +1,898 @@
+/******************************************************************************
+ *
+ * Copyright (C) 2009-2012 Broadcom Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ ******************************************************************************/
+
+
+/*****************************************************************************
+ *
+ * Filename: btif_fm.c
+ *
+ * Description: Bluedroid Fm implementation
+ *
+ *****************************************************************************/
+
+#include <hardware/bluetooth.h>
+#include <hardware/bt_fm.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <string.h>
+
+#define LOG_TAG "BTIF_FM"
+
+#include "bta_api.h"
+#include "bta_rds_api.h"
+
+
+#include "btif_common.h"
+#include "btif_util.h"
+#include "btif_fm.h"
+#include "gki.h"
+#include "stack_manager.h"
+
+
+
+/*****************************************************************************
+** Constants & Macros
+******************************************************************************/
+
+
+/* originally 85. however 85 is quite low causing continuous jumps. NFL should be run too
+ * to give a better estimation */
+#ifndef BTIF_FM_AF_THRESH
+#define BTIF_FM_AF_THRESH 95
+#endif
+
+#define BTIF_RDS_STR_LEN_8 8
+#define BTIF_RDS_STR_LEN_64 64
+
+
+#define CHECK_BTFM_INIT() if (bt_fm_callbacks == NULL)\
+ {\
+ BTIF_TRACE_EVENT("BTFM: %s: BTFM not initialized", __func__);\
+ return BTA_WRONG_MODE;\
+ } else {\
+ BTIF_TRACE_EVENT("BTFM: %s", __func__);\
+ }
+/* remapping of bta values. BT over SCO and A2DP are missing. keep in sync with is sent from jni! */
+#define BTIF_FM_AUDIO_PATH_NONE 0
+#define BTIF_FM_AUDIO_PATH_SPEAKER 1
+#define BTIF_FM_AUDIO_PATH_WIRED_HEADSET 2
+#define BTIF_FM_AUDIO_PATH_DIGITAL 3
+
+
+/*****************************************************************************
+** Local type definitions
+******************************************************************************/
+
+
+
+/* FM data */
+
+typedef struct
+{
+ BOOLEAN af_avail;
+ BOOLEAN af_on;
+ UINT16 pi_code;
+ tBTA_FM_AF_LIST af_list;
+}tBTIF_FM_AF_CB;
+
+typedef struct
+{
+ BOOLEAN rds_on;
+ BOOLEAN audio_mute;
+ BOOLEAN search_in_progress;
+ tBTA_FM_AUDIO_MODE mode;
+ tBTA_FM_AUDIO_PATH path; /* this relies on bta_fm_api.h (and bta_fm_act.c) channges */
+ tBTA_FM_STEP_TYPE scan_step;
+ UINT16 cur_freq;
+ tBTIF_FM_AF_CB af_cb;
+ UINT16 volume;
+ int current_bta_path;
+} tBTIF_FM_Data;
+
+/*****************************************************************************
+** Static variables
+******************************************************************************/
+static btfm_callbacks_t *bt_fm_callbacks = NULL;
+static tBTIF_FM_Data btif_fm_data;
+
+/*************************************************************************
+** Extern functions
+*************************************************************************/
+ extern void bta_fm_co_reset_rds_engine(void);
+
+
+/*****************************************************************************
+** Local helper functions
+******************************************************************************/
+ static void btif_fm_cback(tBTA_FM_EVT event, tBTA_FM *p_data);
+ static int btif_fm_set_rds_mode(BOOLEAN rdsOn, BOOLEAN afOn);
+ static void btif_fm_set_rds_mode_int(BOOLEAN rds_on, BOOLEAN af_on);
+
+ static int btif_fm_tune(int freq);
+ static int btif_fm_set_audio_path(int audioPath);
+ static int btif_fm_set_volume(int volume);
+
+
+ /*******************************************************************************
+ **
+ ** Function btif_fm_af_merge_list
+ **
+ ** Description For method-B AF encoding, merge up the AF list for seperate
+ ** short lists based on the same currently tuned service.
+ **
+ ** Returns BOOLEAN: TRUE: when AF list is updated
+ ** FALSE: No AF list updating needed.
+ **
+ *******************************************************************************/
+ static BOOLEAN btif_fm_af_merge_list(tBTA_FM_AF_LIST *p_af_data)
+ {
+ UINT8 i, j ;
+ BOOLEAN duplicate, add_up = FALSE;
+ tBTA_FM_AF_LIST *p_local_lst = &btif_fm_data.af_cb.af_list;
+ BTIF_TRACE_DEBUG("%s", __func__);
+
+ for (i = 0; i < p_af_data->num_af; i ++)
+ {
+ duplicate = FALSE;
+
+ for (j = 0; j < p_local_lst->num_af; j ++)
+ {
+ if (p_af_data->af_list[i] == p_local_lst->af_list[j])
+ {
+ duplicate = TRUE;
+ break;
+ }
+ }
+ if ( ! duplicate)
+ {
+ add_up = TRUE;
+ p_local_lst->af_type[p_local_lst->num_af] = p_af_data->af_type[i];
+ p_local_lst->af_list[p_local_lst->num_af ++] = p_af_data->af_list[i];
+ }
+ }
+ return add_up;
+ }
+
+
+ /*******************************************************************************
+ **
+ ** Function btif_fm_rdsp_cback
+ **
+ ** Description RDS decoder call back function.
+ **
+ ** Returns void
+ *******************************************************************************/
+ void btif_fm_rdsp_cback(tBTA_RDS_EVT event, tBTA_FM_RDS *p_data, UINT8 app_id)
+ {
+ UINT8 i = 0;
+ BOOLEAN new_af = TRUE;
+
+ switch(event)
+ {
+ case BTA_RDS_REG_EVT:
+ BTIF_TRACE_DEBUG("Client register status: %d", p_data->status);
+ break;
+ case BTA_RDS_PI_EVT:
+ BTIF_TRACE_DEBUG("%s: BTA_RDS_PI_EVT pi_code = %d", __func__, p_data->pi_code);
+ btif_fm_data.af_cb.pi_code = p_data->pi_code;
+ break;
+ case BTA_RDS_AF_EVT:
+ BTIF_TRACE_DEBUG("BTA_RDS_AF_EVT received in %s, tn_freq = %d, num_af = %d",
+ (p_data->af_data.method == BTA_RDS_AF_M_B)? "Method-B" :"Method-A",
+ p_data->af_data.list.af_list[0], btif_fm_data.af_cb.af_list.num_af);
+
+ if (btif_fm_data.af_cb.af_on)
+ {
+ new_af = TRUE; /* needs to be true handle first time setup of AF */
+
+ if (p_data->af_data.method == BTA_RDS_AF_M_B)
+ {
+ if (p_data->af_data.list.af_list[0] == btif_fm_data.cur_freq)
+ new_af = btif_fm_af_merge_list(&p_data->af_data.list);
+ else
+ /* Application can choose to remember other tuned frequency AF list */
+ /* btui_app, other TN af list, skip */
+ new_af = FALSE;
+ }
+ else
+ memcpy(&btif_fm_data.af_cb.af_list, &p_data->af_data.list, sizeof(tBTA_FM_AF_LIST));
+ if (new_af)
+ {
+ btif_fm_data.af_cb.af_avail = TRUE;
+ /* when a new AF arrives, update AF list by calling set RDS mode */
+ if (btif_fm_data.af_cb.af_on)
+ {
+ btif_fm_set_rds_mode_int(TRUE, TRUE);
+ }
+ }
+
+ i = 0;
+ while (i < btif_fm_data.af_cb.af_list.num_af)
+ {
+ BTIF_TRACE_DEBUG(">>>>>>>>>>>>>>>>>>>>>>>>>AF[%d] [%d]", i+1,
+ btif_fm_data.af_cb.af_list.af_list[i]);
+ i++;
+ }
+ }
+ break;
+ case BTA_RDS_PS_EVT:
+ {
+ BTIF_TRACE_DEBUG("BTA_RDS_PS_EVT received");
+ /* Reformat for transport to app via standard callback event. */
+ tBTA_FM rds_event_data;
+ rds_event_data.rds_update.status = BTA_FM_OK;
+ rds_event_data.rds_update.data = BTA_RDS_PS_EVT;
+ rds_event_data.rds_update.index = 0;
+ memcpy(rds_event_data.rds_update.text, p_data->p_data, BTIF_RDS_STR_LEN_8+1);
+
+ btif_fm_cback(BTA_FM_RDS_UPD_EVT, (tBTA_FM *)&rds_event_data);
+ }
+ break;
+ case BTA_RDS_TP_EVT:
+ BTIF_TRACE_DEBUG("BTA_RDS_TP_EVT received");
+ break;
+ case BTA_RDS_PTY_EVT:
+ {
+ BTIF_TRACE_DEBUG("BTA_RDS_TPY_EVT received");
+ /* Reformat for transport to app via standard callback event. */
+ tBTA_FM rds_event_data;
+ rds_event_data.rds_update.status = BTA_FM_OK;
+ rds_event_data.rds_update.data = BTA_RDS_PTY_EVT;
+ rds_event_data.rds_update.index = p_data->pty.pty_val;
+ memcpy(rds_event_data.rds_update.text, p_data->pty.p_str, BTIF_RDS_STR_LEN_8+1);
+
+ btif_fm_cback(BTA_FM_RDS_UPD_EVT, (tBTA_FM *)&rds_event_data);
+ }
+ break;
+ case BTA_RDS_PTYN_EVT:
+ {
+ BTIF_TRACE_DEBUG("BTA_RDS_TPYN_EVT received");
+ /* Reformat for transport to app via standard callback event. */
+ tBTA_FM rds_event_data;
+ rds_event_data.rds_update.status = BTA_FM_OK;
+ rds_event_data.rds_update.data = BTA_RDS_PTYN_EVT;
+ rds_event_data.rds_update.index = 0;
+ memcpy(rds_event_data.rds_update.text, p_data->p_data, BTIF_RDS_STR_LEN_8+1);
+
+ btif_fm_cback(BTA_FM_RDS_UPD_EVT, (tBTA_FM *)&rds_event_data);
+ }
+ break;
+ case BTA_RDS_RT_EVT:
+ BTIF_TRACE_DEBUG("BTA_RDS_RT_EVT received");
+ if (p_data->rt.complete != FALSE) {
+ /* Reformat for transport to app via standard callback event. */
+ tBTA_FM rds_event_data;
+ rds_event_data.rds_update.status = BTA_FM_OK;
+ rds_event_data.rds_update.data = BTA_RDS_RT_EVT;
+ rds_event_data.rds_update.index = p_data->rt.g_type;
+ memcpy(rds_event_data.rds_update.text, p_data->rt.p_data, BTIF_RDS_STR_LEN_64+1);
+
+ btif_fm_cback(BTA_FM_RDS_UPD_EVT, (tBTA_FM *)&rds_event_data);
+ }
+ break;
+ case BTA_RDS_RTP_EVT:
+ if (NULL != p_data) {
+ int k = 0;
+ BTIF_TRACE_DEBUG("BTA_RDS_RTP_EVT");
+ tBTA_RDS_RTP *p_rtp_data = (tBTA_RDS_RTP*)p_data;
+
+ BTIF_TRACE_DEBUG("%s: bRunning: %d bToggle = %d tag_num - %d",__func__,
+ p_rtp_data->running,p_rtp_data->tag_toggle,
+ p_rtp_data->tag_num);
+ k = p_rtp_data->tag_num;
+ while(k){
+
+ BTIF_TRACE_DEBUG("%s: content_type: %d start: %d len: %d",__func__,
+ p_rtp_data->tag[k].content_type,p_rtp_data->tag[k].start,
+ p_rtp_data->tag[k].len);
+ k--;
+ }
+ btif_fm_cback(BTA_RDS_RTP_EVT, (tBTA_FM *)&p_rtp_data);
+
+ } else {
+ BTIF_TRACE_DEBUG("BTIF_FM: BTA_RDS_RTP_EVT FAILED!!! (DATA == NULL)");
+ }
+
+ break;
+ default:
+ BTIF_TRACE_DEBUG("RDS register status: %d", event);
+ break;
+ }
+ }
+
+
+
+
+
+ /*******************************************************************************
+ **
+ ** Function btif_fm_set_rds_mode_int
+ **
+ ** Description Turn on/off RDS/AF mode.
+ **
+ ** Returns void
+ *******************************************************************************/
+
+static void btif_fm_set_rds_mode_int(BOOLEAN rds_on, BOOLEAN af_on)
+{
+ UINT8 i = 0;
+ tBTA_FM_AF_PARAM *p_af_param = NULL;
+ tBTA_FM_AF_LIST af_list = {2, {BTA_FM_AF_FM, BTA_FM_AF_FM}, { 1079, 880}};
+
+ BTIF_TRACE_DEBUG("%s: rds_on = %d, af_on = %d, af_avail = %d",
+ __func__, rds_on, af_on, btif_fm_data.af_cb.af_avail);
+
+ if (af_on && btif_fm_data.af_cb.af_avail &&
+ ((p_af_param = GKI_getbuf(sizeof(tBTA_FM_AF_PARAM))) != NULL))
+ {
+ p_af_param->af_thresh = (UINT8) BTIF_FM_AF_THRESH;
+ p_af_param->pi_code = btif_fm_data.af_cb.pi_code;
+ memcpy(&p_af_param->af_list, &btif_fm_data.af_cb.af_list, sizeof(tBTA_FM_AF_LIST));
+ while(i < p_af_param->af_list.num_af)
+ {
+ BTIF_TRACE_DEBUG(">>>>> pi_code [%d]", p_af_param->pi_code);
+ BTIF_TRACE_DEBUG(">>>>> AF[%d] [%d]", i+1, p_af_param->af_list.af_list[i]);
+ i++;
+ }
+ }
+
+ /* enable RDS data polling with once every 3 seconds */
+ BTA_FmSetRDSMode(rds_on, af_on, p_af_param);
+
+ if (p_af_param)
+ GKI_freebuf((void *)p_af_param);
+}
+
+/*******************************************************************************
+**
+** Function btif_fm_clear_af_info
+**
+** Description Reset AF information if a new frequency is set.
+**
+** Returns void
+*******************************************************************************/
+static void btif_fm_clear_af_info(void)
+{
+ BOOLEAN af_on = btif_fm_data.af_cb.af_on ;
+
+ memset(&btif_fm_data.af_cb, 0, sizeof(tBTIF_FM_AF_CB));
+ if ((btif_fm_data.af_cb.af_on = af_on) == TRUE)
+ btif_fm_set_rds_mode_int(btif_fm_data.rds_on, btif_fm_data.af_cb.af_on);
+
+}
+
+
+
+static void btif_fm_upstreams_evt(UINT16 event, char* p_evt_data)
+{
+ tBTA_FM *p_fm_evt_data = (tBTA_FM *)p_evt_data;
+
+ switch (event)
+ {
+ case BTA_FM_ENABLE_EVT:
+ APPL_TRACE_DEBUG("%s: event= BTA_FM_ENABLE_EVT", __func__);
+ // wait 150 ms for the FM engine to stabilize in stress situation
+ // TODO Fine tune
+ usleep(150000);
+ memset(&btif_fm_data, 0, sizeof(tBTIF_FM_Data));
+ HAL_CBACK(bt_fm_callbacks, enable_cb, p_fm_evt_data->status);
+ break;
+ case BTA_FM_TUNE_EVT:
+ APPL_TRACE_DEBUG("%s: BTA_FM_TUNE_EVT status = %i rssi = %i freq = %i ",
+ __func__, (int)p_fm_evt_data->chnl_info.status, (int)p_fm_evt_data->chnl_info.rssi,
+ (int)p_fm_evt_data->chnl_info.freq);
+
+ btif_fm_data.search_in_progress = FALSE;
+ btif_fm_clear_af_info();
+
+ if (btif_fm_data.rds_on)
+ {
+ // Reset the RDS engine
+ bta_fm_co_reset_rds_engine();
+ }
+
+ /* keep track of current radio frequency as required by AF for example */
+ btif_fm_data.cur_freq = p_fm_evt_data->chnl_info.freq;
+ HAL_CBACK(bt_fm_callbacks, tune_cb,
+ p_fm_evt_data->status, p_fm_evt_data->chnl_info.rssi,
+ p_fm_evt_data->chnl_info.snr, p_fm_evt_data->chnl_info.freq);
+ break;
+ case BTA_FM_DISABLE_EVT:
+ APPL_TRACE_DEBUG("%s: event= BTA_FM_DISABLE_EVT", __func__);
+ // TODO Fine tune
+ usleep(300000);
+ stack_manager_get_interface()->shut_down_radio();
+ HAL_CBACK(bt_fm_callbacks, disable_cb, p_fm_evt_data->status);
+ break;
+
+ case BTA_FM_AF_JMP_EVT:
+ APPL_TRACE_DEBUG("%s: BTA_FM_AF_JMP_EVT status = %i rssi = %i freq = %i ",
+ __func__, (int)p_fm_evt_data->chnl_info.status, (int)p_fm_evt_data->chnl_info.rssi,
+ (int)p_fm_evt_data->chnl_info.freq);
+ /* keep track of current radio frequency as required by AF */
+ btif_fm_data.cur_freq = p_fm_evt_data->chnl_info.freq;
+ HAL_CBACK(bt_fm_callbacks, af_jump_cb,
+ p_fm_evt_data->status, p_fm_evt_data->chnl_info.rssi,
+ p_fm_evt_data->chnl_info.snr, p_fm_evt_data->chnl_info.freq);
+ break;
+
+ case BTA_FM_SEARCH_CMPL_EVT:
+ APPL_TRACE_DEBUG("%s: BTA_FM_SEARCH_CMPL_EVT status = %i rssi = %i freq = %i ",
+ __func__, (int)p_fm_evt_data->chnl_info.status, (int)p_fm_evt_data->chnl_info.rssi,
+ (int)p_fm_evt_data->chnl_info.freq);
+
+ btif_fm_data.search_in_progress = FALSE;
+ btif_fm_clear_af_info();
+ if (btif_fm_data.rds_on)
+ {
+ bta_fm_co_reset_rds_engine();
+ }
+ btif_fm_data.cur_freq = p_fm_evt_data->chnl_info.freq;
+
+ HAL_CBACK(bt_fm_callbacks, search_complete_cb,
+ p_fm_evt_data->status, p_fm_evt_data->chnl_info.rssi,
+ p_fm_evt_data->chnl_info.snr, p_fm_evt_data->chnl_info.freq);
+ break;
+
+ case BTA_FM_SEARCH_EVT:
+ APPL_TRACE_DEBUG("%s: BTA_FM_SEARCH_EVT rssi = %i snr = %i freq = %i ",
+ __func__, (int)p_fm_evt_data->scan_data.rssi, (int)p_fm_evt_data->scan_data.snr,
+ (int)p_fm_evt_data->scan_data.freq);
+
+ btif_fm_data.search_in_progress = FALSE;
+ btif_fm_clear_af_info();
+
+ btif_fm_data.cur_freq = p_fm_evt_data->scan_data.freq;
+
+ //No status sent from stack so treat the event received as BTA_FM_OK
+ HAL_CBACK(bt_fm_callbacks, search_cb,
+ BTA_FM_OK, p_fm_evt_data->scan_data.rssi,
+ p_fm_evt_data->scan_data.snr, p_fm_evt_data->scan_data.freq);
+ break;
+
+ case BTA_FM_AUD_MODE_EVT:
+ APPL_TRACE_DEBUG("%s: event= BTA_FM_AUD_MODE_EVT,audio_mode = %d",
+ __func__, p_fm_evt_data->mode_info.audio_mode);
+
+ btif_fm_data.mode = p_fm_evt_data->mode_info.audio_mode;
+ HAL_CBACK(bt_fm_callbacks, audio_mode_cb, p_fm_evt_data->status,
+ p_fm_evt_data->mode_info.audio_mode);
+ break;
+
+ case BTA_FM_RDS_UPD_EVT:
+ HAL_CBACK(bt_fm_callbacks, rds_data_cb,
+ p_fm_evt_data->status, p_fm_evt_data->rds_update.data,
+ p_fm_evt_data->rds_update.index, p_fm_evt_data->rds_update.text);
+ break;
+
+ case BTA_RDS_RTP_EVT:
+ HAL_CBACK(bt_fm_callbacks, rtp_data_cb, (btfm_rds_rtp_info_t *)p_fm_evt_data);
+ break;
+
+ case BTA_FM_AUD_DATA_EVT:
+ APPL_TRACE_DEBUG("%s: BTA_FM_SEARCH_EVT status = %i rssi = %i freq = %i ",
+ __func__, (int)p_fm_evt_data->audio_data.status, (int)p_fm_evt_data->audio_data.rssi,
+ (int)p_fm_evt_data->chnl_info.freq);
+
+ if (btif_fm_data.search_in_progress == FALSE)
+ {
+ HAL_CBACK(bt_fm_callbacks, audio_data_cb,
+ p_fm_evt_data->audio_data.status, p_fm_evt_data->audio_data.rssi,
+ p_fm_evt_data->audio_data.snr, p_fm_evt_data->audio_data.audio_mode);
+ }
+ break;
+
+ case BTA_FM_AUD_PATH_EVT:
+ APPL_TRACE_DEBUG("%s: BTA_FM_AUD_PATH_EVT, bta audio_path: %d, status: %d",
+ __func__, p_fm_evt_data->path_info.audio_path,
+ p_fm_evt_data->path_info.status);
+ btif_fm_data.current_bta_path = p_fm_evt_data->path_info.audio_path;
+ HAL_CBACK(bt_fm_callbacks, audio_path_cb, p_fm_evt_data->status,
+ p_fm_evt_data->path_info.audio_path);
+ break;
+
+ case BTA_FM_RDS_MODE_EVT:
+ APPL_TRACE_DEBUG("%s: BTA_FM_RDS_MODE_EVT: status=%d, RDS=%s, AF=%s", __func__,
+ (UINT8)(p_fm_evt_data->rds_mode.status),
+ p_fm_evt_data->rds_mode.rds_on ? "TRUE" : "FALSE",
+ p_fm_evt_data->rds_mode.af_on ? "TRUE" : "FALSE");
+
+ btif_fm_data.af_cb.af_on = p_fm_evt_data->rds_mode.af_on;
+ if (btif_fm_data.rds_on != p_fm_evt_data->rds_mode.rds_on)
+ {
+ btif_fm_data.rds_on = p_fm_evt_data->rds_mode.rds_on;
+ }
+ HAL_CBACK(bt_fm_callbacks,rds_mode_cb,p_fm_evt_data->rds_mode.status,
+ p_fm_evt_data->rds_mode.rds_on, p_fm_evt_data->rds_mode.af_on);
+ break;
+
+ case BTA_FM_SET_DEEMPH_EVT:
+ APPL_TRACE_DEBUG("%s: BTA_FM_SET_DEEMPH_EVT", __func__);
+ HAL_CBACK(bt_fm_callbacks, deemphasis_cb, p_fm_evt_data->deemphasis.status,
+ p_fm_evt_data->deemphasis.time_const);
+ break;
+
+ case BTA_FM_MUTE_AUD_EVT:
+ APPL_TRACE_DEBUG("%s: BTA_FM_MUTE_AUD_EVT", __func__);
+
+ btif_fm_data.audio_mute = p_fm_evt_data->mute_stat.is_mute;
+ HAL_CBACK(bt_fm_callbacks, mute_cb, p_fm_evt_data->mute_stat.status,
+ p_fm_evt_data->mute_stat.is_mute);
+ break;
+
+ case BTA_FM_SCAN_STEP_EVT:
+ APPL_TRACE_DEBUG("%s: BTA_FM_SCAN_STEP_EVT", __func__);
+ btif_fm_data.scan_step = p_fm_evt_data->scan_step ;
+ HAL_CBACK(bt_fm_callbacks, scan_step_cb, p_fm_evt_data->status,
+ p_fm_evt_data->scan_step);
+ break;
+
+ case BTA_FM_SET_REGION_EVT:
+ APPL_TRACE_DEBUG("%s: BTA_FM_SET_REGION_EVT", __func__);
+ HAL_CBACK(bt_fm_callbacks, region_cb, p_fm_evt_data->region_info.status,
+ p_fm_evt_data->region_info.region);
+ break;
+
+ case BTA_FM_NFL_EVT:
+ APPL_TRACE_DEBUG("%s: BTA_FM_NFL_EVT: NFL = %d", __func__, (int)p_fm_evt_data->nfloor.rssi);
+ HAL_CBACK(bt_fm_callbacks, nfl_cb, p_fm_evt_data->region_info.status,
+ p_fm_evt_data->region_info.region);
+ break;
+
+ case BTA_FM_RDS_TYPE_EVT:
+ APPL_TRACE_DEBUG("%s: BTA_FM_RDS_TYPE_EVT: status=%d rds_type=0x%x", __func__,
+ (UINT8)p_fm_evt_data->rds_type.status, (UINT8)p_fm_evt_data->rds_type.type);
+ HAL_CBACK(bt_fm_callbacks, rds_type_cb, p_fm_evt_data->rds_type.status,
+ p_fm_evt_data->rds_type.type);
+ break;
+
+ case BTA_FM_VOLUME_EVT:
+ {
+ APPL_TRACE_DEBUG("%s: BTA_FM_VOLUME_EVT: status = %d, volume = %d", __func__,
+ p_fm_evt_data->volume.status, p_fm_evt_data->volume.volume);
+
+ HAL_CBACK(bt_fm_callbacks, volume_cb, p_fm_evt_data->volume.status,
+ p_fm_evt_data->volume.volume);
+
+ }
+ break;
+
+ default:
+ APPL_TRACE_DEBUG("%s: Unhandled event %i", __func__, event);
+ break;
+ }
+}
+
+/*******************************************************************************
+**
+** Function btif_fm_cback
+**
+** Description transfer context for processing the events from FM
+**
+** Returns void
+*******************************************************************************/
+static void btif_fm_cback(tBTA_FM_EVT event, tBTA_FM *p_data)
+{
+ bt_status_t status;
+ status = btif_transfer_context(btif_fm_upstreams_evt, (UINT16) event,
+ (void*)p_data, sizeof(tBTA_FM), NULL);
+ ASSERTC(status == BT_STATUS_SUCCESS, "Context transfer failed!", status);
+}
+
+
+/**
+ * Opens the interface and provides the callback routines
+ * to the implemenation of this interface.
+ */
+static int btif_fm_init (btfm_callbacks_t* callbacks )
+{
+ BTIF_TRACE_EVENT("%s", __func__);
+ bt_fm_callbacks = callbacks;
+ return BTA_SUCCESS;
+}
+
+/** Enable Fm. */
+int btif_fm_enable (int functionalityMask)
+{
+ CHECK_BTFM_INIT();
+ stack_manager_get_interface()->start_up_radio();
+ BTA_FmEnable(functionalityMask, btif_fm_cback, BTIF_RDS_APP_ID);
+ return BTA_SUCCESS;
+}
+
+
+/** Tune Fm. */
+static int btif_fm_tune(int freq)
+{
+ CHECK_BTFM_INIT();
+ btif_fm_data.search_in_progress = TRUE;
+
+ BTA_FmTuneFreq(freq);
+ return BTA_SUCCESS;
+}
+
+
+/** Mute/unmute Fm. */
+static int btif_fm_mute(BOOLEAN mute)
+{
+ CHECK_BTFM_INIT();
+ BTA_FmMute(mute);
+ return BTA_SUCCESS;
+}
+
+
+/** Search Fm. */
+static int btif_fm_search(int scanMode, int rssiThresh, int condType, int CondValue)
+{
+ tBTA_FM_SCH_RDS_COND temp_cond;
+ CHECK_BTFM_INIT();
+
+ temp_cond.cond_type = condType;
+ temp_cond.cond_val = CondValue;
+ if ((0 == temp_cond.cond_type) && (0 == temp_cond.cond_val))
+ {
+ BTA_FmSearchFreq(scanMode,
+ rssiThresh, NULL);
+ }
+ else
+ {
+ BTA_FmSearchFreq(scanMode,
+ rssiThresh, (tBTA_FM_SCH_RDS_COND*) (&temp_cond));
+ }
+ return BTA_SUCCESS;
+}
+
+
+/** Search Fm.with frequency wrap */
+static int btif_fm_combo_search(int startFreq, int endFreq, int rssiThresh, int direction, int scanMode,
+ BOOLEAN multiChannel, int condType, int condValue)
+{
+ tBTA_FM_SCH_RDS_COND temp_cond;
+ CHECK_BTFM_INIT();
+
+ temp_cond.cond_type = condType;
+ temp_cond.cond_val = condValue;
+
+ if ((0 == temp_cond.cond_type) && (0 == temp_cond.cond_val))
+ {
+ BTA_FmComboSearch(startFreq, endFreq,
+ rssiThresh, direction, scanMode,
+ multiChannel, NULL);
+ }
+ else
+ {
+ BTA_FmComboSearch(startFreq, endFreq,
+ rssiThresh, direction, scanMode,
+ multiChannel, (&temp_cond));
+ }
+ btif_fm_data.search_in_progress= TRUE;
+ return BTA_SUCCESS;
+}
+
+
+/** Abort Search for Fm. */
+static int btif_fm_search_abort()
+{
+ CHECK_BTFM_INIT();
+
+ BTIF_TRACE_EVENT("%s btif_fm_data.Current search_in_progress: %d",
+ __func__,btif_fm_data.search_in_progress);
+ btif_fm_data.search_in_progress = FALSE;
+ /* Abort search for station. */
+ BTA_FmSearchAbort();
+
+ return BTA_SUCCESS;
+}
+
+
+/** Enable rds/af for Fm. */
+static int btif_fm_set_rds_mode(BOOLEAN rdsOn, BOOLEAN afOn)
+{
+ tBTA_FM_AF_PARAM *p_af_param = NULL;
+
+ CHECK_BTFM_INIT();
+ btif_fm_data.rds_on = rdsOn;
+ btif_fm_data.af_cb.af_on = afOn;
+
+ btif_fm_set_rds_mode_int(rdsOn, afOn);
+ return BTA_SUCCESS;
+}
+
+
+/** Set Rds type. */
+static int btif_fm_set_rds_type(int rdsType)
+{
+ CHECK_BTFM_INIT();
+
+ BTA_FmSetRdsRbds(rdsType);
+ return BTA_SUCCESS;
+}
+
+
+/** Set audio mode */
+static int btif_fm_set_audio_mode(int audioMode)
+{
+ CHECK_BTFM_INIT();
+
+ BTA_FmSetAudioMode(audioMode);
+ return BTA_SUCCESS;
+}
+
+/** Set audio path. */
+static int btif_fm_set_audio_path(int audioPath)
+{
+ CHECK_BTFM_INIT();
+ APPL_TRACE_DEBUG(
+ "btif_fm_set_audio_path(requested audioPath: %d) , current_bta_path: %d",
+ audioPath, btif_fm_data.current_bta_path );
+
+ BTA_FmConfigAudioPath((tBTA_FM_AUDIO_PATH)audioPath);
+ return BTA_SUCCESS;
+}
+
+
+/** Set Fm region */
+static int btif_fm_set_region(int regionType)
+{
+ CHECK_BTFM_INIT();
+
+ BTA_FmSetRegion(regionType);
+ return BTA_SUCCESS;
+}
+
+/** Set Fm region */
+static int btif_fm_set_scan_step(int scanStep)
+{
+ CHECK_BTFM_INIT();
+
+ BTA_FmSetScanStep(scanStep);
+ return BTA_SUCCESS;
+}
+
+/** Config de-emphasis param. */
+static int btif_fm_config_deemphasis(int timeType)
+{
+ CHECK_BTFM_INIT();
+
+ BTA_FmConfigDeemphasis(timeType);
+ return BTA_SUCCESS;
+}
+
+
+/** Estimate noise floor. */
+static int btif_fm_estimate_noise_floor(int level)
+{
+ CHECK_BTFM_INIT();
+
+ BTA_FmEstNoiseFloor(level);
+ return BTA_SUCCESS;
+}
+
+
+/** Reads audio quality of current station .Turn audio date live update on/off */
+static int btif_fm_read_audio_quality(BOOLEAN turnOn)
+{
+ CHECK_BTFM_INIT();
+
+ BTA_FmReadAudioQuality(turnOn);
+ return BTA_SUCCESS;
+}
+
+
+/** Used to configure RSSI value polling interval */
+static int btif_fm_config_signal_notification(int time)
+{
+ CHECK_BTFM_INIT();
+
+ BTA_FmSetSignalNotifSetting(time);
+ return BTA_SUCCESS;
+}
+
+
+/** Set fm volume. */
+static int btif_fm_set_volume(int volume)
+{
+ CHECK_BTFM_INIT();
+
+ APPL_TRACE_DEBUG( "btif_fm_volume_control(volume: %d) on current_bta_path: %d",
+ volume, btif_fm_data.current_bta_path );
+
+ BTA_FmVolumeControl(volume);
+
+ return BTA_SUCCESS;
+}
+
+
+/** Set SNR thresh for search. */
+static int btif_fm_set_search_criteria(int value)
+{
+ tBTA_FM_CVALUE criteria;
+ CHECK_BTFM_INIT();
+
+ criteria.snr = value;
+
+ return BTA_FmSetSchCriteria(BTA_FM_CTYPE_SNR, &criteria);
+}
+
+
+/** Disable Fm. */
+static int btif_fm_disable(void)
+{
+ CHECK_BTFM_INIT();
+
+ /* Disable FM */
+ memset(&btif_fm_data, 0, sizeof(tBTIF_FM_Data));
+
+ BTA_FmDisable();
+
+ return BTA_SUCCESS;
+
+}
+
+
+/** Closes the interface. */
+static void btif_fm_cleanup(void)
+{
+ BTIF_TRACE_EVENT("%s bt_fm_callbacks: %d", __func__,bt_fm_callbacks);
+
+ bt_fm_callbacks = NULL;
+}
+
+
+static const btfm_interface_t btfmInterface = {
+ sizeof(btfmInterface),
+ btif_fm_init,
+ btif_fm_enable,
+ btif_fm_tune,
+ btif_fm_mute,
+ btif_fm_search,
+ btif_fm_combo_search,
+ btif_fm_search_abort,
+ btif_fm_set_rds_mode,
+ btif_fm_set_rds_type,
+ btif_fm_set_audio_mode,
+ btif_fm_set_audio_path,
+ btif_fm_set_region,
+ btif_fm_set_scan_step,
+ btif_fm_config_deemphasis,
+ btif_fm_estimate_noise_floor,
+ btif_fm_read_audio_quality,
+ btif_fm_config_signal_notification,
+ btif_fm_set_volume,
+ btif_fm_set_search_criteria,
+ btif_fm_disable,
+ btif_fm_cleanup
+};
+
+/*******************************************************************************
+**
+** Function btif_fm_get_interface
+**
+** Description Get the fm callback interface
+**
+** Returns btfm_interface_t
+**
+*******************************************************************************/
+const btfm_interface_t *btif_fm_get_interface()
+{
+ BTIF_TRACE_EVENT("%s", __func__);
+ return &btfmInterface;
+}
+
+
diff --git a/btif/src/stack_manager.c b/btif/src/stack_manager.c
index 817e46f..f1cdbc5 100644
--- a/btif/src/stack_manager.c
+++ b/btif/src/stack_manager.c
@@ -43,6 +43,9 @@ static thread_t *management_thread;
static bool stack_is_initialized;
// If running, the stack is fully up and able to bluetooth.
static bool stack_is_running;
+#ifdef BOARD_HAVE_FMRADIO_BCM
+static bool radio_is_running;
+#endif
static void event_init_stack(void *context);
static void event_start_up_stack(void *context);
@@ -52,6 +55,13 @@ static void event_clean_up_stack(void *context);
static void event_signal_stack_up(void *context);
static void event_signal_stack_down(void *context);
+#ifdef BOARD_HAVE_FMRADIO_BCM
+static void event_start_up_radio(void *context);
+static void event_shut_down_radio(void *context);
+
+static future_t *radio_future;
+#endif
+
// Unvetted includes/imports, etc which should be removed or vetted in the future
static future_t *hack_future;
void bte_main_enable();
@@ -85,6 +95,26 @@ static bool get_stack_is_running(void) {
return stack_is_running;
}
+#ifdef BOARD_HAVE_FMRADIO_BCM
+static bool start_up_radio(void) {
+ radio_future = future_new();
+ thread_post(management_thread, event_start_up_radio, NULL);
+ future_await(radio_future);
+ return radio_is_running;
+}
+
+static bool shut_down_radio(void) {
+ radio_future = future_new();
+ thread_post(management_thread, event_shut_down_radio, NULL);
+ future_await(radio_future);
+ return !radio_is_running;
+}
+
+static bool get_radio_is_running(void) {
+ return radio_is_running;
+}
+#endif
+
// Internal functions
// Synchronous function to initialize the stack
@@ -94,12 +124,18 @@ static void event_init_stack(void *context) {
if (!stack_is_initialized) {
module_management_start();
+ module_init(get_module(OSI_MODULE));
module_init(get_module(BT_UTILS_MODULE));
module_init(get_module(BTIF_CONFIG_MODULE));
btif_init_bluetooth();
// stack init is synchronous, so no waiting necessary here
stack_is_initialized = true;
+
+ stack_is_running = false;
+#ifdef BOARD_HAVE_FMRADIO_BCM
+ radio_is_running = false;
+#endif
}
if (semaphore)
@@ -126,9 +162,19 @@ static void event_start_up_stack(UNUSED_ATTR void *context) {
LOG_DEBUG("%s is bringing up the stack.", __func__);
hack_future = future_new();
+#ifdef BOARD_HAVE_FMRADIO_BCM
+ if (!radio_is_running) {
+ // Include this for now to put btif config into a shutdown-able state
+ module_start_up(get_module(BTIF_CONFIG_MODULE));
+ bte_main_enable();
+ } else {
+ btif_transfer_context(btif_init_ok, 1, NULL, 0, NULL);
+ }
+#else
// Include this for now to put btif config into a shutdown-able state
module_start_up(get_module(BTIF_CONFIG_MODULE));
bte_main_enable();
+#endif
if (future_await(hack_future) != FUTURE_SUCCESS) {
stack_is_running = true; // So stack shutdown actually happens
@@ -152,11 +198,24 @@ static void event_shut_down_stack(UNUSED_ATTR void *context) {
hack_future = future_new();
stack_is_running = false;
+#ifdef BOARD_HAVE_FMRADIO_BCM
+ if (!radio_is_running) {
+ btif_disable_bluetooth();
+ module_shut_down(get_module(BTIF_CONFIG_MODULE));
+
+ future_await(hack_future);
+ module_shut_down(get_module(CONTROLLER_MODULE)); // Doesn't do any work, just puts it in a restartable state
+ } else {
+ btif_disable_bluetooth();
+ future_await(hack_future);
+ }
+#else
btif_disable_bluetooth();
module_shut_down(get_module(BTIF_CONFIG_MODULE));
future_await(hack_future);
module_shut_down(get_module(CONTROLLER_MODULE)); // Doesn't do any work, just puts it in a restartable state
+#endif
LOG_DEBUG("%s finished.", __func__);
btif_thread_post(event_signal_stack_down, NULL);
@@ -203,6 +262,58 @@ static void event_signal_stack_down(UNUSED_ATTR void *context) {
HAL_CBACK(bt_hal_cbacks, adapter_state_changed_cb, BT_STATE_OFF);
}
+#ifdef BOARD_HAVE_FMRADIO_BCM
+static void event_start_up_radio(void *context) {
+ if (radio_is_running) {
+ LOG_DEBUG("%s radio already brought up.", __func__);
+ return;
+ }
+
+ ensure_stack_is_initialized();
+
+ LOG_DEBUG("%s is bringing up the radio.", __func__);
+ radio_is_running = true;
+
+ if (!stack_is_running) {
+ hack_future = future_new();
+
+ // Include this for now to put btif config into a shutdown-able state
+ module_start_up(get_module(BTIF_CONFIG_MODULE));
+ bte_main_enable();
+
+ if (future_await(hack_future) != FUTURE_SUCCESS) {
+ event_shut_down_radio(NULL);
+ return;
+ }
+ }
+
+ LOG_DEBUG("%s finished", __func__);
+ future_ready(radio_future, FUTURE_SUCCESS);
+}
+
+static void event_shut_down_radio(void *context) {
+ if (!radio_is_running) {
+ LOG_DEBUG("%s radio is already brought down.", __func__);
+ return;
+ }
+
+ LOG_DEBUG("%s is bringing down the radio.", __func__);
+ radio_is_running = false;
+
+ if (!stack_is_running) {
+ hack_future = future_new();
+ btif_disable_bluetooth_evt();
+ future_await(hack_future);
+
+ module_shut_down(get_module(BTIF_CONFIG_MODULE));
+ module_shut_down(get_module(CONTROLLER_MODULE)); // Doesn't do any work, just puts it in a restartable state
+ }
+
+ LOG_DEBUG("%s finished.", __func__);
+ future_ready(radio_future, FUTURE_SUCCESS);
+}
+#endif
+
static void ensure_manager_initialized(void) {
if (management_thread)
return;
@@ -220,7 +331,14 @@ static const stack_manager_t interface = {
shut_down_stack_async,
clean_up_stack_async,
- get_stack_is_running
+ get_stack_is_running,
+
+#ifdef BOARD_HAVE_FMRADIO_BCM
+ start_up_radio,
+ shut_down_radio,
+
+ get_radio_is_running,
+#endif
};
const stack_manager_t *stack_manager_get_interface() {
diff --git a/main/Android.mk b/main/Android.mk
index d98d2ef..aefdf1d 100644
--- a/main/Android.mk
+++ b/main/Android.mk
@@ -1,5 +1,29 @@
LOCAL_PATH:= $(call my-dir)
+ifeq ($(strip $(BOARD_HAVE_FMRADIO_BCM)),true)
+
+#
+# FM core lib
+#
+include $(CLEAR_VARS)
+LOCAL_MODULE := libbt-fmcore
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_SRC_FILES := ../bta/fm/libbt-fmcore.a
+LOCAL_MODULE_SUFFIX := .a
+include $(BUILD_PREBUILT)
+
+#
+# FM rds lib
+#
+include $(CLEAR_VARS)
+LOCAL_MODULE := libbt-fmrds
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+LOCAL_SRC_FILES := ../bta/fm/libbt-fmrds.a
+LOCAL_MODULE_SUFFIX := .a
+include $(BUILD_PREBUILT)
+
+endif
+
#
# Bluetooth HW module
#
@@ -98,6 +122,13 @@ LOCAL_SRC_FILES+= \
LOCAL_SRC_FILES+= \
../udrv/ulinux/uipc.c
+ifeq ($(strip $(BOARD_HAVE_FMRADIO_BCM)),true)
+LOCAL_SRC_FILES += \
+ ../btif/src/btif_fm.c \
+ ../btif/co/bta_fm_co.c \
+ ../bta/fm/bta_fm_legacy.c
+endif
+
LOCAL_C_INCLUDES+= . \
$(LOCAL_PATH)/../ \
$(LOCAL_PATH)/../bta/include \
@@ -147,6 +178,10 @@ ifeq ($(TARGET_PRODUCT), full_maguro)
LOCAL_CFLAGS += -DTARGET_MAGURO
endif
+ifeq ($(strip $(BOARD_HAVE_FMRADIO_BCM)),true)
+ LOCAL_CFLAGS += -DBOARD_HAVE_FMRADIO_BCM
+endif
+
LOCAL_SHARED_LIBRARIES := \
libcutils \
libdl \
@@ -160,6 +195,12 @@ LOCAL_STATIC_LIBRARIES := \
libtinyxml2 \
libbt-qcom_sbc_decoder
+ifeq ($(strip $(BOARD_HAVE_FMRADIO_BCM)),true)
+LOCAL_STATIC_LIBRARIES += \
+ libbt-fmcore \
+ libbt-fmrds
+endif
+
LOCAL_WHOLE_STATIC_LIBRARIES := \
libbt-brcm_bta \
libbt-brcm_gki \
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment