Windows should have support for Balance Board now.
Needs to be tested.
This commit is contained in:
parent
7208823396
commit
065d772696
|
@ -183,7 +183,7 @@ void WiimoteScanner::Update()
|
||||||
// Does not replace already found wiimotes even if they are disconnected.
|
// Does not replace already found wiimotes even if they are disconnected.
|
||||||
// wm is an array of max_wiimotes wiimotes
|
// wm is an array of max_wiimotes wiimotes
|
||||||
// Returns the total number of found and connected wiimotes.
|
// Returns the total number of found and connected wiimotes.
|
||||||
std::vector<Wiimote*> WiimoteScanner::FindWiimotes()
|
void WiimoteScanner::FindWiimotes(std::vector<Wiimote*> & found_wiimotes, Wiimote* & found_board)
|
||||||
{
|
{
|
||||||
ProcessWiimotes(true, [](HANDLE hRadio, const BLUETOOTH_RADIO_INFO& rinfo, BLUETOOTH_DEVICE_INFO_STRUCT& btdi)
|
ProcessWiimotes(true, [](HANDLE hRadio, const BLUETOOTH_RADIO_INFO& rinfo, BLUETOOTH_DEVICE_INFO_STRUCT& btdi)
|
||||||
{
|
{
|
||||||
|
@ -198,8 +198,6 @@ std::vector<Wiimote*> WiimoteScanner::FindWiimotes()
|
||||||
// Get all hid devices connected
|
// Get all hid devices connected
|
||||||
HDEVINFO const device_info = SetupDiGetClassDevs(&device_id, NULL, NULL, (DIGCF_DEVICEINTERFACE | DIGCF_PRESENT));
|
HDEVINFO const device_info = SetupDiGetClassDevs(&device_id, NULL, NULL, (DIGCF_DEVICEINTERFACE | DIGCF_PRESENT));
|
||||||
|
|
||||||
std::vector<Wiimote*> wiimotes;
|
|
||||||
|
|
||||||
SP_DEVICE_INTERFACE_DATA device_data;
|
SP_DEVICE_INTERFACE_DATA device_data;
|
||||||
device_data.cbSize = sizeof(device_data);
|
device_data.cbSize = sizeof(device_data);
|
||||||
PSP_DEVICE_INTERFACE_DETAIL_DATA detail_data = NULL;
|
PSP_DEVICE_INTERFACE_DETAIL_DATA detail_data = NULL;
|
||||||
|
@ -217,7 +215,25 @@ std::vector<Wiimote*> WiimoteScanner::FindWiimotes()
|
||||||
{
|
{
|
||||||
auto const wm = new Wiimote;
|
auto const wm = new Wiimote;
|
||||||
wm->devicepath = detail_data->DevicePath;
|
wm->devicepath = detail_data->DevicePath;
|
||||||
wiimotes.push_back(wm);
|
|
||||||
|
TCHAR name[128] = {};
|
||||||
|
HANDLE dev_handle = CreateFile(wm->devicepath.c_str(),
|
||||||
|
GENERIC_READ, FILE_SHARE_READ,
|
||||||
|
NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL);
|
||||||
|
|
||||||
|
if (dev_handle != INVALID_HANDLE_VALUE && HidD_GetProductString(dev_handle, name, 128) && IsBalanceBoardName(TStrToUTF8(name)))
|
||||||
|
{
|
||||||
|
found_board = wm;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
found_wiimotes.push_back(wm);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(dev_handle != INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
CloseHandle(dev_handle);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
free(detail_data);
|
free(detail_data);
|
||||||
|
@ -229,7 +245,6 @@ std::vector<Wiimote*> WiimoteScanner::FindWiimotes()
|
||||||
//if (!wiimotes.empty())
|
//if (!wiimotes.empty())
|
||||||
// SLEEP(2000);
|
// SLEEP(2000);
|
||||||
|
|
||||||
return wiimotes;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WiimoteScanner::IsReady() const
|
bool WiimoteScanner::IsReady() const
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
#include "InputConfig.h"
|
#include "InputConfig.h"
|
||||||
#include "../Src/ConfigManager.h"
|
#include "../../Core/Src/ConfigManager.h"
|
||||||
#include "../Src/HW/Wiimote.h"
|
#include "../../Core/Src/HW/Wiimote.h"
|
||||||
|
|
||||||
InputPlugin::~InputPlugin()
|
InputPlugin::~InputPlugin()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue