www.pudn.com > 8202T_PDVD_4X16.rar > applause.c, change:2007-08-27,size:4308b


/****************************************************************************** 
  File Name     : applause.c 
  Version       : Initial Draft 
  Author        : SUPPORT_NEWFNTLIB 
  Created       : 2007/1/11 
  Last Modified : 
  Description   : xxxx for applause test 
  Function List : 
  
 History Information Description                                                
 Date                         Author                         Modification       
 2007/1/11                    SUPPORT_NEWFNTLIB              Created function   
 
******************************************************************************/ 
#include "user_init.h" 
#ifdef SUPPORT_APPLAUSE 
#include "global.h" 
#include "Audcodec.h" 
#include "dsp3_def.h" 
#include "memmap0.h" 
#include "applause.inc" 
 
#ifdef IC_8202L 
//#define SECLAP_GOTEFFECTBUF() (SDRAM_BASE +(PCM_YS * 1024) + ((((A_SUPYA2*1024)  - (PCM_YS * 1024))/96)*96)) 
BYTE * SECLAP_GOTEFFECTBUF(void) 
{ 
    extern UINT8 gIsMidiSelMenu; 
    if ((gIsMidiSelMenu))//(cd_type_loaded == CDROM)&& 
    { 
        return (BYTE*)SJScorePCMBuf();//((SJScorePCMBuf()) + (((SJScorePCMBuf() - (SDRAM_BASE +(PCM_YS * 1024)))/96)*96)); 
    } 
    else 
    { 
#ifdef SUPPORT_DIVX6 
            return (BYTE*)((SDRAM_BASE +(PCM_YS * 1024) + (((((DIVX6_MEMORY_YA - (((sizeof(SECHAP_SDData)/sizeof(SECHAP_SDData[0])) + 1023)>>10))*1024)  - (PCM_YS * 1024))/96)*96)) ); 
#else //3944 
            #define APPBUFFERYA  (A_DEINTLACE_YA + (405 <<1) +(203 <<1)) 
            return (BYTE*)((SDRAM_BASE +(PCM_YS * 1024) + (((((APPBUFFERYA)*1024)  - (PCM_YS * 1024))/96)*96))); 
            //return (BYTE*)((SDRAM_BASE +(PCM_YS * 1024) + (((((A_FILE_BUF_YA - (((sizeof(SECHAP_SDData)/sizeof(SECHAP_SDData[0])) + 1023)>>10))*1024)  - (PCM_YS * 1024))/96)*96))); 
#endif 
    } 
} 
#else 
#define SECLAP_GOTEFFECTBUF() (SDRAM_BASE +(PCM_YS * 1024) + ((((A_DEINTLACE_YA*1024)  - (PCM_YS * 1024))/96)*96)) 
#endif 
#define SECLAP_GOTSDEFFCTCNT(x)  (2)//((x)/(11250)))   //soundeffect wav's format is 11250 point and 16 bit Mono 
 
 
BYTE *      pSDEFFECTBUF; 
UINT32     CntToResumeVolume = 0;  //when play effect, we would limite volume, set this variable to resume it  
#ifdef USE_SMALLSCORE_PCM 
int        CntScorePolling; 
#endif 
#include "osd.h" 
inline void SECLAP_PollingResme() 
{ 
	if (CntToResumeVolume) 
	{ 
		CntToResumeVolume--; 
		if (CntToResumeVolume == 0) 
		{ 
#ifdef USE_SMALLSCORE_PCM 
                printf("CntScorePolling %d\n",CntScorePolling); 
                CntScorePolling --; 
                if (CntScorePolling > 0) 
                { 
                    printf("Cnt Polling time\n"); 
                   // SECLAP_LoadSoundPCM(); 
                    AUDIF_Set_Volume(12);  //set to turn down main volume 
                    DSP_AudioIOControl(SNDEFFECT,pSDEFFECTBUF-(SDRAM_BASE+1024*PCM_YS),sizeof(SECHAP_SDData)/sizeof(BYTE)); 
                    CntToResumeVolume = SECLAP_GOTSDEFFCTCNT(sizeof(SECHAP_SDData)/sizeof(BYTE)); 
                    if (CntScorePolling) CntToResumeVolume = 1; 
                    return; 
                } 
                else 	 
#endif		 
	          AUDIF_Set_Volume(audio_volume);  //set to turn down main volume 
		} 
	} 
} 
 
void SECLAP_PlayClap() 
{ 
      // printf("Curren Mode %d CntToResumeVolume %d\n",coding_mode_now,CntToResumeVolume); 
     	if ((coding_mode_now == AUDIF_CODING_MODE_MP3)|| 
            (coding_mode_now == AUDIF_CODING_MODE_AC3)) 
	{ 
	     if (CntToResumeVolume) return; 
	     SECLAP_LoadSoundPCM(); 
	     printf("Play Applause!!!\n"); 
	     AUDIF_Set_Volume(12);  //set to turn down main volume 
            DSP_AudioIOControl(SNDEFFECT,pSDEFFECTBUF-(SDRAM_BASE+1024*PCM_YS),sizeof(SECHAP_SDData)/sizeof(SECHAP_SDData[0])); 
	     CntToResumeVolume = SECLAP_GOTSDEFFCTCNT(sizeof(SECHAP_SDData)/sizeof(SECHAP_SDData[0])) ; //add 500ms in lap 
 
#ifdef USE_SMALLSCORE_PCM 
		CntScorePolling = SCORE_APPLAUSEREPTIME; 
#endif 
	} 
} 
 
//this func would be replace with new 
void SECLAP_LoadSoundPCM(void) 
{ 
//	if (SDEFFECT.loc&&SDEFFECT.size) 
	{ 
		pSDEFFECTBUF = SECLAP_GOTEFFECTBUF(); 
		//readFile(pSDEFFECTBUF,SDEFFECT.loc,SDEFFECT.size);	 
		memcpy(pSDEFFECTBUF,SECHAP_SDData,sizeof(SECHAP_SDData)/sizeof(SECHAP_SDData[0])); 
	} 
} 
 
 
#endif /*SUPPORT_APPLAUSE*/