diff -r f351c261cbfd -r d3716f03efcd src/SpacenavWrapper.cpp --- a/src/SpacenavWrapper.cpp Thu Mar 07 17:56:38 2019 +0100 +++ b/src/SpacenavWrapper.cpp Thu Mar 07 18:33:22 2019 +0100 @@ -20,31 +20,27 @@ #include "SpacenavWrapper.h" SpacenavWrapper::SpacenavWrapper() { - // TODO: remove logging if (spnav_open() == 0) { - std::wcout << L"connected through: AF_UNIX socket" << std::endl; + connectionStatus = SpacenavWrapper::ConnectionStatus::DOMAIN_SOCKET; + return; } else { - Display* display; Window window; unsigned long blackPixel; + if (display = XOpenDisplay(0)) { - if (!(display = XOpenDisplay(0))) { - std::wcout << L"unable to connect to the X server" << std::endl; - return; // TODO: throw exception - } + blackPixel = BlackPixel(display, DefaultScreen(display)); + window = XCreateSimpleWindow(display, DefaultRootWindow(display), 0, 0, 1, 1, 0, blackPixel, blackPixel); - blackPixel = BlackPixel(display, DefaultScreen(display)); - window = XCreateSimpleWindow(display, DefaultRootWindow(display), 0, 0, 1, 1, 0, blackPixel, blackPixel); - - if (spnav_x11_open(display, window) == 0) { - std::wcout << L"connected through: X11" << std::endl; - } else { - std::wcout << L"unable to connect to the space navigator daemon" << std::endl; - return; // TODO: throw exception + if (spnav_x11_open(display, window) == 0) { + connectionStatus = SpacenavWrapper::ConnectionStatus::X11; + return; + } } } + + connectionStatus = SpacenavWrapper::ConnectionStatus::NONE; } SpacenavWrapper::~SpacenavWrapper() { @@ -53,6 +49,10 @@ spnav_close(); } +SpacenavWrapper::ConnectionStatus SpacenavWrapper::getConnectionStatus() { + return connectionStatus; +} + SpacenavWrapper::Event SpacenavWrapper::waitEvent() { SpacenavWrapper::Event e; spnav_event event;