2 * Acess2 GUI (AxWin) Version 3
3 * - By John Hodge (thePowersGang)
13 #include "include/lowlevel.h"
16 extern void Video_Setup(void);
17 extern void WM_Initialise(void);
18 extern void WM_Update(void);
21 void ParseCommandline(int argc, char **argv);
24 const char *gsTerminalDevice = NULL;
25 const char *gsMouseDevice = NULL;
27 int giScreenWidth = 640;
28 int giScreenHeight = 480;
30 int giTerminalFD = -1;
31 int giTerminalFD_Input = 0;
34 #define __INSTALL_ROOT "/Acess/Apps/AxWin/3.0"
36 const char *gsInstallRoot = __INSTALL_ROOT;
37 const char *gsInterfaceApp = __INSTALL_ROOT"/AxWinUI";
42 * \brief Program Entrypoint
44 int main(int argc, char *argv[])
46 ParseCommandline(argc, argv);
48 if( gsTerminalDevice == NULL ) {
49 gsTerminalDevice = "/Devices/VTerm/6";
51 if( gsMouseDevice == NULL ) {
52 gsMouseDevice = "/Devices/Mouse/system";
61 // Spawn interface root
64 int server_tid = gettid();
65 _SysDebug("server_tid = %i", server_tid);
66 char server_info[] = "AXWIN3_SERVER=00000";
67 const char *envp[] = {server_info, NULL};
68 const char *argv[] = {gsInterfaceApp, NULL};
69 _SysDebug("server_tid = %i, &server_tid = %p", server_tid, &server_tid);
70 sprintf(server_info, "AXWIN3_SERVER=%i", server_tid);
71 // TODO: Does the client need FDs?
72 int rv = _SysSpawn(gsInterfaceApp, argv, envp, 0, NULL, NULL);
74 _SysDebug("_SysSpawn chucked a sad, rv=%i, errno=%i", rv, _errno);
89 Input_FillSelect(&nfds, &fds);
90 IPC_FillSelect(&nfds, &fds, &efds);
93 if( _SysSelect(nfds, &fds, NULL, &efds, NULL, THREAD_EVENT_IPCMSG) == -1 ) {
94 _SysDebug("ERROR: select() returned -1");
98 Input_HandleSelect(&fds);
99 IPC_HandleSelect(&fds, &efds);
104 void PrintUsage(void)
106 fprintf(stderr, "Arguments:\n");
107 fprintf(stderr, " --no-ui : Don't spawn the UI process\n");
110 void ParseCommandline(int argc, char **argv)
112 for( int i = 1; i < argc; i ++ )
114 if( argv[i][0] != '-' ) {
119 else if( argv[i][1] != '-' ) {
126 if( strcmp(argv[i], "--no-ui") == 0 ) {