Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
ygopro
Commits
9a36ca40
Commit
9a36ca40
authored
Mar 27, 2025
by
mercury233
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
test opus & vorbis
parent
5ebd8aef
Changes
16
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
1255 additions
and
5603 deletions
+1255
-5603
.gitignore
.gitignore
+1
-0
gframe/miniaudio/premake5.lua
gframe/miniaudio/premake5.lua
+0
-6
gframe/miniaudio/stb_vorbis.c
gframe/miniaudio/stb_vorbis.c
+0
-5584
gframe/premake5.lua
gframe/premake5.lua
+2
-4
gframe/sound_manager.cpp
gframe/sound_manager.cpp
+19
-1
gframe/sound_manager.h
gframe/sound_manager.h
+4
-1
miniaudio/miniaudio.c
miniaudio/miniaudio.c
+0
-2
miniaudio/miniaudio.h
miniaudio/miniaudio.h
+0
-0
miniaudio/miniaudio_libopus.c
miniaudio/miniaudio_libopus.c
+536
-0
miniaudio/miniaudio_libopus.h
miniaudio/miniaudio_libopus.h
+43
-0
miniaudio/miniaudio_libvorbis.c
miniaudio/miniaudio_libvorbis.c
+574
-0
miniaudio/miniaudio_libvorbis.h
miniaudio/miniaudio_libvorbis.h
+42
-0
ocgcore
ocgcore
+1
-1
premake/miniaudio/premake5.lua
premake/miniaudio/premake5.lua
+29
-0
premake5.lua
premake5.lua
+3
-3
script
script
+1
-1
No files found.
.gitignore
View file @
9a36ca40
...
...
@@ -30,6 +30,7 @@
/irrklang
/ikpmp3
/lua
/miniaudio
/sqlite3
/gframe/*.ico
/gframe/ygopro.rc
...
...
gframe/miniaudio/premake5.lua
deleted
100644 → 0
View file @
5ebd8aef
project
"cminiaudio"
kind
"StaticLib"
files
{
"*.c"
,
"*.h"
}
filter
"system:linux"
links
{
"dl"
,
"pthread"
,
"m"
}
gframe/miniaudio/stb_vorbis.c
deleted
100644 → 0
View file @
5ebd8aef
This diff is collapsed.
Click to expand it.
gframe/premake5.lua
View file @
9a36ca40
include
"lzma/."
include
"spmemvfs/."
if
USE_AUDIO
then
include
"miniaudio/."
end
project
"YGOPro"
kind
"WindowedApp"
...
...
@@ -43,7 +40,8 @@ project "YGOPro"
if
USE_AUDIO
then
defines
{
"YGOPRO_USE_AUDIO"
}
links
{
"cminiaudio"
}
includedirs
{
"../miniaudio"
}
links
{
"miniaudio"
}
end
filter
"system:windows"
...
...
gframe/sound_manager.cpp
View file @
9a36ca40
#include "sound_manager.h"
#ifdef YGOPRO_USE_AUDIO
#include "../miniaudio/miniaudio_libvorbis.h"
#include "../miniaudio/miniaudio_libopus.h"
#endif
#include "myfilesystem.h"
namespace
ygo
{
...
...
@@ -10,7 +14,21 @@ bool SoundManager::Init() {
bgm_scene
=
-
1
;
RefreshBGMList
();
rnd
.
reset
((
unsigned
int
)
std
::
time
(
nullptr
));
if
(
ma_engine_init
(
nullptr
,
&
engineSound
)
||
ma_engine_init
(
nullptr
,
&
engineMusic
))
{
ma_decoding_backend_vtable
*
pCustomBackendVTables
[]
=
{
ma_decoding_backend_libvorbis
,
ma_decoding_backend_libopus
};
resourceManagerConfig
=
ma_resource_manager_config_init
();
resourceManagerConfig
.
ppCustomDecodingBackendVTables
=
pCustomBackendVTables
;
resourceManagerConfig
.
customDecodingBackendCount
=
sizeof
(
pCustomBackendVTables
)
/
sizeof
(
pCustomBackendVTables
[
0
]);
resourceManagerConfig
.
pCustomDecodingBackendUserData
=
NULL
;
if
(
ma_resource_manager_init
(
&
resourceManagerConfig
,
&
resourceManager
)
!=
MA_SUCCESS
)
{
return
false
;
}
engineConfig
=
ma_engine_config_init
();
engineConfig
.
pResourceManager
=
&
resourceManager
;
if
(
ma_engine_init
(
&
engineConfig
,
&
engineSound
)
!=
MA_SUCCESS
||
ma_engine_init
(
&
engineConfig
,
&
engineMusic
)
!=
MA_SUCCESS
)
{
return
false
;
}
else
{
return
true
;
...
...
gframe/sound_manager.h
View file @
9a36ca40
...
...
@@ -4,7 +4,7 @@
#include "game.h"
#include "../ocgcore/mtrandom.h"
#ifdef YGOPRO_USE_AUDIO
#include "miniaudio/miniaudio.h"
#include "
../
miniaudio/miniaudio.h"
#endif
namespace
ygo
{
...
...
@@ -15,6 +15,9 @@ private:
int
bgm_scene
;
mt19937
rnd
;
#ifdef YGOPRO_USE_AUDIO
ma_resource_manager_config
resourceManagerConfig
;
ma_resource_manager
resourceManager
;
ma_engine_config
engineConfig
;
ma_engine
engineSound
;
ma_engine
engineMusic
;
ma_sound
soundBGM
;
...
...
gframe/
miniaudio/miniaudio.c
→
miniaudio/miniaudio.c
View file @
9a36ca40
...
...
@@ -52081,8 +52081,6 @@ static ma_result ma_decoder_init_mp3_from_memory__internal(const void* pData, si
#endif /* ma_dr_mp3_h */
/* Vorbis */
// This is the line added by YGOPro
#include "stb_vorbis.c"
#ifdef STB_VORBIS_INCLUDE_STB_VORBIS_H
#define MA_HAS_VORBIS
gframe/
miniaudio/miniaudio.h
→
miniaudio/miniaudio.h
View file @
9a36ca40
File moved
miniaudio/miniaudio_libopus.c
0 → 100644
View file @
9a36ca40
This diff is collapsed.
Click to expand it.
miniaudio/miniaudio_libopus.h
0 → 100644
View file @
9a36ca40
/*
This implements a data source that decodes Opus streams via libopus + libopusfile
This object can be plugged into any `ma_data_source_*()` API and can also be used as a custom
decoding backend. See the custom_decoder example.
*/
#ifndef miniaudio_libopus_h
#define miniaudio_libopus_h
#ifdef __cplusplus
extern
"C"
{
#endif
#include <miniaudio.h>
typedef
struct
{
ma_data_source_base
ds
;
/* The libopus decoder can be used independently as a data source. */
ma_read_proc
onRead
;
ma_seek_proc
onSeek
;
ma_tell_proc
onTell
;
void
*
pReadSeekTellUserData
;
ma_format
format
;
/* Will be either f32 or s16. */
/*OggOpusFile**/
void
*
of
;
/* Typed as void* so we can avoid a dependency on opusfile in the header section. */
}
ma_libopus
;
MA_API
ma_result
ma_libopus_init
(
ma_read_proc
onRead
,
ma_seek_proc
onSeek
,
ma_tell_proc
onTell
,
void
*
pReadSeekTellUserData
,
const
ma_decoding_backend_config
*
pConfig
,
const
ma_allocation_callbacks
*
pAllocationCallbacks
,
ma_libopus
*
pOpus
);
MA_API
ma_result
ma_libopus_init_file
(
const
char
*
pFilePath
,
const
ma_decoding_backend_config
*
pConfig
,
const
ma_allocation_callbacks
*
pAllocationCallbacks
,
ma_libopus
*
pOpus
);
MA_API
void
ma_libopus_uninit
(
ma_libopus
*
pOpus
,
const
ma_allocation_callbacks
*
pAllocationCallbacks
);
MA_API
ma_result
ma_libopus_read_pcm_frames
(
ma_libopus
*
pOpus
,
void
*
pFramesOut
,
ma_uint64
frameCount
,
ma_uint64
*
pFramesRead
);
MA_API
ma_result
ma_libopus_seek_to_pcm_frame
(
ma_libopus
*
pOpus
,
ma_uint64
frameIndex
);
MA_API
ma_result
ma_libopus_get_data_format
(
ma_libopus
*
pOpus
,
ma_format
*
pFormat
,
ma_uint32
*
pChannels
,
ma_uint32
*
pSampleRate
,
ma_channel
*
pChannelMap
,
size_t
channelMapCap
);
MA_API
ma_result
ma_libopus_get_cursor_in_pcm_frames
(
ma_libopus
*
pOpus
,
ma_uint64
*
pCursor
);
MA_API
ma_result
ma_libopus_get_length_in_pcm_frames
(
ma_libopus
*
pOpus
,
ma_uint64
*
pLength
);
/* Decoding backend vtable. This is what you'll plug into ma_decoder_config.pBackendVTables. No user data required. */
extern
ma_decoding_backend_vtable
*
ma_decoding_backend_libopus
;
#ifdef __cplusplus
}
#endif
#endif
/* miniaudio_libopus_h */
miniaudio/miniaudio_libvorbis.c
0 → 100644
View file @
9a36ca40
This diff is collapsed.
Click to expand it.
miniaudio/miniaudio_libvorbis.h
0 → 100644
View file @
9a36ca40
/*
This implements a data source that decodes Vorbis streams via libvorbis + libvorbisfile
This object can be plugged into any `ma_data_source_*()` API and can also be used as a custom
decoding backend. See the custom_decoder example.
*/
#ifndef miniaudio_libvorbis_h
#define miniaudio_libvorbis_h
#ifdef __cplusplus
extern
"C"
{
#endif
#include <miniaudio.h>
typedef
struct
{
ma_data_source_base
ds
;
/* The libvorbis decoder can be used independently as a data source. */
ma_read_proc
onRead
;
ma_seek_proc
onSeek
;
ma_tell_proc
onTell
;
void
*
pReadSeekTellUserData
;
ma_format
format
;
/* Will be either f32 or s16. */
/*OggVorbis_File**/
void
*
vf
;
/* Typed as void* so we can avoid a dependency on opusfile in the header section. */
}
ma_libvorbis
;
MA_API
ma_result
ma_libvorbis_init
(
ma_read_proc
onRead
,
ma_seek_proc
onSeek
,
ma_tell_proc
onTell
,
void
*
pReadSeekTellUserData
,
const
ma_decoding_backend_config
*
pConfig
,
const
ma_allocation_callbacks
*
pAllocationCallbacks
,
ma_libvorbis
*
pVorbis
);
MA_API
ma_result
ma_libvorbis_init_file
(
const
char
*
pFilePath
,
const
ma_decoding_backend_config
*
pConfig
,
const
ma_allocation_callbacks
*
pAllocationCallbacks
,
ma_libvorbis
*
pVorbis
);
MA_API
void
ma_libvorbis_uninit
(
ma_libvorbis
*
pVorbis
,
const
ma_allocation_callbacks
*
pAllocationCallbacks
);
MA_API
ma_result
ma_libvorbis_read_pcm_frames
(
ma_libvorbis
*
pVorbis
,
void
*
pFramesOut
,
ma_uint64
frameCount
,
ma_uint64
*
pFramesRead
);
MA_API
ma_result
ma_libvorbis_seek_to_pcm_frame
(
ma_libvorbis
*
pVorbis
,
ma_uint64
frameIndex
);
MA_API
ma_result
ma_libvorbis_get_data_format
(
ma_libvorbis
*
pVorbis
,
ma_format
*
pFormat
,
ma_uint32
*
pChannels
,
ma_uint32
*
pSampleRate
,
ma_channel
*
pChannelMap
,
size_t
channelMapCap
);
MA_API
ma_result
ma_libvorbis_get_cursor_in_pcm_frames
(
ma_libvorbis
*
pVorbis
,
ma_uint64
*
pCursor
);
MA_API
ma_result
ma_libvorbis_get_length_in_pcm_frames
(
ma_libvorbis
*
pVorbis
,
ma_uint64
*
pLength
);
/* Decoding backend vtable. This is what you'll plug into ma_decoder_config.pBackendVTables. No user data required. */
extern
ma_decoding_backend_vtable
*
ma_decoding_backend_libvorbis
;
#ifdef __cplusplus
}
#endif
#endif
/* miniaudio_libvorbis_h */
ocgcore
@
d2c75412
Subproject commit
fe48b4fbbf9c84c459eca432de494a5bcef1c276
Subproject commit
d2c754121645fb021de5dc7d7f13f0a4210f5d9e
premake/miniaudio/premake5.lua
0 → 100644
View file @
9a36ca40
project
"miniaudio"
kind
"StaticLib"
files
{
"*.c"
,
"*.h"
}
files
{
"external/ogg/src/**.c"
,
"external/ogg/src/**.h"
}
files
{
"external/opus/src/**.c"
,
"external/opus/src/**.h"
}
files
{
"external/opus/celt/*.c"
,
"external/opus/celt/*.h"
}
files
{
"external/opus/silk/*.c"
,
"external/opus/silk/*.h"
}
files
{
"external/opus/silk/float/*.c"
,
"external/opus/silk/float/*.h"
}
files
{
"external/opusfile/src/**.c"
,
"external/opusfile/src/**.h"
}
files
{
"external/vorbis/lib/**.c"
,
"external/vorbis/lib/**.h"
}
removefiles
{
"external/opus/src/opus_demo.c"
,
"external/opus/src/tone.c"
,
"external/opus/src/opus_encoder.c"
,
"external/vorbis/lib/psy.h"
,
"external/vorbis/lib/psytune.c"
,
"external/vorbis/lib/tone.c"
,}
defines
{
"USE_ALLOCA"
,
"OPUS_BUILD"
}
includedirs
{
"."
,
"external/ogg/include"
,
"external/opus/include"
,
"external/opus/celt"
,
"external/opus/silk"
,
"external/opus/silk/float"
,
"external/opusfile/include"
,
"external/vorbis/include"
}
filter
"system:linux"
links
{
"dl"
,
"pthread"
,
"m"
}
premake5.lua
View file @
9a36ca40
...
...
@@ -199,6 +199,6 @@ workspace "YGOPro"
if
BUILD_SQLITE
then
include
"sqlite3"
end
--if BUILD_IKPMP3
then
-- include "ikpmp3
"
--
end
if
USE_AUDIO
then
include
"miniaudio
"
end
script
@
f10071b5
Subproject commit
5d9d3779b34df5937ea9db039b68e6e440d461ec
Subproject commit
f10071b5d60b728dda89d2d9dffb8d345d3efba1
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment