HID : moved hidInit and hidExit into ctrulib
This commit is contained in:
parent
2a518a9ae3
commit
a8d15ce5ae
@ -119,25 +119,6 @@ void renderEffect()
|
||||
cnt++;
|
||||
}
|
||||
|
||||
Handle hidHandle;
|
||||
Handle hidMemHandle;
|
||||
|
||||
void hidInit()
|
||||
{
|
||||
srv_getServiceHandle(NULL, &hidHandle, "hid:USER");
|
||||
HIDUSER_GetInfo(hidHandle, &hidMemHandle);
|
||||
svc_mapMemoryBlock(hidMemHandle, 0x10000000, 0x1, 0x10000000);
|
||||
|
||||
HIDUSER_Init(hidHandle);
|
||||
}
|
||||
|
||||
void hidExit()
|
||||
{
|
||||
svc_unmapMemoryBlock(hidMemHandle, 0x10000000);
|
||||
svc_closeHandle(hidMemHandle);
|
||||
svc_closeHandle(hidHandle);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
initSrv();
|
||||
@ -146,7 +127,7 @@ int main()
|
||||
|
||||
gspGpuInit();
|
||||
|
||||
hidInit();
|
||||
hidInit(NULL);
|
||||
|
||||
aptSetupEventHandler();
|
||||
|
||||
@ -155,7 +136,7 @@ int main()
|
||||
{
|
||||
if(status==APP_RUNNING)
|
||||
{
|
||||
u32 PAD=((u32*)0x10000000)[7];
|
||||
u32 PAD=hidSharedMem[7];
|
||||
|
||||
u32 regData=PAD|0x01000000;
|
||||
GSPGPU_WriteHWRegs(NULL, 0x202A04, (u8*)®Data, 4);
|
||||
|
@ -1,6 +1,8 @@
|
||||
#ifndef HID_H
|
||||
#define HID_H
|
||||
|
||||
#define HID_SHAREDMEM_DEFAULT (0x10000000)
|
||||
|
||||
#define CPAD_X(v) ((s16)((v)&0xFFFF))
|
||||
#define CPAD_Y(v) ((s16)(((v>>16))&0xFFFF))
|
||||
|
||||
@ -23,7 +25,13 @@ typedef enum
|
||||
PAD_Y = (1<<11)
|
||||
}PAD_KEY;
|
||||
|
||||
Result HIDUSER_GetInfo(Handle handle, Handle* outMemHandle);
|
||||
Result HIDUSER_Init(Handle handle);
|
||||
extern Handle hidMemHandle;
|
||||
extern vu32* hidSharedMem;
|
||||
|
||||
void hidInit(u32* sharedMem);
|
||||
void hidExit();
|
||||
|
||||
Result HIDUSER_GetInfo(Handle* handle, Handle* outMemHandle);
|
||||
Result HIDUSER_Init(Handle* handle);
|
||||
|
||||
#endif
|
||||
|
@ -3,28 +3,56 @@
|
||||
#include <string.h>
|
||||
#include <ctr/types.h>
|
||||
#include <ctr/HID.h>
|
||||
#include <ctr/srv.h>
|
||||
#include <ctr/svc.h>
|
||||
|
||||
Result HIDUSER_GetInfo(Handle handle, Handle* outMemHandle)
|
||||
Handle hidHandle;
|
||||
Handle hidMemHandle;
|
||||
|
||||
vu32* hidSharedMem;
|
||||
|
||||
void hidInit(u32* sharedMem)
|
||||
{
|
||||
if(!sharedMem)sharedMem=(u32*)HID_SHAREDMEM_DEFAULT;
|
||||
|
||||
srv_getServiceHandle(NULL, &hidHandle, "hid:USER");
|
||||
|
||||
HIDUSER_GetInfo(NULL, &hidMemHandle);
|
||||
hidSharedMem=sharedMem;
|
||||
svc_mapMemoryBlock(hidMemHandle, (u32)hidSharedMem, 0x1, 0x10000000);
|
||||
|
||||
HIDUSER_Init(NULL);
|
||||
}
|
||||
|
||||
void hidExit()
|
||||
{
|
||||
svc_unmapMemoryBlock(hidMemHandle, (u32)hidSharedMem);
|
||||
svc_closeHandle(hidMemHandle);
|
||||
svc_closeHandle(hidHandle);
|
||||
}
|
||||
|
||||
Result HIDUSER_GetInfo(Handle* handle, Handle* outMemHandle)
|
||||
{
|
||||
if(!handle)handle=&hidHandle;
|
||||
u32* cmdbuf=getThreadCommandBuffer();
|
||||
cmdbuf[0]=0xa0000; //request header code
|
||||
|
||||
Result ret=0;
|
||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
||||
|
||||
if(outMemHandle)*outMemHandle=cmdbuf[3];
|
||||
|
||||
return cmdbuf[1];
|
||||
}
|
||||
|
||||
Result HIDUSER_Init(Handle handle)
|
||||
Result HIDUSER_Init(Handle* handle)
|
||||
{
|
||||
if(!handle)handle=&hidHandle;
|
||||
u32* cmdbuf=getThreadCommandBuffer();
|
||||
cmdbuf[0]=0x110000; //request header code
|
||||
|
||||
Result ret=0;
|
||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
||||
|
||||
return cmdbuf[1];
|
||||
}
|
||||
|
@ -119,25 +119,6 @@ void renderEffect()
|
||||
}
|
||||
}
|
||||
|
||||
Handle hidHandle;
|
||||
Handle hidMemHandle;
|
||||
|
||||
void hidInit()
|
||||
{
|
||||
srv_getServiceHandle(NULL, &hidHandle, "hid:USER");
|
||||
HIDUSER_GetInfo(hidHandle, &hidMemHandle);
|
||||
svc_mapMemoryBlock(hidMemHandle, 0x10000000, 0x1, 0x10000000);
|
||||
|
||||
HIDUSER_Init(hidHandle);
|
||||
}
|
||||
|
||||
void hidExit()
|
||||
{
|
||||
svc_unmapMemoryBlock(hidMemHandle, 0x10000000);
|
||||
svc_closeHandle(hidMemHandle);
|
||||
svc_closeHandle(hidHandle);
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
initSrv();
|
||||
@ -146,7 +127,7 @@ int main()
|
||||
|
||||
gspGpuInit();
|
||||
|
||||
hidInit();
|
||||
hidInit(NULL);
|
||||
|
||||
Handle fsuHandle;
|
||||
srv_getServiceHandle(NULL, &fsuHandle, "fs:USER");
|
||||
@ -164,7 +145,7 @@ int main()
|
||||
|
||||
while(!aptGetStatus())
|
||||
{
|
||||
u32 PAD=((u32*)0x10000000)[7];
|
||||
u32 PAD=hidSharedMem[7];
|
||||
renderEffect();
|
||||
swapBuffers();
|
||||
copyBuffer();
|
||||
|
Loading…
Reference in New Issue
Block a user