X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2Flibaxwin3.so_src%2Fmain.c;h=da2ffe77e78b7c291668c4c4479701d02fa1c4ff;hb=edb8fa42cff3758a25e985f4fdd7119b6206ce0a;hp=2432fd88dd4da6f4b3a165d6291ecef583e50156;hpb=4fa95391e2ff812412d7229e0135efd49cd5f3ed;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin3_src/libaxwin3.so_src/main.c b/Usermode/Applications/axwin3_src/libaxwin3.so_src/main.c index 2432fd88..da2ffe77 100644 --- a/Usermode/Applications/axwin3_src/libaxwin3.so_src/main.c +++ b/Usermode/Applications/axwin3_src/libaxwin3.so_src/main.c @@ -8,6 +8,10 @@ #include #include "include/internal.h" #include "include/ipc.h" +#include + +// === GLOBALS === +int giAxWin3_MainLoopExit; // === CODE === int SoMain(void *Base, int argc, const char *argv[], const char **envp) @@ -17,16 +21,35 @@ int SoMain(void *Base, int argc, const char *argv[], const char **envp) return 0; } -void AxWin3_MainLoop(void) +int AxWin3_MainLoop(void) { tAxWin_IPCMessage *msg; - int bExit = 0; - while(!bExit) + giAxWin3_MainLoopExit = 0; + + while(!giAxWin3_MainLoopExit) { - msg = AxWin3_int_GetIPCMessage(); - - // TODO: Handle message + msg = AxWin3_int_GetIPCMessage(0, NULL); + if(!msg) continue; + + _SysDebug("AxWin3_MainLoop - Message (Type=%i, Window=%i, Len=%i)", + msg->ID, msg->Window, msg->Size); + + AxWin3_int_HandleMessage( msg ); } + return giAxWin3_MainLoopExit; +} + +void AxWin3_StopMainLoop(int Reason) +{ + giAxWin3_MainLoopExit = Reason; +} + +void AxWin3_MessageSelect(int nFD, fd_set *FDs) +{ + tAxWin_IPCMessage *msg; + msg = AxWin3_int_GetIPCMessage(nFD, FDs); + if( msg ) + AxWin3_int_HandleMessage( msg ); }