mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-31 18:19:49 -06:00
Merge pull request #4492 from aldelaro5/gc-mic-ui-reimplement
Move the GameCube mic button configuration to the GameCube config dialog
This commit is contained in:
@ -47,6 +47,7 @@ set(GUI_SRCS
|
||||
Input/InputConfigDiagBitmaps.cpp
|
||||
Input/HotkeyInputConfigDiag.cpp
|
||||
Input/GCPadInputConfigDiag.cpp
|
||||
Input/MicButtonConfigDiag.cpp
|
||||
Input/GCKeyboardInputConfigDiag.cpp
|
||||
Input/WiimoteInputConfigDiag.cpp
|
||||
Input/NunchukInputConfigDiag.cpp
|
||||
|
@ -4,6 +4,7 @@
|
||||
|
||||
#include "DolphinWX/Config/GameCubeConfigPane.h"
|
||||
|
||||
#include <cassert>
|
||||
#include <string>
|
||||
|
||||
#include <wx/button.h>
|
||||
@ -22,8 +23,10 @@
|
||||
#include "Core/Core.h"
|
||||
#include "Core/HW/EXI.h"
|
||||
#include "Core/HW/GCMemcard.h"
|
||||
#include "Core/HW/GCPad.h"
|
||||
#include "Core/NetPlayProto.h"
|
||||
#include "DolphinWX/Config/ConfigMain.h"
|
||||
#include "DolphinWX/Input/MicButtonConfigDiag.h"
|
||||
#include "DolphinWX/WxEventUtils.h"
|
||||
#include "DolphinWX/WxUtils.h"
|
||||
|
||||
@ -167,6 +170,7 @@ void GameCubeConfigPane::LoadGUIValues()
|
||||
for (int i = 0; i < 3; ++i)
|
||||
{
|
||||
bool isMemcard = false;
|
||||
bool isMic = false;
|
||||
|
||||
// Add strings to the wxChoice list, the third wxChoice is the SP1 slot
|
||||
if (i == 2)
|
||||
@ -192,7 +196,7 @@ void GameCubeConfigPane::LoadGUIValues()
|
||||
isMemcard = m_exi_devices[i]->SetStringSelection(slot_devices[5]);
|
||||
break;
|
||||
case EXIDEVICE_MIC:
|
||||
m_exi_devices[i]->SetStringSelection(slot_devices[6]);
|
||||
isMic = m_exi_devices[i]->SetStringSelection(slot_devices[6]);
|
||||
break;
|
||||
case EXIDEVICE_ETH:
|
||||
m_exi_devices[i]->SetStringSelection(sp1_devices[2]);
|
||||
@ -203,7 +207,7 @@ void GameCubeConfigPane::LoadGUIValues()
|
||||
break;
|
||||
}
|
||||
|
||||
if (!isMemcard && i < 2)
|
||||
if (!isMemcard && !isMic && i < 2)
|
||||
m_memcard_path[i]->Disable();
|
||||
}
|
||||
}
|
||||
@ -265,14 +269,30 @@ void GameCubeConfigPane::OnSP1Changed(wxCommandEvent& event)
|
||||
ChooseEXIDevice(event.GetString(), 2);
|
||||
}
|
||||
|
||||
void GameCubeConfigPane::HandleEXISlotChange(int slot, const wxString& title)
|
||||
{
|
||||
assert(slot >= 0 && slot <= 1);
|
||||
|
||||
if (!m_exi_devices[slot]->GetStringSelection().compare(_(EXIDEV_MIC_STR)))
|
||||
{
|
||||
InputConfig* const pad_plugin = Pad::GetConfig();
|
||||
MicButtonConfigDialog dialog(this, *pad_plugin, title, slot);
|
||||
dialog.ShowModal();
|
||||
}
|
||||
else
|
||||
{
|
||||
ChooseSlotPath(false, SConfig::GetInstance().m_EXIDevice[slot]);
|
||||
}
|
||||
}
|
||||
|
||||
void GameCubeConfigPane::OnSlotAButtonClick(wxCommandEvent& event)
|
||||
{
|
||||
ChooseSlotPath(true, SConfig::GetInstance().m_EXIDevice[0]);
|
||||
HandleEXISlotChange(0, wxString(_("GameCube Microphone Slot A")));
|
||||
}
|
||||
|
||||
void GameCubeConfigPane::OnSlotBButtonClick(wxCommandEvent& event)
|
||||
{
|
||||
ChooseSlotPath(false, SConfig::GetInstance().m_EXIDevice[1]);
|
||||
HandleEXISlotChange(1, wxString(_("GameCube Microphone Slot B")));
|
||||
}
|
||||
|
||||
void GameCubeConfigPane::ChooseEXIDevice(const wxString& deviceName, int deviceNum)
|
||||
@ -297,7 +317,7 @@ void GameCubeConfigPane::ChooseEXIDevice(const wxString& deviceName, int deviceN
|
||||
tempType = EXIDEVICE_DUMMY;
|
||||
|
||||
// Gray out the memcard path button if we're not on a memcard or AGP
|
||||
if (tempType == EXIDEVICE_MEMORYCARD || tempType == EXIDEVICE_AGP)
|
||||
if (tempType == EXIDEVICE_MEMORYCARD || tempType == EXIDEVICE_AGP || tempType == EXIDEVICE_MIC)
|
||||
m_memcard_path[deviceNum]->Enable();
|
||||
else if (deviceNum == 0 || deviceNum == 1)
|
||||
m_memcard_path[deviceNum]->Disable();
|
||||
|
@ -34,6 +34,7 @@ private:
|
||||
void OnSlotBButtonClick(wxCommandEvent&);
|
||||
|
||||
void ChooseEXIDevice(const wxString& device_name, int device_id);
|
||||
void HandleEXISlotChange(int slot, const wxString& title);
|
||||
void ChooseSlotPath(bool is_slot_a, TEXIDevices device_type);
|
||||
|
||||
wxArrayString m_ipl_language_strings;
|
||||
|
@ -107,6 +107,7 @@
|
||||
<ClCompile Include="Input\InputConfigDiagBitmaps.cpp" />
|
||||
<ClCompile Include="Input\HotkeyInputConfigDiag.cpp" />
|
||||
<ClCompile Include="Input\GCPadInputConfigDiag.cpp" />
|
||||
<ClCompile Include="Input\MicButtonConfigDiag.cpp" />
|
||||
<ClCompile Include="Input\GCKeyboardInputConfigDiag.cpp" />
|
||||
<ClCompile Include="Input\WiimoteInputConfigDiag.cpp" />
|
||||
<ClCompile Include="Input\NunchukInputConfigDiag.cpp" />
|
||||
@ -187,6 +188,7 @@
|
||||
<ClInclude Include="Input\InputConfigDiag.h" />
|
||||
<ClInclude Include="Input\HotkeyInputConfigDiag.h" />
|
||||
<ClInclude Include="Input\GCPadInputConfigDiag.h" />
|
||||
<ClInclude Include="Input\MicButtonConfigDiag.h" />
|
||||
<ClInclude Include="Input\GCKeyboardInputConfigDiag.h" />
|
||||
<ClInclude Include="Input\WiimoteInputConfigDiag.h" />
|
||||
<ClInclude Include="Input\NunchukInputConfigDiag.h" />
|
||||
|
@ -119,6 +119,9 @@
|
||||
<ClCompile Include="Input\GCPadInputConfigDiag.cpp">
|
||||
<Filter>GUI\InputConfig</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\MicButtonConfigDiag.cpp">
|
||||
<Filter>GUI\InputConfig</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Input\GCKeyboardInputConfigDiag.cpp">
|
||||
<Filter>GUI\InputConfig</Filter>
|
||||
</ClCompile>
|
||||
@ -335,6 +338,9 @@
|
||||
<ClInclude Include="Input\GCPadInputConfigDiag.h">
|
||||
<Filter>GUI\InputConfig</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\MicButtonConfigDiag.h">
|
||||
<Filter>GUI\InputConfig</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Input\GCKeyboardInputConfigDiag.h">
|
||||
<Filter>GUI\InputConfig</Filter>
|
||||
</ClInclude>
|
||||
|
36
Source/Core/DolphinWX/Input/MicButtonConfigDiag.cpp
Normal file
36
Source/Core/DolphinWX/Input/MicButtonConfigDiag.cpp
Normal file
@ -0,0 +1,36 @@
|
||||
// Copyright 2016 Dolphin Emulator Project
|
||||
// Licensed under GPLv2+
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include "DolphinWX/Input/MicButtonConfigDiag.h"
|
||||
|
||||
#include "Core/HW/GCPad.h"
|
||||
#include "Core/HW/GCPadEmu.h"
|
||||
|
||||
MicButtonConfigDialog::MicButtonConfigDialog(wxWindow* const parent, InputConfig& config,
|
||||
const wxString& name, const int port_num)
|
||||
: InputConfigDialog(parent, config, name, port_num)
|
||||
{
|
||||
const int space5 = FromDIP(5);
|
||||
|
||||
auto* const device_chooser = CreateDeviceChooserGroupBox();
|
||||
|
||||
auto* const group_box_button =
|
||||
new ControlGroupBox(Pad::GetGroup(port_num, PadGroup::Mic), this, this);
|
||||
|
||||
auto* const controls_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
controls_sizer->Add(group_box_button, 0, wxEXPAND);
|
||||
|
||||
auto* const szr_main = new wxBoxSizer(wxVERTICAL);
|
||||
szr_main->AddSpacer(space5);
|
||||
szr_main->Add(device_chooser, 0, wxEXPAND);
|
||||
szr_main->AddSpacer(space5);
|
||||
szr_main->Add(controls_sizer, 1, wxEXPAND | wxLEFT | wxRIGHT, space5);
|
||||
szr_main->AddSpacer(space5);
|
||||
szr_main->Add(CreateButtonSizer(wxCLOSE | wxNO_DEFAULT), 0, wxEXPAND | wxLEFT | wxRIGHT, space5);
|
||||
szr_main->AddSpacer(space5);
|
||||
|
||||
SetSizer(szr_main);
|
||||
Center();
|
||||
UpdateGUI();
|
||||
}
|
14
Source/Core/DolphinWX/Input/MicButtonConfigDiag.h
Normal file
14
Source/Core/DolphinWX/Input/MicButtonConfigDiag.h
Normal file
@ -0,0 +1,14 @@
|
||||
// Copyright 2016 Dolphin Emulator Project
|
||||
// Licensed under GPLv2+
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "DolphinWX/Input/InputConfigDiag.h"
|
||||
|
||||
class MicButtonConfigDialog final : public InputConfigDialog
|
||||
{
|
||||
public:
|
||||
MicButtonConfigDialog(wxWindow* parent, InputConfig& config, const wxString& name,
|
||||
int port_num = 0);
|
||||
};
|
Reference in New Issue
Block a user