mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 06:09:50 -06:00
Add a stubbed GCAdapter namespace.
This cleans up a bunch of #ifdef checks in places.
This commit is contained in:
@ -21,9 +21,7 @@ GCPadStatus CSIDevice_GCAdapter::GetPadStatus()
|
|||||||
GCPadStatus PadStatus;
|
GCPadStatus PadStatus;
|
||||||
memset(&PadStatus, 0, sizeof(PadStatus));
|
memset(&PadStatus, 0, sizeof(PadStatus));
|
||||||
|
|
||||||
#if defined(__LIBUSB__) || defined (_WIN32)
|
|
||||||
GCAdapter::Input(ISIDevice::m_iDeviceNumber, &PadStatus);
|
GCAdapter::Input(ISIDevice::m_iDeviceNumber, &PadStatus);
|
||||||
#endif
|
|
||||||
|
|
||||||
HandleMoviePadStatus(&PadStatus);
|
HandleMoviePadStatus(&PadStatus);
|
||||||
|
|
||||||
@ -38,11 +36,9 @@ int CSIDevice_GCAdapter::RunBuffer(u8* _pBuffer, int _iLength)
|
|||||||
// Read the command
|
// Read the command
|
||||||
EBufferCommands command = static_cast<EBufferCommands>(_pBuffer[3]);
|
EBufferCommands command = static_cast<EBufferCommands>(_pBuffer[3]);
|
||||||
|
|
||||||
#if defined(__LIBUSB__) || defined (_WIN32)
|
|
||||||
// get the correct pad number that should rumble locally when using netplay
|
// get the correct pad number that should rumble locally when using netplay
|
||||||
const u8 numPAD = NetPlay_InGamePadToLocalPad(ISIDevice::m_iDeviceNumber);
|
const u8 numPAD = NetPlay_InGamePadToLocalPad(ISIDevice::m_iDeviceNumber);
|
||||||
if (!GCAdapter::DeviceConnected(numPAD))
|
if (!GCAdapter::DeviceConnected(numPAD))
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
reinterpret_cast<u32*>(_pBuffer)[0] = SI_NONE;
|
reinterpret_cast<u32*>(_pBuffer)[0] = SI_NONE;
|
||||||
return 4;
|
return 4;
|
||||||
@ -122,7 +118,6 @@ void CSIDevice_GCAdapter::SendCommand(u32 _Cmd, u8 _Poll)
|
|||||||
|
|
||||||
case CMD_WRITE:
|
case CMD_WRITE:
|
||||||
{
|
{
|
||||||
#if defined(__LIBUSB__) || defined (_WIN32)
|
|
||||||
unsigned int uType = command.Parameter1; // 0 = stop, 1 = rumble, 2 = stop hard
|
unsigned int uType = command.Parameter1; // 0 = stop, 1 = rumble, 2 = stop hard
|
||||||
unsigned int uStrength = command.Parameter2;
|
unsigned int uStrength = command.Parameter2;
|
||||||
|
|
||||||
@ -136,7 +131,6 @@ void CSIDevice_GCAdapter::SendCommand(u32 _Cmd, u8 _Poll)
|
|||||||
else
|
else
|
||||||
GCAdapter::Output(numPAD, 0);
|
GCAdapter::Output(numPAD, 0);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
if (!_Poll)
|
if (!_Poll)
|
||||||
{
|
{
|
||||||
m_Mode = command.Parameter2;
|
m_Mode = command.Parameter2;
|
||||||
|
@ -30,7 +30,6 @@ GCAdapterConfigDiag::GCAdapterConfigDiag(wxWindow* const parent, const wxString&
|
|||||||
|
|
||||||
m_adapter_status = new wxStaticText(this, wxID_ANY, _("Adapter Not Detected"));
|
m_adapter_status = new wxStaticText(this, wxID_ANY, _("Adapter Not Detected"));
|
||||||
|
|
||||||
#if defined(__LIBUSB__) || defined (_WIN32)
|
|
||||||
if (!GCAdapter::IsDetected())
|
if (!GCAdapter::IsDetected())
|
||||||
{
|
{
|
||||||
if (!GCAdapter::IsDriverDetected())
|
if (!GCAdapter::IsDriverDetected())
|
||||||
@ -44,7 +43,6 @@ GCAdapterConfigDiag::GCAdapterConfigDiag(wxWindow* const parent, const wxString&
|
|||||||
m_adapter_status->SetLabelText(_("Adapter Detected"));
|
m_adapter_status->SetLabelText(_("Adapter Detected"));
|
||||||
}
|
}
|
||||||
GCAdapter::SetAdapterCallback(std::bind(&GCAdapterConfigDiag::ScheduleAdapterUpdate, this));
|
GCAdapter::SetAdapterCallback(std::bind(&GCAdapterConfigDiag::ScheduleAdapterUpdate, this));
|
||||||
#endif
|
|
||||||
|
|
||||||
szr->Add(m_adapter_status, 0, wxEXPAND);
|
szr->Add(m_adapter_status, 0, wxEXPAND);
|
||||||
szr->Add(gamecube_rumble, 0, wxEXPAND);
|
szr->Add(gamecube_rumble, 0, wxEXPAND);
|
||||||
@ -65,19 +63,15 @@ void GCAdapterConfigDiag::ScheduleAdapterUpdate()
|
|||||||
|
|
||||||
void GCAdapterConfigDiag::UpdateAdapter(wxCommandEvent& ev)
|
void GCAdapterConfigDiag::UpdateAdapter(wxCommandEvent& ev)
|
||||||
{
|
{
|
||||||
#if defined(__LIBUSB__) || defined (_WIN32)
|
|
||||||
bool unpause = Core::PauseAndLock(true);
|
bool unpause = Core::PauseAndLock(true);
|
||||||
if (GCAdapter::IsDetected())
|
if (GCAdapter::IsDetected())
|
||||||
m_adapter_status->SetLabelText(_("Adapter Detected"));
|
m_adapter_status->SetLabelText(_("Adapter Detected"));
|
||||||
else
|
else
|
||||||
m_adapter_status->SetLabelText(_("Adapter Not Detected"));
|
m_adapter_status->SetLabelText(_("Adapter Not Detected"));
|
||||||
Core::PauseAndLock(false, unpause);
|
Core::PauseAndLock(false, unpause);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GCAdapterConfigDiag::~GCAdapterConfigDiag()
|
GCAdapterConfigDiag::~GCAdapterConfigDiag()
|
||||||
{
|
{
|
||||||
#if defined(__LIBUSB__) || defined (_WIN32)
|
|
||||||
GCAdapter::SetAdapterCallback(nullptr);
|
GCAdapter::SetAdapterCallback(nullptr);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
@ -487,12 +487,10 @@ void ControllerConfigDiag::OnGameCubePortChanged(wxCommandEvent& event)
|
|||||||
|
|
||||||
SConfig::GetInstance().m_SIDevice[device_num] = tempType;
|
SConfig::GetInstance().m_SIDevice[device_num] = tempType;
|
||||||
|
|
||||||
#if defined(__LIBUSB__) || defined (_WIN32)
|
|
||||||
if (GCAdapter::UseAdapter())
|
if (GCAdapter::UseAdapter())
|
||||||
GCAdapter::StartScanThread();
|
GCAdapter::StartScanThread();
|
||||||
else
|
else
|
||||||
GCAdapter::StopScanThread();
|
GCAdapter::StopScanThread();
|
||||||
#endif
|
|
||||||
|
|
||||||
if (Core::IsRunning())
|
if (Core::IsRunning())
|
||||||
SerialInterface::ChangeDevice(tempType, device_num);
|
SerialInterface::ChangeDevice(tempType, device_num);
|
||||||
|
@ -37,6 +37,8 @@ endif()
|
|||||||
|
|
||||||
if(LIBUSB_FOUND)
|
if(LIBUSB_FOUND)
|
||||||
set(SRCS ${SRCS} GCAdapter.cpp)
|
set(SRCS ${SRCS} GCAdapter.cpp)
|
||||||
|
else()
|
||||||
|
set(SRCS ${SRCS} GCAdapter_Null.cpp)
|
||||||
endif(LIBUSB_FOUND)
|
endif(LIBUSB_FOUND)
|
||||||
|
|
||||||
if(LIBEVDEV_FOUND AND LIBUDEV_FOUND)
|
if(LIBEVDEV_FOUND AND LIBUDEV_FOUND)
|
||||||
|
@ -20,19 +20,12 @@
|
|||||||
|
|
||||||
namespace GCAdapter
|
namespace GCAdapter
|
||||||
{
|
{
|
||||||
enum ControllerTypes
|
|
||||||
{
|
|
||||||
CONTROLLER_NONE = 0,
|
|
||||||
CONTROLLER_WIRED = 1,
|
|
||||||
CONTROLLER_WIRELESS = 2
|
|
||||||
};
|
|
||||||
|
|
||||||
static bool CheckDeviceAccess(libusb_device* device);
|
static bool CheckDeviceAccess(libusb_device* device);
|
||||||
static void AddGCAdapter(libusb_device* device);
|
static void AddGCAdapter(libusb_device* device);
|
||||||
|
|
||||||
static bool s_detected = false;
|
static bool s_detected = false;
|
||||||
static libusb_device_handle* s_handle = nullptr;
|
static libusb_device_handle* s_handle = nullptr;
|
||||||
static u8 s_controller_type[MAX_SI_CHANNELS] = { CONTROLLER_NONE, CONTROLLER_NONE, CONTROLLER_NONE, CONTROLLER_NONE };
|
static u8 s_controller_type[MAX_SI_CHANNELS] = { ControllerTypes::CONTROLLER_NONE, ControllerTypes::CONTROLLER_NONE, ControllerTypes::CONTROLLER_NONE, ControllerTypes::CONTROLLER_NONE };
|
||||||
static u8 s_controller_rumble[4];
|
static u8 s_controller_rumble[4];
|
||||||
|
|
||||||
static std::mutex s_mutex;
|
static std::mutex s_mutex;
|
||||||
@ -189,7 +182,7 @@ void Setup()
|
|||||||
|
|
||||||
for (int i = 0; i < MAX_SI_CHANNELS; i++)
|
for (int i = 0; i < MAX_SI_CHANNELS; i++)
|
||||||
{
|
{
|
||||||
s_controller_type[i] = CONTROLLER_NONE;
|
s_controller_type[i] = ControllerTypes::CONTROLLER_NONE;
|
||||||
s_controller_rumble[i] = 0;
|
s_controller_rumble[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -339,7 +332,7 @@ void Reset()
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < MAX_SI_CHANNELS; i++)
|
for (int i = 0; i < MAX_SI_CHANNELS; i++)
|
||||||
s_controller_type[i] = CONTROLLER_NONE;
|
s_controller_type[i] = ControllerTypes::CONTROLLER_NONE;
|
||||||
|
|
||||||
s_detected = false;
|
s_detected = false;
|
||||||
|
|
||||||
@ -378,7 +371,7 @@ void Input(int chan, GCPadStatus* pad)
|
|||||||
{
|
{
|
||||||
bool get_origin = false;
|
bool get_origin = false;
|
||||||
u8 type = controller_payload_copy[1 + (9 * chan)] >> 4;
|
u8 type = controller_payload_copy[1 + (9 * chan)] >> 4;
|
||||||
if (type != CONTROLLER_NONE && s_controller_type[chan] == CONTROLLER_NONE)
|
if (type != ControllerTypes::CONTROLLER_NONE && s_controller_type[chan] == ControllerTypes::CONTROLLER_NONE)
|
||||||
{
|
{
|
||||||
NOTICE_LOG(SERIALINTERFACE, "New device connected to Port %d of Type: %02x", chan + 1, controller_payload_copy[1 + (9 * chan)]);
|
NOTICE_LOG(SERIALINTERFACE, "New device connected to Port %d of Type: %02x", chan + 1, controller_payload_copy[1 + (9 * chan)]);
|
||||||
get_origin = true;
|
get_origin = true;
|
||||||
@ -387,7 +380,7 @@ void Input(int chan, GCPadStatus* pad)
|
|||||||
s_controller_type[chan] = type;
|
s_controller_type[chan] = type;
|
||||||
|
|
||||||
memset(pad, 0, sizeof(*pad));
|
memset(pad, 0, sizeof(*pad));
|
||||||
if (s_controller_type[chan] != CONTROLLER_NONE)
|
if (s_controller_type[chan] != ControllerTypes::CONTROLLER_NONE)
|
||||||
{
|
{
|
||||||
u8 b1 = controller_payload_copy[1 + (9 * chan) + 1];
|
u8 b1 = controller_payload_copy[1 + (9 * chan) + 1];
|
||||||
u8 b2 = controller_payload_copy[1 + (9 * chan) + 2];
|
u8 b2 = controller_payload_copy[1 + (9 * chan) + 2];
|
||||||
@ -425,7 +418,7 @@ void Input(int chan, GCPadStatus* pad)
|
|||||||
|
|
||||||
bool DeviceConnected(int chan)
|
bool DeviceConnected(int chan)
|
||||||
{
|
{
|
||||||
return s_controller_type[chan] != CONTROLLER_NONE;
|
return s_controller_type[chan] != ControllerTypes::CONTROLLER_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UseAdapter()
|
bool UseAdapter()
|
||||||
@ -459,7 +452,7 @@ void Output(int chan, u8 rumble_command)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Skip over rumble commands if it has not changed or the controller is wireless
|
// Skip over rumble commands if it has not changed or the controller is wireless
|
||||||
if (rumble_command != s_controller_rumble[chan] && s_controller_type[chan] != CONTROLLER_WIRELESS)
|
if (rumble_command != s_controller_rumble[chan] && s_controller_type[chan] != ControllerTypes::CONTROLLER_WIRELESS)
|
||||||
{
|
{
|
||||||
s_controller_rumble[chan] = rumble_command;
|
s_controller_rumble[chan] = rumble_command;
|
||||||
|
|
||||||
|
@ -10,7 +10,12 @@ struct GCPadStatus;
|
|||||||
|
|
||||||
namespace GCAdapter
|
namespace GCAdapter
|
||||||
{
|
{
|
||||||
|
enum ControllerTypes
|
||||||
|
{
|
||||||
|
CONTROLLER_NONE = 0,
|
||||||
|
CONTROLLER_WIRED = 1,
|
||||||
|
CONTROLLER_WIRELESS = 2
|
||||||
|
};
|
||||||
void Init();
|
void Init();
|
||||||
void Reset();
|
void Reset();
|
||||||
void ResetRumble();
|
void ResetRumble();
|
||||||
|
23
Source/Core/InputCommon/GCAdapter_Null.cpp
Normal file
23
Source/Core/InputCommon/GCAdapter_Null.cpp
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
// Copyright 2014 Dolphin Emulator Project
|
||||||
|
// Licensed under GPLv2+
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include "InputCommon/GCAdapter.h"
|
||||||
|
namespace GCAdapter
|
||||||
|
{
|
||||||
|
void Init() {}
|
||||||
|
void Reset() {}
|
||||||
|
void ResetRumble() {}
|
||||||
|
void Setup() {}
|
||||||
|
void Shutdown() {}
|
||||||
|
void SetAdapterCallback(std::function<void(void)> func) {}
|
||||||
|
void StartScanThread() {}
|
||||||
|
void StopScanThread() {}
|
||||||
|
void Input(int chan, GCPadStatus* pad) {}
|
||||||
|
void Output(int chan, u8 rumble_command) {}
|
||||||
|
bool IsDetected() { return false; }
|
||||||
|
bool IsDriverDetected() { return false; }
|
||||||
|
bool DeviceConnected(int chan) { return false; }
|
||||||
|
bool UseAdapter() { return false; }
|
||||||
|
|
||||||
|
} // end of namespace GCAdapter
|
@ -28,9 +28,7 @@ void Init()
|
|||||||
SConfig::Init();
|
SConfig::Init();
|
||||||
VideoBackend::PopulateList();
|
VideoBackend::PopulateList();
|
||||||
WiimoteReal::LoadSettings();
|
WiimoteReal::LoadSettings();
|
||||||
#if defined(__LIBUSB__) || defined (_WIN32)
|
|
||||||
GCAdapter::Init();
|
GCAdapter::Init();
|
||||||
#endif
|
|
||||||
VideoBackend::ActivateBackend(SConfig::GetInstance().m_strVideoBackend);
|
VideoBackend::ActivateBackend(SConfig::GetInstance().m_strVideoBackend);
|
||||||
|
|
||||||
SetEnableAlert(SConfig::GetInstance().bUsePanicHandlers);
|
SetEnableAlert(SConfig::GetInstance().bUsePanicHandlers);
|
||||||
@ -38,9 +36,7 @@ void Init()
|
|||||||
|
|
||||||
void Shutdown()
|
void Shutdown()
|
||||||
{
|
{
|
||||||
#if defined(__LIBUSB__) || defined (_WIN32)
|
|
||||||
GCAdapter::Shutdown();
|
GCAdapter::Shutdown();
|
||||||
#endif
|
|
||||||
WiimoteReal::Shutdown();
|
WiimoteReal::Shutdown();
|
||||||
VideoBackend::ClearList();
|
VideoBackend::ClearList();
|
||||||
SConfig::Shutdown();
|
SConfig::Shutdown();
|
||||||
|
Reference in New Issue
Block a user