X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin4_src%2FServer%2Fmain.cpp;h=8f0d9e87b2e1cb3be8bddc2f9e495fef0956c79d;hb=b471bc9adca2cf2126c2b579bf0b33cedd2839a4;hp=362661ab903bca9d770b5f48913d8e9c81517422;hpb=4e407e69bd660e9a32644281733192193ee6e8c8;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin4_src/Server/main.cpp b/Usermode/Applications/axwin4_src/Server/main.cpp index 362661ab..8f0d9e87 100644 --- a/Usermode/Applications/axwin4_src/Server/main.cpp +++ b/Usermode/Applications/axwin4_src/Server/main.cpp @@ -1,10 +1,24 @@ /* + * Acess2 GUI v4 (AxWin4) + * - By John Hodge (thePowesGang) + * + * main.cpp + * - Program main */ #include #include #include #include +#include #include +#include +#include +#include + +extern "C" { +#include +#include +}; using namespace AxWin; @@ -21,14 +35,14 @@ int main(int argc, char *argv[]) return 1; } // - Open graphics - Graphics::Initialise(config.m_video); + CVideo* vid = new CVideo(config.m_video); + // - Initialise compositor structures + CCompositor* compositor = new CCompositor(/*config.m_compositor,*/ *vid); // - 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,20 +52,30 @@ 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; } +namespace AxWin { + +const char* InitFailure::what() const throw() +{ + return m_what; +} + + +} +