Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
btwise
OpenCorePKG_MOD
提交
d4f7f39c
O
OpenCorePKG_MOD
项目概览
btwise
/
OpenCorePKG_MOD
通知
26
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
OpenCorePKG_MOD
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d4f7f39c
编写于
2月 25, 2020
作者:
V
vit9696
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
OpenCoreAudio: Added voice assistance support and language detect
上级
7001e935
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
199 addition
and
52 deletion
+199
-52
Changelog.md
Changelog.md
+1
-0
Docs/Sample.plist
Docs/Sample.plist
+2
-0
Docs/SampleFull.plist
Docs/SampleFull.plist
+2
-0
Platform/OpenCore/OpenCoreMisc.c
Platform/OpenCore/OpenCoreMisc.c
+1
-0
Platform/OpenCore/OpenCoreUefiAudio.c
Platform/OpenCore/OpenCoreUefiAudio.c
+193
-52
未找到文件。
Changelog.md
浏览文件 @
d4f7f39c
...
...
@@ -29,6 +29,7 @@ OpenCore Changelog
-
Fixed drivers starting with
`#`
not being skipped
-
Added audio support through AudioDxe with optional boot chime
-
Added VoiceOver accessability support in boot.efi for 10.13+
-
Added
`PickerAudioAssist`
option for audio assistance in picker
#### v0.5.5
-
Fixed CPU bus ratio calculation for Nehalem and Westmere
...
...
Docs/Sample.plist
浏览文件 @
d4f7f39c
...
...
@@ -591,6 +591,8 @@
<true/>
<key>
PickerAttributes
</key>
<integer>
0
</integer>
<key>
PickerAudioAssist
</key>
<false/>
<key>
PollAppleHotKeys
</key>
<false/>
<key>
ShowPicker
</key>
...
...
Docs/SampleFull.plist
浏览文件 @
d4f7f39c
...
...
@@ -591,6 +591,8 @@
<true/>
<key>
PickerAttributes
</key>
<integer>
0
</integer>
<key>
PickerAudioAssist
</key>
<false/>
<key>
PollAppleHotKeys
</key>
<false/>
<key>
ShowPicker
</key>
...
...
Platform/OpenCore/OpenCoreMisc.c
浏览文件 @
d4f7f39c
...
...
@@ -536,6 +536,7 @@ OcMiscBoot (
Context
->
AllCustomEntryCount
=
EntryIndex
;
Context
->
PollAppleHotKeys
=
Config
->
Misc
.
Boot
.
PollAppleHotKeys
;
Context
->
HideAuxiliary
=
Config
->
Misc
.
Boot
.
HideAuxiliary
;
Context
->
PickerAudioAssist
=
Config
->
Misc
.
Boot
.
PickerAudioAssist
;
OcLoadPickerHotKeys
(
Context
);
...
...
Platform/OpenCore/OpenCoreUefiAudio.c
浏览文件 @
d4f7f39c
...
...
@@ -14,6 +14,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include <OpenCore.h>
#include <Guid/AppleVariable.h>
#include <Guid/OcVariables.h>
#include <Guid/GlobalVariable.h>
...
...
@@ -49,6 +50,19 @@ STATIC
OC_AUDIO_PROTOCOL
*
mOcAudio
;
typedef
struct
OC_AUDIO_FILE_
{
UINT8
*
Buffer
;
UINT32
Size
;
}
OC_AUDIO_FILE
;
STATIC
OC_AUDIO_FILE
mAppleAudioFiles
[
AppleVoiceOverAudioFileMax
];
STATIC
OC_AUDIO_FILE
mOcAudioFiles
[
OcVoiceOverAudioFileMax
-
OcVoiceOverAudioFileBase
];
//
// Note, currently we are not I/O bound, so enabling this has no effect at all.
// Reconsider it when we resolve lags with AudioDxe.
//
STATIC
BOOLEAN
mEnableAudioCaching
=
FALSE
;
STATIC
EFI_STATUS
EFIAPI
...
...
@@ -60,16 +74,131 @@ OcAudioAcquireFile (
OUT
UINT32
*
BufferSize
)
{
CHAR8
IndexPath
[
8
];
CHAR16
FilePath
[
96
];
OC_STORAGE_CONTEXT
*
Storage
;
CONST
CHAR8
*
BaseType
;
CONST
CHAR8
*
BasePath
;
BOOLEAN
Localised
;
OC_AUDIO_FILE
*
CacheFile
;
Storage
=
(
OC_STORAGE_CONTEXT
*
)
Context
;
Localised
=
TRUE
;
BaseType
=
"AXEFIAudio"
;
CacheFile
=
NULL
;
if
(
File
>=
OcVoiceOverAudioFileBase
&&
File
<
OcVoiceOverAudioFileMax
)
{
if
(
mEnableAudioCaching
)
{
CacheFile
=
&
mOcAudioFiles
[
File
-
OcVoiceOverAudioFileBase
];
if
(
CacheFile
->
Buffer
!=
NULL
)
{
*
Buffer
=
CacheFile
->
Buffer
;
*
BufferSize
=
CacheFile
->
Size
;
return
EFI_SUCCESS
;
}
}
BaseType
=
"OCEFIAudio"
;
if
(
File
>
OcVoiceOverAudioFileIndexBase
&&
File
<=
OcVoiceOverAudioFileIndexMax
)
{
AsciiSPrint
(
IndexPath
,
sizeof
(
IndexPath
),
"%a%c"
,
File
>=
OcVoiceOverAudioFileIndexAlphabetical
?
"Letter"
:
""
,
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
[
File
-
OcVoiceOverAudioFileIndexBase
]
);
BasePath
=
IndexPath
;
if
(
File
>=
OcVoiceOverAudioFileIndexAlphabetical
)
{
Localised
=
FALSE
;
}
}
else
{
switch
(
File
)
{
case
OcVoiceOverAudioFileAbortTimeout
:
BasePath
=
"AbortTimeout"
;
break
;
case
OcVoiceOverAudioFileChooseOS
:
BasePath
=
"ChooseOS"
;
break
;
case
OcVoiceOverAudioFileDefault
:
BasePath
=
"Default"
;
break
;
case
OcVoiceOverAudioFileDiskImage
:
BasePath
=
"DiskImage"
;
break
;
case
OcVoiceOverAudioFileEnterPassword
:
BasePath
=
"EnterPassword"
;
break
;
case
OcVoiceOverAudioFileExecutionFailure
:
BasePath
=
"ExecutionFailure"
;
break
;
case
OcVoiceOverAudioFileExecutionSuccessful
:
BasePath
=
"ExecutionSuccessful"
;
break
;
case
OcVoiceOverAudioFileExternal
:
BasePath
=
"External"
;
break
;
case
OcVoiceOverAudioFileExternalOption
:
BasePath
=
"ExternalOption"
;
break
;
case
OcVoiceOverAudioFileLoading
:
BasePath
=
"Loading"
;
break
;
case
OcVoiceOverAudioFilemacOS
:
BasePath
=
"macOS"
;
break
;
case
OcVoiceOverAudioFilemacOS_Recovery
:
BasePath
=
"macOS_Recovery"
;
break
;
case
OcVoiceOverAudioFileOtherOS
:
BasePath
=
"OtherOS"
;
break
;
case
OcVoiceOverAudioFilePasswordAccepted
:
BasePath
=
"PasswordAccepted"
;
break
;
case
OcVoiceOverAudioFilePasswordIncorrect
:
BasePath
=
"PasswordIncorrect"
;
break
;
case
OcVoiceOverAudioFilePasswordRetryLimit
:
BasePath
=
"PasswordRetryLimit"
;
break
;
case
OcVoiceOverAudioFileReloading
:
BasePath
=
"Reloading"
;
break
;
case
OcVoiceOverAudioFileResetNVRAM
:
BasePath
=
"ResetNVRAM"
;
break
;
case
OcVoiceOverAudioFileSelected
:
BasePath
=
"Selected"
;
break
;
case
OcVoiceOverAudioFileShowAuxiliary
:
BasePath
=
"ShowAuxiliary"
;
break
;
case
OcVoiceOverAudioFileTimeout
:
BasePath
=
"Timeout"
;
break
;
case
OcVoiceOverAudioFileUEFI_Shell
:
BasePath
=
"UEFI_Shell"
;
break
;
case
OcVoiceOverAudioFileWelcome
:
BasePath
=
"Welcome"
;
break
;
case
OcVoiceOverAudioFileWindows
:
BasePath
=
"Windows"
;
break
;
default:
BasePath
=
NULL
;
break
;
}
}
}
else
if
(
File
<
AppleVoiceOverAudioFileMax
)
{
if
(
mEnableAudioCaching
)
{
CacheFile
=
&
mAppleAudioFiles
[
File
];
if
(
CacheFile
->
Buffer
!=
NULL
)
{
*
Buffer
=
CacheFile
->
Buffer
;
*
BufferSize
=
CacheFile
->
Size
;
return
EFI_SUCCESS
;
}
}
BaseType
=
"AXEFIAudio"
;
switch
(
File
)
{
case
AppleVoiceOverAudioFileVoiceOverOn
:
BasePath
=
"VoiceOverOn"
;
...
...
@@ -113,6 +242,9 @@ OcAudioAcquireFile (
BasePath
=
NULL
;
break
;
}
}
else
{
BasePath
=
NULL
;
}
if
(
BasePath
==
NULL
)
{
DEBUG
((
DEBUG_INFO
,
"OC: Unknown Wave %d
\n
"
,
File
));
...
...
@@ -165,6 +297,11 @@ OcAudioAcquireFile (
return
EFI_NOT_FOUND
;
}
if
(
CacheFile
!=
NULL
)
{
CacheFile
->
Buffer
=
*
Buffer
;
CacheFile
->
Size
=
*
BufferSize
;
}
return
EFI_SUCCESS
;
}
...
...
@@ -176,7 +313,9 @@ OcAudioReleaseFile (
IN
UINT8
*
Buffer
)
{
if
(
!
mEnableAudioCaching
)
{
FreePool
(
Buffer
);
}
return
EFI_SUCCESS
;
}
...
...
@@ -252,6 +391,8 @@ OcLoadUefiAudioSupport (
return
FALSE
;
}
OcSetVoiceOverLanguage
(
NULL
);
if
(
Config
->
Uefi
.
Audio
.
PlayChime
&&
VolumeLevel
>
0
&&
!
Muted
)
{
DEBUG
((
DEBUG_INFO
,
"OC: Starting to play chime...
\n
"
));
Status
=
OcAudio
->
PlayFile
(
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录