Skip to content

Commit 9b75ac3

Browse files
authored
Merge pull request #66 from miki-totefu/aaudio
add aaudio DeviceConfig
2 parents d802981 + d7aceb9 commit 9b75ac3

File tree

2 files changed

+86
-0
lines changed

2 files changed

+86
-0
lines changed

device_config.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ type DeviceConfig struct {
2828
Wasapi WasapiDeviceConfig
2929
Alsa AlsaDeviceConfig
3030
Pulse PulseDeviceConfig
31+
AAudio AAudioDeviceConfig
3132
// TODO: Add support for coreaudio, opensl, aaudio
3233
}
3334

@@ -84,6 +85,13 @@ func DefaultDeviceConfig(deviceType DeviceType) DeviceConfig {
8485
deviceConfig.Pulse.StreamNamePlayback = C.GoString(config.pulse.pStreamNamePlayback)
8586
}
8687

88+
deviceConfig.AAudio.Usage = AAudioUsage(config.aaudio.usage)
89+
deviceConfig.AAudio.ContentType = AAudioContentType(config.aaudio.contentType)
90+
deviceConfig.AAudio.InputPreset = AAudioInputPreset(config.aaudio.inputPreset)
91+
deviceConfig.AAudio.AllowedCapturePolicy = AAudioAllowedCapturePolicy(config.aaudio.allowedCapturePolicy)
92+
deviceConfig.AAudio.NoAutoStartAfterReroute = uint32(config.aaudio.noAutoStartAfterReroute)
93+
deviceConfig.AAudio.EnableCompatibilityWorkarounds = uint32(config.aaudio.enableCompatibilityWorkarounds)
94+
8795
return deviceConfig
8896
}
8997

@@ -146,6 +154,13 @@ func (d *DeviceConfig) toC() (C.ma_device_config, func()) {
146154
})
147155
}
148156

157+
deviceConfig.aaudio.usage = C.ma_aaudio_usage(d.AAudio.Usage)
158+
deviceConfig.aaudio.contentType = C.ma_aaudio_content_type(d.AAudio.ContentType)
159+
deviceConfig.aaudio.inputPreset = C.ma_aaudio_input_preset(d.AAudio.InputPreset)
160+
deviceConfig.aaudio.allowedCapturePolicy = C.ma_aaudio_allowed_capture_policy(d.AAudio.AllowedCapturePolicy)
161+
deviceConfig.aaudio.noAutoStartAfterReroute = C.ma_bool32(d.AAudio.NoAutoStartAfterReroute)
162+
deviceConfig.aaudio.enableCompatibilityWorkarounds = C.ma_bool32(d.AAudio.EnableCompatibilityWorkarounds)
163+
149164
return deviceConfig, func() {
150165
for _, release := range releasers {
151166
defer release()
@@ -203,3 +218,13 @@ type ResampleLinearConfig struct {
203218
type ResampleSpeexConfig struct {
204219
Quality int
205220
}
221+
222+
// AAudioDeviceConfig type.
223+
type AAudioDeviceConfig struct {
224+
Usage AAudioUsage
225+
ContentType AAudioContentType
226+
InputPreset AAudioInputPreset
227+
AllowedCapturePolicy AAudioAllowedCapturePolicy
228+
NoAutoStartAfterReroute uint32
229+
EnableCompatibilityWorkarounds uint32
230+
}

enumerations.go

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,3 +116,64 @@ const (
116116
IOSSessionCategoryOptionAllowBluetoothA2dp = 0x20 // AVAudioSessionCategoryOptionAllowBluetoothA2DP
117117
IOSSessionCategoryOptionAllowAirPlay = 0x40 // AVAudioSessionCategoryOptionAllowAirPlay
118118
)
119+
120+
// AAudioUsage type.
121+
type AAudioUsage uint32
122+
123+
// AAudioUsages enumeration.
124+
const (
125+
AAudioUsageDefault AAudioUsage = iota
126+
AAudioUsageMedia
127+
AAudioUsageVoiceCommunication
128+
AAudioUsageVoiceCommunicationSignalling
129+
AAudioUsageAlarm
130+
AAudioUsageNotification
131+
AAudioUsageNotificationRingtone
132+
AAudioUsageNotificationEvent
133+
AAudioUsageAssistanceAccessibility
134+
AAudioUsageAssistanceNavigationGuidance
135+
AAudioUsageAssistanceSonification
136+
AAudioUsageGame
137+
AAudioUsageAssitant
138+
AAudioUsageEmergency
139+
AAudioUsageSafety
140+
AAudioUsageVehicleStatus
141+
AAudioUsageAnnouncement
142+
)
143+
144+
// AAudioContentType type.
145+
type AAudioContentType uint32
146+
147+
// AAudioContentTypes enumeration.
148+
const (
149+
AAudioContentTypeDefault AAudioContentType = iota
150+
AAudioContentTypeSpeech
151+
AAudioContentTypeMusic
152+
AAudioContentTypeMovie
153+
AAudioContentTypeSonification
154+
)
155+
156+
// AAudioInputPreset type.
157+
type AAudioInputPreset uint32
158+
159+
// AAudioInputPresets enumeration.
160+
const (
161+
AAudioInputPresetDefault AAudioInputPreset = iota
162+
AAudioInputPresetGeneric
163+
AAudioInputPresetCamcorder
164+
AAudioInputPresetVoiceRecognition
165+
AAudioInputPresetVoiceCommunication
166+
AAudioInputPresetUnprocessed
167+
AAudioInputPresetVoicePerformance
168+
)
169+
170+
// AAudioAllowedCapturePolicy type.
171+
type AAudioAllowedCapturePolicy uint32
172+
173+
// AAudioAllowedCapturePolicies enumeration.
174+
const (
175+
AAudioAllowCapturePolicyDefault AAudioAllowedCapturePolicy = iota
176+
AAudioAllowCapturePolicyByAll
177+
AAudioAllowCapturePolicyBySystem
178+
AAudioAllowCapturePolicyByNone
179+
)

0 commit comments

Comments
 (0)