summaryrefslogtreecommitdiff
path: root/plugins/alsa/alsa.c
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2010-11-25 21:54:46 +0100
committerGravatar waker <wakeroid@gmail.com>2010-11-25 21:54:46 +0100
commitfb214e1f190dcb2f61549569f9b1f3f842f73459 (patch)
treeeb79c0be73073e4afecdac28955eb1d24a9d8d61 /plugins/alsa/alsa.c
parent5c0f2ab7895a6b25beea097a96162553c489989b (diff)
fixed alsa float32 output mode
Diffstat (limited to 'plugins/alsa/alsa.c')
-rw-r--r--plugins/alsa/alsa.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/plugins/alsa/alsa.c b/plugins/alsa/alsa.c
index 1032f585..2a36b015 100644
--- a/plugins/alsa/alsa.c
+++ b/plugins/alsa/alsa.c
@@ -157,11 +157,20 @@ palsa_set_hw_params (ddb_waveformat_t *fmt) {
#endif
break;
case 32:
+ if (fmt->is_float) {
#if WORDS_BIGENDIAN
- sample_fmt = SND_PCM_FORMAT_S32_BE;
+ sample_fmt = SND_PCM_FORMAT_FLOAT_BE;
#else
- sample_fmt = SND_PCM_FORMAT_S32_LE;
+ sample_fmt = SND_PCM_FORMAT_FLOAT_LE;
#endif
+ }
+ else {
+#if WORDS_BIGENDIAN
+ sample_fmt = SND_PCM_FORMAT_S32_BE;
+#else
+ sample_fmt = SND_PCM_FORMAT_S32_LE;
+#endif
+ }
break;
};