|
@@ -0,0 +1,91 @@
|
|
|
+diff -urN alsa-lib-1.0.18-0rig//src/pcm/pcm_local.h alsa-lib-1.0.18/src/pcm/pcm_local.h
|
|
|
+--- alsa-lib-1.0.18-0rig//src/pcm/pcm_local.h 2009-01-31 11:02:12.000000000 +0100
|
|
|
++++ alsa-lib-1.0.18/src/pcm/pcm_local.h 2009-01-31 11:03:24.000000000 +0100
|
|
|
+@@ -611,6 +611,13 @@
|
|
|
+ snd_pcm_hw_param_t var);
|
|
|
+ int _snd_pcm_hw_param_set(snd_pcm_hw_params_t *params,
|
|
|
+ snd_pcm_hw_param_t var, unsigned int val, int dir);
|
|
|
++
|
|
|
++#if defined(AVR32_INLINE_BUG)
|
|
|
++int _snd_pcm_hw_params_set_format(snd_pcm_hw_params_t *params,
|
|
|
++ snd_pcm_format_t val);
|
|
|
++int _snd_pcm_hw_params_set_subformat(snd_pcm_hw_params_t *params,
|
|
|
++ snd_pcm_subformat_t val);
|
|
|
++#else
|
|
|
+ static inline int _snd_pcm_hw_params_set_format(snd_pcm_hw_params_t *params,
|
|
|
+ snd_pcm_format_t val)
|
|
|
+ {
|
|
|
+@@ -624,7 +631,7 @@
|
|
|
+ return _snd_pcm_hw_param_set(params, SND_PCM_HW_PARAM_SUBFORMAT,
|
|
|
+ (unsigned long) val, 0);
|
|
|
+ }
|
|
|
+-
|
|
|
++#endif
|
|
|
+ int _snd_pcm_hw_param_set_min(snd_pcm_hw_params_t *params,
|
|
|
+ snd_pcm_hw_param_t var, unsigned int val, int dir);
|
|
|
+ int _snd_pcm_hw_param_set_max(snd_pcm_hw_params_t *params,
|
|
|
+diff -urN alsa-lib-1.0.18-0rig//src/pcm/pcm_route.c alsa-lib-1.0.18/src/pcm/pcm_route.c
|
|
|
+--- alsa-lib-1.0.18-0rig//src/pcm/pcm_route.c 2009-01-31 11:02:12.000000000 +0100
|
|
|
++++ alsa-lib-1.0.18/src/pcm/pcm_route.c 2009-01-31 11:03:18.000000000 +0100
|
|
|
+@@ -26,6 +26,7 @@
|
|
|
+ *
|
|
|
+ */
|
|
|
+
|
|
|
++
|
|
|
+ #include <byteswap.h>
|
|
|
+ #include <math.h>
|
|
|
+ #include "pcm_local.h"
|
|
|
+@@ -106,6 +107,23 @@
|
|
|
+
|
|
|
+ #endif /* DOC_HIDDEN */
|
|
|
+
|
|
|
++
|
|
|
++#if defined(AVR32_INLINE_BUG)
|
|
|
++int _snd_pcm_hw_params_set_format(snd_pcm_hw_params_t *params,
|
|
|
++ snd_pcm_format_t val)
|
|
|
++{
|
|
|
++ return _snd_pcm_hw_param_set(params, SND_PCM_HW_PARAM_FORMAT,
|
|
|
++ (unsigned long) val, 0);
|
|
|
++}
|
|
|
++
|
|
|
++int _snd_pcm_hw_params_set_subformat(snd_pcm_hw_params_t *params,
|
|
|
++ snd_pcm_subformat_t val)
|
|
|
++{
|
|
|
++ return _snd_pcm_hw_param_set(params, SND_PCM_HW_PARAM_SUBFORMAT,
|
|
|
++ (unsigned long) val, 0);
|
|
|
++}
|
|
|
++#endif
|
|
|
++
|
|
|
+ static void snd_pcm_route_convert1_zero(const snd_pcm_channel_area_t *dst_area,
|
|
|
+ snd_pcm_uframes_t dst_offset,
|
|
|
+ const snd_pcm_channel_area_t *src_areas ATTRIBUTE_UNUSED,
|
|
|
+@@ -483,6 +501,8 @@
|
|
|
+ snd_pcm_uframes_t frames,
|
|
|
+ snd_pcm_route_params_t *params)
|
|
|
+ {
|
|
|
++#if defined(AVR32_INLINE_BUG)
|
|
|
++#endif
|
|
|
+ unsigned int dst_channel;
|
|
|
+ snd_pcm_route_ttable_dst_t *dstp;
|
|
|
+ const snd_pcm_channel_area_t *dst_area;
|
|
|
+@@ -551,8 +571,20 @@
|
|
|
+ _snd_pcm_hw_param_set_mask(sparams, SND_PCM_HW_PARAM_ACCESS,
|
|
|
+ &saccess_mask);
|
|
|
+ if (route->sformat != SND_PCM_FORMAT_UNKNOWN) {
|
|
|
++#if defined(AVR32_INLINE_BUG)
|
|
|
++/* Start of of problem */
|
|
|
++#endif
|
|
|
+ _snd_pcm_hw_params_set_format(sparams, route->sformat);
|
|
|
+ _snd_pcm_hw_params_set_subformat(sparams, SND_PCM_SUBFORMAT_STD);
|
|
|
++#if 0
|
|
|
++ _snd_pcm_hw_param_set(sparams, SND_PCM_HW_PARAM_FORMAT,
|
|
|
++ (unsigned long) route->sformat, 0);
|
|
|
++ _snd_pcm_hw_param_set(sparams, SND_PCM_HW_PARAM_SUBFORMAT,
|
|
|
++ (unsigned long) SND_PCM_SUBFORMAT_STD, 0);
|
|
|
++#endif
|
|
|
++#if defined(AVR32_INLINE_BUG)
|
|
|
++/* End of problem */
|
|
|
++#endif
|
|
|
+ }
|
|
|
+ if (route->schannels >= 0) {
|
|
|
+ _snd_pcm_hw_param_set(sparams, SND_PCM_HW_PARAM_CHANNELS,
|