src/SpacenavWrapper.cpp
branchv_0
changeset 9 d3716f03efcd
parent 6 49560660d230
child 11 aaa89fe98b63
--- 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;