Update of /cvsroot/alsa/alsa-oss/alsa
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15780
Modified Files:
pcm.c
Log Message:
Added hwset flag and changed mmap_commit check code
Index: pcm.c
===================================================================
RCS file: /cvsroot/alsa/alsa-oss/alsa/pcm.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- pcm.c 26 Feb 2004 15:31:46 -0000 1.9
+++ pcm.c 27 Feb 2004 16:16:58 -0000 1.10
@@ -71,6 +71,7 @@
} oss_dsp_stream_t;
typedef struct {
+ int hwset;
unsigned int channels;
unsigned int rate;
unsigned int oss_format;
@@ -391,9 +392,11 @@
static int oss_dsp_params(oss_dsp_t *dsp)
{
int err;
+ dsp->hwset = 0;
err = oss_dsp_hw_params(dsp);
if (err < 0)
return err;
+ dsp->hwset = 1;
err = oss_dsp_sw_params(dsp);
if (err < 0)
return err;
@@ -725,11 +728,10 @@
dsp->channels, frames,
dsp->format);
err = snd_pcm_mmap_commit(pcm, ofs, frames);
- assert(err == (snd_pcm_sframes_t) frames);
if (err < 0)
break;
- size -= frames;
- str->alsa.appl_ptr += frames;
+ size -= err;
+ str->alsa.appl_ptr += err;
str->alsa.appl_ptr %= str->alsa.boundary;
}
break;
@@ -764,6 +766,10 @@
{
int k;
DEBUG("SNDCTL_DSP_RESET)\n");
+ if (!dsp->hwset) {
+ errno = -EIO;
+ return -1;
+ }
result = 0;
for (k = 0; k < 2; ++k) {
str = &dsp->streams[k];
@@ -787,6 +793,10 @@
{
int k;
DEBUG("SNDCTL_DSP_SYNC)\n");
+ if (!dsp->hwset) {
+ errno = -EIO;
+ return -1;
+ }
result = 0;
for (k = 0; k < 2; ++k) {
str = &dsp->streams[k];
-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Alsa-cvslog mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-cvslog