libnx/nx/include/switch/services/aud.h
2023-11-23 15:50:01 +00:00

48 lines
1.3 KiB
C

/**
* @file aud.h
* @brief Only available on [11.0.0+].
* @note Only one session may be open at once.
* @author TotalJustice
* @copyright libnx Authors
*/
#pragma once
#include "../types.h"
#include "../sf/service.h"
#define AUD_MAX_DELAY (1000000000ULL)
/// Initialize aud:a. Only available on [11.0.0+].
Result audaInitialize(void);
/// Exit aud:a.
void audaExit(void);
/// Initialize aud:d. Only available on [11.0.0+].
Result auddInitialize(void);
/// Exit aud:d.
void auddExit(void);
/// Gets the Service for aud:a.
Service* audaGetServiceSession(void);
/// Gets the Service for aud:d.
Service* auddGetServiceSession(void);
Result audaRequestSuspendAudio(u64 pid, u64 delay);
Result audaRequestResumeAudio(u64 pid, u64 delay);
Result audaGetAudioOutputProcessMasterVolume(u64 pid, float* volume_out);
Result audaSetAudioOutputProcessMasterVolume(u64 pid, u64 delay, float volume);
Result audaGetAudioInputProcessMasterVolume(u64 pid, float* volume_out);
// Sets both Output and Input volume
Result audaSetAudioInputProcessMasterVolume(u64 pid, u64 delay, float volume);
Result audaGetAudioOutputProcessRecordVolume(u64 pid, float* volume_out);
Result audaSetAudioOutputProcessRecordVolume(u64 pid, u64 delay, float volume);
Result auddRequestSuspendAudioForDebug(u64 pid, u64 delay);
Result auddRequestResumeAudioForDebug(u64 pid, u64 delay);