blob: 9666a7c9dc00f6fb05708228a702f232f900db14 [file] [log] [blame]
/*
* Copyright 2016 The Android Open Source Project
*
* 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.
*/
#ifndef LDACBT_BCO_FOR_FLUORIDE_H__
#define LDACBT_BCO_FOR_FLUORIDE_H__
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#ifndef LDAC_BCO_API
#define LDAC_BCO_API
#endif /* LDAC_BCO_API */
/* This file contains the definitions, declarations and macros for an
* implementation of LDAC buffer control operation.
*/
#define LDAC_BCO_ERR_NONE 0
#define LDAC_BCO_ERR_FATAL (-1)
/* LDAC BCO handle type */
typedef struct _ldacbt_bco_handle* HANDLE_LDAC_BCO;
typedef void (*decoded_data_callback_t)(uint8_t* buf, uint32_t len);
/* Prepare to use LDAC BCO.
* - Register a callback function for passing decoded data.
* - Allocation of LDAC BCO handle.
* Format
* HANDLE_LDAC_BCO ldac_BCO_init(decoded_data_callback_t decode_callback);
* Arguments
* decoded_data_callback_t decode_callback
* Callback function that outputs PCM data after decoding.
* (See also a2dp_codec_api.h)
* Return value
* HANDLE_LDAC_BCO for success, NULL for failure.
*/
LDAC_BCO_API HANDLE_LDAC_BCO
ldac_BCO_init(decoded_data_callback_t decode_callback);
/* End LDAC BCO.
* - Release of LDAC BCO handle.
* Format
* int32_t ldac_BCO_cleanup(HANDLE_LDAC_BCO hLdacBco);
* Arguments
* HANDLE_LDAC_BCO hLdacBco LDAC BCO handle.
* Return value
* int32_t : Processing result.
* LDAC_BCO_ERR_NONE:Successful completion
* LDAC_BCO_ERR_FATAL:Error
* Note
* The function ldac_BCO_init() shall be called before calling this
* function.
*/
LDAC_BCO_API int32_t ldac_BCO_cleanup(HANDLE_LDAC_BCO hLdacBco);
/* Decode LDAC packets.
* - Perform buffer control and decode processing.
* Format
* int32_t ldac_BCO_decode_packet(HANDLE_LDAC_BCO hLdacBco, void *data,
* int32_t length);
* Arguments
* HANDLE_LDAC_BCO hLdacBco LDAC BCO handle.
* void *data LDAC packet.
* int32_t length LDAC packet size.
* Return value
* int32_t : Processing result.
* LDAC_BCO_ERR_NONE:Successful completion
* LDAC_BCO_ERR_FATAL:Error
* Note
* The function ldac_BCO_init() shall be called before calling this
* function.
*/
LDAC_BCO_API int32_t ldac_BCO_decode_packet(HANDLE_LDAC_BCO hLdacBco,
void* data, int32_t length);
/* Start decoding process.
* - Start or resume decoder thread.
* Format
* int32_t ldac_BCO_start(HANDLE_LDAC_BCO hLdacBco);
* Arguments
* HANDLE_LDAC_BCO hLdacBco LDAC BCO handle.
* Return value
* int32_t : Processing result.
* LDAC_BCO_ERR_NONE:Successful completion
* LDAC_BCO_ERR_FATAL:Error
* Note
* The function ldac_BCO_init() shall be called before calling this
* function.
*/
LDAC_BCO_API int32_t ldac_BCO_start(HANDLE_LDAC_BCO hLdacBco);
/* Suspend decoding process.
* - Suspend the decoder thread.
* Format
* int32_t ldac_BCO_suspend(HANDLE_LDAC_BCO hLdacBco);
* Arguments
* HANDLE_LDAC_BCO hLdacBco LDAC BCO handle.
* Return value
* int32_t : Processing result.
* LDAC_BCO_ERR_NONE:Successful completion
* LDAC_BCO_ERR_FATAL:Error
* Note
* The function ldac_BCO_init() shall be called before calling this
* function.
*/
LDAC_BCO_API int32_t ldac_BCO_suspend(HANDLE_LDAC_BCO hLdacBco);
/* Configure codec information.
* - Set sample rate, bits/sample and channel mode.
* Format
* int32_t ldac_BCO_configure(HANDLE_LDAC_BCO hLdacBco,
* int32_t sample_rate, int32_t bits_per_sample,
* int32_t channel_mode);
* Arguments
* HANDLE_LDAC_BCO hLdacBco LDAC BCO handle.
* int32_t sample_rate sample rate.
* int32_t bits_per_sample bits/sample.
* int32_t channel_mode channel mode.
* Return value
* int32_t : Processing result.
* LDAC_BCO_ERR_NONE:Successful completion
* LDAC_BCO_ERR_FATAL:Error
* Note
* The function ldac_BCO_init() shall be called before calling this
* function.
*/
LDAC_BCO_API int32_t ldac_BCO_configure(HANDLE_LDAC_BCO hLdacBco,
int32_t sample_rate,
int32_t bits_per_sample,
int32_t channel_mode);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* LDACBT_BCO_FOR_FLUORIDE_H__ */