26#include <Protocol/LoadedImage.h>
28#include <Protocol/SimpleTextOut.h>
30#include <Library/BaseLib.h>
31#include <Library/BaseMemoryLib.h>
32#include <Library/BaseOverflowLib.h>
36#include <Library/DevicePathLib.h>
38#include <Library/MemoryAllocationLib.h>
46#include <Library/PrintLib.h>
47#include <Library/UefiBootServicesTableLib.h>
48#include <Library/UefiRuntimeServicesTableLib.h>
49#include <Library/UefiLib.h>
59 if (Context->OcAudio == NULL) {
60 Status =
gBS->LocateProtocol (
63 (VOID **)&Context->OcAudio
65 if (EFI_ERROR (Status)) {
66 Context->OcAudio = NULL;
79 IN CONST CHAR8 *BasePath,
80 IN CONST CHAR8 *BaseType,
86 if (!Context->PickerAudioAssist) {
90 if (Context->OcAudio != NULL) {
91 Status = Context->OcAudio->PlayFile (Context->OcAudio, BasePath, BaseType, TRUE, 0, FALSE, TRUE);
93 Status = EFI_NOT_FOUND;
96 if (Fallback && EFI_ERROR (Status)) {
158 IN UINT32 ToneLength,
159 IN UINT32 SilenceLength
164 if (!Context->PickerAudioAssist) {
168 if (Context->BeepGen == NULL) {
169 Status =
gBS->LocateProtocol (
172 (VOID **)&Context->BeepGen
174 if (EFI_ERROR (Status)) {
179 if (Context->BeepGen->GenBeep == NULL) {
180 return EFI_UNSUPPORTED;
183 return Context->BeepGen->GenBeep (ToneCount, ToneLength, SilenceLength);
195 if ((Entry->EntryIndex > 0) && (Entry->EntryIndex <= 9 + 26)) {
200 Entry->EntryIndex > 9 ?
"Letter" :
"",
201 "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"[Entry->EntryIndex]
223 OcPlayAudioFile (Context, Entry->AudioBasePath, Entry->AudioBaseType, FALSE);
242 if (Entry->IsExternal) {
246 if (Entry->IsFolder) {
257 IN CONST CHAR8 *BasePath OPTIONAL,
258 IN CONST CHAR8 *BaseType OPTIONAL
261 if (!Context->PickerAudioAssist) {
262 Context->PickerAudioAssist = TRUE;
265 if ((BasePath != NULL) && (BaseType != NULL)) {
275 Context->PickerAudioAssist = FALSE;
EFI_GUID gAppleBeepGenProtocolGuid
#define ARRAY_SIZE(Array)
#define APPLE_VOICE_OVER_AUDIO_FILE_BEEP
VOID EFIAPI OcToggleVoiceOver(IN OC_PICKER_CONTEXT *Context, IN CONST CHAR8 *BasePath OPTIONAL, IN CONST CHAR8 *BaseType OPTIONAL)
EFI_STATUS EFIAPI OcPlayAudioFile(IN OC_PICKER_CONTEXT *Context, IN CONST CHAR8 *BasePath, IN CONST CHAR8 *BaseType, IN BOOLEAN Fallback)
EFI_STATUS EFIAPI OcPreLocateAudioProtocol(IN OC_PICKER_CONTEXT *Context)
EFI_STATUS EFIAPI OcPlayAudioBeep(IN OC_PICKER_CONTEXT *Context, IN UINT32 ToneCount, IN UINT32 ToneLength, IN UINT32 SilenceLength)
EFI_STATUS EFIAPI OcPlayAudioEntry(IN OC_PICKER_CONTEXT *Context, IN OC_BOOT_ENTRY *Entry)
#define OC_VOICE_OVER_AUDIO_FILE_DISK_IMAGE
EFI_GUID gOcAudioProtocolGuid
#define OC_VOICE_OVER_AUDIO_FILE_RESET_NVRAM
#define OC_VOICE_OVER_AUDIO_FILE_WINDOWS
#define OC_VOICE_OVER_AUDIO_FILE_PASSWORD_RETRY_LIMIT
#define OC_VOICE_OVER_AUDIO_FILE_NETWORK_BOOT
#define OC_VOICE_OVER_AUDIO_FILE_PASSWORD_INCORRECT
#define OC_VOICE_OVER_AUDIO_FILE_SIP_IS_ENABLED
#define OC_VOICE_OVER_AUDIO_FILE_MAC_OS_TIME_MACHINE
#define OC_VOICE_OVER_AUDIO_FILE_MAC_OS
#define OC_VOICE_OVER_AUDIO_FILE_MAC_OS_RECOVERY
#define OC_VOICE_OVER_AUDIO_FILE_UEFI_SHELL
#define OC_VOICE_OVER_AUDIO_FILE_EXECUTION_FAILURE
#define OC_VOICE_OVER_AUDIO_FILE_ENTER_PASSWORD
#define OC_VOICE_OVER_AUDIO_FILE_MAC_OS_UPDATE_FW
#define OC_VOICE_OVER_AUDIO_FILE_SIP_IS_DISABLED
#define OC_VOICE_OVER_AUDIO_FILE_EXTERNAL_TOOL
#define OC_VOICE_OVER_AUDIO_FILE_PASSWORD_ACCEPTED
#define OC_VOICE_OVER_AUDIO_FILE_OTHER_OS
#define OC_VOICE_OVER_AUDIO_BASE_TYPE_APPLE
#define OC_VOICE_OVER_AUDIO_FILE_FIRMWARE_SETTINGS
#define OC_VOICE_OVER_AUDIO_FILE_EXTERNAL
#define OC_VOICE_OVER_AUDIO_FILE_EXTERNAL_OS
#define OC_VOICE_OVER_AUDIO_BASE_TYPE_OPEN_CORE
#define OC_VOICE_OVER_AUDIO_FILE_WELCOME
#define OC_FLAVOUR_ID_RESET_NVRAM
#define OC_FLAVOUR_ID_TOGGLE_SIP_DISABLED
#define OC_BOOT_APPLE_TIME_MACHINE
#define OC_VOICE_OVER_SILENCE_NORMAL_MS
From boot.efi, constant.
#define OC_VOICE_OVER_SILENCE_ERROR_MS
#define OC_BOOT_EXTERNAL_TOOL
#define OC_VOICE_OVER_SIGNAL_NORMAL_MS
From boot.efi, constant.
#define OC_BOOT_EXTERNAL_OS
#define OC_VOICE_OVER_SIGNAL_ERROR_MS
#define OC_BOOT_APPLE_RECOVERY
#define OC_VOICE_OVER_SIGNALS_HWERROR
Hardware error.
#define OC_VOICE_OVER_SIGNALS_PASSWORD_OK
Password correct for boot.efi.
#define OC_FLAVOUR_ID_FIRMWARE_SETTINGS
#define OC_FLAVOUR_ID_NETWORK_BOOT
#define OC_BOOT_APPLE_FW_UPDATE
#define OC_VOICE_OVER_SIGNALS_ERROR
Password verification error or boot failure.
#define OC_FLAVOUR_ID_TOGGLE_SIP_ENABLED
#define OC_FLAVOUR_ID_UEFI_SHELL
#define OC_VOICE_OVER_SIGNALS_PASSWORD
Password prompt for boot.efi.
#define OC_VOICE_OVER_SIGNALS_NORMAL
Username prompt or any input for boot.efi.
EFI_STATUS EFIAPI OcAsciiSafeSPrint(OUT CHAR8 *StartOfBuffer, IN UINTN BufferSize, IN CONST CHAR8 *FormatString,...)
CHAR8 *EFIAPI OcAsciiStriStr(IN CONST CHAR8 *String, IN CONST CHAR8 *SearchString)