X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin2_src%2FWM%2Finput.c;h=a9728f7987041ea1a237097a9c98eb1a93048a69;hb=ada42e7583b4fa07b30d5c1a3e813c9754ec5e0f;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..a9728f79 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], mouseinfo.Axies[1]); } }