Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions device_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ type DeviceConfig struct {
Wasapi WasapiDeviceConfig
Alsa AlsaDeviceConfig
Pulse PulseDeviceConfig
AAudio AAudioDeviceConfig
// TODO: Add support for coreaudio, opensl, aaudio
}

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

deviceConfig.AAudio.Usage = AAudioUsage(config.aaudio.usage)
deviceConfig.AAudio.ContentType = AAudioContentType(config.aaudio.contentType)
deviceConfig.AAudio.InputPreset = AAudioInputPreset(config.aaudio.inputPreset)
deviceConfig.AAudio.AllowedCapturePolicy = AAudioAllowedCapturePolicy(config.aaudio.allowedCapturePolicy)
deviceConfig.AAudio.NoAutoStartAfterReroute = uint32(config.aaudio.noAutoStartAfterReroute)
deviceConfig.AAudio.EnableCompatibilityWorkarounds = uint32(config.aaudio.enableCompatibilityWorkarounds)

return deviceConfig
}

Expand Down Expand Up @@ -146,6 +154,13 @@ func (d *DeviceConfig) toC() (C.ma_device_config, func()) {
})
}

deviceConfig.aaudio.usage = C.ma_aaudio_usage(d.AAudio.Usage)
deviceConfig.aaudio.contentType = C.ma_aaudio_content_type(d.AAudio.ContentType)
deviceConfig.aaudio.inputPreset = C.ma_aaudio_input_preset(d.AAudio.InputPreset)
deviceConfig.aaudio.allowedCapturePolicy = C.ma_aaudio_allowed_capture_policy(d.AAudio.AllowedCapturePolicy)
deviceConfig.aaudio.noAutoStartAfterReroute = C.ma_bool32(d.AAudio.NoAutoStartAfterReroute)
deviceConfig.aaudio.enableCompatibilityWorkarounds = C.ma_bool32(d.AAudio.EnableCompatibilityWorkarounds)

return deviceConfig, func() {
for _, release := range releasers {
defer release()
Expand Down Expand Up @@ -203,3 +218,13 @@ type ResampleLinearConfig struct {
type ResampleSpeexConfig struct {
Quality int
}

// AAudioDeviceConfig type.
type AAudioDeviceConfig struct {
Usage AAudioUsage
ContentType AAudioContentType
InputPreset AAudioInputPreset
AllowedCapturePolicy AAudioAllowedCapturePolicy
NoAutoStartAfterReroute uint32
EnableCompatibilityWorkarounds uint32
}
61 changes: 61 additions & 0 deletions enumerations.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,3 +116,64 @@ const (
IOSSessionCategoryOptionAllowBluetoothA2dp = 0x20 // AVAudioSessionCategoryOptionAllowBluetoothA2DP
IOSSessionCategoryOptionAllowAirPlay = 0x40 // AVAudioSessionCategoryOptionAllowAirPlay
)

// AAudioUsage type.
type AAudioUsage uint32

// AAudioUsages enumeration.
const (
AAudioUsageDefault AAudioUsage = iota
AAudioUsageMedia
AAudioUsageVoiceCommunication
AAudioUsageVoiceCommunicationSignalling
AAudioUsageAlarm
AAudioUsageNotification
AAudioUsageNotificationRingtone
AAudioUsageNotificationEvent
AAudioUsageAssistanceAccessibility
AAudioUsageAssistanceNavigationGuidance
AAudioUsageAssistanceSonification
AAudioUsageGame
AAudioUsageAssitant
AAudioUsageEmergency
AAudioUsageSafety
AAudioUsageVehicleStatus
AAudioUsageAnnouncement
)

// AAudioContentType type.
type AAudioContentType uint32

// AAudioContentTypes enumeration.
const (
AAudioContentTypeDefault AAudioContentType = iota
AAudioContentTypeSpeech
AAudioContentTypeMusic
AAudioContentTypeMovie
AAudioContentTypeSonification
)

// AAudioInputPreset type.
type AAudioInputPreset uint32

// AAudioInputPresets enumeration.
const (
AAudioInputPresetDefault AAudioInputPreset = iota
AAudioInputPresetGeneric
AAudioInputPresetCamcorder
AAudioInputPresetVoiceRecognition
AAudioInputPresetVoiceCommunication
AAudioInputPresetUnprocessed
AAudioInputPresetVoicePerformance
)

// AAudioAllowedCapturePolicy type.
type AAudioAllowedCapturePolicy uint32

// AAudioAllowedCapturePolicies enumeration.
const (
AAudioAllowCapturePolicyDefault AAudioAllowedCapturePolicy = iota
AAudioAllowCapturePolicyByAll
AAudioAllowCapturePolicyBySystem
AAudioAllowCapturePolicyByNone
)
Loading