Support multi-card/device for direct plugins

- Support multi-card/device for dmix/dsnoop/dshare plugins
  The unique ipc key is calculated based on card/device/sub index

- Clean up and share the code among all d* plugins

- Refer the defaults.pcm.* configuration
  The base ipc_key number, ipc_gid and ipc_perm are referred.
This commit is contained in:
Takashi Iwai 2006-01-16 13:15:32 +00:00
parent a0dcf5f8d1
commit 7eff603576
8 changed files with 284 additions and 313 deletions

View file

@ -54,6 +54,9 @@ defaults.pcm.card 0
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.nonblock 1
defaults.pcm.ipc_key 5678293
defaults.pcm.ipc_gid audio
defaults.pcm.ipc_perm 0660
defaults.pcm.front.card defaults.pcm.card
defaults.pcm.front.device defaults.pcm.device
defaults.pcm.rear.card defaults.pcm.card

View file

@ -25,9 +25,18 @@ pcm.!dmix {
default 48000
}
type dmix
ipc_key 5678293
ipc_gid audio
ipc_perm 0660
ipc_key {
@func refer
name defaults.pcm.ipc_key
}
ipc_gid {
@func refer
name defaults.pcm.ipc_gid
}
ipc_perm {
@func refer
name defaults.pcm.ipc_perm
}
slave {
pcm {
type hw

View file

@ -25,9 +25,18 @@ pcm.!dsnoop {
default 48000
}
type dsnoop
ipc_key 5778293
ipc_gid audio
ipc_perm 0660
ipc_key {
@func refer
name defaults.pcm.ipc_key
}
ipc_gid {
@func refer
name defaults.pcm.ipc_gid
}
ipc_perm {
@func refer
name defaults.pcm.ipc_perm
}
slave {
pcm {
type hw