[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