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

[Linrad] Re: Delta 44/66



Hello Isao,

> I installed Delta 66 (for WSE) and YMF (for AF out) in
> Linux box and those cards worked fine. But YMF got out
> of order and I'm installing another Delta 44. When this
> card is selected for RX, Linrad say:
> 
> Error: Device must have 1 or 2 channels (or both).
> 
> What mistake I am? I'm also using OSS sound drivers
> (paid) on Fedora 10. Thanks in advance.

I do not have OSS here any more. With the new installation 
procedure I found it difficult to manage reconfigurations
when testing all the different soundcards.

The problem is presumably that the device you selected is reported
by OSS to only be capable of using 4 channels. There is a test
for this in lsetad.c like this:
if( (dev_wr_channels[ui.rx_dadev_no]&3) == 0)
  {
  lir_text(0,line[0],
  "Error: Device must have 1 or 2 channels (or both).");
  line[0]++;
  ui.rx_dadev_no=-1;
  lir_text(10,line[0],press_any_key);
  await_keyboard();
  return;
  }

In the routine void set_rx_dadev_parms(int *line)
which is near line 4130 in lsetad.c

Remove or comment out those lines. The modern OSS driver
is probably doing a conversion in software so it will allow
the device to be opened as one or two channels.

You must also comment out two of the following lines like this:
ui.rx_min_da_channels=1;
//if( (dev_wr_channels[ui.rx_dadev_no]&1) == 0)ui.rx_min_da_channels=2;
ui.rx_max_da_channels=2;
//if( (dev_wr_channels[ui.rx_dadev_no]&2) == 0)ui.rx_max_da_channels=1;

That should allow Linrad to try to open the Delta44 with one or two
channels. 

The reason for this test is that some systems do not work at all
if one tries to open devices with a number of channels not supported
in hardware. Maybe it is time to remove this restriction now because
the problem is presumably only present in rather old Linux sound systems.

To make it work you must also remove this:
#ifdef SNDCTL_DSP_COOKEDMODE
    j=0;
    ioctl(rx_audio_out, SNDCTL_DSP_COOKEDMODE, &j);
#endif
This is near line 2964 in lsetad.c.


I have modified Linrad-03.06 like this:

 Error: Device must have 1 or 2 channels (or both).
 Do you wish to try to use it anyway (Y/N)?

If you answer 'Y', the changes above will come into effect and if
you ansewr 'N' you will get a chance to select another device.

I have tested it in my RedHat 9 installation where I have 4Front OSS.
(Not actually listened to the output because connectors do not fit,
but it seems to work properly.)

73

Leif / SM5BSZ


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Linrad" group.
To post to this group, send email to linrad@xxxxxxxxxxxxxxxx
To unsubscribe from this group, send email to linrad+unsubscribe@xxxxxxxxxxxxxxxx
For more options, visit this group at http://groups.google.com/group/linrad?hl=en
-~----------~----~----~----~------~----~------~--~---

LINRADDARNIL