mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-02-03 12:31:15 +00:00
3ds: implement apt hooks
This commit is contained in:
parent
2b7287452c
commit
511acfe82d
@ -647,6 +647,7 @@ set(CPACK_PACKAGE_DIRECTORY "dist")
|
|||||||
set(CPACK_PACKAGE_FILE_NAME "isle-${PROJECT_VERSION}-${ISLE_PACKAGE_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
|
set(CPACK_PACKAGE_FILE_NAME "isle-${PROJECT_VERSION}-${ISLE_PACKAGE_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
|
||||||
if(NINTENDO_3DS)
|
if(NINTENDO_3DS)
|
||||||
target_sources(isle PRIVATE
|
target_sources(isle PRIVATE
|
||||||
|
ISLE/3ds/apthooks.cpp
|
||||||
ISLE/3ds/filesystem.cpp
|
ISLE/3ds/filesystem.cpp
|
||||||
)
|
)
|
||||||
ctr_generate_smdh(isle.smdh
|
ctr_generate_smdh(isle.smdh
|
||||||
|
|||||||
24
ISLE/3ds/apthooks.cpp
Normal file
24
ISLE/3ds/apthooks.cpp
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#include "apthooks.h"
|
||||||
|
|
||||||
|
#include "../isleapp.h"
|
||||||
|
#include "legomain.h"
|
||||||
|
#include "misc.h"
|
||||||
|
|
||||||
|
void N3DS_AptHookCallback(APT_HookType hookType, void* param)
|
||||||
|
{
|
||||||
|
switch (hookType) {
|
||||||
|
case APTHOOK_ONSLEEP:
|
||||||
|
case APTHOOK_ONSUSPEND:
|
||||||
|
Lego()->Pause();
|
||||||
|
break;
|
||||||
|
case APTHOOK_ONWAKEUP:
|
||||||
|
case APTHOOK_ONRESTORE:
|
||||||
|
Lego()->Resume();
|
||||||
|
break;
|
||||||
|
case APTHOOK_ONEXIT:
|
||||||
|
Lego()->CloseMainWindow();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
8
ISLE/3ds/apthooks.h
Normal file
8
ISLE/3ds/apthooks.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#ifndef N3DS_APTHOOKS_H
|
||||||
|
#define N3DS_APTHOOKS_H
|
||||||
|
|
||||||
|
#include <3ds.h>
|
||||||
|
|
||||||
|
void N3DS_AptHookCallback(APT_HookType hookType, void* param);
|
||||||
|
|
||||||
|
#endif // N3DS_APTHOOKS_H
|
||||||
@ -51,7 +51,10 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __3DS__
|
#ifdef __3DS__
|
||||||
|
#include "3ds/apthooks.h"
|
||||||
#include "3ds/filesystem.h"
|
#include "3ds/filesystem.h"
|
||||||
|
|
||||||
|
aptHookCookie g_aptCookie;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
DECOMP_SIZE_ASSERT(IsleApp, 0x8c)
|
DECOMP_SIZE_ASSERT(IsleApp, 0x8c)
|
||||||
@ -318,6 +321,11 @@ SDL_AppResult SDL_AppInit(void** appstate, int argc, char** argv)
|
|||||||
NULL
|
NULL
|
||||||
);
|
);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __3DS__
|
||||||
|
aptHook(&g_aptCookie, N3DS_AptHookCallback, NULL);
|
||||||
|
#endif
|
||||||
|
|
||||||
return SDL_APP_CONTINUE;
|
return SDL_APP_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -96,6 +96,7 @@ class IsleApp {
|
|||||||
};
|
};
|
||||||
|
|
||||||
extern IsleApp* g_isle;
|
extern IsleApp* g_isle;
|
||||||
|
extern MxS32 g_closed;
|
||||||
|
|
||||||
extern IDirect3DRMMiniwinDevice* GetD3DRMMiniwinDevice();
|
extern IDirect3DRMMiniwinDevice* GetD3DRMMiniwinDevice();
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user