/* * 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 #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 * implimentation 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__ */