From 6e503bebc43e17418d88261568a15cfc75757a17 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Wed, 6 Jan 2016 00:57:08 -0600 Subject: [PATCH] Add a stubbed GCAdapter namespace. This cleans up a bunch of #ifdef checks in places. --- Source/Core/Core/HW/SI_DeviceGCAdapter.cpp | 6 ----- .../DolphinWX/Config/GCAdapterConfigDiag.cpp | 6 ----- .../Core/DolphinWX/ControllerConfigDiag.cpp | 2 -- Source/Core/InputCommon/CMakeLists.txt | 2 ++ Source/Core/InputCommon/GCAdapter.cpp | 21 ++++++----------- Source/Core/InputCommon/GCAdapter.h | 7 +++++- Source/Core/InputCommon/GCAdapter_Null.cpp | 23 +++++++++++++++++++ Source/Core/UICommon/UICommon.cpp | 4 ---- 8 files changed, 38 insertions(+), 33 deletions(-) create mode 100644 Source/Core/InputCommon/GCAdapter_Null.cpp diff --git a/Source/Core/Core/HW/SI_DeviceGCAdapter.cpp b/Source/Core/Core/HW/SI_DeviceGCAdapter.cpp index 23ce9aac0c..0f2c55ca5d 100644 --- a/Source/Core/Core/HW/SI_DeviceGCAdapter.cpp +++ b/Source/Core/Core/HW/SI_DeviceGCAdapter.cpp @@ -21,9 +21,7 @@ GCPadStatus CSIDevice_GCAdapter::GetPadStatus() GCPadStatus PadStatus; memset(&PadStatus, 0, sizeof(PadStatus)); -#if defined(__LIBUSB__) || defined (_WIN32) GCAdapter::Input(ISIDevice::m_iDeviceNumber, &PadStatus); -#endif HandleMoviePadStatus(&PadStatus); @@ -38,11 +36,9 @@ int CSIDevice_GCAdapter::RunBuffer(u8* _pBuffer, int _iLength) // Read the command EBufferCommands command = static_cast(_pBuffer[3]); -#if defined(__LIBUSB__) || defined (_WIN32) // get the correct pad number that should rumble locally when using netplay const u8 numPAD = NetPlay_InGamePadToLocalPad(ISIDevice::m_iDeviceNumber); if (!GCAdapter::DeviceConnected(numPAD)) -#endif { reinterpret_cast(_pBuffer)[0] = SI_NONE; return 4; @@ -122,7 +118,6 @@ void CSIDevice_GCAdapter::SendCommand(u32 _Cmd, u8 _Poll) case CMD_WRITE: { -#if defined(__LIBUSB__) || defined (_WIN32) unsigned int uType = command.Parameter1; // 0 = stop, 1 = rumble, 2 = stop hard unsigned int uStrength = command.Parameter2; @@ -136,7 +131,6 @@ void CSIDevice_GCAdapter::SendCommand(u32 _Cmd, u8 _Poll) else GCAdapter::Output(numPAD, 0); } -#endif if (!_Poll) { m_Mode = command.Parameter2; diff --git a/Source/Core/DolphinWX/Config/GCAdapterConfigDiag.cpp b/Source/Core/DolphinWX/Config/GCAdapterConfigDiag.cpp index f72ad9d992..06ef12dd80 100644 --- a/Source/Core/DolphinWX/Config/GCAdapterConfigDiag.cpp +++ b/Source/Core/DolphinWX/Config/GCAdapterConfigDiag.cpp @@ -30,7 +30,6 @@ GCAdapterConfigDiag::GCAdapterConfigDiag(wxWindow* const parent, const wxString& m_adapter_status = new wxStaticText(this, wxID_ANY, _("Adapter Not Detected")); -#if defined(__LIBUSB__) || defined (_WIN32) if (!GCAdapter::IsDetected()) { if (!GCAdapter::IsDriverDetected()) @@ -44,7 +43,6 @@ GCAdapterConfigDiag::GCAdapterConfigDiag(wxWindow* const parent, const wxString& m_adapter_status->SetLabelText(_("Adapter Detected")); } GCAdapter::SetAdapterCallback(std::bind(&GCAdapterConfigDiag::ScheduleAdapterUpdate, this)); -#endif szr->Add(m_adapter_status, 0, wxEXPAND); szr->Add(gamecube_rumble, 0, wxEXPAND); @@ -65,19 +63,15 @@ void GCAdapterConfigDiag::ScheduleAdapterUpdate() void GCAdapterConfigDiag::UpdateAdapter(wxCommandEvent& ev) { -#if defined(__LIBUSB__) || defined (_WIN32) bool unpause = Core::PauseAndLock(true); if (GCAdapter::IsDetected()) m_adapter_status->SetLabelText(_("Adapter Detected")); else m_adapter_status->SetLabelText(_("Adapter Not Detected")); Core::PauseAndLock(false, unpause); -#endif } GCAdapterConfigDiag::~GCAdapterConfigDiag() { -#if defined(__LIBUSB__) || defined (_WIN32) GCAdapter::SetAdapterCallback(nullptr); -#endif } diff --git a/Source/Core/DolphinWX/ControllerConfigDiag.cpp b/Source/Core/DolphinWX/ControllerConfigDiag.cpp index 1e736ce56b..8bc510f7a5 100644 --- a/Source/Core/DolphinWX/ControllerConfigDiag.cpp +++ b/Source/Core/DolphinWX/ControllerConfigDiag.cpp @@ -487,12 +487,10 @@ void ControllerConfigDiag::OnGameCubePortChanged(wxCommandEvent& event) SConfig::GetInstance().m_SIDevice[device_num] = tempType; -#if defined(__LIBUSB__) || defined (_WIN32) if (GCAdapter::UseAdapter()) GCAdapter::StartScanThread(); else GCAdapter::StopScanThread(); -#endif if (Core::IsRunning()) SerialInterface::ChangeDevice(tempType, device_num); diff --git a/Source/Core/InputCommon/CMakeLists.txt b/Source/Core/InputCommon/CMakeLists.txt index 254dffce10..57484db14b 100644 --- a/Source/Core/InputCommon/CMakeLists.txt +++ b/Source/Core/InputCommon/CMakeLists.txt @@ -37,6 +37,8 @@ endif() if(LIBUSB_FOUND) set(SRCS ${SRCS} GCAdapter.cpp) +else() + set(SRCS ${SRCS} GCAdapter_Null.cpp) endif(LIBUSB_FOUND) if(LIBEVDEV_FOUND AND LIBUDEV_FOUND) diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index c3aea3dc4f..b5dc395b49 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -20,19 +20,12 @@ namespace GCAdapter { -enum ControllerTypes -{ - CONTROLLER_NONE = 0, - CONTROLLER_WIRED = 1, - CONTROLLER_WIRELESS = 2 -}; - static bool CheckDeviceAccess(libusb_device* device); static void AddGCAdapter(libusb_device* device); static bool s_detected = false; 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 std::mutex s_mutex; @@ -189,7 +182,7 @@ void Setup() 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; } @@ -339,7 +332,7 @@ void Reset() } 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; @@ -378,7 +371,7 @@ void Input(int chan, GCPadStatus* pad) { bool get_origin = false; 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)]); get_origin = true; @@ -387,7 +380,7 @@ void Input(int chan, GCPadStatus* pad) s_controller_type[chan] = type; 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 b2 = controller_payload_copy[1 + (9 * chan) + 2]; @@ -425,7 +418,7 @@ void Input(int chan, GCPadStatus* pad) bool DeviceConnected(int chan) { - return s_controller_type[chan] != CONTROLLER_NONE; + return s_controller_type[chan] != ControllerTypes::CONTROLLER_NONE; } bool UseAdapter() @@ -459,7 +452,7 @@ void Output(int chan, u8 rumble_command) return; // 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; diff --git a/Source/Core/InputCommon/GCAdapter.h b/Source/Core/InputCommon/GCAdapter.h index c8091291ff..5af8f7b915 100644 --- a/Source/Core/InputCommon/GCAdapter.h +++ b/Source/Core/InputCommon/GCAdapter.h @@ -10,7 +10,12 @@ struct GCPadStatus; namespace GCAdapter { - +enum ControllerTypes +{ + CONTROLLER_NONE = 0, + CONTROLLER_WIRED = 1, + CONTROLLER_WIRELESS = 2 +}; void Init(); void Reset(); void ResetRumble(); diff --git a/Source/Core/InputCommon/GCAdapter_Null.cpp b/Source/Core/InputCommon/GCAdapter_Null.cpp new file mode 100644 index 0000000000..0936eb33f1 --- /dev/null +++ b/Source/Core/InputCommon/GCAdapter_Null.cpp @@ -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 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 diff --git a/Source/Core/UICommon/UICommon.cpp b/Source/Core/UICommon/UICommon.cpp index 8a4e76c535..10e00584a2 100644 --- a/Source/Core/UICommon/UICommon.cpp +++ b/Source/Core/UICommon/UICommon.cpp @@ -28,9 +28,7 @@ void Init() SConfig::Init(); VideoBackend::PopulateList(); WiimoteReal::LoadSettings(); -#if defined(__LIBUSB__) || defined (_WIN32) GCAdapter::Init(); -#endif VideoBackend::ActivateBackend(SConfig::GetInstance().m_strVideoBackend); SetEnableAlert(SConfig::GetInstance().bUsePanicHandlers); @@ -38,9 +36,7 @@ void Init() void Shutdown() { -#if defined(__LIBUSB__) || defined (_WIN32) GCAdapter::Shutdown(); -#endif WiimoteReal::Shutdown(); VideoBackend::ClearList(); SConfig::Shutdown();