From a1e455d197d0d8919d86c0bd819bfa35bb52cf06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20Jos=C3=A9=20Garc=C3=ADa=20Garc=C3=ADa?= Date: Mon, 31 Dec 2018 00:37:08 +0100 Subject: [PATCH] [ORBIS] Initial audio driver --- Makefile.orbis | 2 +- audio/audio_driver.c | 2 +- audio/drivers/psp_audio.c | 27 +++++++++++++++++++++------ configuration.c | 6 ++++-- griffin/griffin.c | 2 +- 5 files changed, 28 insertions(+), 11 deletions(-) diff --git a/Makefile.orbis b/Makefile.orbis index edf4191d78..9ecb3107b5 100644 --- a/Makefile.orbis +++ b/Makefile.orbis @@ -60,7 +60,7 @@ else OBJ += input/drivers/ps4_input.o OBJ += input/drivers_joypad/ps4_joypad.o - #OBJ += audio/drivers/psp_audio.o + OBJ += audio/drivers/psp_audio.o #OBJ += frontend/drivers/platform_orbis.o endif diff --git a/audio/audio_driver.c b/audio/audio_driver.c index 4baaf7b753..4ad3d13a77 100644 --- a/audio/audio_driver.c +++ b/audio/audio_driver.c @@ -119,7 +119,7 @@ static const audio_driver_t *audio_drivers[] = { #ifdef EMSCRIPTEN &audio_rwebaudio, #endif -#if defined(PSP) || defined(VITA) +#if defined(PSP) || defined(VITA) || defined(ORBIS) &audio_psp, #endif #ifdef _3DS diff --git a/audio/drivers/psp_audio.c b/audio/drivers/psp_audio.c index ec0bfb43b2..f9316ece7e 100644 --- a/audio/drivers/psp_audio.c +++ b/audio/drivers/psp_audio.c @@ -16,21 +16,28 @@ */ #include +#if defined(VITA) || defined(PSP) #include +#endif #include #include #include #include -#ifdef VITA +#if defined(VITA) #include #include #include #include -#else +#elif defined(PSP) #include #include +#elif defined(ORBIS) +#include +#define SCE_AUDIO_OUT_PORT_TYPE_MAIN 0 +#define SCE_AUDIO_OUT_MODE_STEREO 1 +#define SceUID uint32_t #endif #include "../audio_driver.h" @@ -64,10 +71,14 @@ static void audioMainLoop(void *data) { psp_audio_t* psp = (psp_audio_t*)data; -#ifdef VITA +#if defined(VITA) int port = sceAudioOutOpenPort( SCE_AUDIO_OUT_PORT_TYPE_MAIN, AUDIO_OUT_COUNT, psp->rate, SCE_AUDIO_OUT_MODE_STEREO); +#elif defined(ORBIS) + int port = sceAudioOutOpen(0xff, + SCE_AUDIO_OUT_PORT_TYPE_MAIN, 0, AUDIO_OUT_COUNT, + psp->rate, SCE_AUDIO_OUT_MODE_STEREO); #else sceAudioSRCChReserve(AUDIO_OUT_COUNT, psp->rate, 2); #endif @@ -95,7 +106,7 @@ static void audioMainLoop(void *data) scond_signal(psp->cond); slock_unlock(psp->cond_lock); -#ifdef VITA +#if defined(VITA) || defined(ORBIS) sceAudioOutOutput(port, cond ? (psp->zeroBuffer) : (psp->buffer + read_pos_2)); @@ -105,8 +116,10 @@ static void audioMainLoop(void *data) #endif } -#ifdef VITA +#if defined(VITA) sceAudioOutReleasePort(port); +#elif defined(ORBIS) + sceAudioOutClose(port); #else sceAudioSRCChRelease(); #endif @@ -304,8 +317,10 @@ audio_driver_t audio_psp = { psp_audio_set_nonblock_state, psp_audio_free, psp_audio_use_float, -#ifdef VITA +#if defined(VITA) "vita", +#elif defined(ORBIS) + "orbis", #else "psp", #endif diff --git a/configuration.c b/configuration.c index 88efd415e3..6574177965 100644 --- a/configuration.c +++ b/configuration.c @@ -361,7 +361,7 @@ static enum audio_driver_enum AUDIO_DEFAULT_DRIVER = AUDIO_XENON360; static enum audio_driver_enum AUDIO_DEFAULT_DRIVER = AUDIO_WII; #elif defined(WIIU) static enum audio_driver_enum AUDIO_DEFAULT_DRIVER = AUDIO_WIIU; -#elif defined(PSP) || defined(VITA) +#elif defined(PSP) || defined(VITA) || defined(ORBIS) static enum audio_driver_enum AUDIO_DEFAULT_DRIVER = AUDIO_PSP; #elif defined(PS2) static enum audio_driver_enum AUDIO_DEFAULT_DRIVER = AUDIO_PS2; @@ -679,8 +679,10 @@ const char *config_get_default_audio(void) case AUDIO_WIIU: return "AX"; case AUDIO_PSP: -#ifdef VITA +#if defined(VITA) return "vita"; +#elif defined(ORBIS) + return "orbis"; #else return "psp"; #endif diff --git a/griffin/griffin.c b/griffin/griffin.c index aa2b0deeb3..17cdad79bb 100644 --- a/griffin/griffin.c +++ b/griffin/griffin.c @@ -770,7 +770,7 @@ AUDIO #include "../audio/drivers/wiiu_audio.c" #elif defined(EMSCRIPTEN) #include "../audio/drivers/rwebaudio.c" -#elif defined(PSP) || defined(VITA) +#elif defined(PSP) || defined(VITA) || defined(ORBIS) #include "../audio/drivers/psp_audio.c" #elif defined(PS2) // #include "../audio/drivers/ps2_audio.c"