2 * Acess2 GUI (AxWin) Version 3
3 * - By John Hodge (thePowersGang)
12 #include <axwin3/keysyms.h>
15 extern void Video_Setup(void);
16 extern void WM_Initialise(void);
17 extern int Renderer_Menu_Init(void);
18 extern int Renderer_Widget_Init(void);
19 extern int Renderer_Background_Init(void);
20 extern int Renderer_Framebuffer_Init(void);
21 extern int Renderer_RichText_Init(void);
22 extern void WM_Update(void);
23 extern void WM_Hotkey_Register(int nKeys, uint32_t *Keys, const char *ActionName);
26 void ParseCommandline(int argc, char **argv);
29 const char *gsTerminalDevice = NULL;
30 const char *gsMouseDevice = NULL;
32 int giScreenWidth = 640;
33 int giScreenHeight = 480;
35 int giTerminalFD = -1;
36 int giTerminalFD_Input = 0;
39 #define __INSTALL_ROOT "/Acess/Apps/AxWin/3.0"
41 const char *gsInstallRoot = __INSTALL_ROOT;
45 * \brief Program Entrypoint
47 int main(int argc, char *argv[])
49 int server_tid = gettid();
51 ParseCommandline(argc, argv);
53 if( gsTerminalDevice == NULL ) {
54 gsTerminalDevice = "/Devices/VTerm/6";
56 if( gsMouseDevice == NULL ) {
57 gsMouseDevice = "/Devices/Mouse/system";
65 Renderer_Widget_Init();
66 Renderer_Background_Init();
67 Renderer_Framebuffer_Init();
68 Renderer_RichText_Init();
73 keys[0] = KEYSYM_LEFTGUI; keys[1] = KEYSYM_r;
74 WM_Hotkey_Register(2, keys, "Interface>Run");
76 // Spawn interface root
77 if( clone(CLONE_VM, 0) == 0 )
79 static char csInterfaceApp[] = __INSTALL_ROOT"/AxWinUI";
80 char server_info[] = "AXWIN3_SERVER=00000";
81 char *envp[] = {server_info, NULL};
82 char *argv[] = {csInterfaceApp, NULL};
83 _SysDebug("server_tid = %i, &server_tid = %p", server_tid, &server_tid);
84 sprintf(server_info, "AXWIN3_SERVER=%i", server_tid);
85 execve(csInterfaceApp, argv, envp);
98 Input_FillSelect(&nfds, &fds);
99 IPC_FillSelect(&nfds, &fds);
102 if( _SysSelect(nfds, &fds, NULL, NULL, NULL, THREAD_EVENT_IPCMSG) == -1 ) {
103 _SysDebug("ERROR: select() returned -1");
107 Input_HandleSelect(&fds);
108 IPC_HandleSelect(&fds);
113 void ParseCommandline(int argc, char **argv)