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