⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 srv2.h

📁 Sunplus 8202S source code.
💻 H
字号:
#ifndef __SRV2_H
#define __SRV2_H
//
// USEAGE:
// 1. DURING YOUR SOURCE POLLING:
//		1. stream_full() to check if we can put data in
//		2. call stream_putheader to get the pointer to write to
//		3. copy len(<2k) into stream_putheader
//		4. call stream_append(len) to let stream system know 
//		   data appended
//
// 2. Sample playing:
//		stream_init();
//		play_state = VCD_STATE_NORMAL;
//		while (1)
//		{
//			audif_set_coding_mode(AUDIF_CODING_MODE_MP2);	  
//			MacroPlayStream();
//			MediaMainLoop();
//		}
//
// Limitation: NOT to append more than STREAM_MAX_ACCESS
//             to stream in each access !!
//
//

//======================================================
//void stream_init()
//      initial stream buffer
//INPUT  ARGUMENTS: NONE 
//OUTPUT ARGUMENTS: NONE;
//RETURN: NONE
//======================================================
void stream_init();

//======================================================
//int stream_full()
//      Check if stream buffer is full
//INPUT  ARGUMENTS: NONE;
//OUTPUT ARGUMENTS: NONE;
//RETURN: nonzero means full
//======================================================
int stream_full();

//======================================================
//void *stream_putheader()
//      Get the stream-buffer header
//      Thus we can put data there
//INPUT  ARGUMENTS: NONE;
//OUTPUT ARGUMENTS: NONE;
//RETURN: buffer header to put buffer
//======================================================
void *stream_putheader();

//======================================================
//void stream_append(UINT32 len)
//      append stream with putted length
//INPUT  ARGUMENTS: 
//      len: length to append to stream
//OUTPUT ARGUMENTS: NONE;
//RETURN: NONE
//======================================================
void stream_append(UINT32 len);

//======================================================
//unsigned	stream_get_buffer(UINT8 **p)
//      get data pointer to play
//INPUT  ARGUMENTS: none
//OUTPUT ARGUMENTS: 
//     **p: data pointer return
//RETURN: 0: no data in stream
//     otherwize: stream len
//======================================================
unsigned	stream_get_buffer(UINT8 **p);

//======================================================
//int srv_stream(void)
//      Service Routine for kernel callback
//INPUT  ARGUMENTS: NONE 
//OUTPUT ARGUMENTS: NONE;
//RETURN: 0: no meaning now
//======================================================
int srv_stream(void);



//=============================================================================================
//    MACRO DEFINES
//=============================================================================================
// 
// 0x88400000, 4th mega in SDRAM
//    block0   | block1    | ..........| block15
//  -----------+-----------+------------------ 
//	|  32k	   |  32k      |           |
//  (power of 2)

#define STREAM_MAX_ACCESS 32768 // Not too much for one access!!
#define STREAM_DATA_BASE	(0x88400000)
#define STREAM_BLK_NUM		8 //POWER of 2
#define STREAM_BLK_LEN_PWR 17 // 15=32k
#define	STREAM_BLK_LEN	(1<<STREAM_BLK_LEN_PWR)
#define START_BUFF_KEEP (STREAM_BLK_NUM-3)
//
// USEAGE:
// 1. DURING YOUR SOURCE POLLING:
//		1. stream_full() to check if we can put data in
//		2. call stream_putheader to get the pointer to write to
//		3. copy len(<2k) into stream_putheader
//		4. call stream_append(len) to let stream system know 
//		   data appended
//
// 2. Sample playing:
//		stream_init();
//		play_state = VCD_STATE_NORMAL;
//		while (1)
//		{
//			audif_set_coding_mode(AUDIF_CODING_MODE_MP2);	  
//			MacroPlayStream();
//			MediaMainLoop();
//		}
//
// Limitation: NOT to append more than STREAM_MAX_ACCESS
//             to stream in each access !!
//
//


#endif //#ifndef  __SRV2_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -