Return to previous page Return to menu Go to next page

(2) Program example
The following is an example of a program that uses the stream system to play an AIFF or APCM format file.

#define RING_BUF_SIZE   (2048L*10)
#define PCM_ADDR   ((void*)0x25a20000)
#define PCM_SIZE   (4096L*2)

/* work */ PcmWork pcm_work;

/ * Ring buffer * / Uint32 ring_buf[RING_BUF_SIZE / sizeof(Uint32)]; StmHn stm; PcmHn pcm;

/* Initialize */ PCM_Init();

/ * ADPCM usage declaration (required when using ADPCM) * / PCM_DeclareUseAdpcm();

/ * Set interrupt handling * /  Use INT _ ??? to set V blank IN interrupt.  Call PCM_VblIn (); in the V blank IN interrupt.

/ * File initialization * / GFS_Init(・・); STM_Init(・・); STM_OpenGrp(); STM_SetExecGrp(・・); / * Open stream * / stm = STM_OpenFid(・・);

/ * Create handle * / PCM_PARA_WORK(¶) = &pcm_work; PCM_PARA_RING_ADDR(¶) = ring_buf; PCM_PARA_RING_SIZE(¶) = RING_BUF_SIZE; PCM_PARA_PCM_ADDR(¶) = PCM_ADDR; PCM_PARA_PCM_SIZE(¶) = PCM_SIZE; pcm = PCM_CreateStmHandle(¶, stm);

/ * Start playback * / PCM_Start(pcm); while(TRUE) {      / * Replay task processing * /      PCM_Task(pcm);

     / * End judgment * /      if (PCM_GetPlayStatus(pcm) == PCM_STAT_PLAY_END) break; } / * Abandon handle * / PCM_DestroyStmHandle(pcm);

/ * Close stream * / STM_Close(stm);

/* End processing */ PCM_Finish();


Return to previous page Return to menu Go to next page