#include <acess/sys.h>
#include <stdlib.h>
#include <stdio.h>
-#include <axwin3/keysyms.h>
+#include <string.h>
+#include "include/lowlevel.h"
// === IMPORTS ===
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 int Renderer_RichText_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);
IPC_Init();
Input_Init();
- Renderer_Menu_Init();
- Renderer_Widget_Init();
- Renderer_Background_Init();
- Renderer_Framebuffer_Init();
- Renderer_RichText_Init();
WM_Initialise();
-
- // TODO: Move these to config
- uint32_t keys[4];
- keys[0] = KEYSYM_LEFTGUI; keys[1] = KEYSYM_r;
- WM_Hotkey_Register(2, keys, "Interface>Run");
- keys[0] = KEYSYM_LEFTGUI; keys[1] = KEYSYM_t;
- WM_Hotkey_Register(2, keys, "Interface>Terminal");
- keys[0] = KEYSYM_LEFTGUI; keys[1] = KEYSYM_e;
- WM_Hotkey_Register(2, keys, "Interface>TextEdit");
// Spawn interface root
if( !gbNoSpawnUI )
for(;;)
{
fd_set fds;
+ fd_set efds;
int nfds = 0;
FD_ZERO(&fds);
+ FD_ZERO(&efds);
WM_Update();
Input_FillSelect(&nfds, &fds);
- IPC_FillSelect(&nfds, &fds);
+ IPC_FillSelect(&nfds, &fds, &efds);
nfds ++;
- if( _SysSelect(nfds, &fds, NULL, NULL, NULL, THREAD_EVENT_IPCMSG) == -1 ) {
+ if( _SysSelect(nfds, &fds, NULL, &efds, NULL, THREAD_EVENT_IPCMSG) == -1 ) {
_SysDebug("ERROR: select() returned -1");
return -1;
}
Input_HandleSelect(&fds);
- IPC_HandleSelect(&fds);
+ IPC_HandleSelect(&fds, &efds);
}
return 0;
}