html5: webaudio support WIP
parent
1ff5ad2767
commit
796839ac74
|
@ -19,5 +19,5 @@ rem cook art
|
||||||
|
|
||||||
rem host webserver, compile and launch
|
rem host webserver, compile and launch
|
||||||
rem start python -m http.server --bind 127.0.0.1 8000
|
rem start python -m http.server --bind 127.0.0.1 8000
|
||||||
call emcc %* -g ..\..\engine\v4k.c -I..\..\engine -o index.html -pthread -s FULL_ES3 -s USE_PTHREADS -s USE_GLFW=3 -s SINGLE_FILE=1 -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=0 -s PRECISE_F32=1 -s TOTAL_MEMORY=256mb -s ALLOW_MEMORY_GROWTH=1 -s ENVIRONMENT=worker,web --shell-file template.html -Wfatal-errors --preload-file .art[00].zip@index.zip -lidbfs.js
|
call emcc %* -g ..\..\engine\v4k.c -I..\..\engine -o index.html -pthread -s FULL_ES3 -s USE_PTHREADS -s USE_GLFW=3 -s SINGLE_FILE=1 -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=0 -s PRECISE_F32=1 -s TOTAL_MEMORY=256mb -s ALLOW_MEMORY_GROWTH=1 -s ENVIRONMENT=worker,web --shell-file template.html -Wfatal-errors --preload-file .art[00].zip@index.zip -lidbfs.js
|
||||||
rem emrun index.html
|
rem emrun index.html
|
||||||
|
|
|
@ -606,7 +606,8 @@ int main(void) {
|
||||||
// 75% sized, msaa x4 enabled
|
// 75% sized, msaa x4 enabled
|
||||||
window_create(1, 0);
|
window_create(1, 0);
|
||||||
window_title( "V4K - SPACE pauses simulation" );
|
window_title( "V4K - SPACE pauses simulation" );
|
||||||
|
audio_t BGM = audio_stream( "waterworld-map.fur" );
|
||||||
|
audio_play(BGM, 0);
|
||||||
// fx_load("fx**.fs");
|
// fx_load("fx**.fs");
|
||||||
|
|
||||||
// camera that points to origin
|
// camera that points to origin
|
||||||
|
|
|
@ -135,6 +135,7 @@
|
||||||
{{{ SCRIPT }}}
|
{{{ SCRIPT }}}
|
||||||
|
|
||||||
<button onclick="openFullscreen();" style="position:relative; z-index: 1000; float: right;">⛶</button>
|
<button onclick="openFullscreen();" style="position:relative; z-index: 1000; float: right;">⛶</button>
|
||||||
|
<!-- <button id="btn-audio" onclick="toggleAudio();" style="position:relative; z-index: 1000; float: right;">M</button> -->
|
||||||
<script>
|
<script>
|
||||||
function openFullscreen() {
|
function openFullscreen() {
|
||||||
var canvas = document.getElementById("canvas");
|
var canvas = document.getElementById("canvas");
|
||||||
|
@ -147,5 +148,35 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<!-- <script type='text/javascript'>
|
||||||
|
var audioBtn = document.querySelector('#btn-audio');
|
||||||
|
|
||||||
|
// An array of all contexts to resume on the page
|
||||||
|
const audioContexList = [];
|
||||||
|
(function() {
|
||||||
|
// A proxy object to intercept AudioContexts and
|
||||||
|
// add them to the array for tracking and resuming later
|
||||||
|
self.AudioContext = new Proxy(self.AudioContext, {
|
||||||
|
construct(target, args) {
|
||||||
|
const result = new target(...args);
|
||||||
|
audioContexList.push(result);
|
||||||
|
if (result.state == "suspended") audioBtn.value = "RESUME";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
|
||||||
|
function toggleAudio() {
|
||||||
|
var resumed = false;
|
||||||
|
audioContexList.forEach(ctx => {
|
||||||
|
if (ctx.state == "suspended") { ctx.resume(); resumed = true; }
|
||||||
|
else if (ctx.state == "running") ctx.suspend();
|
||||||
|
});
|
||||||
|
|
||||||
|
if (resumed) audioBtn.value = "SUSPEND";
|
||||||
|
else audioBtn.value = "RESUME";
|
||||||
|
}
|
||||||
|
</script> -->
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,38 @@
|
||||||
|
SIERRA ON-LINE, INC.
|
||||||
|
3-D Animated Adventure Game Soundtrack Series
|
||||||
|
===============================================
|
||||||
|
LEISURE SUIT LARRY III: PASSIONATE PATTI-
|
||||||
|
IN PURSUIT OF THE PULSATING PECTORALS
|
||||||
|
|
||||||
|
|
||||||
|
"TAWNI AT THE BEACH"
|
||||||
|
Mike Dana
|
||||||
|
===============================================
|
||||||
|
Copyright (c)1989 Sierra On-Line, Inc.
|
||||||
|
===============================================
|
||||||
|
|
||||||
|
GENERAL MIDI VERSION
|
||||||
|
|
||||||
|
System Requirements:
|
||||||
|
|
||||||
|
- MIDI Playback Software capable of reading Type 1 Standard
|
||||||
|
MIDI File format
|
||||||
|
- General MIDI sound device (Wave Table or better recommended)
|
||||||
|
|
||||||
|
|
||||||
|
This Standard MIDI File was recorded directly from Sierra's "Leisure Suit
|
||||||
|
Larry 3" adventure game. It has been converted from the MT-32 version for
|
||||||
|
playback on General MIDI sound cards. A Wave Table or better sound card is
|
||||||
|
highly recommended for optimal playback.
|
||||||
|
|
||||||
|
Recorded/converted for General MIDI by Tom Lewandowski.
|
||||||
|
Address questions or comments to:
|
||||||
|
|
||||||
|
QUEST STUDIOS
|
||||||
|
Tom Lewandowski
|
||||||
|
tom@queststudios.com
|
||||||
|
|
||||||
|
www.QuestStudios.com
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,43 @@
|
||||||
|
QUEST STUDIOS
|
||||||
|
SOFTWARE SOUNDTRACK SERIES
|
||||||
|
====================================================
|
||||||
|
THE SECRET OF MONKEY ISLAND
|
||||||
|
|
||||||
|
|
||||||
|
"INTRODUCTION/OPENING THEMES"
|
||||||
|
Michael Z. Land
|
||||||
|
====================================================
|
||||||
|
Copyright (c)1989 LucasArts Entertainment Co.
|
||||||
|
====================================================
|
||||||
|
|
||||||
|
G E N E R A L M I D I V E R S I O N
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
System Requirements:
|
||||||
|
|
||||||
|
- MIDI Playback Software capable of reading Type 1 Standard
|
||||||
|
MIDI File format
|
||||||
|
- General MIDI sound device (Wave Table recommended.)
|
||||||
|
|
||||||
|
|
||||||
|
This Standard MIDI File was recorded directly from LucasFilm Game's
|
||||||
|
"The Secret of Monkey Island" adventure game. It has been converted
|
||||||
|
from the MT-32 version for playback on General MIDI sound cards. A
|
||||||
|
Wave Table sound card is highly recommended for optimal playback.
|
||||||
|
|
||||||
|
Recorded/Converted to Standard MIDI File format by Tom Lewandowski.
|
||||||
|
Address questions or comments to:
|
||||||
|
|
||||||
|
QUEST STUDIOS
|
||||||
|
Tom Lewandowski
|
||||||
|
tom+di@netnet.net
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
THE ROLAND MT-32 SOUND MODULE RESOURCE CENTER
|
||||||
|
THE SIERRA SOUNDTRACK SERIES/SOFTWARE SOUNDTRACK SERIES
|
||||||
|
http://bayland.net/~tom+di/sierra/roland.html
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,3 @@
|
||||||
|
Licensed under the Public Domain license
|
||||||
|
Registered Artist(s):
|
||||||
|
Drozerix
|
Binary file not shown.
BIN
engine/bind/lua
BIN
engine/bind/lua
Binary file not shown.
|
@ -77273,6 +77273,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#line 0
|
#line 0
|
||||||
#undef error
|
#undef error
|
||||||
#undef DEBUG
|
#undef DEBUG
|
||||||
|
#define MA_DEBUG_OUTPUT
|
||||||
#line 1 "3rd_sts_mixer.h"
|
#line 1 "3rd_sts_mixer.h"
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// sts_mixer.h - v0.02
|
// sts_mixer.h - v0.02
|
||||||
|
@ -581555,11 +581556,11 @@ static ma_context context;
|
||||||
static sts_mixer_t mixer;
|
static sts_mixer_t mixer;
|
||||||
|
|
||||||
// This is the function that's used for sending more data to the device for playback.
|
// This is the function that's used for sending more data to the device for playback.
|
||||||
static ma_uint32 audio_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount) {
|
static void audio_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount) {
|
||||||
int len = frameCount;
|
int len = frameCount;
|
||||||
sts_mixer_mix_audio(&mixer, pOutput, len / (sizeof(int32_t) / 4));
|
sts_mixer_mix_audio(&mixer, pOutput, len / (sizeof(int32_t) / 4));
|
||||||
(void)pDevice; (void)pInput;
|
(void)pDevice; (void)pInput;
|
||||||
return len / (sizeof(int32_t) / 4);
|
// return len / (sizeof(int32_t) / 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void audio_drop(void) {
|
void audio_drop(void) {
|
||||||
|
@ -581587,7 +581588,7 @@ int audio_init( int flags ) {
|
||||||
ma_backend_oss,
|
ma_backend_oss,
|
||||||
ma_backend_jack,
|
ma_backend_jack,
|
||||||
ma_backend_opensl,
|
ma_backend_opensl,
|
||||||
// ma_backend_webaudio,
|
ma_backend_webaudio,
|
||||||
//ma_backend_openal,
|
//ma_backend_openal,
|
||||||
//ma_backend_sdl,
|
//ma_backend_sdl,
|
||||||
ma_backend_null // Lowest priority.
|
ma_backend_null // Lowest priority.
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -112,6 +112,7 @@ errno_t fopen_s(
|
||||||
{{FILE:3rd_stb_vorbis.h}}
|
{{FILE:3rd_stb_vorbis.h}}
|
||||||
#undef error
|
#undef error
|
||||||
#undef DEBUG
|
#undef DEBUG
|
||||||
|
#define MA_DEBUG_OUTPUT
|
||||||
{{FILE:3rd_sts_mixer.h}}
|
{{FILE:3rd_sts_mixer.h}}
|
||||||
{{FILE:3rd_miniaudio.h}}
|
{{FILE:3rd_miniaudio.h}}
|
||||||
//---
|
//---
|
||||||
|
|
|
@ -249,11 +249,11 @@ static ma_context context;
|
||||||
static sts_mixer_t mixer;
|
static sts_mixer_t mixer;
|
||||||
|
|
||||||
// This is the function that's used for sending more data to the device for playback.
|
// This is the function that's used for sending more data to the device for playback.
|
||||||
static ma_uint32 audio_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount) {
|
static void audio_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount) {
|
||||||
int len = frameCount;
|
int len = frameCount;
|
||||||
sts_mixer_mix_audio(&mixer, pOutput, len / (sizeof(int32_t) / 4));
|
sts_mixer_mix_audio(&mixer, pOutput, len / (sizeof(int32_t) / 4));
|
||||||
(void)pDevice; (void)pInput;
|
(void)pDevice; (void)pInput;
|
||||||
return len / (sizeof(int32_t) / 4);
|
// return len / (sizeof(int32_t) / 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void audio_drop(void) {
|
void audio_drop(void) {
|
||||||
|
@ -281,7 +281,7 @@ int audio_init( int flags ) {
|
||||||
ma_backend_oss,
|
ma_backend_oss,
|
||||||
ma_backend_jack,
|
ma_backend_jack,
|
||||||
ma_backend_opensl,
|
ma_backend_opensl,
|
||||||
// ma_backend_webaudio,
|
ma_backend_webaudio,
|
||||||
//ma_backend_openal,
|
//ma_backend_openal,
|
||||||
//ma_backend_sdl,
|
//ma_backend_sdl,
|
||||||
ma_backend_null // Lowest priority.
|
ma_backend_null // Lowest priority.
|
||||||
|
|
|
@ -59491,6 +59491,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#line 0
|
#line 0
|
||||||
#undef error
|
#undef error
|
||||||
#undef DEBUG
|
#undef DEBUG
|
||||||
|
#define MA_DEBUG_OUTPUT
|
||||||
#line 1 "3rd_sts_mixer.h"
|
#line 1 "3rd_sts_mixer.h"
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// sts_mixer.h - v0.02
|
// sts_mixer.h - v0.02
|
||||||
|
|
|
@ -1262,11 +1262,11 @@ static ma_context context;
|
||||||
static sts_mixer_t mixer;
|
static sts_mixer_t mixer;
|
||||||
|
|
||||||
// This is the function that's used for sending more data to the device for playback.
|
// This is the function that's used for sending more data to the device for playback.
|
||||||
static ma_uint32 audio_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount) {
|
static void audio_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount) {
|
||||||
int len = frameCount;
|
int len = frameCount;
|
||||||
sts_mixer_mix_audio(&mixer, pOutput, len / (sizeof(int32_t) / 4));
|
sts_mixer_mix_audio(&mixer, pOutput, len / (sizeof(int32_t) / 4));
|
||||||
(void)pDevice; (void)pInput;
|
(void)pDevice; (void)pInput;
|
||||||
return len / (sizeof(int32_t) / 4);
|
// return len / (sizeof(int32_t) / 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void audio_drop(void) {
|
void audio_drop(void) {
|
||||||
|
@ -1294,7 +1294,7 @@ int audio_init( int flags ) {
|
||||||
ma_backend_oss,
|
ma_backend_oss,
|
||||||
ma_backend_jack,
|
ma_backend_jack,
|
||||||
ma_backend_opensl,
|
ma_backend_opensl,
|
||||||
// ma_backend_webaudio,
|
ma_backend_webaudio,
|
||||||
//ma_backend_openal,
|
//ma_backend_openal,
|
||||||
//ma_backend_sdl,
|
//ma_backend_sdl,
|
||||||
ma_backend_null // Lowest priority.
|
ma_backend_null // Lowest priority.
|
||||||
|
|
Loading…
Reference in New Issue