17#include <Library/BaseLib.h>
18#include <Library/DebugLib.h>
21#include <Library/UefiBootServicesTableLib.h>
22#include <Library/UefiRuntimeServicesTableLib.h>
139 CONST CHAR8 *Language OPTIONAL
144 CHAR8 LanguageData[16];
147 if (Language == NULL) {
148 LanguageSize =
sizeof (LanguageData) - 1;
149 Status =
gRT->GetVariable (
156 if (!EFI_ERROR (Status)) {
157 LanguageData[LanguageSize] = 0;
158 Language = LanguageData;
161 Status = EFI_SUCCESS;
164 if (!EFI_ERROR (Status)) {
165 Status =
gBS->LocateProtocol (
171 if (!EFI_ERROR (Status)) {
172 Status = VoiceOver->SetLanguageString (VoiceOver, Language);
175 DEBUG ((DEBUG_INFO,
"OCAU: Language for audio %a - %r\n", Language, Status));
177 DEBUG ((DEBUG_INFO,
"OCAU: No language for audio - %r\n", Status));
208 if ((Map == NULL) || (Map->BasePath == NULL) || (Map->BaseType == NULL)) {
209 DEBUG ((DEBUG_INFO,
"OCAU: Unsupported Apple voice over file index %u\n", File));
210 return EFI_UNSUPPORTED;
214 return Private->
OcAudio.
PlayFile (&Private->
OcAudio, Map->BasePath, Map->BaseType, Localised, 0, FALSE, TRUE);
221 IN UINT8 LanguageCode
227 return EFI_INVALID_PARAMETER;
239 IN CONST CHAR8 *LanguageString
245 DEBUG ((DEBUG_INFO,
"OCAU: Setting language to %a\n", LanguageString));
265 if (AsciiStrnCmp (LanguageString,
"zh", 2) == 0) {
270 return EFI_INVALID_PARAMETER;
277 OUT UINT8 *LanguageCode,
278 OUT CONST CHAR8 **LanguageString
#define ARRAY_SIZE(Array)
EFI_GUID gAppleBootVariableGuid
#define APPLE_PREV_LANG_KBD_VARIABLE_NAME
#define APPLE_VOICE_OVER_AUDIO_FILE_VOICE_OVER_ON
@ AppleVoiceOverAudioFileIndexNonLocalisedMax
After last valid non-localised file.
@ AppleVoiceOverAudioFileVoiceOverOff
VoiceOverOff.
@ AppleVoiceOverAudioFileClick
Click (*)
@ AppleVoiceOverAudioFileUsernameOrPasswordIncorrect
UsernameOrPasswordIncorrect.
@ AppleVoiceOverAudioFileAccountLockedTryLater
AccountLockedTryLater (*)
@ AppleVoiceOverAudioFileUsername
Username.
@ AppleVoiceOverAudioFileAccountLocked
AccountLocked (*)
@ AppleVoiceOverAudioFileIndexNonLocalisedMin
First valid non-localised file.
@ AppleVoiceOverAudioFileVoiceOverBoot2
VoiceOver_Boot (*)
@ AppleVoiceOverAudioFileIndexLocalisedMin
First valid localised file.
@ AppleVoiceOverAudioFileVoiceOverOn
VoiceOverOn.
@ AppleVoiceOverAudioFileVoiceOverBoot
VoiceOver_Boot (*)
@ AppleVoiceOverAudioFileIndexLocalisedMax
After last valid localised file.
@ AppleVoiceOverAudioFilePassword
Password.
@ AppleVoiceOverAudioFileBeep
Beep.
#define APPLE_VOICE_OVER_AUDIO_FILE_PASSWORD
#define APPLE_VOICE_OVER_AUDIO_FILE_VOICE_OVER_BOOT
#define APPLE_VOICE_OVER_AUDIO_FILE_ACCOUNT_LOCKED
#define APPLE_VOICE_OVER_AUDIO_FILE_USERNAME_OR_PASSWORD_INCORRECT
#define APPLE_VOICE_OVER_AUDIO_FILE_CLICK
APPLE_VOICE_OVER_LANGUAGE_CODE
@ AppleVoiceOverLanguageZhHans
zh-Hans
EFI_GUID gAppleVOAudioProtocolGuid
#define APPLE_VOICE_OVER_AUDIO_FILE_USERNAME
#define APPLE_VOICE_OVER_AUDIO_FILE_BEEP
#define APPLE_VOICE_OVER_AUDIO_FILE_VOICE_OVER_OFF
#define APPLE_VOICE_OVER_AUDIO_FILE_ACCOUNT_LOCKED_TRY_LATER
#define OC_VOICE_OVER_AUDIO_BASE_TYPE_APPLE
#define OC_VOICE_OVER_AUDIO_FILE_VOICE_OVER_BOOT
#define OC_VOICE_OVER_AUDIO_BASE_TYPE_OPEN_CORE
#define OC_AUDIO_PROTOCOL_PRIVATE_FROM_VOICE_OVER(Proto)
STATIC CONST APPLE_VOICE_OVER_FILE_MAP mAppleVoiceOverNonLocalisedAudioFiles[AppleVoiceOverAudioFileIndexNonLocalisedMax - AppleVoiceOverAudioFileIndexNonLocalisedMin]
EFI_STATUS EFIAPI InternalOcAudioVoiceOverPlay(IN APPLE_VOICE_OVER_AUDIO_PROTOCOL *This, IN UINT8 File)
EFI_STATUS EFIAPI InternalOcAudioVoiceOverGetLanguage(IN APPLE_VOICE_OVER_AUDIO_PROTOCOL *This, OUT UINT8 *LanguageCode, OUT CONST CHAR8 **LanguageString)
STATIC CONST CHAR8 * mLanguagePairing[]
EFI_STATUS EFIAPI InternalOcAudioVoiceOverSetLanguageCode(IN APPLE_VOICE_OVER_AUDIO_PROTOCOL *This, IN UINT8 LanguageCode)
CONST CHAR8 * OcLanguageCodeToString(IN APPLE_VOICE_OVER_LANGUAGE_CODE LanguageCode)
EFI_STATUS OcSetVoiceOverLanguage(CONST CHAR8 *Language OPTIONAL)
STATIC CONST APPLE_VOICE_OVER_FILE_MAP mAppleVoiceOverLocalisedAudioFiles[AppleVoiceOverAudioFileIndexLocalisedMax - AppleVoiceOverAudioFileIndexLocalisedMin]
EFI_STATUS EFIAPI InternalOcAudioVoiceOverSetLanguageString(IN APPLE_VOICE_OVER_AUDIO_PROTOCOL *This, IN CONST CHAR8 *LanguageString)
EFI_RUNTIME_SERVICES * gRT
OC_AUDIO_PLAY_FILE PlayFile
OC_AUDIO_PROTOCOL OcAudio