X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin2_src%2FWM%2Finput.c;h=93869328602ad0549cf3c7e63d134fc010334c75;hb=956e8a29de884d0e12351552b6f4b5ad2e3c1b4c;hp=85c649d1f264abed3ecd8c538f8ae47fcfbeb4ef;hpb=637ff4245d413a9269a4450c17e48b784ecf0694;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin2_src/WM/input.c b/Usermode/Applications/axwin2_src/WM/input.c index 85c649d1..93869328 100644 --- a/Usermode/Applications/axwin2_src/WM/input.c +++ b/Usermode/Applications/axwin2_src/WM/input.c @@ -5,6 +5,9 @@ #include "common.h" #include +#define JOY_IOCTL_GETSETAXISLIMIT 6 +#define JOY_IOCTL_GETSETAXISPOSITION 7 + // === CODE === int Input_Init(void) { @@ -18,11 +21,15 @@ int Input_Init(void) // Set mouse limits num_value.Num = 0; num_value.Value = giScreenWidth; - ioctl(giMouseFD, 6, &num_value); + ioctl(giMouseFD, JOY_IOCTL_GETSETAXISLIMIT, &num_value); + num_value.Value = giScreenWidth/2; + ioctl(giMouseFD, JOY_IOCTL_GETSETAXISPOSITION, &num_value); num_value.Num = 1; num_value.Value = giScreenHeight; - ioctl(giMouseFD, 6, &num_value); + ioctl(giMouseFD, JOY_IOCTL_GETSETAXISLIMIT, &num_value); + num_value.Value = giScreenHeight/2; + ioctl(giMouseFD, JOY_IOCTL_GETSETAXISPOSITION, &num_value); return 0; } @@ -40,7 +47,7 @@ void Input_HandleSelect(fd_set *set) if(FD_ISSET(giTerminalFD, set)) { uint32_t codepoint; - if( read(giTerminalFD, sizeof(codepoint), &codepoint) != sizeof(codepoint) ) + if( read(giTerminalFD, &codepoint, sizeof(codepoint)) != sizeof(codepoint) ) { // oops, error } @@ -51,26 +58,34 @@ void Input_HandleSelect(fd_set *set) if(FD_ISSET(giMouseFD, set)) { struct sMouseInfo { - uint16_t NAxies, NButtons; + uint16_t NAxies; + uint16_t NButtons; struct sMouseAxis { - int16_t MinValue, MaxValue; + int16_t MinValue; + int16_t MaxValue; int16_t CurValue; uint16_t CursorPos; } Axies[2]; uint8_t Buttons[3]; } mouseinfo; - _SysDebug("Cursor event"); - - seek(giMouseFD, 0, SEEK_SET); - if( read(giMouseFD, sizeof(mouseinfo), &mouseinfo) != sizeof(mouseinfo) ) + seek(giMouseFD, 0, SEEK_SET); + if( read(giMouseFD, &mouseinfo, sizeof(mouseinfo)) != sizeof(mouseinfo) ) { // Not a 3 button mouse, oops return ; } - + +// _SysDebug("sizeof(uint16_t) = %i, sizeof(int16_t) = %i", +// sizeof(uint16_t), sizeof(int16_t)); +// _SysDebug("NAxies=%i,NButtons=%i", mouseinfo.NAxies, mouseinfo.NButtons); +// _SysDebug("offsetof(Axies[0].MinValue) = %i", offsetof(struct sMouseInfo, Axies[0].MinValue)); +// _SysDebug("[0] = {MinValue=%i,MaxValue=%i,CurValue=%i}", +// mouseinfo.Axies[0].MinValue, mouseinfo.Axies[0].MaxValue, +// mouseinfo.Axies[0].CurValue +// ); // Handle movement -// Video_SetCursorPos( mouseinfo.Axies[0], mouseinfo.Axies[1] ); - _SysDebug("Cursor to %i,%i\n", mouseinfo.Axies[0], mouseinfo.Axies[1]); + Video_SetCursorPos( mouseinfo.Axies[0].CursorPos, mouseinfo.Axies[1].CursorPos ); +// _SysDebug("Cursor to %i,%i", mouseinfo.Axies[0].CursorPos, mouseinfo.Axies[1].CursorPos); } }