#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);
int giScreenHeight = 480;
int giTerminalFD = -1;
+ int giTerminalFD_Input = 0;
int giMouseFD = -1;
#define __INSTALL_ROOT "/Acess/Apps/AxWin/3.0"
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();
-// WM_Update();
+ 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 )
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);
}
// Main Loop
int nfds = 0;
FD_ZERO(&fds);
+ WM_Update();
+
Input_FillSelect(&nfds, &fds);
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;
}