diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..30cd6a3 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,41 @@ +cmake_minimum_required(VERSION 3.0) +project(libBoo) + +if(WIN32) + list(APPEND PLAT_SRCS + lib/win/WGLContext.cpp include/win/WGLContext.hpp + lib/inputdev/HIDListenerWinUSB.cpp + lib/inputdev/HIDDeviceWinUSB.cpp) +elseif(APPLE) + list(APPEND PLAT_SRCS + lib/mac/CGLCocoaView.mm + lib/mac/CGLContext.cpp include/mac/CGLContext.hpp + lib/inputdev/HIDListenerIOKit.cpp + lib/inputdev/HIDDeviceIOKit.cpp) +else() + list(APPEND PLAT_SRCS + lib/x11/GLXContext.cpp include/x11/GLXContext.hpp + lib/inputdev/HIDListenerUdev.cpp + lib/inputdev/HIDDeviceUdev.cpp) +endif() + +include_directories(include) + +add_library(Boo + lib/inputdev/CafeProPad.cpp include/inputdev/CafeProPad.hpp + lib/inputdev/RevolutionPad.cpp include/inputdev/RevolutionPad.hpp + lib/inputdev/DolphinSmashAdapter.cpp include/inputdev/DolphinSmashAdapter.hpp + lib/inputdev/DualshockPad.cpp include/inputdev/DualshockPad.hpp + lib/inputdev/GenericPad.cpp include/inputdev/GenericPad.hpp + lib/inputdev/DeviceBase.cpp include/inputdev/DeviceBase.hpp + lib/inputdev/DeviceSignature.cpp include/inputdev/DeviceSignature.hpp + include/inputdev/IHIDListener.hpp + lib/inputdev/IHIDDevice.hpp + lib/InputRelay.cpp include/InputRelay.hpp + lib/InputDeferredRelay.cpp include/InputDeferredRelay.hpp + lib/RetraceWaiter.cpp include/IRetraceWaiter.hpp + lib/Surface.cpp include/Surface.hpp include/ISurface.hpp + include/IInputWaiter.hpp + include/IGraphicsContext.hpp + include/boo.hpp + ${PLAT_SRCS}) \ No newline at end of file diff --git a/include/CQtOpenGLWindow.hpp b/include/CQtOpenGLWindow.hpp deleted file mode 100644 index 650513c..0000000 --- a/include/CQtOpenGLWindow.hpp +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef CQTOPENGLWINDOW_HPP -#define CQTOPENGLWINDOW_HPP - -#include -#include -#include - -class CQtOpenGLWindow : public QWindow, ISurface -{ - Q_OBJECT -public: - explicit CQtOpenGLWindow(QWindow *parent = 0); - CQtOpenGLWindow(); - - virtual void render(); - - virtual void initialize(); - - - public slots: - void renderLater(); - void renderNow(); - -protected: - bool event(QEvent *event) Q_DECL_OVERRIDE; - - void exposeEvent(QExposeEvent *event) Q_DECL_OVERRIDE; - -private: - bool m_update_pending; - bool m_animating; - - QOpenGLContext *m_context; -}; - -#endif // CQTOPENGLWINDOW_HPP diff --git a/include/CInputDeferredRelay.hpp b/include/InputDeferredRelay.hpp similarity index 100% rename from include/CInputDeferredRelay.hpp rename to include/InputDeferredRelay.hpp diff --git a/include/CInputRelay.hpp b/include/InputRelay.hpp similarity index 100% rename from include/CInputRelay.hpp rename to include/InputRelay.hpp diff --git a/include/CSurface.hpp b/include/Surface.hpp similarity index 100% rename from include/CSurface.hpp rename to include/Surface.hpp diff --git a/include/inputdev/CCafeProPad.hpp b/include/inputdev/CafeProPad.hpp similarity index 100% rename from include/inputdev/CCafeProPad.hpp rename to include/inputdev/CafeProPad.hpp diff --git a/include/inputdev/CDeviceBase.hpp b/include/inputdev/DeviceBase.hpp similarity index 100% rename from include/inputdev/CDeviceBase.hpp rename to include/inputdev/DeviceBase.hpp diff --git a/include/inputdev/CDeviceFinder.hpp b/include/inputdev/DeviceFinder.hpp similarity index 96% rename from include/inputdev/CDeviceFinder.hpp rename to include/inputdev/DeviceFinder.hpp index ec68a78..30b768d 100644 --- a/include/inputdev/CDeviceFinder.hpp +++ b/include/inputdev/DeviceFinder.hpp @@ -3,11 +3,11 @@ #include #include -#include -#include "CDeviceToken.hpp" +#include "DeviceToken.hpp" #include "IHIDListener.hpp" -#include "SDeviceSignature.hpp" +#include "DeviceSignature.hpp" #include +#include #ifdef _WIN32 #define _WIN32_LEAN_AND_MEAN 1 @@ -95,7 +95,10 @@ public: : m_listener(NULL) { if (skDevFinder) - throw std::runtime_error("only one instance of CDeviceFinder may be constructed"); + { + fprintf(stderr, "only one instance of CDeviceFinder may be constructed"); + abort(); + } skDevFinder = this; for (const char* typeName : types) { diff --git a/include/inputdev/SDeviceSignature.hpp b/include/inputdev/DeviceSignature.hpp similarity index 100% rename from include/inputdev/SDeviceSignature.hpp rename to include/inputdev/DeviceSignature.hpp diff --git a/include/inputdev/CDeviceToken.hpp b/include/inputdev/DeviceToken.hpp similarity index 97% rename from include/inputdev/CDeviceToken.hpp rename to include/inputdev/DeviceToken.hpp index 2908130..4af2c50 100644 --- a/include/inputdev/CDeviceToken.hpp +++ b/include/inputdev/DeviceToken.hpp @@ -2,8 +2,8 @@ #define CDEVICETOKEN #include -#include "CDeviceBase.hpp" -#include "SDeviceSignature.hpp" +#include "DeviceBase.hpp" +#include "DeviceSignature.hpp" namespace boo { diff --git a/include/inputdev/CDolphinSmashAdapter.hpp b/include/inputdev/DolphinSmashAdapter.hpp similarity index 98% rename from include/inputdev/CDolphinSmashAdapter.hpp rename to include/inputdev/DolphinSmashAdapter.hpp index ceb0795..4ea14c6 100644 --- a/include/inputdev/CDolphinSmashAdapter.hpp +++ b/include/inputdev/DolphinSmashAdapter.hpp @@ -2,7 +2,7 @@ #define CDOLPHINSMASHADAPTER_HPP #include -#include "CDeviceBase.hpp" +#include "DeviceBase.hpp" namespace boo { diff --git a/include/inputdev/CDualshockPad.hpp b/include/inputdev/DualshockPad.hpp similarity index 100% rename from include/inputdev/CDualshockPad.hpp rename to include/inputdev/DualshockPad.hpp diff --git a/include/inputdev/CGenericPad.hpp b/include/inputdev/GenericPad.hpp similarity index 90% rename from include/inputdev/CGenericPad.hpp rename to include/inputdev/GenericPad.hpp index 2444c3b..c8f4e41 100644 --- a/include/inputdev/CGenericPad.hpp +++ b/include/inputdev/GenericPad.hpp @@ -1,7 +1,7 @@ #ifndef CGENERICPAD_HPP #define CGENERICPAD_HPP -#include "CDeviceBase.hpp" +#include "DeviceBase.hpp" namespace boo { diff --git a/include/inputdev/IHIDListener.hpp b/include/inputdev/IHIDListener.hpp index a1a26ce..de4eda5 100644 --- a/include/inputdev/IHIDListener.hpp +++ b/include/inputdev/IHIDListener.hpp @@ -3,7 +3,7 @@ #include #include -#include "CDeviceToken.hpp" +#include "DeviceToken.hpp" namespace boo { diff --git a/include/inputdev/CRevolutionPad.hpp b/include/inputdev/RevolutionPad.hpp similarity index 100% rename from include/inputdev/CRevolutionPad.hpp rename to include/inputdev/RevolutionPad.hpp diff --git a/include/mac/CCGLContext.hpp b/include/mac/CGLContext.hpp similarity index 100% rename from include/mac/CCGLContext.hpp rename to include/mac/CGLContext.hpp diff --git a/include/win/CWGLContext.hpp b/include/win/WGLContext.hpp similarity index 100% rename from include/win/CWGLContext.hpp rename to include/win/WGLContext.hpp diff --git a/include/x11/CGLXContext.hpp b/include/x11/GLXContext.hpp similarity index 100% rename from include/x11/CGLXContext.hpp rename to include/x11/GLXContext.hpp diff --git a/lib/InputDeferredRelay.cpp b/lib/InputDeferredRelay.cpp new file mode 100644 index 0000000..beffafe --- /dev/null +++ b/lib/InputDeferredRelay.cpp @@ -0,0 +1 @@ +#include "InputDeferredRelay.hpp" diff --git a/lib/InputRelay.cpp b/lib/InputRelay.cpp new file mode 100644 index 0000000..36fa103 --- /dev/null +++ b/lib/InputRelay.cpp @@ -0,0 +1 @@ +#include "InputRelay.hpp" diff --git a/src/CRetraceWaiter.cpp b/lib/RetraceWaiter.cpp similarity index 100% rename from src/CRetraceWaiter.cpp rename to lib/RetraceWaiter.cpp diff --git a/src/CSurface.cpp b/lib/Surface.cpp similarity index 84% rename from src/CSurface.cpp rename to lib/Surface.cpp index e23af70..e5cc5e9 100644 --- a/src/CSurface.cpp +++ b/lib/Surface.cpp @@ -1,4 +1,4 @@ -#include "CSurface.hpp" +#include "Surface.hpp" namespace boo { diff --git a/lib/inputdev/CafeProPad.cpp b/lib/inputdev/CafeProPad.cpp new file mode 100644 index 0000000..6c9d763 --- /dev/null +++ b/lib/inputdev/CafeProPad.cpp @@ -0,0 +1 @@ +#include "inputdev/CafeProPad.hpp" diff --git a/src/inputdev/CDeviceBase.cpp b/lib/inputdev/DeviceBase.cpp similarity index 93% rename from src/inputdev/CDeviceBase.cpp rename to lib/inputdev/DeviceBase.cpp index c48c719..ef803dc 100644 --- a/src/inputdev/CDeviceBase.cpp +++ b/lib/inputdev/DeviceBase.cpp @@ -1,5 +1,5 @@ -#include "inputdev/CDeviceBase.hpp" -#include "inputdev/CDeviceToken.hpp" +#include "inputdev/DeviceBase.hpp" +#include "inputdev/DeviceToken.hpp" #include "IHIDDevice.hpp" namespace boo diff --git a/src/inputdev/SDeviceSignature.cpp b/lib/inputdev/DeviceSignature.cpp similarity index 94% rename from src/inputdev/SDeviceSignature.cpp rename to lib/inputdev/DeviceSignature.cpp index ced5ffe..ad6a2ef 100644 --- a/src/inputdev/SDeviceSignature.cpp +++ b/lib/inputdev/DeviceSignature.cpp @@ -1,6 +1,6 @@ -#include "inputdev/SDeviceSignature.hpp" -#include "inputdev/CDeviceToken.hpp" -#include "inputdev/CGenericPad.hpp" +#include "inputdev/DeviceSignature.hpp" +#include "inputdev/DeviceToken.hpp" +#include "inputdev/GenericPad.hpp" #include "IHIDDevice.hpp" namespace boo diff --git a/src/inputdev/CDolphinSmashAdapter.cpp b/lib/inputdev/DolphinSmashAdapter.cpp similarity index 98% rename from src/inputdev/CDolphinSmashAdapter.cpp rename to lib/inputdev/DolphinSmashAdapter.cpp index ab5106e..07276f9 100644 --- a/src/inputdev/CDolphinSmashAdapter.cpp +++ b/lib/inputdev/DolphinSmashAdapter.cpp @@ -1,4 +1,4 @@ -#include "inputdev/CDolphinSmashAdapter.hpp" +#include "inputdev/DolphinSmashAdapter.hpp" #include #include diff --git a/lib/inputdev/DualshockPad.cpp b/lib/inputdev/DualshockPad.cpp new file mode 100644 index 0000000..0ba7fb8 --- /dev/null +++ b/lib/inputdev/DualshockPad.cpp @@ -0,0 +1 @@ +#include "inputdev/DualshockPad.hpp" diff --git a/src/inputdev/CGenericPad.cpp b/lib/inputdev/GenericPad.cpp similarity index 70% rename from src/inputdev/CGenericPad.cpp rename to lib/inputdev/GenericPad.cpp index dc12a3e..1186fbf 100644 --- a/src/inputdev/CGenericPad.cpp +++ b/lib/inputdev/GenericPad.cpp @@ -1,5 +1,5 @@ -#include "inputdev/CGenericPad.hpp" -#include "inputdev/CDeviceToken.hpp" +#include "inputdev/GenericPad.hpp" +#include "inputdev/DeviceToken.hpp" namespace boo { diff --git a/src/inputdev/CHIDDeviceIOKit.cpp b/lib/inputdev/HIDDeviceIOKit.cpp similarity index 100% rename from src/inputdev/CHIDDeviceIOKit.cpp rename to lib/inputdev/HIDDeviceIOKit.cpp diff --git a/src/inputdev/CHIDDeviceUdev.cpp b/lib/inputdev/HIDDeviceUdev.cpp similarity index 97% rename from src/inputdev/CHIDDeviceUdev.cpp rename to lib/inputdev/HIDDeviceUdev.cpp index 48aaa11..4978423 100644 --- a/src/inputdev/CHIDDeviceUdev.cpp +++ b/lib/inputdev/HIDDeviceUdev.cpp @@ -1,10 +1,11 @@ #include "IHIDDevice.hpp" -#include "inputdev/CDeviceToken.hpp" -#include "inputdev/CDeviceBase.hpp" +#include "inputdev/DeviceToken.hpp" +#include "inputdev/DeviceBase.hpp" #include #include #include +#include #include #include #include @@ -213,7 +214,10 @@ public: else if (dType == CDeviceToken::DEVTYPE_GENERICHID) m_thread = new std::thread(_threadProcHID, this); else - throw std::runtime_error("invalid token supplied to device constructor"); + { + fprintf(stderr, "invalid token supplied to device constructor"); + abort(); + } m_initCond.wait(lk); } diff --git a/src/inputdev/CHIDDeviceWinUSB.cpp b/lib/inputdev/HIDDeviceWinUSB.cpp similarity index 100% rename from src/inputdev/CHIDDeviceWinUSB.cpp rename to lib/inputdev/HIDDeviceWinUSB.cpp diff --git a/src/inputdev/CHIDListenerIOKit.cpp b/lib/inputdev/HIDListenerIOKit.cpp similarity index 100% rename from src/inputdev/CHIDListenerIOKit.cpp rename to lib/inputdev/HIDListenerIOKit.cpp diff --git a/src/inputdev/CHIDListenerUdev.cpp b/lib/inputdev/HIDListenerUdev.cpp similarity index 97% rename from src/inputdev/CHIDListenerUdev.cpp rename to lib/inputdev/HIDListenerUdev.cpp index eba7e61..aa4e851 100644 --- a/src/inputdev/CHIDListenerUdev.cpp +++ b/lib/inputdev/HIDListenerUdev.cpp @@ -1,7 +1,8 @@ #include "inputdev/IHIDListener.hpp" -#include "inputdev/CDeviceFinder.hpp" +#include "inputdev/DeviceFinder.hpp" #include #include +#include #include namespace boo @@ -146,7 +147,10 @@ public: /* Setup hotplug events */ m_udevMon = udev_monitor_new_from_netlink(GetUdev(), "udev"); if (!m_udevMon) - throw std::runtime_error("unable to init udev_monitor"); + { + fprintf(stderr, "unable to init udev_monitor"); + abort(); + } udev_monitor_filter_add_match_subsystem_devtype(m_udevMon, "usb", "usb_device"); udev_monitor_filter_add_match_subsystem_devtype(m_udevMon, "bluetooth", "bluetooth_device"); udev_monitor_filter_update(m_udevMon); diff --git a/src/inputdev/CHIDListenerWinUSB.cpp b/lib/inputdev/HIDListenerWinUSB.cpp similarity index 100% rename from src/inputdev/CHIDListenerWinUSB.cpp rename to lib/inputdev/HIDListenerWinUSB.cpp diff --git a/src/inputdev/IHIDDevice.hpp b/lib/inputdev/IHIDDevice.hpp similarity index 93% rename from src/inputdev/IHIDDevice.hpp rename to lib/inputdev/IHIDDevice.hpp index 99ca399..82b090a 100644 --- a/src/inputdev/IHIDDevice.hpp +++ b/lib/inputdev/IHIDDevice.hpp @@ -1,7 +1,7 @@ #ifndef IHIDDEVICE_HPP #define IHIDDEVICE_HPP -#include "inputdev/CDeviceToken.hpp" +#include "inputdev/DeviceToken.hpp" namespace boo { diff --git a/lib/inputdev/RevolutionPad.cpp b/lib/inputdev/RevolutionPad.cpp new file mode 100644 index 0000000..d034459 --- /dev/null +++ b/lib/inputdev/RevolutionPad.cpp @@ -0,0 +1 @@ +#include "inputdev/RevolutionPad.hpp" diff --git a/src/mac/CCGLCocoaView.mm b/lib/mac/CGLCocoaView.mm similarity index 100% rename from src/mac/CCGLCocoaView.mm rename to lib/mac/CGLCocoaView.mm diff --git a/src/mac/CCGLContext.cpp b/lib/mac/CGLContext.cpp similarity index 100% rename from src/mac/CCGLContext.cpp rename to lib/mac/CGLContext.cpp diff --git a/src/win/CWGLContext.cpp b/lib/win/WGLContext.cpp similarity index 100% rename from src/win/CWGLContext.cpp rename to lib/win/WGLContext.cpp diff --git a/src/x11/CGLXContext.cpp b/lib/x11/GLXContext.cpp similarity index 82% rename from src/x11/CGLXContext.cpp rename to lib/x11/GLXContext.cpp index f1e42e2..379f1ce 100644 --- a/src/x11/CGLXContext.cpp +++ b/lib/x11/GLXContext.cpp @@ -1,5 +1,4 @@ -#if !defined(__APPLE__) && (defined(__linux__) || defined(BSD)) -#include "x11/CGLXContext.hpp" +#include "x11/GLXContext.hpp" #include namespace boo @@ -59,5 +58,3 @@ int CGLXContext::blueDepth() const } } - -#endif // !defined(__APPLE__) && (defined(__linux__) || defined(BSD)) diff --git a/libBoo.pri b/libBoo.pri deleted file mode 100644 index f589cd3..0000000 --- a/libBoo.pri +++ /dev/null @@ -1,75 +0,0 @@ -HEADERS += \ - $$PWD/include/boo.hpp \ - $$PWD/include/IGraphicsContext.hpp \ - $$PWD/include/ISurface.hpp \ - $$PWD/include/CSurface.hpp \ - $$PWD/include/IRetraceWaiter.hpp \ - $$PWD/include/IInputWaiter.hpp \ - $$PWD/include/CInputRelay.hpp \ - $$PWD/include/CInputDeferredRelay.hpp \ - $$PWD/include/inputdev/CDolphinSmashAdapter.hpp \ - $$PWD/include/inputdev/CRevolutionPad.hpp \ - $$PWD/include/inputdev/CCafeProPad.hpp \ - $$PWD/include/inputdev/CDualshockPad.hpp \ - $$PWD/include/inputdev/CGenericPad.hpp \ - $$PWD/include/inputdev/CDeviceFinder.hpp \ - $$PWD/include/inputdev/CDeviceToken.hpp \ - $$PWD/include/inputdev/CDeviceBase.hpp \ - $$PWD/include/inputdev/IHIDListener.hpp \ - $$PWD/src/inputdev/IHIDDevice.hpp \ - $$PWD/include/inputdev/SDeviceSignature.hpp - -SOURCES += \ - $$PWD/InputDeviceClasses.cpp \ - $$PWD/src/CSurface.cpp \ - $$PWD/src/CRetraceWaiter.cpp \ - $$PWD/src/CInputRelay.cpp \ - $$PWD/src/CInputDeferredRelay.cpp \ - $$PWD/src/inputdev/CDolphinSmashAdapter.cpp \ - $$PWD/src/inputdev/CRevolutionPad.cpp \ - $$PWD/src/inputdev/CCafeProPad.cpp \ - $$PWD/src/inputdev/CDualshockPad.cpp \ - $$PWD/src/inputdev/CGenericPad.cpp \ - $$PWD/src/inputdev/CDeviceBase.cpp \ - $$PWD/src/inputdev/SDeviceSignature.cpp - -unix:!macx { - HEADERS += \ - $$PWD/include/x11/CGLXContext.hpp - - SOURCES += \ - $$PWD/src/x11/CGLXContext.cpp -} - -linux { - SOURCES += \ - $$PWD/src/inputdev/CHIDListenerUdev.cpp \ - $$PWD/src/inputdev/CHIDDeviceUdev.cpp - - LIBS += -ludev -} - -macx { - HEADERS += \ - $$PWD/include/mac/CCGLContext.hpp - - SOURCES += \ - $$PWD/src/mac/CCGLContext.cpp \ - $$PWD/src/inputdev/CHIDDeviceIOKit.cpp \ - $$PWD/src/inputdev/CHIDListenerIOKit.cpp - - OBJECTIVE_SOURCES += \ - $$PWD/src/mac/CCGLCocoaView.mm -} - -win32 { - HEADERS += \ - $$PWD/include/win/CWGLContext.hpp - SOURCES += \ - $$PWD/src/win/CWGLContext.cpp \ - $$PWD/src/inputdev/CHIDListenerWinUSB.cpp \ - $$PWD/src/inputdev/CHIDDeviceWinUSB.cpp -} - -INCLUDEPATH += $$PWD/include - diff --git a/libBoo.pro b/libBoo.pro deleted file mode 100644 index f26f9eb..0000000 --- a/libBoo.pro +++ /dev/null @@ -1,14 +0,0 @@ -CONFIG -= Qt -CONFIG += console -#QMAKE_CXXFLAGS -= -std=c++0x -#CONFIG += c++11 -unix:QMAKE_CXXFLAGS += -std=c++11 -stdlib=libc++ -unix:LIBS += -std=c++11 -stdlib=libc++ -lc++abi - -win32:LIBS += Setupapi.lib winusb.lib User32.lib /SUBSYSTEM:Windows - -#unix:!macx:CONFIG += link_pkgconfig -#unix:!macx:PKGCONFIG += x11 - -include(libBoo.pri) -include(test/test.pri) diff --git a/src/CInputDeferredRelay.cpp b/src/CInputDeferredRelay.cpp deleted file mode 100644 index 7fed569..0000000 --- a/src/CInputDeferredRelay.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "CInputDeferredRelay.hpp" \ No newline at end of file diff --git a/src/CInputRelay.cpp b/src/CInputRelay.cpp deleted file mode 100644 index 2d38700..0000000 --- a/src/CInputRelay.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "CInputRelay.hpp" \ No newline at end of file diff --git a/src/CQtOpenGLWindow.cpp b/src/CQtOpenGLWindow.cpp deleted file mode 100644 index 07d3ba2..0000000 --- a/src/CQtOpenGLWindow.cpp +++ /dev/null @@ -1,3 +0,0 @@ -#include "CQtOpenGLWindow.hpp" - - diff --git a/src/inputdev/CCafeProPad.cpp b/src/inputdev/CCafeProPad.cpp deleted file mode 100644 index bcedf76..0000000 --- a/src/inputdev/CCafeProPad.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "inputdev/CCafeProPad.hpp" diff --git a/src/inputdev/CDualshockPad.cpp b/src/inputdev/CDualshockPad.cpp deleted file mode 100644 index 4d14e77..0000000 --- a/src/inputdev/CDualshockPad.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "inputdev/CDualshockPad.hpp" diff --git a/src/inputdev/CRevolutionPad.cpp b/src/inputdev/CRevolutionPad.cpp deleted file mode 100644 index cd0e214..0000000 --- a/src/inputdev/CRevolutionPad.cpp +++ /dev/null @@ -1 +0,0 @@ -#include "inputdev/CRevolutionPad.hpp" diff --git a/test/main.cpp b/test/main.cpp deleted file mode 100644 index 79e4b27..0000000 --- a/test/main.cpp +++ /dev/null @@ -1,166 +0,0 @@ -#define _CRT_SECURE_NO_WARNINGS 1 - -#if __APPLE__ -#include -#else -#endif -#include -#include -#if _WIN32 -#define _WIN32_LEAN_AND_MEAN 1 -#include -#include -#include -#else -#include -#endif - -namespace boo -{ - -class CDolphinSmashAdapterCallback : public IDolphinSmashAdapterCallback -{ - void controllerConnected(unsigned idx, EDolphinControllerType type) - { - printf("CONTROLLER %u CONNECTED\n", idx); - } - void controllerDisconnected(unsigned idx, EDolphinControllerType type) - { - printf("CONTROLLER %u DISCONNECTED\n", idx); - } - void controllerUpdate(unsigned idx, EDolphinControllerType type, - const SDolphinControllerState& state) - { - printf("CONTROLLER %u UPDATE %d %d\n", idx, state.m_leftStick[0], state.m_leftStick[1]); - } -}; - -class CTestDeviceFinder : public CDeviceFinder -{ - CDolphinSmashAdapter* smashAdapter = NULL; - CDolphinSmashAdapterCallback m_cb; -public: - CTestDeviceFinder() - : CDeviceFinder({"CDolphinSmashAdapter"}) - {} - void deviceConnected(CDeviceToken& tok) - { - smashAdapter = dynamic_cast(tok.openAndGetDevice()); - smashAdapter->setCallback(&m_cb); - smashAdapter->startRumble(0); - } - void deviceDisconnected(CDeviceToken&, CDeviceBase* device) - { - if (smashAdapter == device) - { - delete smashAdapter; - smashAdapter = NULL; - } - } -}; - -} - -#if _WIN32 - -/* This simple 'test' console app needs a full windows - * message loop for receiving device connection events - */ -static const DEV_BROADCAST_DEVICEINTERFACE_A HOTPLUG_CONF = -{ - sizeof(DEV_BROADCAST_DEVICEINTERFACE_A), - DBT_DEVTYP_DEVICEINTERFACE, - 0, - GUID_DEVINTERFACE_USB_DEVICE -}; - -LRESULT CALLBACK WindowProc( - _In_ HWND hwnd, - _In_ UINT uMsg, - _In_ WPARAM wParam, - _In_ LPARAM lParam -) -{ - switch (uMsg) - { - case WM_CREATE: - /* Register hotplug notification with windows */ - RegisterDeviceNotificationA(hwnd, (LPVOID)&HOTPLUG_CONF, DEVICE_NOTIFY_WINDOW_HANDLE); - return 0; - - case WM_DEVICECHANGE: - return boo::CDeviceFinder::winDevChangedHandler(wParam, lParam); - - default: - return DefWindowProc(hwnd, uMsg, wParam, lParam); - } -} - -int APIENTRY wWinMain( - _In_ HINSTANCE hInstance, - _In_ HINSTANCE, - _In_ LPTSTR, - _In_ int -) -{ - AllocConsole(); - freopen("CONOUT$", "w", stdout); - - WNDCLASS wndClass = - { - 0, - WindowProc, - 0, - 0, - hInstance, - 0, - 0, - 0, - 0, - L"BooTestWindow" - }; - - RegisterClassW(&wndClass); - - boo::CTestDeviceFinder finder; - finder.startScanning(); - - HWND hwnd = CreateWindowW(L"BooTestWindow", L"BooTest", WS_OVERLAPPEDWINDOW, - CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, - NULL, NULL, hInstance, NULL); - - /* Pump messages */ - MSG msg = {0}; - while (GetMessage(&msg, hwnd, 0, 0)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - -} - -#else - -int main(int argc, char** argv) -{ - - boo::CTestDeviceFinder finder; - finder.startScanning(); - -#if 0 - boo::IGraphicsContext* ctx = new boo::CGraphicsContext; - - if (ctx->create()) - { - } -#endif - -#if __APPLE__ - CFRunLoopRun(); -#endif - - //delete ctx; - return 0; -} - -#endif diff --git a/test/test.pri b/test/test.pri deleted file mode 100644 index 872e5fb..0000000 --- a/test/test.pri +++ /dev/null @@ -1,4 +0,0 @@ -SOURCES += \ - $$PWD/main.cpp - -win32:SOURCES +=