Update of /cvsroot/alsa/alsa-lib/src/pcm In directory sc8-pr-cvs1:/tmp/cvs-serv17118/src/pcm
Modified Files: pcm_local.h pcm_mmap.c pcm_plug.c Log Message: Takashi: added shadow pcm to avoid problem with plug plugin and mmaped access Index: pcm_local.h =================================================================== RCS file: /cvsroot/alsa/alsa-lib/src/pcm/pcm_local.h,v retrieving revision 1.129 retrieving revision 1.130 diff -u -r1.129 -r1.130 --- pcm_local.h 23 Apr 2003 12:42:00 -0000 1.129 +++ pcm_local.h 8 Aug 2003 09:06:41 -0000 1.130 @@ -201,6 +201,7 @@ snd_pcm_rbptr_t hw; snd_pcm_uframes_t min_align; int mmap_rw; + int shadow_mmap; int donot_close; snd_pcm_channel_info_t *mmap_channels; snd_pcm_channel_area_t *running_areas; Index: pcm_mmap.c =================================================================== RCS file: /cvsroot/alsa/alsa-lib/src/pcm/pcm_mmap.c,v retrieving revision 1.67 retrieving revision 1.68 diff -u -r1.67 -r1.68 --- pcm_mmap.c 22 Jun 2003 09:59:03 -0000 1.67 +++ pcm_mmap.c 8 Aug 2003 09:06:41 -0000 1.68 @@ -295,6 +295,8 @@ err = pcm->ops->mmap(pcm); if (err < 0) return err; + if (pcm->shadow_mmap) + return 0; pcm->mmap_channels = calloc(pcm->channels, sizeof(pcm->mmap_channels[0])); if (!pcm->mmap_channels) return -ENOMEM; @@ -427,6 +429,8 @@ unsigned int c; assert(pcm); assert(pcm->mmap_channels); + if (pcm->shadow_mmap) + return pcm->ops->munmap(pcm); for (c = 0; c < pcm->channels; ++c) { snd_pcm_channel_info_t *i = &pcm->mmap_channels[c]; unsigned int c1; Index: pcm_plug.c =================================================================== RCS file: /cvsroot/alsa/alsa-lib/src/pcm/pcm_plug.c,v retrieving revision 1.123 retrieving revision 1.124 diff -u -r1.123 -r1.124 --- pcm_plug.c 25 Jul 2003 17:02:04 -0000 1.123 +++ pcm_plug.c 8 Aug 2003 09:06:41 -0000 1.124 @@ -937,13 +937,23 @@ return snd_pcm_channel_info(plug->slave, info); } -static int snd_pcm_plug_mmap(snd_pcm_t *pcm ATTRIBUTE_UNUSED) +static int snd_pcm_plug_mmap(snd_pcm_t *pcm) { + snd_pcm_plug_t *plug = pcm->private_data; + pcm->mmap_channels = plug->slave->mmap_channels; + pcm->running_areas = plug->slave->running_areas; + pcm->stopped_areas = plug->slave->stopped_areas; + pcm->shadow_mmap = 1; return 0; } -static int snd_pcm_plug_munmap(snd_pcm_t *pcm ATTRIBUTE_UNUSED) +static int snd_pcm_plug_munmap(snd_pcm_t *pcm) { + // snd_pcm_plug_t *plug = pcm->private_data; + pcm->mmap_channels = NULL; + pcm->running_areas = NULL; + pcm->stopped_areas = NULL; + pcm->shadow_mmap = 0; return 0; } ------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 _______________________________________________ Alsa-cvslog mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-cvslog