Author: tv Date: Tue Feb 13 12:21:03 2007 New Revision: 120337 Added: packages/cooker/libalsa2/current/SOURCES/alsa-usb.diff Modified: packages/cooker/libalsa2/current/SPECS/libalsa2.spec
Log: add a configuration file for USB audio devices: enable dmix-ing and proper 5.1 routing for USB audio devices Added: packages/cooker/libalsa2/current/SOURCES/alsa-usb.diff ============================================================================== --- (empty file) +++ packages/cooker/libalsa2/current/SOURCES/alsa-usb.diff Tue Feb 13 12:21:03 2007 @@ -0,0 +1,341 @@ +enable dmix-ing and proper 5.1 routing for USB audio devices + +add a configuration file for USB audio devices +diff -r 8e3a1a77bb84 -r 038e10f8332b src/conf/cards/USB-Audio.conf +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/src/conf/cards/USB-Audio.conf Tue Feb 13 09:01:31 2007 +0100 +@@ -0,0 +1,334 @@ ++# ++# USB-Audio.conf - configuration for USB Audio devices ++# ++# ++# DO NO EDIT; this is an internal ALSA file. ++# If you want to add your own definitions, put them into /etc/asound.conf or ++# ~/.asoundrc, with "cards." before the "USB-Audio", e.g.: ++# ++# cards.USB-Audio.pcm.use_dmix."NoiseBlaster 3000" no ++# ++# If your device requires such a definition to work correctly, please report it ++# to <[email protected]>. ++ ++ ++# If a device has sample formats not supported by dmix, dmix can be disabled ++# here. ++USB-Audio.pcm.use_dmix { ++ "AudioPhile" no # uses big-endian 24-bit samples ++} ++ ++# If a device does not have a four-channel mode for the front/rear outputs, ++# other modes can be selected here. ++# six_channels - for devices that route the last two of the four channels ++# to the center/LFE outputs ++# two_stereo_devices - for devices that have two stereo audio interfaces ++USB-Audio.pcm.surround40_type { ++ "AudioPhile" two_stereo_devices ++ "OmniStudio" two_stereo_devices ++ "Quattro" two_stereo_devices ++ "SB Audigy 2 NX" six_channels ++} ++ ++# If a device does not use the first PCM device for digital data, the device ++# number for the iec958 device can be changed here. ++USB-Audio.pcm.iec958_device { ++ # "NoiseBlaster 3000" 42 ++} ++ ++ ++# If a device requires non-standard definitions for front, surround40, ++# surround51, surround71 or iec958, they can be defined here. ++ ++# USB-Audio."NoiseBlaster 3000".pcm.surround51 { ++# @args [ CARD ] ++# @args.CARD { type string } ++# ... ++# } ++ ++ ++################################################################################ ++ ++<confdir:pcm/front.conf> ++ ++USB-Audio.pcm.front.0 { ++ @args [ CARD ] ++ @args.CARD { type string } ++ @func refer ++ name { ++ @func concat ++ strings [ ++ "cards.USB-Audio." ++ { @func card_name card $CARD } ++ ".pcm.front:CARD=" $CARD ++ ] ++ } ++ default { ++ # We could use softvol, but the driver might have guessed a ++ # wrong name for the real volume control. ++ type hw ++ card $CARD ++ device 0 ++ } ++} ++ ++USB-Audio.pcm.default { ++ @args [ CARD ] ++ @args.CARD { type string } ++ type asym ++ playback.pcm { ++ type plug ++ slave.pcm { ++ @func refer ++ name { ++ @func concat ++ strings [ ++ "cards.USB-Audio.pcm.default_playback_dmix_" ++ { ++ @func refer ++ name { ++ @func concat ++ strings [ ++ "cards.USB-Audio.pcm.use_dmix." ++ { @func card_name card $CARD } ++ ] ++ } ++ default yes ++ } ++ ":CARD=" $CARD ++ ] ++ } ++ } ++ } ++ capture.pcm { ++ type plug ++ slave.pcm { ++ @func concat ++ strings [ "dsnoop:" $CARD ] ++ } ++ } ++} ++ ++USB-Audio.pcm.default_playback_dmix_yes { ++ @args [ CARD ] ++ @args.CARD { type string } ++ @func concat ++ strings [ "dmix:" $CARD ] ++} ++ ++USB-Audio.pcm.default_playback_dmix_no { ++ @args [ CARD ] ++ @args.CARD { type string } ++ type hw ++ card $CARD ++ device 0 ++} ++ ++<confdir:pcm/surround40.conf> ++ ++USB-Audio.pcm.surround40.0 { ++ @args [ CARD ] ++ @args.CARD { type string } ++ @func refer ++ name { ++ @func concat ++ strings [ ++ "cards.USB-Audio." ++ { @func card_name card $CARD } ++ ".pcm.surround40:CARD=" $CARD ++ ] ++ } ++ default { ++ @func refer ++ name { ++ @func concat ++ strings [ ++ "cards.USB-Audio.pcm.surround40_" ++ { ++ @func refer ++ name { ++ @func concat ++ strings [ ++ "cards.USB-Audio.pcm.surround40_type." ++ { @func card_name card $CARD } ++ ] ++ } ++ default default ++ } ++ ":CARD=" $CARD ++ ] ++ } ++ } ++} ++ ++USB-Audio.pcm.surround40_default { ++ @args [ CARD ] ++ @args.CARD { type string } ++ type hw ++ card $CARD ++ device 0 ++} ++ ++USB-Audio.pcm.surround40_six_channels { ++ @args [ CARD ] ++ @args.CARD { type string } ++ type route ++ ttable.0.0 1 ++ ttable.1.1 1 ++ ttable.2.4 1 ++ ttable.3.5 1 ++ slave { ++ pcm { ++ type hw ++ card $CARD ++ device 0 ++ } ++ channels 6 ++ } ++} ++ ++USB-Audio.pcm.surround40_two_stereo_devices { ++ @args [ CARD ] ++ @args.CARD { type string } ++ type route ++ ttable.0.0 1 ++ ttable.1.1 1 ++ ttable.2.2 1 ++ ttable.3.3 1 ++ slave.pcm { ++ type multi ++ slaves { ++ a { ++ pcm { ++ type hw ++ card $CARD ++ device 0 ++ } ++ channels 2 ++ } ++ b { ++ pcm { ++ type hw ++ card $CARD ++ device 1 ++ } ++ channels 2 ++ } ++ } ++ bindings [ ++ { slave a channel 0 } ++ { slave a channel 1 } ++ { slave b channel 0 } ++ { slave b channel 1 } ++ ] ++ } ++} ++ ++<confdir:pcm/surround41.conf> ++<confdir:pcm/surround50.conf> ++<confdir:pcm/surround51.conf> ++ ++USB-Audio.pcm.surround51.0 { ++ @args [ CARD ] ++ @args.CARD { type string } ++ @func refer ++ name { ++ @func concat ++ strings [ ++ "cards.USB-Audio." ++ { @func card_name card $CARD } ++ ".pcm.surround51:CARD=" $CARD ++ ] ++ } ++ default { ++ type route ++ ttable.0.0 1 ++ ttable.1.1 1 ++ ttable.2.4 1 ++ ttable.3.5 1 ++ ttable.4.2 1 ++ ttable.5.3 1 ++ slave { ++ pcm { ++ type hw ++ card $CARD ++ device 0 ++ } ++ channels 6 ++ } ++ } ++} ++ ++<confdir:pcm/surround71.conf> ++ ++USB-Audio.pcm.surround71.0 { ++ @args [ CARD ] ++ @args.CARD { type string } ++ @func refer ++ name { ++ @func concat ++ strings [ ++ "cards.USB-Audio." ++ { @func card_name card $CARD } ++ ".pcm.surround71:CARD=" $CARD ++ ] ++ } ++ default { ++ type route ++ ttable.0.0 1 ++ ttable.1.1 1 ++ ttable.2.4 1 ++ ttable.3.5 1 ++ ttable.4.2 1 ++ ttable.5.3 1 ++ ttable.6.6 1 ++ ttable.7.7 1 ++ slave { ++ pcm { ++ type hw ++ card $CARD ++ device 0 ++ } ++ channels 8 ++ } ++ } ++} ++ ++<confdir:pcm/iec958.conf> ++ ++USB-Audio.pcm.iec958.0 { ++ @args [ CARD AES0 AES1 AES2 AES3 ] ++ @args.CARD { type string } ++ @args.AES0 { type integer } ++ @args.AES1 { type integer } ++ @args.AES2 { type integer } ++ @args.AES3 { type integer } ++ @func refer ++ name { ++ @func concat ++ strings [ ++ "cards.USB-Audio." ++ { @func card_name card $CARD } ++ ".pcm.iec958:CARD=" $CARD ++ ",AES0=" $AES0 ",AES1=" $AES1 ",AES2=" $AES2 ",AES3=" $AES3 ++ ] ++ } ++ default { ++ # FIXME: we cannot set the AES parameters ++ type hw ++ card $CARD ++ device { ++ @func refer ++ name { ++ @func concat ++ strings [ ++ "cards.USB-Audio.pcm.iec958_device." ++ { @func card_name card $CARD } ++ ] ++ } ++ default 0 ++ } ++ } ++} ++ ++# vim: ft=alsaconf Modified: packages/cooker/libalsa2/current/SPECS/libalsa2.spec ============================================================================== --- packages/cooker/libalsa2/current/SPECS/libalsa2.spec (original) +++ packages/cooker/libalsa2/current/SPECS/libalsa2.spec Tue Feb 13 12:21:03 2007 @@ -16,6 +16,7 @@ Release: %mkrel 1 %endif Source0: ftp://ftp.alsa-project.org/pub/lib/%{fname}.tar.bz2 +Patch0: alsa-usb.diff License: GPL Epoch: 2 @@ -126,6 +127,7 @@ %prep %setup -q -n %fname +%patch0 -p1 %build %configure2_5x --enable-shared --enable-static
