- while(rw) {
- rw=read(pfile_fd,buf,set.bufsize);
- write(audio_fd,buf,set.bufsize);
+ if(!(mode&REVERSED)) {
+ while(rw) {
+ rw=read(pfile_fd,buf,set.bufsize);
+ write(audio_fd,buf,set.bufsize);
+ }
+ } else {
+ i=0;
+ read(pfile_fd,info,4);
+ if(!strncmp(info,"RIFF",4)) {
+ is_wav=1;
+ printf("\nassuming wav file according to header ...\n");
+ i=44;
+ }
+ lseek(pfile_fd,0,SEEK_SET);
+ tmp=lseek(pfile_fd,0,SEEK_END);
+ // if(set.format==AFMT_U8) i=set.channel;
+ // if(set.format==AFMT_S16_LE) i=set.channel*2;
+ for(j=0;j<(tmp-i);j++) {
+ for(k=0;k<set.bufsize;k++) {
+ lseek(pfile_fd,tmp-(j+1)*set.bufsize+k,SEEK_SET);
+ read(pfile_fd,buf+k,1);
+ }
+ write(audio_fd,buf,set.bufsize);
+ }