--- /dev/null
+#
+# Define direct use case (no channel split or routing changes) macros
+#
+
+#
+# Macro DirectUseCase
+#
+# Arguments:
+# Id - Use Case identifier (e.g. "Direct" or "Direct1")
+# [CardName] - optional, default is global CardName
+# [Comment] - optional, default is compibed from identifier and CardName
+# [PlaybackChannels] - optional, playback channels or/and
+# [CaptureChannels] - optional, capture channels
+# [PlaybackRate] - optional, in Hz
+# [CaptureRate] - optional, in Hz
+#
+
+DefineMacro.DirectUseCase {
+ If.cardname {
+ Condition {
+ Type String
+ Empty "${var:-__CardName}"
+ }
+ True.Define.__CardName "${CardName}"
+ }
+ If.comment {
+ Condition {
+ Type String
+ Empty "${var:-__Comment}"
+ }
+ True.Define.__Comment "${var:__Id} ${var:__CardName}"
+ }
+ SectionUseCase."${var:__Id}" {
+ Comment "Direct ${var:__CardName}"
+ Config.SectionDevice."Direct" {
+ Comment "Direct ${CardName}"
+ Value {
+ If.p {
+ Condition {
+ Type String
+ Empty "${var:-__PlaybackChannels}"
+ }
+ False {
+ PlaybackPriority 1000
+ PlaybackChannels "${var:__PlaybackChannels}"
+ PlaybackPCM "hw:${CardId}"
+ }
+ }
+ If.c {
+ Condition {
+ Type String
+ Empty "${var:-__CaptureChannels}"
+ }
+ False {
+ CapturePriority 1000
+ CaptureChannels "${var:__CaptureChannels}"
+ CapturePCM "hw:${CardId}"
+ }
+ }
+ }
+ If.prate {
+ Condition {
+ Type String
+ Empty "${var:-__PlaybackRate}"
+ }
+ False.Value.PlaybackRate "${var:-__PlaybackRate}"
+ }
+ If.crate {
+ Condition {
+ Type String
+ Empty "${var:-__CaptureRate}"
+ }
+ False.Value.CaptureRate "${var:-__CaptureRate}"
+ }
+ }
+ }
+}