Commit 8818dc40 authored by mercury233's avatar mercury233

update

parent 3dc2d86f
...@@ -94,13 +94,6 @@ jobs: ...@@ -94,13 +94,6 @@ jobs:
shell: bash shell: bash
run: | run: |
git clone --depth=1 --branch 0.11.22 https://github.com/mackron/miniaudio git clone --depth=1 --branch 0.11.22 https://github.com/mackron/miniaudio
cd miniaudio
cp extras/miniaudio_split/* .
cp extras/decoders/libopus/* .
cp extras/decoders/libvorbis/* .
sed -i 's|#include "../../../miniaudio.h"|#include <miniaudio.h>|' miniaudio_libopus.h
sed -i 's|#include "../../../miniaudio.h"|#include <miniaudio.h>|' miniaudio_libvorbis.h
cd ..
- name: Download ogg - name: Download ogg
id: ogg id: ogg
...@@ -270,13 +263,6 @@ jobs: ...@@ -270,13 +263,6 @@ jobs:
- name: Download miniaudio - name: Download miniaudio
run: | run: |
git clone --depth=1 --branch 0.11.22 https://github.com/mackron/miniaudio git clone --depth=1 --branch 0.11.22 https://github.com/mackron/miniaudio
cd miniaudio
cp extras/miniaudio_split/* .
cp extras/decoders/libopus/* .
cp extras/decoders/libvorbis/* .
sed -i 's|#include "../../../miniaudio.h"|#include <miniaudio.h>|' miniaudio_libopus.h
sed -i 's|#include "../../../miniaudio.h"|#include <miniaudio.h>|' miniaudio_libvorbis.h
cd ..
- name: Download irrlicht - name: Download irrlicht
run: | run: |
...@@ -369,13 +355,6 @@ jobs: ...@@ -369,13 +355,6 @@ jobs:
- name: Download miniaudio - name: Download miniaudio
run: | run: |
git clone --depth=1 --branch 0.11.22 https://github.com/mackron/miniaudio git clone --depth=1 --branch 0.11.22 https://github.com/mackron/miniaudio
cd miniaudio
cp extras/miniaudio_split/* .
cp extras/decoders/libopus/* .
cp extras/decoders/libvorbis/* .
sed -i '' 's|#include "../../../miniaudio.h"|#include <miniaudio.h>|' miniaudio_libopus.h
sed -i '' 's|#include "../../../miniaudio.h"|#include <miniaudio.h>|' miniaudio_libvorbis.h
cd ..
- name: Download irrlicht - name: Download irrlicht
run: | run: |
...@@ -405,7 +384,6 @@ jobs: ...@@ -405,7 +384,6 @@ jobs:
- name: Use premake to generate make files (ARM64) - name: Use premake to generate make files (ARM64)
if: runner.arch == 'ARM64' if: runner.arch == 'ARM64'
run: | run: |
ls /opt/homebrew/lib
./premake5 gmake \ ./premake5 gmake \
--cc=clang \ --cc=clang \
--event-include-dir="/opt/homebrew/include" \ --event-include-dir="/opt/homebrew/include" \
......
...@@ -40,11 +40,15 @@ project "YGOPro" ...@@ -40,11 +40,15 @@ project "YGOPro"
if USE_AUDIO then if USE_AUDIO then
defines { "YGOPRO_USE_AUDIO" } defines { "YGOPRO_USE_AUDIO" }
includedirs { "../miniaudio" } includedirs { "../miniaudio/extras/miniaudio_split" }
links { "miniaudio" } links { "miniaudio" }
if not BUILD_OPUS_VORBIS and MINIAUDIO_SUPPORT_OPUS_VORBIS then if MINIAUDIO_SUPPORT_OPUS_VORBIS then
links { "opusfile", "vorbisfile" } defines { "YGOPRO_MINIAUDIO_SUPPORT_OPUS_VORBIS" }
libdirs { OPUS_LIB_DIR, VORBIS_LIB_DIR } includedirs { "../miniaudio/extras/decoders/libopus", "../miniaudio/extras/decoders/libvorbis" }
if not BUILD_OPUS_VORBIS then
links { "opusfile", "vorbisfile" }
libdirs { OPUS_LIB_DIR, VORBIS_LIB_DIR }
end
end end
end end
......
#include "sound_manager.h" #include "sound_manager.h"
#ifdef YGOPRO_USE_AUDIO #if defined(YGOPRO_USE_AUDIO) && defined(YGOPRO_MINIAUDIO_SUPPORT_OPUS_VORBIS)
#include <miniaudio_libvorbis.h> #include <miniaudio_libvorbis.h>
#include <miniaudio_libopus.h> #include <miniaudio_libopus.h>
#endif #endif
...@@ -14,6 +14,8 @@ bool SoundManager::Init() { ...@@ -14,6 +14,8 @@ bool SoundManager::Init() {
bgm_scene = -1; bgm_scene = -1;
RefreshBGMList(); RefreshBGMList();
rnd.reset((unsigned int)std::time(nullptr)); rnd.reset((unsigned int)std::time(nullptr));
engineConfig = ma_engine_config_init();
#ifdef YGOPRO_MINIAUDIO_SUPPORT_OPUS_VORBIS
ma_decoding_backend_vtable* pCustomBackendVTables[] = ma_decoding_backend_vtable* pCustomBackendVTables[] =
{ {
ma_decoding_backend_libvorbis, ma_decoding_backend_libvorbis,
...@@ -26,8 +28,8 @@ bool SoundManager::Init() { ...@@ -26,8 +28,8 @@ bool SoundManager::Init() {
if(ma_resource_manager_init(&resourceManagerConfig, &resourceManager) != MA_SUCCESS) { if(ma_resource_manager_init(&resourceManagerConfig, &resourceManager) != MA_SUCCESS) {
return false; return false;
} }
engineConfig = ma_engine_config_init();
engineConfig.pResourceManager = &resourceManager; engineConfig.pResourceManager = &resourceManager;
#endif
if(ma_engine_init(&engineConfig, &engineSound) != MA_SUCCESS || ma_engine_init(&engineConfig, &engineMusic) != MA_SUCCESS) { if(ma_engine_init(&engineConfig, &engineSound) != MA_SUCCESS || ma_engine_init(&engineConfig, &engineMusic) != MA_SUCCESS) {
return false; return false;
} else { } else {
...@@ -51,7 +53,12 @@ void SoundManager::RefreshBGMList() { ...@@ -51,7 +53,12 @@ void SoundManager::RefreshBGMList() {
void SoundManager::RefershBGMDir(std::wstring path, int scene) { void SoundManager::RefershBGMDir(std::wstring path, int scene) {
std::wstring search = L"./sound/BGM/" + path; std::wstring search = L"./sound/BGM/" + path;
FileSystem::TraversalDir(search.c_str(), [this, &path, scene](const wchar_t* name, bool isdir) { FileSystem::TraversalDir(search.c_str(), [this, &path, scene](const wchar_t* name, bool isdir) {
if(!isdir && (IsExtension(name, L".mp3") || IsExtension(name, L".ogg"))) { if(!isdir && (
IsExtension(name, L".mp3")
#ifdef YGOPRO_MINIAUDIO_SUPPORT_OPUS_VORBIS
|| IsExtension(name, L".ogg")
#endif
)) {
std::wstring filename = path + L"/" + name; std::wstring filename = path + L"/" + name;
BGMList[BGM_ALL].push_back(filename); BGMList[BGM_ALL].push_back(filename);
BGMList[scene].push_back(filename); BGMList[scene].push_back(filename);
......
...@@ -15,9 +15,11 @@ private: ...@@ -15,9 +15,11 @@ private:
int bgm_scene; int bgm_scene;
mt19937 rnd; mt19937 rnd;
#ifdef YGOPRO_USE_AUDIO #ifdef YGOPRO_USE_AUDIO
ma_engine_config engineConfig;
#ifdef YGOPRO_MINIAUDIO_SUPPORT_OPUS_VORBIS
ma_resource_manager_config resourceManagerConfig; ma_resource_manager_config resourceManagerConfig;
ma_resource_manager resourceManager; ma_resource_manager resourceManager;
ma_engine_config engineConfig; #endif
ma_engine engineSound; ma_engine engineSound;
ma_engine engineMusic; ma_engine engineMusic;
ma_sound soundBGM; ma_sound soundBGM;
......
project "miniaudio" project "miniaudio"
kind "StaticLib" kind "StaticLib"
files { "*.c", "*.h" } files { "extras/miniaudio_split/miniaudio.*" }
includedirs { "." }
if MINIAUDIO_SUPPORT_OPUS_VORBIS then if MINIAUDIO_SUPPORT_OPUS_VORBIS then
files { "extras/decoders/libopus/*", "extras/decoders/libvorbis/*" }
if BUILD_OPUS_VORBIS then if BUILD_OPUS_VORBIS then
files { "external/ogg/src/**.c", "external/ogg/src/**.h" } files { "external/ogg/src/**.c", "external/ogg/src/**.h" }
files { "external/opus/src/**.c", "external/opus/src/**.h" } files { "external/opus/src/**.c", "external/opus/src/**.h" }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment