fifo.h
1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#ifndef _FIFO_H_
#define _FIFO_H_
typedef struct {
U8 *fifo_start_addr;
U8 *fifo_end_addr;
unsigned long fifo_length;
U8 *pRead;
U8 *pWrite;
unsigned long rLen;
unsigned long wLen;
U8 wlen_H;
// long start_addr; //start read write addr in stream
unsigned long start_pos; //start read write position in file
// long stream_start_pos; /*audio stream start pos*/
unsigned long stream_len; //file len
//long wpos; //current write position
//long rpos; //current read position
U16 entry; //flie index
U16 stream_margin;
U8 valid;
// U8 overwrite : 1;
// U8 valid : 1;
// U8 user_data : 1;
// U8 open : 5; //had been opened count
} FIFO;
#define STREAM_LENTH_UNKNOWN 0xffffffff
void fifo_init ( FIFO *pFifo, U8 *pBuf,unsigned long len, int empty);
void fifo_init_w_data ( FIFO *pFifo, U8 *pBuf,unsigned long len,unsigned long dlen);
void fifo_create_file_stream ( FIFO *pFifo,unsigned long start_pos, unsigned long stream_len, U16 entry,U16 stream_margin);
I16 fifo_file_stream_flush ( FIFO *pFifo);
long fifo_get_free_space (FIFO *pFifo);
long fifo_get_data_len (FIFO *pFifo);
long fifo_put_data (FIFO *pFifo, U8 *pBuf,unsigned long len);
long fifo_get_data (FIFO *pFifo, U8 *pBuf,unsigned long len);
I8 fifo_file_stream_seek (FIFO *pFifo,unsigned long pos);
long fifo_get_OLA_data (FIFO *pFifo, U8 *pBuf, long rlen, long slen);
BOOL fifo_set_data_len (FIFO *pFifo, long len);
long fifo_put_data_one_byte (FIFO *pFifo, U8 *pBuf);
long fifo_get_fifo_4byte_data_len (FIFO *pFifo);
long fifo_get_4byte_data (FIFO *pFifo, U8 *pBuf, long len);
long fifo_get_4byte_ir_data (FIFO *pFifo, U16 *pBuf);
unsigned long fifo_get_fifo_data_wlen (FIFO *pFifo);
unsigned long fifo_discard_data (FIFO *pFifo,unsigned long len);
unsigned long fifo_get_fifo_data_len (FIFO *pFifo);
#endif //_FIFO_H_