mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-30 01:29:42 -06:00
Merge pull request #3455 from Sonicadvance1/GC_adapter_android
[Android] Add support for the Wii U Gamecube adapter under Android.
This commit is contained in:
@ -10,6 +10,7 @@ set(GUI_SRCS
|
||||
Config/AudioConfigPane.cpp
|
||||
Config/ConfigMain.cpp
|
||||
Config/GameCubeConfigPane.cpp
|
||||
Config/GCAdapterConfigDiag.cpp
|
||||
Config/GeneralConfigPane.cpp
|
||||
Config/InterfaceConfigPane.cpp
|
||||
Config/PathConfigPane.cpp
|
||||
|
77
Source/Core/DolphinWX/Config/GCAdapterConfigDiag.cpp
Normal file
77
Source/Core/DolphinWX/Config/GCAdapterConfigDiag.cpp
Normal file
@ -0,0 +1,77 @@
|
||||
// Copyright 2010 Dolphin Emulator Project
|
||||
// Licensed under GPLv2+
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include <wx/checkbox.h>
|
||||
#include <wx/stattext.h>
|
||||
|
||||
#include "Common/CommonTypes.h"
|
||||
#include "Core/ConfigManager.h"
|
||||
#include "Core/Core.h"
|
||||
#include "DolphinWX/Config/GCAdapterConfigDiag.h"
|
||||
#include "InputCommon/GCAdapter.h"
|
||||
|
||||
wxDEFINE_EVENT(wxEVT_ADAPTER_UPDATE, wxCommandEvent);
|
||||
|
||||
|
||||
GCAdapterConfigDiag::GCAdapterConfigDiag(wxWindow* const parent, const wxString& name, const int tab_num)
|
||||
: wxDialog(parent, wxID_ANY, name, wxPoint(128,-1)), m_pad_id(tab_num)
|
||||
{
|
||||
wxBoxSizer* const szr = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
|
||||
wxCheckBox* const gamecube_rumble = new wxCheckBox(this, wxID_ANY, _("Rumble"));
|
||||
gamecube_rumble->SetValue(SConfig::GetInstance().m_AdapterRumble[m_pad_id]);
|
||||
gamecube_rumble->Bind(wxEVT_CHECKBOX, &GCAdapterConfigDiag::OnAdapterRumble, this);
|
||||
|
||||
wxCheckBox* const gamecube_konga = new wxCheckBox(this, wxID_ANY, _("Simulate DK TaruKonga"));
|
||||
gamecube_konga->SetValue(SConfig::GetInstance().m_AdapterKonga[m_pad_id]);
|
||||
gamecube_konga->Bind(wxEVT_CHECKBOX, &GCAdapterConfigDiag::OnAdapterKonga, this);
|
||||
|
||||
m_adapter_status = new wxStaticText(this, wxID_ANY, _("Adapter Not Detected"));
|
||||
|
||||
if (!GCAdapter::IsDetected())
|
||||
{
|
||||
if (!GCAdapter::IsDriverDetected())
|
||||
{
|
||||
m_adapter_status->SetLabelText(_("Driver Not Detected"));
|
||||
gamecube_rumble->Disable();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_adapter_status->SetLabelText(_("Adapter Detected"));
|
||||
}
|
||||
GCAdapter::SetAdapterCallback(std::bind(&GCAdapterConfigDiag::ScheduleAdapterUpdate, this));
|
||||
|
||||
szr->Add(m_adapter_status, 0, wxEXPAND);
|
||||
szr->Add(gamecube_rumble, 0, wxEXPAND);
|
||||
szr->Add(gamecube_konga, 0, wxEXPAND);
|
||||
szr->Add(CreateButtonSizer(wxOK | wxNO_DEFAULT), 0, wxEXPAND|wxALL, 5);
|
||||
|
||||
SetLayoutAdaptationMode(wxDIALOG_ADAPTATION_MODE_ENABLED);
|
||||
SetSizerAndFit(szr);
|
||||
Center();
|
||||
|
||||
Bind(wxEVT_ADAPTER_UPDATE, &GCAdapterConfigDiag::UpdateAdapter, this);
|
||||
}
|
||||
|
||||
void GCAdapterConfigDiag::ScheduleAdapterUpdate()
|
||||
{
|
||||
wxQueueEvent(this, new wxCommandEvent(wxEVT_ADAPTER_UPDATE));
|
||||
}
|
||||
|
||||
void GCAdapterConfigDiag::UpdateAdapter(wxCommandEvent& ev)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
GCAdapterConfigDiag::~GCAdapterConfigDiag()
|
||||
{
|
||||
GCAdapter::SetAdapterCallback(nullptr);
|
||||
}
|
40
Source/Core/DolphinWX/Config/GCAdapterConfigDiag.h
Normal file
40
Source/Core/DolphinWX/Config/GCAdapterConfigDiag.h
Normal file
@ -0,0 +1,40 @@
|
||||
// Copyright 2010 Dolphin Emulator Project
|
||||
// Licensed under GPLv2+
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstddef>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <wx/button.h>
|
||||
#include <wx/dialog.h>
|
||||
#include <wx/eventfilter.h>
|
||||
#include <wx/panel.h>
|
||||
#include <wx/sizer.h>
|
||||
|
||||
#include "Core/ConfigManager.h"
|
||||
|
||||
class GCAdapterConfigDiag : public wxDialog
|
||||
{
|
||||
public:
|
||||
GCAdapterConfigDiag(wxWindow* const parent, const wxString& name, const int tab_num = 0);
|
||||
~GCAdapterConfigDiag();
|
||||
|
||||
void ScheduleAdapterUpdate();
|
||||
void UpdateAdapter(wxCommandEvent& ev);
|
||||
|
||||
private:
|
||||
wxStaticText* m_adapter_status;
|
||||
int m_pad_id;
|
||||
|
||||
void OnAdapterRumble(wxCommandEvent& event)
|
||||
{
|
||||
SConfig::GetInstance().m_AdapterRumble[m_pad_id] = event.IsChecked();
|
||||
}
|
||||
|
||||
void OnAdapterKonga(wxCommandEvent& event)
|
||||
{
|
||||
SConfig::GetInstance().m_AdapterKonga[m_pad_id] = event.IsChecked();
|
||||
}
|
||||
};
|
@ -26,26 +26,24 @@
|
||||
#include "Core/HW/GCKeyboard.h"
|
||||
#include "Core/HW/GCPad.h"
|
||||
#include "Core/HW/SI.h"
|
||||
#if defined(__LIBUSB__) || defined (_WIN32)
|
||||
#include "Core/HW/SI_GCAdapter.h"
|
||||
#endif
|
||||
#include "Core/HW/Wiimote.h"
|
||||
#include "Core/HW/WiimoteReal/WiimoteReal.h"
|
||||
#include "DolphinWX/ControllerConfigDiag.h"
|
||||
#include "DolphinWX/InputConfigDiag.h"
|
||||
#include "DolphinWX/Config/GCAdapterConfigDiag.h"
|
||||
#include "InputCommon/GCAdapter.h"
|
||||
|
||||
#if defined(HAVE_XRANDR) && HAVE_XRANDR
|
||||
#include "DolphinWX/X11Utils.h"
|
||||
#endif
|
||||
|
||||
wxDEFINE_EVENT(wxEVT_ADAPTER_UPDATE, wxCommandEvent);
|
||||
|
||||
ControllerConfigDiag::ControllerConfigDiag(wxWindow* const parent)
|
||||
: wxDialog(parent, wxID_ANY, _("Dolphin Controller Configuration"))
|
||||
{
|
||||
m_gc_pad_type_strs = {{
|
||||
_("None"),
|
||||
_("Standard Controller"),
|
||||
_("GameCube Adapter for Wii U"),
|
||||
_("Steering Wheel"),
|
||||
_("Dance Mat"),
|
||||
_("TaruKonga (Bongos)"),
|
||||
@ -70,7 +68,6 @@ ControllerConfigDiag::ControllerConfigDiag(wxWindow* const parent)
|
||||
SetLayoutAdaptationMode(wxDIALOG_ADAPTATION_MODE_ENABLED);
|
||||
SetSizerAndFit(main_sizer);
|
||||
Center();
|
||||
Bind(wxEVT_ADAPTER_UPDATE, &ControllerConfigDiag::UpdateAdapter, this);
|
||||
}
|
||||
|
||||
wxStaticBoxSizer* ControllerConfigDiag::CreateGamecubeSizer()
|
||||
@ -113,24 +110,27 @@ wxStaticBoxSizer* ControllerConfigDiag::CreateGamecubeSizer()
|
||||
case SIDEVICE_GC_CONTROLLER:
|
||||
pad_type_choices[i]->SetStringSelection(m_gc_pad_type_strs[1]);
|
||||
break;
|
||||
case SIDEVICE_GC_STEERING:
|
||||
case SIDEVICE_WIIU_ADAPTER:
|
||||
pad_type_choices[i]->SetStringSelection(m_gc_pad_type_strs[2]);
|
||||
break;
|
||||
case SIDEVICE_DANCEMAT:
|
||||
case SIDEVICE_GC_STEERING:
|
||||
pad_type_choices[i]->SetStringSelection(m_gc_pad_type_strs[3]);
|
||||
break;
|
||||
case SIDEVICE_GC_TARUKONGA:
|
||||
case SIDEVICE_DANCEMAT:
|
||||
pad_type_choices[i]->SetStringSelection(m_gc_pad_type_strs[4]);
|
||||
break;
|
||||
case SIDEVICE_GC_GBA:
|
||||
case SIDEVICE_GC_TARUKONGA:
|
||||
pad_type_choices[i]->SetStringSelection(m_gc_pad_type_strs[5]);
|
||||
break;
|
||||
case SIDEVICE_GC_GBA:
|
||||
pad_type_choices[i]->SetStringSelection(m_gc_pad_type_strs[6]);
|
||||
gamecube_configure_bt[i]->Disable();
|
||||
break;
|
||||
case SIDEVICE_GC_KEYBOARD:
|
||||
pad_type_choices[i]->SetStringSelection(m_gc_pad_type_strs[6]);
|
||||
pad_type_choices[i]->SetStringSelection(m_gc_pad_type_strs[7]);
|
||||
break;
|
||||
case SIDEVICE_AM_BASEBOARD:
|
||||
pad_type_choices[i]->SetStringSelection(m_gc_pad_type_strs[7]);
|
||||
pad_type_choices[i]->SetStringSelection(m_gc_pad_type_strs[8]);
|
||||
break;
|
||||
default:
|
||||
pad_type_choices[i]->SetStringSelection(m_gc_pad_type_strs[0]);
|
||||
@ -147,67 +147,9 @@ wxStaticBoxSizer* ControllerConfigDiag::CreateGamecubeSizer()
|
||||
gamecube_static_sizer->Add(gamecube_flex_sizer, 1, wxEXPAND, 5);
|
||||
gamecube_static_sizer->AddSpacer(5);
|
||||
|
||||
wxStaticBoxSizer* const gamecube_adapter_group = new wxStaticBoxSizer(wxVERTICAL, this, _("GameCube Adapter"));
|
||||
wxBoxSizer* const gamecube_adapter_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
|
||||
wxCheckBox* const gamecube_adapter = new wxCheckBox(this, wxID_ANY, _("Direct Connect"));
|
||||
gamecube_adapter->Bind(wxEVT_CHECKBOX, &ControllerConfigDiag::OnGameCubeAdapter, this);
|
||||
|
||||
wxCheckBox* const gamecube_rumble = new wxCheckBox(this, wxID_ANY, _("Rumble"));
|
||||
gamecube_rumble->SetValue(SConfig::GetInstance().m_AdapterRumble);
|
||||
gamecube_rumble->Bind(wxEVT_CHECKBOX, &ControllerConfigDiag::OnAdapterRumble, this);
|
||||
|
||||
m_adapter_status = new wxStaticText(this, wxID_ANY, _("Adapter Not Detected"));
|
||||
|
||||
gamecube_adapter_group->Add(m_adapter_status, 0, wxEXPAND);
|
||||
gamecube_adapter_sizer->Add(gamecube_adapter, 0, wxEXPAND);
|
||||
gamecube_adapter_sizer->Add(gamecube_rumble, 0, wxEXPAND);
|
||||
gamecube_adapter_group->Add(gamecube_adapter_sizer, 0, wxEXPAND);
|
||||
gamecube_static_sizer->Add(gamecube_adapter_group, 0, wxEXPAND);
|
||||
|
||||
#if defined(__LIBUSB__) || defined (_WIN32)
|
||||
gamecube_adapter->SetValue(SConfig::GetInstance().m_GameCubeAdapter);
|
||||
if (!SI_GCAdapter::IsDetected())
|
||||
{
|
||||
if (!SI_GCAdapter::IsDriverDetected())
|
||||
{
|
||||
m_adapter_status->SetLabelText(_("Driver Not Detected"));
|
||||
gamecube_adapter->Disable();
|
||||
gamecube_adapter->SetValue(false);
|
||||
gamecube_rumble->Disable();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_adapter_status->SetLabelText(_("Adapter Detected"));
|
||||
}
|
||||
if (Core::GetState() != Core::CORE_UNINITIALIZED)
|
||||
{
|
||||
gamecube_adapter->Disable();
|
||||
}
|
||||
SI_GCAdapter::SetAdapterCallback(std::bind(&ControllerConfigDiag::ScheduleAdapterUpdate, this));
|
||||
#endif
|
||||
|
||||
return gamecube_static_sizer;
|
||||
}
|
||||
|
||||
void ControllerConfigDiag::ScheduleAdapterUpdate()
|
||||
{
|
||||
wxQueueEvent(this, new wxCommandEvent(wxEVT_ADAPTER_UPDATE));
|
||||
}
|
||||
|
||||
void ControllerConfigDiag::UpdateAdapter(wxCommandEvent& ev)
|
||||
{
|
||||
#if defined(__LIBUSB__) || defined (_WIN32)
|
||||
bool unpause = Core::PauseAndLock(true);
|
||||
if (SI_GCAdapter::IsDetected())
|
||||
m_adapter_status->SetLabelText(_("Adapter Detected"));
|
||||
else
|
||||
m_adapter_status->SetLabelText(_("Adapter Not Detected"));
|
||||
Core::PauseAndLock(false, unpause);
|
||||
#endif
|
||||
}
|
||||
|
||||
wxStaticBoxSizer* ControllerConfigDiag::CreateWiimoteConfigSizer()
|
||||
{
|
||||
wxStaticText* wiimote_label[4];
|
||||
@ -504,30 +446,35 @@ void ControllerConfigDiag::OnGameCubePortChanged(wxCommandEvent& event)
|
||||
}
|
||||
else if (device_name == m_gc_pad_type_strs[2])
|
||||
{
|
||||
tempType = SIDEVICE_GC_STEERING;
|
||||
tempType = SIDEVICE_WIIU_ADAPTER;
|
||||
gamecube_configure_bt[device_num]->Enable();
|
||||
}
|
||||
else if (device_name == m_gc_pad_type_strs[3])
|
||||
{
|
||||
tempType = SIDEVICE_DANCEMAT;
|
||||
tempType = SIDEVICE_GC_STEERING;
|
||||
gamecube_configure_bt[device_num]->Enable();
|
||||
}
|
||||
else if (device_name == m_gc_pad_type_strs[4])
|
||||
{
|
||||
tempType = SIDEVICE_GC_TARUKONGA;
|
||||
tempType = SIDEVICE_DANCEMAT;
|
||||
gamecube_configure_bt[device_num]->Enable();
|
||||
}
|
||||
else if (device_name == m_gc_pad_type_strs[5])
|
||||
{
|
||||
tempType = SIDEVICE_GC_TARUKONGA;
|
||||
gamecube_configure_bt[device_num]->Enable();
|
||||
}
|
||||
else if (device_name == m_gc_pad_type_strs[6])
|
||||
{
|
||||
tempType = SIDEVICE_GC_GBA;
|
||||
gamecube_configure_bt[device_num]->Disable();
|
||||
}
|
||||
else if (device_name == m_gc_pad_type_strs[6])
|
||||
else if (device_name == m_gc_pad_type_strs[7])
|
||||
{
|
||||
tempType = SIDEVICE_GC_KEYBOARD;
|
||||
gamecube_configure_bt[device_num]->Enable();
|
||||
}
|
||||
else if (device_name == m_gc_pad_type_strs[7])
|
||||
else if (device_name == m_gc_pad_type_strs[8])
|
||||
{
|
||||
tempType = SIDEVICE_AM_BASEBOARD;
|
||||
gamecube_configure_bt[device_num]->Enable();
|
||||
@ -540,6 +487,11 @@ void ControllerConfigDiag::OnGameCubePortChanged(wxCommandEvent& event)
|
||||
|
||||
SConfig::GetInstance().m_SIDevice[device_num] = tempType;
|
||||
|
||||
if (GCAdapter::UseAdapter())
|
||||
GCAdapter::StartScanThread();
|
||||
else
|
||||
GCAdapter::StopScanThread();
|
||||
|
||||
if (Core::IsRunning())
|
||||
SerialInterface::ChangeDevice(tempType, device_num);
|
||||
}
|
||||
@ -557,6 +509,11 @@ void ControllerConfigDiag::OnGameCubeConfigButton(wxCommandEvent& event)
|
||||
InputConfigDialog m_ConfigFrame(this, *key_plugin, _("GameCube Controller Configuration"), port_num);
|
||||
m_ConfigFrame.ShowModal();
|
||||
}
|
||||
else if (SConfig::GetInstance().m_SIDevice[port_num] == SIDEVICE_WIIU_ADAPTER)
|
||||
{
|
||||
GCAdapterConfigDiag m_ConfigFramg(this, _("Wii U Gamecube Controller Adapter Configuration"), port_num);
|
||||
m_ConfigFramg.ShowModal();
|
||||
}
|
||||
else
|
||||
{
|
||||
InputConfigDialog m_ConfigFrame(this, *pad_plugin, _("GameCube Controller Configuration"), port_num);
|
||||
@ -565,10 +522,3 @@ void ControllerConfigDiag::OnGameCubeConfigButton(wxCommandEvent& event)
|
||||
|
||||
HotkeyManagerEmu::Enable(true);
|
||||
}
|
||||
|
||||
ControllerConfigDiag::~ControllerConfigDiag()
|
||||
{
|
||||
#if defined(__LIBUSB__) || defined (_WIN32)
|
||||
SI_GCAdapter::SetAdapterCallback(nullptr);
|
||||
#endif
|
||||
}
|
||||
|
@ -10,8 +10,8 @@
|
||||
|
||||
#include "Common/SysConf.h"
|
||||
#include "Core/ConfigManager.h"
|
||||
#include "Core/HW/SI_GCAdapter.h"
|
||||
#include "Core/HW/Wiimote.h"
|
||||
#include "InputCommon/GCAdapter.h"
|
||||
|
||||
class InputConfig;
|
||||
class wxButton;
|
||||
@ -21,7 +21,6 @@ class ControllerConfigDiag : public wxDialog
|
||||
{
|
||||
public:
|
||||
ControllerConfigDiag(wxWindow* const parent);
|
||||
~ControllerConfigDiag();
|
||||
|
||||
private:
|
||||
void RefreshRealWiimotes(wxCommandEvent& event);
|
||||
@ -70,23 +69,6 @@ private:
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
void OnGameCubeAdapter(wxCommandEvent& event)
|
||||
{
|
||||
SConfig::GetInstance().m_GameCubeAdapter = event.IsChecked();
|
||||
#ifdef __LIBUSB__
|
||||
if (event.IsChecked())
|
||||
SI_GCAdapter::StartScanThread();
|
||||
else
|
||||
SI_GCAdapter::StopScanThread();
|
||||
#endif
|
||||
event.Skip();
|
||||
}
|
||||
void OnAdapterRumble(wxCommandEvent& event)
|
||||
{
|
||||
SConfig::GetInstance().m_AdapterRumble = event.IsChecked();
|
||||
}
|
||||
|
||||
|
||||
wxStaticBoxSizer* CreateGamecubeSizer();
|
||||
wxStaticBoxSizer* CreateWiimoteConfigSizer();
|
||||
wxStaticBoxSizer* CreateBalanceBoardSizer();
|
||||
@ -96,17 +78,14 @@ private:
|
||||
void Cancel(wxCommandEvent& event);
|
||||
void OnGameCubePortChanged(wxCommandEvent& event);
|
||||
void OnGameCubeConfigButton(wxCommandEvent& event);
|
||||
void ScheduleAdapterUpdate();
|
||||
void UpdateAdapter(wxCommandEvent& ev);
|
||||
|
||||
std::map<wxWindowID, unsigned int> m_gc_port_choice_ids;
|
||||
std::map<wxWindowID, unsigned int> m_gc_port_config_ids;
|
||||
std::array<wxString, 8> m_gc_pad_type_strs;
|
||||
std::array<wxString, 9> m_gc_pad_type_strs;
|
||||
|
||||
std::map<wxWindowID, unsigned int> m_wiimote_index_from_ctrl_id;
|
||||
unsigned int m_orig_wiimote_sources[MAX_BBMOTES];
|
||||
|
||||
wxStaticText* m_adapter_status;
|
||||
wxButton* wiimote_configure_bt[MAX_WIIMOTES];
|
||||
wxButton* gamecube_configure_bt[4];
|
||||
std::map<wxWindowID, unsigned int> m_wiimote_index_from_conf_bt_id;
|
||||
|
@ -58,6 +58,7 @@
|
||||
<ClCompile Include="Config\AudioConfigPane.cpp" />
|
||||
<ClCompile Include="Config\ConfigMain.cpp" />
|
||||
<ClCompile Include="Config\GameCubeConfigPane.cpp" />
|
||||
<ClCompile Include="Config\GCAdapterConfigDiag.cpp" />
|
||||
<ClCompile Include="Config\GeneralConfigPane.cpp" />
|
||||
<ClCompile Include="Config\InterfaceConfigPane.cpp" />
|
||||
<ClCompile Include="Config\PathConfigPane.cpp" />
|
||||
@ -113,6 +114,7 @@
|
||||
<ClInclude Include="Config\AdvancedConfigPane.h" />
|
||||
<ClInclude Include="Config\AudioConfigPane.h" />
|
||||
<ClInclude Include="Config\GameCubeConfigPane.h" />
|
||||
<ClInclude Include="Config\GCAdapterConfigDiag.h" />
|
||||
<ClInclude Include="Config\GeneralConfigPane.h" />
|
||||
<ClInclude Include="Config\InterfaceConfigPane.h" />
|
||||
<ClInclude Include="Config\PathConfigPane.h" />
|
||||
@ -246,4 +248,4 @@
|
||||
<Message Text="Copy: @(BinaryFiles) -> $(BinaryOutputDir)" Importance="High" />
|
||||
<Copy SourceFiles="@(BinaryFiles)" DestinationFolder="$(BinaryOutputDir)" />
|
||||
</Target>
|
||||
</Project>
|
||||
</Project>
|
||||
|
@ -178,6 +178,9 @@
|
||||
<ClCompile Include="Config\GameCubeConfigPane.cpp">
|
||||
<Filter>GUI\Config</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Config\GCAdapterConfigDiag.cpp">
|
||||
<Filter>GUI\Config</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Config\WiiConfigPane.cpp">
|
||||
<Filter>GUI\Config</Filter>
|
||||
</ClCompile>
|
||||
@ -339,6 +342,9 @@
|
||||
<ClInclude Include="Config\GameCubeConfigPane.h">
|
||||
<Filter>GUI\Config</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Config\GCAdapterConfigDiag.h">
|
||||
<Filter>GUI\Config</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Config\WiiConfigPane.h">
|
||||
<Filter>GUI\Config</Filter>
|
||||
</ClInclude>
|
||||
@ -369,4 +375,4 @@
|
||||
<ItemGroup>
|
||||
<Image Include="$(CoreDir)..\..\Installer\Dolphin.ico" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
|
Reference in New Issue
Block a user