X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2Flibaxwin3.so_src%2Fmain.c;h=ab764d249fec52fd3e76526f5a04450c920b1430;hb=32637a3bcd6e38425272f901745a76efa301afd5;hp=3c7d109a81dae2acf4dbddc9d3e0428db90918aa;hpb=19dae42a211f5dff3471b7a53cf1de3b9518d330;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 3c7d109a..ab764d24 100644 --- a/Usermode/Applications/axwin3_src/libaxwin3.so_src/main.c +++ b/Usermode/Applications/axwin3_src/libaxwin3.so_src/main.c @@ -10,29 +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; - - // TODO: Handle message - _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); - - free(msg); + + 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 ); }