1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 3e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Copyright (C) 2001-2012 Broadcom Corporation 4e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 5e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 6e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * you may not use this file except in compliance with the License. 7e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * You may obtain a copy of the License at: 8e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 9e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 11e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * See the License for the specific language governing permissions and 15e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * limitations under the License. 16e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 17e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/ 18e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 19e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * This file contains codec definitions from Widcomm's Universal Embedded 22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * Drivers API. 23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project * 24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project ******************************************************************************/ 25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef UCODEC_H 27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_H 28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "bt_target.h" 30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus 31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectextern "C" { 32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Codec APIs 37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 39e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**** Codec IDs ****/ 40e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_ID_1 0 41e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_ID_2 1 42e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_ID_3 2 43e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_ID_4 3 44e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_NUMBER 4 45e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 46e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tUCODEC_ID; 47e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 48e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**** Status ****/ 49e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_SUCCESS 0x00 50e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_TX_DONE 0x01 51e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_RX_READY 0x02 52e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_FLOW_CTRL_ON 0x03 53e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_FLOW_CTRL_OFF 0x04 54e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_OVERFLOW 0x05 55e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_UNSUPORTED_CNF 0x06 56e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_WRONG_PARAM 0x07 57e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_NOT_CONFIGURED 0x08 58e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_OUT_OF_MEMORY 0x09 59e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_GENERIC_ERROR 0x0a 60e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_RECOVERABLE_ERROR 0x0b 61e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_UNRECOVERABLE_ERROR 0x0c 62e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_LOW_LEVEL_DRIVER_ERROR (0x0d) 63e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 64e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tUCODEC_STATUS; 65e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 66e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**** Media type ****/ 67e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_MEDIA_TYPE_AUDIO 0 68e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_MEDIA_TYPE_VIDEO 1 69e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_MEDIA_TYPE_MULTI 2 70e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 71e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tUCODEC_MEDIA_TYPE; 72e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 73e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**** Audio Codec type ****/ 74e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_AUDIO_SBC 0 75e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_AUDIO_M12_LAYER1 1 /* layer1 (mp1) */ 76e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_AUDIO_M12_LAYER2 2 /* layer2 (mp2) */ 77e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_AUDIO_M12_LAYER3 3 /* layer3 (mp3) */ 78e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_AUDIO_M24_2LC 4 /* MPEG-2 AAC LC */ 79e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_AUDIO_M24_4LC 5 /* MPEG-4 AAC LC */ 80e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_AUDIO_M24_4LTP 6 /* MPEG-4 AAC LTP */ 81e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_AUDIO_M24_4S 7 /* MPEG-4 AAC scalable */ 82e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_AUDIO_VOLUME 8 /* Volume settings */ 83e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_AUDIO_BALANCE 9 /* Balance settings */ 84e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 85e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tUCODEC_AUDIO_FEAT_TYPE; 86e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 87e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**** Video Codec type -> TODO ****/ 88e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/*TBD*/ 89e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 90e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tUCODEC_VIDEO_FEAT_TYPE; 91e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 92e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**** SBC sample frequency ****/ 93e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_SBC_SMP_FREQ_16 0 /* 16 */ 94e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_SBC_SMP_FREQ_32 1 /* 23 */ 95e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_SBC_SMP_FREQ_44 2 /* 44.1 */ 96e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_SBC_SMP_FREQ_48 3 /* 48 */ 97e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 98e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tUCODEC_SBC_SMP_FREQ; 99e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 100e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**** SBC sample frequency ****/ 101e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_SBC_SUBBAND_4 4 102e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_SBC_SUBBAND_8 8 103e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 104e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tUCODEC_SBC_SUBBAND; 105e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**** Allocation method ****/ 106e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_SBC_ALLOC_MD_S 0 /* SNR */ 107e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_SBC_ALLOC_MD_L 1 /* loundess */ 108e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 109e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tUCODEC_SBC_ALLOC_MD; 110e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 111e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**** MPEG sample frequency ****/ 112e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M12_SMP_FREQ_16 0 /* 16 */ 113e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M12_SMP_FREQ_22 1 /* 22 */ 114e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M12_SMP_FREQ_24 2 /* 24 */ 115e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M12_SMP_FREQ_32 3 /* 32 */ 116e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M12_SMP_FREQ_44 4 /* 44 */ 117e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M12_SMP_FREQ_48 5 /* 48 */ 118e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 119e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tUCODEC_M12_SMP_FREQ; 120e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 121e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**** Channel mode ****/ 122e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_CHN_MONO 0 123e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_CHN_DUAL 1 124e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_CHN_STEREO 2 125e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_CHN_JOINT_STEREO 3 126e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 127e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tUCODEC_CH_MODE; 128e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**** Audio Codec type ****/ 129e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M24_SMP_FREQ_8 0 /* 8 */ 130e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M24_SMP_FREQ_11 1 /* 11 */ 131e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M24_SMP_FREQ_12 2 /* 12 */ 132e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M24_SMP_FREQ_16 3 /* 16 */ 133e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M24_SMP_FREQ_22 4 /* 22.05 */ 134e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M24_SMP_FREQ_24 5 /* 24 */ 135e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M24_SMP_FREQ_32 6 /* 32 */ 136e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M24_SMP_FREQ_44 7 /* 44.1 */ 137e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M24_SMP_FREQ_48 8 /* 48 */ 138e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M24_SMP_FREQ_64 9 /* 64 */ 139e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M24_SMP_FREQ_88 10 /* 88 */ 140e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define UCODEC_M24_SMP_FREQ_96 11 /* 96 */ 141e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 142e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef UINT8 tUCODEC_M24_SMP_FREQ; 143e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 144e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/**** Codec configuration structure ****/ 145e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct tUCODEC_CNF_SBC_TAG 146e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 147e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tUCODEC_SBC_SMP_FREQ SampleFreq; 148e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tUCODEC_CH_MODE ChannelMode; 149e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT16 Offset; /* GKI buffer based offset for UCODEC_ReadBuf */ 150e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT16 MtuSize; /* Max buffer len for UCODEC_ReadBuf*/ 151e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 PoolId; /* GKI pool ID for UCODEC_ReadBuf */ 152e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 NumBlock; /* Number of block in block unit : 4 blocks 8 blocks 12 blocks 16 blocks are the possible value */ 153e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 Subband; 154e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tUCODEC_SBC_ALLOC_MD AllocMthd; 155e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 MinBitPool; 156e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 MaxBitPool; 157e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tUCODEC_CNF_SBC; 158e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 159e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct tUCODEC_CNF_M12_TAG 160e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 161e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tUCODEC_CH_MODE ChannelMode; /* Mono, Dual, stereo, joint stereo */ 162e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tUCODEC_M12_SMP_FREQ SampleFreq; /* Sample freq: 16, 22, 24, 32, 44, 48 */ 163e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT16 BitRate; /* Bit rate in bit per sec */ 164e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT16 Offset; /* GKI buffer based offset for UCODEC_ReadBuf */ 165e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT16 MtuSize; /* Max buffer len for UCODEC_ReadBuf*/ 166e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 PoolId; /* GKI pool ID for UCODEC_ReadBuf */ 167e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BOOLEAN VBR; /* Variable Bit Rate */ 168e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BOOLEAN CRC_On; /* CRC error detection */ 169e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project BOOLEAN MPF; /* Media payload format */ 170e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tUCODEC_CNF_M12; 171e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 172e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct tUCODEC_CNF_M24_TAG 173e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 174e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tUCODEC_M24_SMP_FREQ SampleFreq; /* Sample freq: 8, 11, 12, 16, 22.05, 24, 32, 44.1, 48, 64, 88, 96 */ 175e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT32 BitRate; /* Bit rate */ 176e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT16 Offset; /* GKI buffer based offset for UCODEC_ReadBuf */ 177e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT16 MtuSize; /* Max buffer len for UCODEC_ReadBuf*/ 178e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 PoolId; /* GKI pool ID for UCODEC_ReadBuf */ 179e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 Chanels; /* 1 or 2 chanels */ 180e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tUCODEC_CNF_M24; 181e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 182e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 183e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef union tUCODEC_CODEC_TYPE_TAG 184e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 185e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tUCODEC_AUDIO_FEAT_TYPE AudioType; 186e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tUCODEC_VIDEO_FEAT_TYPE VideoType; 187e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tUCODEC_CODEC_TYPE; 188e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 189e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef union tUCODEC_FEATURE_TAG 190e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 191e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* Add here the audio feature structure */ 192e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tUCODEC_CNF_SBC SBCConfig; 193e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tUCODEC_CNF_M12 M12Config; 194e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tUCODEC_CNF_M24 M24Config; 195e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 Volume; /* 0 to mute. 0xFF for the max volume */ 196e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 Balance; /* 0->100% right, 255->100% left */ 197e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* Add here the video feature structure */ 198e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project /* TBD */ 199e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tUCODEC_FEATURE; 200e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 201e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct tUCODEC_CNF_TAG 202e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 203e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tUCODEC_MEDIA_TYPE MediaType; 204e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tUCODEC_CODEC_TYPE Type; 205e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project tUCODEC_FEATURE Feature; 206e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tUCODEC_CNF; 207e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 208e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef struct tUCODEC_BUF_INFO_TAG 209e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project{ 210e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT8 NumOfFrames; 211e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project UINT32 TimesStamp; 212e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project} tUCODEC_BUF_INFO; 213e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 214e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 215e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 216e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 217e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function tUCODEC_CBACK_PTR 218e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 219e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This call back report CODEC indication. 220e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** It report codec error as well as flow onfrol indication. 221e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 222e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Input : CodecId: Id of the codec that calls this call back. 223e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Status: ->UCODEC_FLOW_CTRL_OFF if the Tx Q just 224e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** went below the low watermark 225e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** ->UCODEC_RX_READY if data are ready to be 226e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** read. This olny hapens when the Rx Q was 227e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** empty before receiving data. 228e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** ->UCODEC_INTERNAL_ERROR if something went 229e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** wrong with the driver 230e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 231e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Output Parameters : None 232e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 233e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns None. 234e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 235e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/ 236e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projecttypedef void (* tUCODEC_CBACK_PTR)(tUCODEC_ID, tUCODEC_STATUS); 237e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 238e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/******************************************************************************* 239e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function Prototypes 240e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project*******************************************************************************/ 241e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 242e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 243e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 244e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function UCODEC_Init 245e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 246e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description Startup initialisation function. This function is called 247e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** before any orther function of UCODEC it initialize UCODEC 248e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** internal structure an the external codec. 249e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 250e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Input : CodecId: Id of the codec to perform the operation on. 251e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 252e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Output Parameters : None 253e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 254e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns UCODEC_SUCCESS if The action was performed with sucess. 255e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Error code else. 256e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 257e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/ 258e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBT_API extern tUCODEC_STATUS UCODEC_Init (void *); 259e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 260e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 261e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 262e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function UCODEC_Configure 263e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 264e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description Initialise the CODEC for a particular stream. 265e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 266e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 267e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Input : CodecId: Id of the codec to perform the operation on. 268e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** CbackPrt: Call back pointer for codec feedback. 269e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** pConfig: Pointer on a codec configuration structure. 270e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 271e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Output Parameters : None 272e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 273e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns UCODEC_SUCCESS if The action was performed with sucess. 274e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 275e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/ 276e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBT_API extern tUCODEC_STATUS UCODEC_Configure (tUCODEC_ID, tUCODEC_CBACK_PTR, tUCODEC_CNF *); 277e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 278e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 279e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 280e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function UCODEC_FlushTx 281e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 282e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description Fluch Tx buffer Q. 283e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 284e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Input : CodecId: Id of the codec to perform the operation on. 285e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 286e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Output Parameters : None 287e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 288e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns UCODEC_SUCCESS if The action was performed with sucess. 289e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Error code else. 290e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 291e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/ 292e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBT_API extern tUCODEC_STATUS UCODEC_FlushTx (tUCODEC_ID); 293e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 294e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 295e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 296e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function UCODEC_FlushRx 297e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 298e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description Fluch Rx buffer Q. 299e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 300e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Input : CodecId: Id of the codec to perform the operation on. 301e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 302e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Output Parameters : None 303e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 304e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns UCODEC_SUCCESS if The action was performed with sucess. 305e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Error code else. 306e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 307e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/ 308e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBT_API extern tUCODEC_STATUS UCODEC_FlushRx (tUCODEC_ID); 309e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 310e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 311e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 312e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function UCODEC_WriteBuf 313e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 314e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description Send a buffer to the codec. 315e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 316e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Input : CodecId: Id of the codec to perform the operation on. 317e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** pBuf: Pointer onto the GKI buffer to be send to the CODEC. 318e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 319e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Output Parameters : None 320e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 321e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns UCODEC_SUCCESS if The action was performed with sucess. 322e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** UCODEC_FLOW_CTRL_ON if The codec buffer Q had reach a UCODEC_HIGH_WM 323e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** watermark. The buffer is queued 324e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** UCODEC_OVERFLOW if The codec buffer Q had reach a critical 325e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** watermark. The buffer is dropped. 326e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 327e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/ 328e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBT_API extern tUCODEC_STATUS UCODEC_WriteBuf (tUCODEC_ID, BT_HDR *); 329e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 330e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 331e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 332e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function UCODEC_ReadBuf 333e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 334e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description Get a buffer from the codec. 335e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 336e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Input : CodecId: Id of the codec to perform the operation on. 337e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 338e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Output Parameters : None 339e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 340e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns Pointer on the GKI buffer. NULL if the Rx Q is empty 341e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 342e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/ 343e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBT_API extern tUCODEC_STATUS UCODEC_ReadBuf (tUCODEC_ID, BT_HDR **, tUCODEC_BUF_INFO *); 344e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 345e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 346e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 347e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function UCODEC_Close 348e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 349e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function is called to put the codec in low power mode 350e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 351e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 352e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Input : CodecId: Id of the codec to perform the operation on. 353e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 354e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Output Parameters : None 355e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 356e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns UCODEC_SUCCESS : The action was performed with sucess. 357e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Error code else. 358e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 359e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/ 360e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBT_API extern tUCODEC_STATUS UCODEC_Close (tUCODEC_ID); 361e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 362e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project/****************************************************************************** 363e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 364e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Function UCODEC_Open 365e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 366e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Description This function is called to resume the codec from low power 367e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** mode after UCODEC_Close had been called. It will put the 368e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** codec in the state it was before UCODEC_Close being called. 369e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 370e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Input : CodecId: Id of the codec to perform the operation on. 371e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 372e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Output Parameters : None 373e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 374e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Returns UCODEC_SUCCESS : The action was performed with sucess. 375e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** Error code else. 376e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project** 377e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project******************************************************************************/ 378e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source ProjectBT_API extern tUCODEC_STATUS UCODEC_Open (tUCODEC_ID); 379e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 380e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __cplusplus 381e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project}; 382e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif 383e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 384e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project 385e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif /* UCODEC_H */ 386