X-Git-Url: https://hackdaworld.org/gitweb/?p=my-code%2Fapi.git;a=blobdiff_plain;f=audio%2Faudio.c;fp=audio%2Faudio.c;h=8402af5b1490aaca449575022184dc563656b5be;hp=7bacdacc6db97b3e60dae3473256b56a3c6a64cb;hb=98c3c077422896a148e9788377803bd968d5288f;hpb=f416df2f818fb4f591dd71f492f7dd1d1a94d3e4 diff --git a/audio/audio.c b/audio/audio.c index 7bacdac..8402af5 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -6,22 +6,24 @@ #include "audio.h" -int audio_init(t_audio *audio) { +int audio_init(t_audio *audio,int outfd) { - fprintf(stderr,"[audio] initializing audio ...\n"); + audio->outfd=outfd; - if((audio->dsp_fd=open(audio->dsp_dev,O_RDWR))==-1) { - perror("[audio] open call"); + dprintf(outfd,"[audio] initializing audio ...\n"); + + if((audio->dsp_fd=open(audio->dsp_dev,O_RDWR))<0) { + dprintf(audio->outfd,"[audio] open call"); return A_ERROR; } if(ioctl(audio->dsp_fd,SNDCTL_DSP_GETCAPS,&(audio->dsp_cap))==-1) { - perror("[audio] ioctl call"); + dprintf(audio->outfd,"[audio] ioctl call"); return A_ERROR; } if(!(audio->dsp_cap&DSP_CAP_DUPLEX)) { - fprintf(stderr,"[audio] no duplex support\n"); + dprintf(audio->outfd,"[audio] no duplex support\n"); return A_ERROR; } @@ -32,39 +34,39 @@ int audio_setup(t_audio *audio) { int tmp; - fprintf(stderr,"[audio] setting up sound device & allocating record/playback buffer\n"); + dprintf(audio->outfd,"[audio] setting up sound device & allocating record/playback buffer\n"); tmp=audio->fmt; if(ioctl(audio->dsp_fd,SNDCTL_DSP_SETFMT,&tmp)==-1) { - perror("[audio] ioctl call (SNDCTL_DSP_SETFMT)"); + dprintf(audio->outfd,"[audio] ioctl call (SNDCTL_DSP_SETFMT)"); return A_ERROR; } if(tmp!=audio->fmt) { - fprintf(stderr,"[audio] FMT not supported\n"); + dprintf(audio->outfd,"[audio] fmt (%d) not supported\n",tmp); return A_ERROR; } tmp=audio->speed; if(ioctl(audio->dsp_fd,SNDCTL_DSP_SPEED,&tmp)==-1) { - perror("[audio] ioctl call (SNDCTL_DSP_SPEED)"); + dprintf(audio->outfd,"[audio] ioctl call (SNDCTL_DSP_SPEED)"); return A_ERROR; } if(tmp!=audio->speed) { - fprintf(stderr,"[audio] SPEED not supported\n"); + dprintf(audio->outfd,"[audio] speed (%d) not supported\n",tmp); return A_ERROR; } if(ioctl(audio->dsp_fd,SNDCTL_DSP_GETBLKSIZE,&(audio->blksize))==-1) { - perror("[audio] ioctl call (SNDCTL_DSP_GETBLKSIZE)"); + dprintf(audio->outfd,"[audio] ioctl call (SNDCTL_DSP_GETBLKSIZE)"); return A_ERROR; } if((audio->play_data=(unsigned char *)malloc(audio->blksize))==NULL) { - perror("[audio] malloc call"); + dprintf(audio->outfd,"[audio] malloc call"); return A_ERROR; } if((audio->rec_data=(unsigned char *)malloc(audio->blksize))==NULL) { - perror("[audio] malloc call"); + dprintf(audio->outfd,"[audio] malloc call"); return A_ERROR; } @@ -73,13 +75,13 @@ int audio_setup(t_audio *audio) { int audio_shutdown(t_audio *audio) { - fprintf(stderr,"[audio] shutdown\n"); + dprintf(audio->outfd,"[audio] shutdown\n"); free(audio->play_data); free(audio->rec_data); if(close(audio->dsp_fd)==-1) { - perror("[audio] close call"); + dprintf(audio->outfd,"[audio] close call"); return A_ERROR; } @@ -95,7 +97,7 @@ int audio_play(t_audio *audio,int len) { while(left) { if((count=write(audio->dsp_fd,audio->play_data+len-left,left))==-1) { - perror("[audio] write call"); + dprintf(audio->outfd,"[audio] write call"); return A_ERROR; } left-=count; @@ -113,7 +115,7 @@ int audio_record(t_audio *audio,int len) { while(left) { if((count=read(audio->dsp_fd,audio->rec_data+len-left,left))==-1) { - perror("[audio] read call"); + dprintf(audio->outfd,"[audio] read call"); return A_ERROR; } left-=count;