X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin4_src%2FServer%2Fmain.cpp;h=e14ef13544a085383425f297eec23e02a9150461;hb=340e7923b1e95c39ac85a4b22af7f1b53b315cd9;hp=362661ab903bca9d770b5f48913d8e9c81517422;hpb=2d5d685c709f5cb7c635568bd23ae8356fdfcb33;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin4_src/Server/main.cpp b/Usermode/Applications/axwin4_src/Server/main.cpp index 362661ab..e14ef135 100644 --- a/Usermode/Applications/axwin4_src/Server/main.cpp +++ b/Usermode/Applications/axwin4_src/Server/main.cpp @@ -4,7 +4,15 @@ #include #include #include +#include #include +#include +#include + +extern "C" { +#include +#include +}; using namespace AxWin; @@ -22,13 +30,13 @@ int main(int argc, char *argv[]) } // - Open graphics Graphics::Initialise(config.m_video); + // - Initialise compositor structures + CCompositor* compositor = new CCompositor(/*config.m_compositor*/); // - Open input Input::Initialise(config.m_input); // > Handles hotkeys? - // - Initialise compositor structures - Compositor::Initialise(config.m_compositor); // - Bind IPC channels - IPC::Initialise(config.m_ipc); + IPC::Initialise(config.m_ipc, compositor); // - Start root child process (from config) // TODO: Spin up child process @@ -38,19 +46,19 @@ int main(int argc, char *argv[]) int nfd = 0; fd_set rfds; - Input::FillSelect(&nfd, &rfds); - IPC::FillSelect(&nfd, &rfds); + nfd = ::std::max(nfd, Input::FillSelect(rfds)); + nfd = ::std::max(nfd, IPC::FillSelect(rfds)); - // TODO: Timer events + // TODO: Support _SysSendMessage IPC? int64_t timeout = Timing::GetTimeToNextEvent(); - int rv = ::_SysSelect(nfd, &rfds, NULL, &rfds, NULL, 0); + int rv = ::_SysSelect(nfd, &rfds, NULL, &rfds, &timeout, 0); Timing::CheckEvents(); - Input::HandleSelect(&rfds); - IPC::HandleSelect(&rfds); + Input::HandleSelect(rfds); + IPC::HandleSelect(rfds); - Compositor::Redraw(); + compositor->Redraw(); } return 0; }