X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2Flibaxwin3.so_src%2Fmain.c;h=ab764d249fec52fd3e76526f5a04450c920b1430;hb=910b87da7338937ace686848fb915908df0bf09b;hp=d8f6a61f44365efec158ec067b769721bb8e4a15;hpb=8c12dd82f2a4e01d8de5d29db6d4fdd0802c7e83;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 d8f6a61f..ab764d24 100644 --- a/Usermode/Applications/axwin3_src/libaxwin3.so_src/main.c +++ b/Usermode/Applications/axwin3_src/libaxwin3.so_src/main.c @@ -10,30 +10,47 @@ #include "include/ipc.h" #include +// === GLOBALS === +int giAxWin3_MainLoopExit; + // === CODE === int SoMain(void *Base, int argc, const char *argv[], const char **envp) { // TODO: Parse the environment for the AXWIN3_SERVER variable - gsAxWin3_int_ServerDesc = getenv("AXWIN3_SERVER"); + //gsAxWin3_int_ServerDesc = getenv("AXWIN3_SERVER"); + gsAxWin3_int_ServerDesc = "pipe:/Devices/ipcpipe/axwin"; 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(); + msg = AxWin3_int_GetIPCMessage(0, NULL); if(!msg) continue; - _SysDebug("oh look, a message (Type=%i, Window=%i, Len=%i)", + _SysDebug("AxWin3_MainLoop - Message (Type=%i, Window=%i, Len=%i)", msg->ID, msg->Window, msg->Size); AxWin3_int_HandleMessage( msg ); - - free(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 ); }