Merge branch 'master' of git.mutabah.net:acess2
[tpg/acess2.git] / Usermode / Applications / axwin3_src / WM / main.c
index 0562d7d..0996f90 100644 (file)
@@ -9,11 +9,17 @@
 #include <acess/sys.h>
 #include <stdlib.h>
 #include <stdio.h>
+#include <axwin3/keysyms.h>
 
 // === IMPORTS ===
-extern void    WM_Update(void);
 extern void    Video_Setup(void);
+extern void    WM_Initialise(void);
+extern int     Renderer_Menu_Init(void);
 extern int     Renderer_Widget_Init(void);
+extern int     Renderer_Background_Init(void);
+extern int     Renderer_Framebuffer_Init(void);
+extern void    WM_Update(void);
+extern void    WM_Hotkey_Register(int nKeys, uint32_t *Keys, const char *ActionName);
 
 // === PROTOTYPES ===
 void   ParseCommandline(int argc, char **argv);
@@ -26,6 +32,7 @@ const char    *gsMouseDevice = NULL;
  int   giScreenHeight = 480;
 
  int   giTerminalFD = -1;
+ int   giTerminalFD_Input = 0;
  int   giMouseFD = -1;
 
 #define __INSTALL_ROOT "/Acess/Apps/AxWin/3.0"
@@ -46,15 +53,23 @@ int main(int argc, char *argv[])
                gsTerminalDevice = "/Devices/VTerm/6";
        }
        if( gsMouseDevice == NULL ) {
-               gsMouseDevice = "/Devices/PS2Mouse";
+               gsMouseDevice = "/Devices/Mouse/system";
        }
        
        Video_Setup();
-//     Interface_Init();
        IPC_Init();
        Input_Init();
        
+       Renderer_Menu_Init();
        Renderer_Widget_Init();
+       Renderer_Background_Init();
+       Renderer_Framebuffer_Init();
+       WM_Initialise();
+
+       // TODO: Config
+       uint32_t        keys[4];
+       keys[0] = KEYSYM_LEFTGUI;       keys[1] = KEYSYM_r;
+       WM_Hotkey_Register(2, keys, "Interface>Run");
        
        // Spawn interface root
        if( clone(CLONE_VM, 0) == 0 )
@@ -63,6 +78,7 @@ int main(int argc, char *argv[])
                char    server_info[] = "AXWIN3_SERVER=00000";
                char    *envp[] = {server_info, NULL};
                char    *argv[] = {csInterfaceApp, NULL};
+               _SysDebug("server_tid = %i, &server_tid = %p", server_tid, &server_tid);
                sprintf(server_info, "AXWIN3_SERVER=%i", server_tid);
                execve(csInterfaceApp, argv, envp);
                exit(1);
@@ -81,7 +97,7 @@ int main(int argc, char *argv[])
                IPC_FillSelect(&nfds, &fds);
                
                nfds ++;
-               if( select(nfds, &fds, NULL, NULL, NULL) == -1 ) {
+               if( _SysSelect(nfds, &fds, NULL, NULL, NULL, THREAD_EVENT_IPCMSG) == -1 ) {
                        _SysDebug("ERROR: select() returned -1");
                        return -1;
                }

UCC git Repository :: git.ucc.asn.au