کد:
void load_header (void)
{
unsigned int CChunkSize,SamplingRate,BByteRate,SSubchunk2Size;
int i;
BYTE ChunkID[4];
BYTE ChunkSize[4];
BYTE Format[4];
BYTE Subchunk1ID[4];
BYTE Subchunk1Size[4];
BYTE AudioFormat[2];
BYTE NumChannels[2];
BYTE SampleRate[4];
BYTE ByteRate[4];
BYTE BlockAlign[2];
BYTE BitsPerSample[2];
BYTE Subchunk2ID[4];
BYTE Subchunk2Size[4];
BYTE Data[1024];
char buferr[12];
FIL file;
f_mount(0, &fs);
//res = f_open(&file,filename, FA_OPEN_EXISTING | FA_READ);
f_open(&file,"0:8bit.wav", FA_OPEN_EXISTING | FA_READ);
f_read(&file,ChunkID,4, &br);
f_read(&file,ChunkSize,4, &br);
f_read(&file,Format,4, &br);
f_read(&file,Subchunk1ID,4, &br);
f_read(&file,Subchunk1Size,4, &br);
f_read(&file,AudioFormat,2, &br);
f_read(&file,NumChannels,2, &br);
f_read(&file,SampleRate,4, &br);
f_read(&file,ByteRate,4, &br);
f_read(&file,BlockAlign,2, &br); f_read(&file,BitsPerSample,2, &br); f_read(&file,Subchunk2ID,4, &br); f_read(&file,Subchunk2Size,4, &br); f_read(&file,Data,1024, &br);
f_close(&file);
for(i=0;i<4;i++){
sprintf(buferr,"%c",ChunkID[i]); DrawStringAt(0,i,buferr,WHITE,GetBkColor());
}
CChunkSize=LD_DWORD(ChunkSize); sprintf(buferr,"ChunkSize:%d",CChunkSize);
DrawStringAt(1,0,buferr,WHITE,GetBkColor());
for(i=0;i<4;i++){
sprintf(buferr,"%c",Format[i]); DrawStringAt(2,i,buferr,WHITE,GetBkColor());
}
for(i=0;i<4;i++){
sprintf(buferr,"%c",Subchunk1ID[i]);
DrawStringAt(3,i,buferr,WHITE,GetBkColor()); }
sprintf(buferr, "Subchunk1Size:%d", Subchunk1Size[0]); DrawStringAt(4,0,buferr,WHITE,GetBkColor());
sprintf(buferr, "AudioFormat:%d", AudioFormat[0]); DrawStringAt(5,0,buferr,WHITE,GetBkColor());
sprintf(buferr, "NumChannels:%d", NumChannels[0]); DrawStringAt(6,0,buferr,WHITE,GetBkColor());
SamplingRate=LD_DWORD(SampleRate); sprintf(buferr,"SamplingRate:%d",SamplingRate); DrawStringAt(7,0,buferr,WHITE,GetBkColor());
BByteRate=LD_DWORD(ByteRate); sprintf(buferr,"ByteRate:%d",BByteRate); DrawStringAt(8,0,buferr,WHITE,GetBkColor());
sprintf(buferr, "BlockAlign:%d", BlockAlign[0]); DrawStringAt(9,0,buferr,WHITE,GetBkColor());
sprintf(buferr,"BitsPerSample:%d",BitsPerSample[0]; DrawStringAt(10,0,buferr,WHITE,GetBkColor());
for(i=0;i<4;i++){
sprintf(buferr,"%c",Subchunk2ID[i]); DrawStringAt(11,i,buferr,WHITE,GetBkColor()); //data
}
SSubchunk2Size=LD_DWORD(Subchunk2Size);
sprintf(buferr,"Subchunk2Size:%d",SSubchunk2Size; DrawStringAt(12,0,buferr,WHITE,GetBkColor());
}