From owner-FreeBSD-users-jp@jp.FreeBSD.org Wed May  8 19:24:11 2002
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) id g48AOBA40509;
	Wed, 8 May 2002 19:24:11 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from ml001.gate01.com ([61.122.115.133])
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) with SMTP/inet id g48AOBf40504
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Wed, 8 May 2002 19:24:11 +0900 (JST)
	(envelope-from ginga@ginganet.org)
Received: from athena.ginganet.org (tk0008-202x210x243x26.ap-TK.usen.ad.jp[202.210.243.26])
	by ml001.gate01.com;
	Wed, 8 May 2002 19:24:05 +0900
Received: by athena.ginganet.org (Postfix, from userid 5003)
	id 795343E59; Wed,  8 May 2002 19:24:05 +0900 (JST)
Date: Wed, 8 May 2002 19:24:05 +0900
From: Kawaguti Ginga <ginga-freebsd@ginganet.org>
To: FreeBSD-users-jp@jp.FreeBSD.org
Message-ID: <20020508102405.GA6225%ginga-freebsd@ginganet.org>
References: <20020508094436.1169.qmail@pikachu.bsp.bc.niigata-u.ac.jp>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-2022-jp
Content-Disposition: inline
In-Reply-To: <20020508094436.1169.qmail@pikachu.bsp.bc.niigata-u.ac.jp>
User-Agent: Mutt/1.3.27i-ja.2
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+020417
X-Sequence: FreeBSD-users-jp 68386
Subject: [FreeBSD-users-jp 68386] Re: Q. pcm and sbc in O_RDWR
Errors-To: owner-FreeBSD-users-jp@jp.FreeBSD.org
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: ginga-freebsd@ginganet.org

$B@n8}$G$9(B

3$BG/A0$K$d$C$F$?$b$N$=$N$b$N$@(B...

In Wed, May 08, 2002 at 06:44:34PM +0900,
Mamoru Iwaki <iwaki@bc.niigata-u.ac.jp> wrote:
> $B!N<ALd(B1$B!O(B
> $BO?2;$H:F@8$rF1;~$K!"F10l$N%5%&%s%I%G%P%$%9$G9T$*$&$H$7$F$$$^$9!#(B
> OSS$B$N%^%K%e%"%k(B(Open Sound System Programmer's Guide Version 1.11)$B$H(B
> <sys/soundcard.h>$B$r8+Hf$Y$J$,$i!"<!$N$h$&$J%W%m%0%i%`$r=q$$$?$H$3$m!"(B
> pcm$B$G$OF0$/$N$G$9$,(Bsbc$B$G$OF0$-$^$;$s$G$7$?!#(B

> http://www.bsp.bc.niigata-u.ac.jp/~iwaki/tmp/delay.c

pcm/sbc $B$+$I$&$+!$$OA4$/J,$+$j$^$;$s$,!$$3$NLdBj$O(B
 * $B%O!<%I%&%'%"$,(B full duplex $BBP1~$+$I$&$+!$(B
 * $B%I%i%$%P$,BP1~$7$F$$$k$+$I$&$+!$(B
 * $BBP1~$7$F$$$k$H$-$K(B full duplex $B$G07$&$?$a$N(B mixer $B$N(B setting
$B3F!9A4$F$,J,$+$C$F$J$$$HBLL\$G$9!%(B

mixer $B$O%A%C%W$,JQ$o$k$HF1$89`L\$G$b0UL#$,0c$C$F$$$?$j$7$^$9!%(B
$B$?$V$s(B...; $B>/$J$/$H$b(B OSS $B$G$O!%(B

$B$"!$(B#ifdef OSS $B$H$+F~$C$F$$$^$9$M!%(B

# full duplex $B$GF0$/$N$O3N$+$J$s$@$1$I!$(B($B%I%i%$%P$K$h$C$F$O(B?)
# in => out $B$X$N(B mixing $B$r;_$a$kJ}K!$,J,$+$i$J$$(B
# $B$b$N$b$"$j$^$9!%;_$a$k$H:F@8$7$?$$$b$N$b;_$^$C$A$c$&E[$H$+!%(B

> $B!N<ALd(B2$B!O(B
> $B>e5-%W%m%0%i%`$O!"5/F0$7$?Ev=i$O@_Dj$7$?CY$l;~4VDxEY$NCY$l(B(DELAY)$B$G(B
> $BF~NO$r%(%3!<$9$k$N$G$9$,!"2?$+$NGo;R$KCY$l;~4V$,L/$KD9$/$J$C$F$7$^$&(B
> $B$3$H$,$"$j$^$9!#$=$7$F0lEY$=$&$J$k$H!"$=$N8e$O$:$&$HD9$/$J$C$?$^$^$G(B
> $BI|5"$7$^$;$s!#2?$+=E$?$$$3$H$r$7$?$j$9$k$H5/$j$d$9$$46$8$G$9!#(Brtprio
> 16$B$/$i$$$G$b5/$-$k$3$H$,$"$j$^$9!#$J$<$J$s$G$7$g$&$+!)2sHr$9$kJ}K!$O(B
> $B$"$j$^$9$+!)(B

($B>&MQ(B)OSS$B$@$H$=$NJU$N(B buffer size $B$r;XDj$9$k$?$a$N(B ioctl $B$,$"$j$^$9!%(B
oss $B$N(B programmer's manual $B8+$F$/$@$5$$!%(B
$B%G%U%)%k%H$G$O<+F0@)8f$G$9$,!$<j$G;XDj$9$k$3$H$b$G$-$^$9!%(B
	http://www.opensound.com/

$B$?$@$7!$(BFreeBSD $BI8=`$N%5%&%s%I%G%P%$%9%I%i%$%P$G$O$3$&$$$&(B
$B:Y$+$$(B ioctl $B$^$G%5%]!<%H$5$l$F$$$k$+$I$&$+$O;d$OCN$j$^$;$s!%(B
$B$3$&$$$&:Y$+$$$H$3$m$rFM$C$D$-$?$$>l9g$K$O(B OSS $BGc$C$A$c$&$N$b(B
$B<j$G$O$"$k$H;W$$$^$9!%0B$$$G$9$7!%(B

$B$`$+!<$7=q$$$?(B code $B$N@Z$l$CC<$r0z$CD%$j$@$9$H(B($B;29MDxEY$K$7$F$/$@$5$$(B)

  if ((*dsp_in = open( AUDIO_DEVICE, O_RDONLY, 0)) == -1) {
    /* Opening device failed */
    perror( AUDIO_DEVICE );
    exit( -1 );
  }

  { /* set fragment size; this MUST be immediately after the open() */
    /* last 16bit is fragmentsize; 0009=512B,0008=256B,0004=16B */
    if (ioctl(*dsp_in, SNDCTL_DSP_SETFRAGMENT, &IO_fragment) == -1){
      perror( "SNDCTL_DSP_SETFRAGMENT" );
      exit(-1);
    }
    printf("returned SETFRAGMENT(input) : 0x%08x\n", IO_fragment );
-- 
       $B"J"J(B
Zzz.. (- - )$B"^"^"=!A(B           $B@n8}(B $B6d2O(B
      ##############   ginga-freebsd@ginganet.org
