Add ControllerInterface::Win32 to wrap XInput and DInput

This commit is contained in:
Michael M
2017-11-10 09:56:13 -08:00
committed by Jordan Woyak
parent 377615b06f
commit 92ca6e124e
7 changed files with 69 additions and 30 deletions

View File

@ -8,11 +8,8 @@
#include "Common/Logging/Log.h"
#ifdef CIFACE_USE_XINPUT
#include "InputCommon/ControllerInterface/XInput/XInput.h"
#endif
#ifdef CIFACE_USE_DINPUT
#include "InputCommon/ControllerInterface/DInput/DInput.h"
#ifdef CIFACE_USE_WIN32
#include "InputCommon/ControllerInterface/Win32/Win32.h"
#endif
#ifdef CIFACE_USE_XLIB
#include "InputCommon/ControllerInterface/Xlib/XInput2.h"
@ -48,11 +45,8 @@ void ControllerInterface::Initialize(const WindowSystemInfo& wsi)
m_is_populating_devices = true;
#ifdef CIFACE_USE_DINPUT
// nothing needed
#endif
#ifdef CIFACE_USE_XINPUT
ciface::XInput::Init();
#ifdef CIFACE_USE_WIN32
ciface::Win32::Init();
#endif
#ifdef CIFACE_USE_XLIB
// nothing needed
@ -99,12 +93,8 @@ void ControllerInterface::RefreshDevices()
m_is_populating_devices = true;
#ifdef CIFACE_USE_DINPUT
if (m_wsi.type == WindowSystemType::Windows)
ciface::DInput::PopulateDevices(reinterpret_cast<HWND>(m_wsi.render_surface));
#endif
#ifdef CIFACE_USE_XINPUT
ciface::XInput::PopulateDevices();
#ifdef CIFACE_USE_WIN32
ciface::Win32::PopulateDevices(m_wsi.render_surface);
#endif
#ifdef CIFACE_USE_XLIB
if (m_wsi.type == WindowSystemType::X11)
@ -160,14 +150,11 @@ void ControllerInterface::Shutdown()
// BEFORE we shutdown the backends.
InvokeDevicesChangedCallbacks();
#ifdef CIFACE_USE_XINPUT
ciface::XInput::DeInit();
#endif
#ifdef CIFACE_USE_DINPUT
// nothing needed
#ifdef CIFACE_USE_WIN32
ciface::Win32::DeInit();
#endif
#ifdef CIFACE_USE_XLIB
// nothing needed
// nothing needed
#endif
#ifdef CIFACE_USE_OSX
ciface::OSX::DeInit();

View File

@ -15,8 +15,7 @@
// enable disable sources
#ifdef _WIN32
#define CIFACE_USE_XINPUT
#define CIFACE_USE_DINPUT
#define CIFACE_USE_WIN32
#endif
#if defined(HAVE_X11) && HAVE_X11
#define CIFACE_USE_XLIB

View File

@ -0,0 +1,26 @@
// Copyright 2017 Dolphin Emulator Project
// Licensed under GPLv2+
// Refer to the license.txt file included.
#include "InputCommon/ControllerInterface/Win32/Win32.h"
#include "InputCommon/ControllerInterface/DInput/DInput.h"
#include "InputCommon/ControllerInterface/XInput/XInput.h"
void ciface::Win32::Init()
{
// DInput::Init();
XInput::Init();
}
void ciface::Win32::PopulateDevices(void* hwnd)
{
DInput::PopulateDevices(static_cast<HWND>(hwnd));
XInput::PopulateDevices();
}
void ciface::Win32::DeInit()
{
// DInput::DeInit();
XInput::DeInit();
}

View File

@ -0,0 +1,15 @@
// Copyright 2017 Dolphin Emulator Project
// Licensed under GPLv2+
// Refer to the license.txt file included.
#pragma once
namespace ciface
{
namespace Win32
{
void Init();
void PopulateDevices(void* hwnd);
void DeInit();
}
}