X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin2_src%2FWM%2Finput.c;h=aa7f3b37c27266593920b038c1225806a4f3fe8d;hb=01d3bb637b46bc86d3b25d57d6dd06acd5686d70;hp=cb6a03ce5905ec817c0c588011ca52012e69c82a;hpb=15fe58771e11393f0945f6807af77f6966a3a2db;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin2_src/WM/input.c b/Usermode/Applications/axwin2_src/WM/input.c index cb6a03ce..aa7f3b37 100644 --- a/Usermode/Applications/axwin2_src/WM/input.c +++ b/Usermode/Applications/axwin2_src/WM/input.c @@ -6,6 +6,27 @@ #include // === CODE === +int Input_Init(void) +{ + struct { + int Num, Value; + } num_value; + + // Open mouse for RW + giMouseFD = open(gsMouseDevice, 3); + + // Set mouse limits + num_value.Num = 0; + num_value.Value = giScreenWidth; + ioctl(giMouseFD, 6, &num_value); + + num_value.Num = 1; + num_value.Value = giScreenHeight; + ioctl(giMouseFD, 6, &num_value); + + return 0; +} + void Input_FillSelect(int *nfds, fd_set *set) { if(*nfds < giTerminalFD) *nfds = giTerminalFD; @@ -18,7 +39,13 @@ void Input_HandleSelect(fd_set *set) { if(FD_ISSET(giTerminalFD, set)) { - // TODO: + uint32_t codepoint; + if( read(giTerminalFD, &codepoint, sizeof(codepoint)) != sizeof(codepoint) ) + { + // oops, error + } + // TODO: pass on to message handler + _SysDebug("Keypress 0x%x", codepoint); } if(FD_ISSET(giMouseFD, set)) @@ -32,8 +59,11 @@ void Input_HandleSelect(fd_set *set) } Axies[2]; uint8_t Buttons[3]; } mouseinfo; - - if( read(giMouseFD, sizeof(mouseinfo), &mouseinfo) != sizeof(mouseinfo) ) + + _SysDebug("Cursor event"); + + seek(giMouseFD, 0, SEEK_SET); + if( read(giMouseFD, &mouseinfo, sizeof(mouseinfo)) != sizeof(mouseinfo) ) { // Not a 3 button mouse, oops return ; @@ -41,5 +71,6 @@ void Input_HandleSelect(fd_set *set) // Handle movement // Video_SetCursorPos( mouseinfo.Axies[0], mouseinfo.Axies[1] ); + _SysDebug("Cursor to %i,%i\n", mouseinfo.Axies[0].CursorPos, mouseinfo.Axies[1].CursorPos); } }