if(err=snd_pcm_hw_params_set_access(_CaptureHandle,hwParams,SND_PCM_ACCESS_MMAP_INTERLEAVED)<0)_debugAlsa(" Cannot set access type (%s)\n",snd_strerror(err));
if(err=snd_pcm_hw_params_set_format(_CaptureHandle,hwParams,SND_PCM_FORMAT_S16_LE)<0)_debugAlsa(" Cannot set sample format (%s)\n",snd_strerror(err));
if(err=snd_pcm_hw_params_set_rate_near(_CaptureHandle,hwParams,&rate_in,&dir)<0)_debugAlsa(" Cannot set sample rate (%s)\n",snd_strerror(err));
if(err=snd_pcm_hw_params_set_channels(_CaptureHandle,hwParams,1)<0)_debugAlsa(" Cannot set channel count (%s)\n",snd_strerror(err));
if(err=snd_pcm_hw_params_set_period_time_near(_CaptureHandle,hwParams,&period_time,&dir)<0)_debugAlsa(" Cannot set period time (%s)\n",snd_strerror(err));
if(err=snd_pcm_hw_params_set_buffer_time_near(_CaptureHandle,hwParams,&buffer_time,&dir)<0)_debugAlsa(" Cannot set buffer time (%s)\n",snd_strerror(err));
if(err=snd_pcm_hw_params_get_period_size(hwParams,&period_size_in,&dir)<0)_debugAlsa(" Cannot get period size (%s)\n",snd_strerror(err));
if(err=snd_pcm_hw_params_get_buffer_size(hwParams,&buffer_size_in)<0)_debugAlsa(" Cannot get buffer size (%s)\n",snd_strerror(err));
if(err=snd_pcm_hw_params(_CaptureHandle,hwParams)<0)_debugAlsa(" Cannot set hw parameters (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params_set_access(_CaptureHandle,hwParams,SND_PCM_ACCESS_MMAP_INTERLEAVED))<0)_debugAlsa(" Cannot set access type (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params_set_format(_CaptureHandle,hwParams,SND_PCM_FORMAT_S16_LE))<0)_debugAlsa(" Cannot set sample format (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params_set_rate_near(_CaptureHandle,hwParams,&rate_in,&dir)<0))_debugAlsa(" Cannot set sample rate (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params_set_channels(_CaptureHandle,hwParams,1))<0)_debugAlsa(" Cannot set channel count (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params_set_period_time_near(_CaptureHandle,hwParams,&period_time,&dir))<0)_debugAlsa(" Cannot set period time (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params_set_buffer_time_near(_CaptureHandle,hwParams,&buffer_time,&dir))<0)_debugAlsa(" Cannot set buffer time (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params_get_period_size(hwParams,&period_size_in,&dir)<0))_debugAlsa(" Cannot get period size (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params_get_buffer_size(hwParams,&buffer_size_in)<0))_debugAlsa(" Cannot get buffer size (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params(_CaptureHandle,hwParams)<0))_debugAlsa(" Cannot set hw parameters (%s)\n",snd_strerror(err));
if(err=snd_pcm_hw_params_set_access(_PlaybackHandle,hwParams,SND_PCM_ACCESS_MMAP_INTERLEAVED)<0)_debugAlsa(" Cannot set access type (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params_set_access(_PlaybackHandle,hwParams,SND_PCM_ACCESS_MMAP_INTERLEAVED))<0)_debugAlsa(" Cannot set access type (%s)\n",snd_strerror(err));
//if( err = snd_pcm_hw_params_set_access( _PlaybackHandle, hwParams, SND_PCM_ACCESS_RW_INTERLEAVED) < 0) _debugAlsa(" Cannot set access type (%s)\n", snd_strerror(err));
if(err=snd_pcm_hw_params_set_format(_PlaybackHandle,hwParams,SND_PCM_FORMAT_S16_LE)<0)_debugAlsa(" Cannot set sample format (%s)\n",snd_strerror(err));
if(err=snd_pcm_hw_params_set_rate(_PlaybackHandle,hwParams,rate_out,dir)<0)_debugAlsa(" Cannot set sample rate (%s)\n",snd_strerror(err));
if(err=snd_pcm_hw_params_set_channels(_PlaybackHandle,hwParams,1)<0)_debugAlsa(" Cannot set channel count (%s)\n",snd_strerror(err));
if(err=snd_pcm_hw_params_set_buffer_time_near(_PlaybackHandle,hwParams,&buffer_time,&dir)<0)_debugAlsa(" Cannot set buffer time (%s)\n",snd_strerror(err));
if(err=snd_pcm_hw_params_set_period_time_near(_PlaybackHandle,hwParams,&period_time,&dir)<0)_debugAlsa(" Cannot set period time (%s)\n",snd_strerror(err));
if(err=snd_pcm_hw_params_get_period_size(hwParams,&_periodSize,&dir)<0)_debugAlsa(" Cannot get period size (%s)\n",snd_strerror(err));
if(err=snd_pcm_hw_params_get_buffer_size(hwParams,&buffer_size_out)<0)_debugAlsa(" Cannot get buffer size (%s)\n",snd_strerror(err));
if(err=snd_pcm_hw_params(_PlaybackHandle,hwParams)<0)_debugAlsa(" Cannot set hw parameters (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params_set_format(_PlaybackHandle,hwParams,SND_PCM_FORMAT_S16_LE))<0)_debugAlsa(" Cannot set sample format (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params_set_rate(_PlaybackHandle,hwParams,rate_out,dir))<0)_debugAlsa(" Cannot set sample rate (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params_set_channels(_PlaybackHandle,hwParams,1))<0)_debugAlsa(" Cannot set channel count (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params_set_buffer_time_near(_PlaybackHandle,hwParams,&buffer_time,&dir))<0)_debugAlsa(" Cannot set buffer time (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params_set_period_time_near(_PlaybackHandle,hwParams,&period_time,&dir))<0)_debugAlsa(" Cannot set period time (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params_get_period_size(hwParams,&_periodSize,&dir))<0)_debugAlsa(" Cannot get period size (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params_get_buffer_size(hwParams,&buffer_size_out))<0)_debugAlsa(" Cannot get buffer size (%s)\n",snd_strerror(err));
if((err=snd_pcm_hw_params(_PlaybackHandle,hwParams))<0)_debugAlsa(" Cannot set hw parameters (%s)\n",snd_strerror(err));
snd_pcm_hw_params_free(hwParams);
...
...
@@ -367,23 +373,23 @@ AlsaLayer::open_device(std::string pcm_p, std::string pcm_c, int flag)
if(err=snd_pcm_sw_params(_PlaybackHandle,swparams)<0)_debugAlsa(" Cannot set sw parameters (%s)\n",snd_strerror(err));
if((err=snd_pcm_sw_params(_PlaybackHandle,swparams))<0)_debugAlsa(" Cannot set sw parameters (%s)\n",snd_strerror(err));
snd_pcm_sw_params_free(swparams);
if(err=snd_async_add_pcm_handler(&_AsyncHandler,_PlaybackHandle,AlsaCallBack,this)<0)_debugAlsa(" Unable to install the async callback handler (%s)\n",snd_strerror(err));
if((err=snd_async_add_pcm_handler(&_AsyncHandler,_PlaybackHandle,AlsaCallBack,this)<0))_debugAlsa(" Unable to install the async callback handler (%s)\n",snd_strerror(err));
deviceClosed=false;
}
//fillHWBuffer();
...
...
@@ -421,8 +427,8 @@ AlsaLayer::write(void* buffer, int length)
break;
}
if(err>=0&&err<frames)
_debugAlsa("Short write : %d out of %d\n",err,frames);
if((err>=0)&&(err<(int)frames))
_debugAlsa("Short write : %d out of %d\n",err,(int)frames);
return(err>0)?err:0;
}
...
...
@@ -439,7 +445,7 @@ AlsaLayer::read( void* buffer, int toCopy)