aboutsummaryrefslogtreecommitdiffstats
path: root/sound/core/oss/pcm_plugin.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2005-11-17 04:18:00 -0500
committerJaroslav Kysela <perex@suse.cz>2006-01-03 06:16:33 -0500
commit47eaebfd31610d2a55fbaccd1e7c37690d42ce30 (patch)
treed86d90a3741e09cf660aef3dda96566ff68778eb /sound/core/oss/pcm_plugin.c
parent230b5c1a612ae903c560b55a15df287b0ff437ea (diff)
[ALSA] Use standard bitmap functions
Modules: ALSA<-OSS emulation Use standard bitmap functions instead of in-house ones. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core/oss/pcm_plugin.c')
-rw-r--r--sound/core/oss/pcm_plugin.c54
1 files changed, 27 insertions, 27 deletions
diff --git a/sound/core/oss/pcm_plugin.c b/sound/core/oss/pcm_plugin.c
index fc23373c000..312ae1f2bfc 100644
--- a/sound/core/oss/pcm_plugin.c
+++ b/sound/core/oss/pcm_plugin.c
@@ -37,21 +37,21 @@
37#define snd_pcm_plug_last(plug) ((plug)->runtime->oss.plugin_last) 37#define snd_pcm_plug_last(plug) ((plug)->runtime->oss.plugin_last)
38 38
39static int snd_pcm_plugin_src_channels_mask(snd_pcm_plugin_t *plugin, 39static int snd_pcm_plugin_src_channels_mask(snd_pcm_plugin_t *plugin,
40 bitset_t *dst_vmask, 40 unsigned long *dst_vmask,
41 bitset_t **src_vmask) 41 unsigned long **src_vmask)
42{ 42{
43 bitset_t *vmask = plugin->src_vmask; 43 unsigned long *vmask = plugin->src_vmask;
44 bitset_copy(vmask, dst_vmask, plugin->src_format.channels); 44 bitmap_copy(vmask, dst_vmask, plugin->src_format.channels);
45 *src_vmask = vmask; 45 *src_vmask = vmask;
46 return 0; 46 return 0;
47} 47}
48 48
49static int snd_pcm_plugin_dst_channels_mask(snd_pcm_plugin_t *plugin, 49static int snd_pcm_plugin_dst_channels_mask(snd_pcm_plugin_t *plugin,
50 bitset_t *src_vmask, 50 unsigned long *src_vmask,
51 bitset_t **dst_vmask) 51 unsigned long **dst_vmask)
52{ 52{
53 bitset_t *vmask = plugin->dst_vmask; 53 unsigned long *vmask = plugin->dst_vmask;
54 bitset_copy(vmask, src_vmask, plugin->dst_format.channels); 54 bitmap_copy(vmask, src_vmask, plugin->dst_format.channels);
55 *dst_vmask = vmask; 55 *dst_vmask = vmask;
56 return 0; 56 return 0;
57} 57}
@@ -193,12 +193,12 @@ int snd_pcm_plugin_build(snd_pcm_plug_t *plug,
193 snd_pcm_plugin_free(plugin); 193 snd_pcm_plugin_free(plugin);
194 return -ENOMEM; 194 return -ENOMEM;
195 } 195 }
196 plugin->src_vmask = bitset_alloc(src_format->channels); 196 plugin->src_vmask = bitmap_alloc(src_format->channels);
197 if (plugin->src_vmask == NULL) { 197 if (plugin->src_vmask == NULL) {
198 snd_pcm_plugin_free(plugin); 198 snd_pcm_plugin_free(plugin);
199 return -ENOMEM; 199 return -ENOMEM;
200 } 200 }
201 plugin->dst_vmask = bitset_alloc(dst_format->channels); 201 plugin->dst_vmask = bitmap_alloc(dst_format->channels);
202 if (plugin->dst_vmask == NULL) { 202 if (plugin->dst_vmask == NULL) {
203 snd_pcm_plugin_free(plugin); 203 snd_pcm_plugin_free(plugin);
204 return -ENOMEM; 204 return -ENOMEM;
@@ -651,18 +651,18 @@ snd_pcm_sframes_t snd_pcm_plug_client_channels_buf(snd_pcm_plug_t *plug,
651} 651}
652 652
653static int snd_pcm_plug_playback_channels_mask(snd_pcm_plug_t *plug, 653static int snd_pcm_plug_playback_channels_mask(snd_pcm_plug_t *plug,
654 bitset_t *client_vmask) 654 unsigned long *client_vmask)
655{ 655{
656 snd_pcm_plugin_t *plugin = snd_pcm_plug_last(plug); 656 snd_pcm_plugin_t *plugin = snd_pcm_plug_last(plug);
657 if (plugin == NULL) { 657 if (plugin == NULL) {
658 return 0; 658 return 0;
659 } else { 659 } else {
660 int schannels = plugin->dst_format.channels; 660 int schannels = plugin->dst_format.channels;
661 bitset_t bs[bitset_size(schannels)]; 661 DECLARE_BITMAP(bs, schannels);
662 bitset_t *srcmask; 662 unsigned long *srcmask;
663 bitset_t *dstmask = bs; 663 unsigned long *dstmask = bs;
664 int err; 664 int err;
665 bitset_one(dstmask, schannels); 665 bitmap_fill(dstmask, schannels);
666 666
667 while (1) { 667 while (1) {
668 err = plugin->src_channels_mask(plugin, dstmask, &srcmask); 668 err = plugin->src_channels_mask(plugin, dstmask, &srcmask);
@@ -673,7 +673,7 @@ static int snd_pcm_plug_playback_channels_mask(snd_pcm_plug_t *plug,
673 break; 673 break;
674 plugin = plugin->prev; 674 plugin = plugin->prev;
675 } 675 }
676 bitset_and(client_vmask, dstmask, plugin->src_format.channels); 676 bitmap_and(client_vmask, client_vmask, dstmask, plugin->src_format.channels);
677 return 0; 677 return 0;
678 } 678 }
679} 679}
@@ -683,21 +683,21 @@ static int snd_pcm_plug_playback_disable_useless_channels(snd_pcm_plug_t *plug,
683{ 683{
684 snd_pcm_plugin_t *plugin = snd_pcm_plug_first(plug); 684 snd_pcm_plugin_t *plugin = snd_pcm_plug_first(plug);
685 unsigned int nchannels = plugin->src_format.channels; 685 unsigned int nchannels = plugin->src_format.channels;
686 bitset_t bs[bitset_size(nchannels)]; 686 DECLARE_BITMAP(bs, nchannels);
687 bitset_t *srcmask = bs; 687 unsigned long *srcmask = bs;
688 int err; 688 int err;
689 unsigned int channel; 689 unsigned int channel;
690 for (channel = 0; channel < nchannels; channel++) { 690 for (channel = 0; channel < nchannels; channel++) {
691 if (src_channels[channel].enabled) 691 if (src_channels[channel].enabled)
692 bitset_set(srcmask, channel); 692 set_bit(channel, srcmask);
693 else 693 else
694 bitset_reset(srcmask, channel); 694 clear_bit(channel, srcmask);
695 } 695 }
696 err = snd_pcm_plug_playback_channels_mask(plug, srcmask); 696 err = snd_pcm_plug_playback_channels_mask(plug, srcmask);
697 if (err < 0) 697 if (err < 0)
698 return err; 698 return err;
699 for (channel = 0; channel < nchannels; channel++) { 699 for (channel = 0; channel < nchannels; channel++) {
700 if (!bitset_get(srcmask, channel)) 700 if (!test_bit(channel, srcmask))
701 src_channels[channel].enabled = 0; 701 src_channels[channel].enabled = 0;
702 } 702 }
703 return 0; 703 return 0;
@@ -709,16 +709,16 @@ static int snd_pcm_plug_capture_disable_useless_channels(snd_pcm_plug_t *plug,
709{ 709{
710 snd_pcm_plugin_t *plugin = snd_pcm_plug_last(plug); 710 snd_pcm_plugin_t *plugin = snd_pcm_plug_last(plug);
711 unsigned int nchannels = plugin->dst_format.channels; 711 unsigned int nchannels = plugin->dst_format.channels;
712 bitset_t bs[bitset_size(nchannels)]; 712 DECLARE_BITMAP(bs, nchannels);
713 bitset_t *dstmask = bs; 713 unsigned long *dstmask = bs;
714 bitset_t *srcmask; 714 unsigned long *srcmask;
715 int err; 715 int err;
716 unsigned int channel; 716 unsigned int channel;
717 for (channel = 0; channel < nchannels; channel++) { 717 for (channel = 0; channel < nchannels; channel++) {
718 if (client_channels[channel].enabled) 718 if (client_channels[channel].enabled)
719 bitset_set(dstmask, channel); 719 set_bit(channel, dstmask);
720 else 720 else
721 bitset_reset(dstmask, channel); 721 clear_bit(channel, dstmask);
722 } 722 }
723 while (plugin) { 723 while (plugin) {
724 err = plugin->src_channels_mask(plugin, dstmask, &srcmask); 724 err = plugin->src_channels_mask(plugin, dstmask, &srcmask);
@@ -730,7 +730,7 @@ static int snd_pcm_plug_capture_disable_useless_channels(snd_pcm_plug_t *plug,
730 plugin = snd_pcm_plug_first(plug); 730 plugin = snd_pcm_plug_first(plug);
731 nchannels = plugin->src_format.channels; 731 nchannels = plugin->src_format.channels;
732 for (channel = 0; channel < nchannels; channel++) { 732 for (channel = 0; channel < nchannels; channel++) {
733 if (!bitset_get(dstmask, channel)) 733 if (!test_bit(channel, dstmask))
734 src_channels[channel].enabled = 0; 734 src_channels[channel].enabled = 0;
735 } 735 }
736 return 0; 736 return 0;