summaryrefslogtreecommitdiffstats
path: root/flow/audioioalsa9.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'flow/audioioalsa9.cpp')
-rw-r--r--flow/audioioalsa9.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/flow/audioioalsa9.cpp b/flow/audioioalsa9.cpp
index 1c8b3a5..9162d41 100644
--- a/flow/audioioalsa9.cpp
+++ b/flow/audioioalsa9.cpp
@@ -73,7 +73,8 @@ protected:
snd_pcm_t *m_pcm_playback;
snd_pcm_t *m_pcm_capture;
snd_pcm_format_t m_format;
- int m_period_size, m_periods;
+ snd_pcm_uframes_t m_period_size;
+ unsigned m_periods;
void startIO();
int setPcmParams(snd_pcm_t *pcm);
@@ -540,7 +541,11 @@ int AudioIOALSA::setPcmParams(snd_pcm_t *pcm)
return 1;
}
- unsigned int rate = snd_pcm_hw_params_set_rate_near(pcm, hw, _samplingRate, 0);
+ unsigned rate = _samplingRate;
+ if (snd_pcm_hw_params_set_rate_near(pcm, hw, &rate, 0) < 0) {
+ _error = "Unable to set sampling rate!";
+ return 1;
+ }
const unsigned int tolerance = _samplingRate/10+1000;
if (abs((int)rate - (int)_samplingRate) > (int)tolerance) {
_error = "Can't set requested sampling rate!";
@@ -562,12 +567,12 @@ int AudioIOALSA::setPcmParams(snd_pcm_t *pcm)
m_period_size <<= 1;
if (_channels > 1)
m_period_size /= _channels;
- if ((m_period_size = snd_pcm_hw_params_set_period_size_near(pcm, hw, m_period_size, 0)) < 0) {
+ if (snd_pcm_hw_params_set_period_size_near(pcm, hw, &m_period_size, 0) < 0) {
_error = "Unable to set period size!";
return 1;
}
m_periods = _fragmentCount;
- if ((m_periods = snd_pcm_hw_params_set_periods_near(pcm, hw, m_periods, 0)) < 0) {
+ if (snd_pcm_hw_params_set_periods_near(pcm, hw, &m_periods, 0) < 0) {
_error = "Unable to set periods!";
return 1;
}