[alsa-devel] [PATCH 06/13] speakers: Change the way to make PCM rules/constraints

Stefan Richter stefanr at s5r6.in-berlin.de
Sun Feb 2 16:45:04 CET 2014


On Feb 01 Takashi Sakamoto wrote:
> Hi Stefan,
> 
> Thanks to get these logs. It's really helpful to me.
> 
> >> 1.They have both iPCR/oPCR.
> 
> They have no oPCRs, against my guess.
> 
> I wrote snd-oxfw with an assumption that devices have iPCR/oPCR. So I 
> must write some patches for my last RFC:

Neither LaCie FireWire Speakers nor Griffin FireWave have physical
recording inputs.  It is therefore sensible that they present
OUTPUT_MASTER_PLUG.output_plugs == 0.

By the way, while LaCie FireWire Speakers is a stereo playback device,
Griffin FireWave is a 6-channel playback device with six physical outputs
(three 3.5 mm stereo receptacles).  It also contains a "Dolby™ Digital
decoder and a Dolby Pro Logic II adaptive matrix surround decoder"
according to the user's manual.  I have no idea how much of that is
implemented in the FireWave itself and how much is done in the FireWave
driver for OS X.

Apple' OS X built-in FireWire audio driver presents the FireWave as a
output-only device without any control besides the global joint
volume control.  I don't know whether it works as a 6-channel device
with the stock driver; it evidently does work at least as a 2-channel
device with stereo sound.  In order to use Dolby features on OS X, a
custom driver from Griffin needs to be installed.  I haven't tried that
driver myself yet, but I have heard from somebody else that this driver
emits vendor-specific (FCP?) requests to the FireWave to set up 5.1
playback.

I do have a Mac which dual-boots to Apple OS X, and a PCILynx card which
I can put into a Linux box, so I could attempt to analyze those vendor-
specific requests that enable 5.1 output.  Though currently, live seems
too short to bother.

Just in case it tells anything useful, here are some parts of alsa-info's
output (from alsa-info.sh version 0.4.63 and kernel 3.13-rc5 without your
patches; I haven't tried your patches yet):

!!Soundcards recognised by ALSA
!!-----------------------------
[...]
 2 [FireWave       ]: FireWave - FireWave
                      Griffin FireWave Surround (OXFW970 0104), GUID 0012920600520991 at fw6.0, S400
 3 [Speakers       ]: FWSpeakers - FireWire Speakers
                      LaCie FireWire Speakers (OXFW970 0105), GUID 00d04b21010212c8 at fw7.0, S400

!!Aplay/Arecord output
!!--------------------

APLAY

**** List of PLAYBACK Hardware Devices ****
[...]
card 2: FireWave [FireWave], device 0: OXFW970 [FireWave]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: Speakers [FireWire Speakers], device 0: OXFW970 [FireWire Speakers]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ARECORD

**** List of CAPTURE Hardware Devices ****
[...of course nothing from cards 2 and 3....]

!!Amixer output
!!-------------
[...]
!!-------Mixer controls for card 2 [FireWave]

Card hw:2 'FireWave'/'Griffin FireWave Surround (OXFW970 0104), GUID 0012920600520991 at fw6.0, S400'
  Mixer name	: 'OXFW970'
  Components	: ''
  Controls      : 2
  Simple ctrls  : 1
Simple mixer control 'PCM',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right - Rear Left - Rear Right - Front Center - Woofer
  Limits: Playback -32768 - 0
  Mono:
  Front Left: Playback 0 [100%] [on]
  Front Right: Playback 0 [100%] [on]
  Rear Left: Playback 0 [100%] [on]
  Rear Right: Playback 0 [100%] [on]
  Front Center: Playback 0 [100%] [on]
  Woofer: Playback 0 [100%] [on]

!!-------Mixer controls for card 3 [Speakers]

Card hw:3 'Speakers'/'LaCie FireWire Speakers (OXFW970 0105), GUID 00d04b21010212c8 at fw7.0, S400'
  Mixer name	: 'OXFW970'
  Components	: ''
  Controls      : 2
  Simple ctrls  : 1
Simple mixer control 'PCM',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback -11538 - 0
  Mono: Playback -3137 [73%] [on]

!!Alsactl output
!!--------------
[...]
state.FireWave {
	control.1 {
		iface MIXER
		name 'PCM Playback Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.2 {
		iface MIXER
		name 'PCM Playback Volume'
		value.0 0
		value.1 0
		value.2 0
		value.3 0
		value.4 0
		value.5 0
		comment {
			access 'read write'
			type INTEGER
			count 6
			range '-32768 - 0'
		}
	}
}
state.Speakers {
	control.1 {
		iface MIXER
		name 'PCM Playback Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.2 {
		iface MIXER
		name 'PCM Playback Volume'
		value -3137
		comment {
			access 'read write'
			type INTEGER
			count 1
			range '-11538 - 0'
		}
	}
}

-- 
Stefan Richter
-=====-====- --=- ---=-
http://arcgraph.de/sr/


More information about the Alsa-devel mailing list