提交 94746d8e 编写于 作者: Y yygg_you

audio驱动使用系统内的dataqueue,修复一些缩进,乱码

上级 05496a5c
此差异已折叠。
/*
* File : audio.h
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
* 2017-05-09 Urey first version
*/
#ifndef __AUDIO_H__
#define __AUDIO_H__
//#define AUDIO_DEVICE_USE_PRIVATE_BUFFER
/* AUDIO command */
#define _AUDIO_CTL(a) (0x10 + a)
......@@ -93,6 +114,10 @@
#define CFG_AUDIO_REPLAY_QUEUE_COUNT 4
#define CFG_AUDIO_RECORD_PIPE_SIZE (8 * 1024)
#define AUDIO_DEVICE_MP_CNT (4)
#define AUDIO_DEVICE_DECODE_MP_BLOCK_SZ (4352 * 4)
#define AUDIO_DEVICE_DECODE_MP_SZ ((AUDIO_DEVICE_DECODE_MP_BLOCK_SZ*2 + 4)*AUDIO_DEVICE_MP_CNT)
enum
{
......@@ -117,23 +142,6 @@ struct rt_audio_frame
{
const void *data_ptr;
rt_size_t data_size;
rt_size_t data_ofs;
};
struct rt_audio_queue
{
rt_uint16_t count;
rt_uint16_t size;
rt_uint16_t lwm;
rt_bool_t waiting_lwm;
rt_uint16_t get_index;
rt_uint16_t put_index;
struct rt_audio_frame *queue;
rt_list_t suspended_push_list;
rt_list_t suspended_pop_list;
};
struct rt_audio_device;
......@@ -156,10 +164,6 @@ struct rt_audio_ops
//get page size of codec or private buffer's info
void (*buffer_info) (struct rt_audio_device *audio,struct rt_audio_buf_info *info );
#ifdef AUDIO_DEVICE_USE_PRIVATE_BUFFER
rt_err_t (*buffer_alloc) (struct rt_audio_device *audio,rt_uint8_t **data_ptr,rt_size_t *size);
void (*buffer_free) (struct rt_audio_device *audio,rt_uint8_t *data_ptr);
#endif
};
......@@ -188,7 +192,7 @@ struct rt_audio_caps
struct rt_audio_replay
{
rt_bool_t activated;
struct rt_audio_queue queue;
struct rt_data_queue queue;
};
struct rt_audio_record
......@@ -202,14 +206,16 @@ struct rt_audio_device
struct rt_device parent;
struct rt_audio_ops *ops;
struct rt_mempool mp;
struct rt_audio_replay *replay;
struct rt_audio_record *record;
};
rt_err_t rt_audio_register(struct rt_audio_device *audio, const char *name, rt_uint32_t flag, void *data);
void rt_audio_tx_complete(struct rt_audio_device *audio,rt_uint8_t *pbuf);
void rt_audio_rx_done(struct rt_audio_device *audio,rt_uint8_t *pbuf,rt_size_t len);
rt_uint32_t rt_audio_format_to_bits(rt_uint32_t format);
rt_err_t rt_audio_register (struct rt_audio_device *audio, const char *name, rt_uint32_t flag, void *data);
void rt_audio_tx_complete (struct rt_audio_device *audio,rt_uint8_t *pbuf);
void rt_audio_rx_done (struct rt_audio_device *audio,rt_uint8_t *pbuf,rt_size_t len);
rt_uint32_t rt_audio_format_to_bits (rt_uint32_t format);
/* Device Control Commands */
......@@ -219,7 +225,6 @@ rt_uint32_t rt_audio_format_to_bits(rt_uint32_t format);
#define CODEC_CMD_SAMPLERATE 3
#define CODEC_CMD_EQ 4
#define CODEC_CMD_3D 5
#define CODEC_CMD_SWITCH 6
#define CODEC_VOLUME_MAX (63)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册