Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Jul 2004 10:37:30 +0200
From:      Alexander Leidinger <Alexander@Leidinger.net>
To:        Bruce M Simpson <bms@spc.org>
Cc:        current@freebsd.org
Subject:   Re: full duplex sound card dirve
Message-ID:  <20040712103730.16ec14cd@Magellan.Leidinger.net>
In-Reply-To: <20040711172503.GA828@empiric.dek.spc.org>
References:  <200407101101.05080.rneese@adelphia.net> <20040711172503.GA828@empiric.dek.spc.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 11 Jul 2004 18:25:03 +0100
Bruce M Simpson <bms@spc.org> wrote:

> On Sat, Jul 10, 2004 at 11:01:05AM -0400, Richard Neese wrote:
> > is anyone working on full   duplex drivered for fbsd and soundcards. half the 
> > apps I use say the sound is only half duplex.  like kphone wich  we   are 
> > porting and    cpphone   and a few other     including asterisk0 pbx  look at 
> > te sound card and report it as half duplex. 
> 
> The vast majority of the drivers we ship are full duplex, but it's possible
> that the applications concerned might not be getting this information. Many
> recent commits have happened in this area, particularly with regard to
> Linux emulation.

I've committed the SNDCTL_DSP_SETDUPLEX ioctl (including the linux
emulation parts). This ioctl failed before, even if the soundcard was
already in full duplex mode. A workaround for all releases upto and
including 5.2.1 is to check with the SNDCTL_DSP_GETCAPS if the card
already is in full duplex mode. Here's a snippet of code how to test it:
---snip---
    retval = ioctl(fd, SNDCTL_DSP_GETCAPS, &val);
    if (-1 == retval) {
        perror("GETCAPS");
        exit(1);
    }

    printf("duplex: ");
    if (FALSE == DSP_CAP_DUPLEX & val) {
        printf("not ");
    }
    puts("supported");
---snip---

In FreeBSd all of the soundcards with full duplex capability will be
already in full duplex mode when the dsp device gets opened.

Bye,
Alexander.

-- 
           I'm available to get hired (preferred in .lu).

http://www.Leidinger.net                       Alexander @ Leidinger.net
  GPG fingerprint = C518 BC70 E67F 143F BE91  3365 79E2 9C60 B006 3FE7



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040712103730.16ec14cd>