Mouse driver and AxWin
[tpg/acess2.git] / Usermode / Applications / axwin2_src / WM / main.c
1 /*
2  * Acess GUI (AxWin) Version 2
3  * By John Hodge (thePowersGang)
4  */
5 #include "common.h"
6 #include <acess/sys.h>
7
8 // === IMPORTS ===
9 extern void     ParseCommandline(int argc, char *argv[]);
10 extern void     Video_Setup(void);
11 extern void     WM_Update(void);
12 extern void     Interface_Init(void);
13 extern void     IPC_Init(void);
14 extern void     IPC_FillSelect(int *nfds, fd_set *set);
15 extern void     IPC_HandleSelect(fd_set *set);
16 extern void     Input_FillSelect(int *nfds, fd_set *set);
17 extern void     Input_HandleSelect(fd_set *set);
18
19 // === GLOBALS ===
20 char    *gsTerminalDevice = NULL;
21 char    *gsMouseDevice = NULL;
22
23  int    giScreenWidth = 640;
24  int    giScreenHeight = 480;
25 uint32_t        *gpScreenBuffer = NULL;
26
27  int    giTerminalFD = -1;
28  int    giMouseFD = -1;
29  
30
31 // === CODE ===
32 /**
33  * \brief Program Entrypoint
34  */
35 int main(int argc, char *argv[])
36 {
37         ParseCommandline(argc, argv);
38         
39         if( gsTerminalDevice == NULL ) {
40                 gsTerminalDevice = "/Devices/VTerm/6";
41         }
42         if( gsMouseDevice == NULL ) {
43                 gsMouseDevice = "/Devices/PS2Mouse";
44         }
45         
46         Video_Setup();
47         Interface_Init();
48         IPC_Init();
49         
50         WM_Update();
51         
52         // Main Loop
53         for(;;)
54         {
55                 fd_set  fds;
56                  int    nfds = 0;
57                 FD_ZERO(&fds);
58         
59                 Input_FillSelect(&nfds, &fds);
60                 IPC_FillSelect(&nfds, &fds);
61
62                 select(nfds, &fds, NULL, NULL, NULL);
63
64                 Input_HandleSelect(&fds);
65                 IPC_HandleSelect(&fds);
66         }
67         return 0;
68 }
69

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