From 9291226f5a67cb982e25e2680b57b38c7b8aec06 Mon Sep 17 00:00:00 2001 From: Maschell Date: Thu, 28 Apr 2016 21:00:19 +0200 Subject: [PATCH] added support for firmware 3.x.x --- ax_functions.c | 39 ++++++++++++++++++++++++--------------- ax_functions.h | 4 +--- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/ax_functions.c b/ax_functions.c index f5aee9e..fc1c571 100644 --- a/ax_functions.c +++ b/ax_functions.c @@ -21,12 +21,12 @@ * 3. This notice may not be removed or altered from any source * distribution. ***************************************************************************/ +#include "common/common.h" #include "os_functions.h" #include "ax_functions.h" -unsigned int sound_handle __attribute__((section(".data"))) = 0; - EXPORT_DECL(void, AXInitWithParams, u32 * params); +EXPORT_DECL(void, AXInit, void); EXPORT_DECL(void, AXQuit, void); EXPORT_DECL(u32, AXGetInputSamplesPerSec, void); EXPORT_DECL(u32, AXGetInputSamplesPerFrame, void); @@ -47,20 +47,29 @@ EXPORT_DECL(u32, AXGetVoiceLoopCount, void *v); EXPORT_DECL(void, AXSetVoiceEndOffset, void *v, u32 offset); EXPORT_DECL(void, AXSetVoiceLoopOffset, void *v, u32 offset); -void InitAcquireAX(void) -{ - OSDynLoad_Acquire("sndcore2.rpl", &sound_handle); -} - void InitAXFunctionPointers(void) { - InitAcquireAX(); + unsigned int sound_handle = 0; unsigned int *funcPointer = 0; - OSDynLoad_Acquire("sndcore2.rpl", &sound_handle); - OS_FIND_EXPORT(sound_handle, AXInitWithParams); + if(OS_FIRMWARE >= 400) + { + AXInit = 0; + + OSDynLoad_Acquire("sndcore2.rpl", &sound_handle); + OS_FIND_EXPORT(sound_handle, AXInitWithParams); + OS_FIND_EXPORT(sound_handle, AXGetInputSamplesPerSec); + } + else + { + AXInitWithParams = 0; + AXGetInputSamplesPerSec = 0; + + OSDynLoad_Acquire("snd_core.rpl", &sound_handle); + OS_FIND_EXPORT(sound_handle, AXInit); + } + OS_FIND_EXPORT(sound_handle, AXQuit); - OS_FIND_EXPORT(sound_handle, AXGetInputSamplesPerSec); OS_FIND_EXPORT(sound_handle, AXVoiceBegin); OS_FIND_EXPORT(sound_handle, AXVoiceEnd); OS_FIND_EXPORT(sound_handle, AXSetVoiceType); @@ -84,18 +93,18 @@ void ProperlyEndTransitionAudio(void) bool (* check_os_audio_transition_flag_old)(void); void (* AXInit_old)(void); void (* AXQuit_old)(void); - + unsigned int *funcPointer = 0; unsigned int sound_handle; OSDynLoad_Acquire("snd_core.rpl", &sound_handle); - + OS_FIND_EXPORT_EX(sound_handle, check_os_audio_transition_flag, check_os_audio_transition_flag_old); OS_FIND_EXPORT_EX(sound_handle, AXInit, AXInit_old); OS_FIND_EXPORT_EX(sound_handle, AXQuit, AXQuit_old); - + if (check_os_audio_transition_flag_old()) { AXInit_old(); AXQuit_old(); } -} \ No newline at end of file +} diff --git a/ax_functions.h b/ax_functions.h index dd0518d..b7df998 100644 --- a/ax_functions.h +++ b/ax_functions.h @@ -30,13 +30,11 @@ extern "C" { #include -extern unsigned int sound_handle; - void InitAXFunctionPointers(void); -void InitAcquireAX(void); void ProperlyEndTransitionAudio(void); extern void (* AXInitWithParams)(u32 * params); +extern void (* AXInit)(void); extern void (* AXQuit)(void); extern u32 (* AXGetInputSamplesPerSec)(void); extern s32 (* AXVoiceBegin)(void *v);