[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linrad] Re: xlinrad 02.06a / error 23855



Hi Pierre,

> If I enter Y ( DA STOP/START [1] in par_userint ) everything works fine.
> If I enter N ( DA STOP/START [0]  in par_userint ) xlinrad issues an error 
> message 23855 when a new signal is selected .

When something goes wrong with the device drivers (which was not
uncommon at all in the past) Linrad calls err_restart_da(int errcod),
a routine that tries to close and reopen the output device.

This routine has been incorrect for some time now because of
a silly mistake of mine but I have not noticed and no one else
has told me about it. The last line:
if(ioctl(audio_out,SNDCTL_DSP_GETOSPACE, &da_info) != -1)lirerr(errcod);
should be like this:
if(ioctl(audio_out,SNDCTL_DSP_GETOSPACE, &da_info) == -1)lirerr(errcod);

What is more interesting is why does the output routine lir_dawrite
hang to issue the call to restart in one case but not the other.
I do not know the answer but I made some little changes to
lir_empty_da_device_buffer() that will show up in Linrad-02.07 and
that possibly eliminate the call to the err_restart routine.

73

Leif / SM5BSZ




#############################################################
This message is sent to you because you are subscribed to
  the mailing list <linrad@xxxxxxxxxxxxxxxxxxxxx>.
To unsubscribe, E-mail to: <linrad-off@xxxxxxxxxxxxxxxxxxxxx>
To switch to the DIGEST mode, E-mail to <linrad-digest@xxxxxxxxxxxxxxxxxxxxx>
To switch to the INDEX mode, E-mail to <linrad-index@xxxxxxxxxxxxxxxxxxxxx>
Send administrative queries to  <linrad-request@xxxxxxxxxxxxxxxxxxxxx>

LINRADDARNIL