Merge pull request #3903 from leoetlino/wiimote-disconnect
Disconnect real Wiimotes when disconnected by games (not on all platforms)
This commit is contained in:
commit
2776bcbf55
|
@ -71,7 +71,9 @@ void Pause()
|
|||
// An L2CAP packet is passed from the Core to the Wiimote on the HID CONTROL channel.
|
||||
void ControlChannel(int number, u16 channel_id, const void* data, u32 size)
|
||||
{
|
||||
if (WIIMOTE_SRC_HYBRID & g_wiimote_sources[number])
|
||||
if (WIIMOTE_SRC_REAL & g_wiimote_sources[number])
|
||||
WiimoteReal::ControlChannel(number, channel_id, data, size);
|
||||
else if (WIIMOTE_SRC_HYBRID & g_wiimote_sources[number])
|
||||
static_cast<WiimoteEmu::Wiimote*>(s_config.GetController(number))
|
||||
->ControlChannel(channel_id, data, size);
|
||||
}
|
||||
|
|
|
@ -150,6 +150,8 @@ void WiimoteScanner::FindWiimotes(std::vector<Wiimote*>& found_wiimotes, Wiimote
|
|||
|
||||
WiimoteLinux::WiimoteLinux(bdaddr_t bdaddr) : Wiimote(), m_bdaddr(bdaddr)
|
||||
{
|
||||
m_really_disconnect = true;
|
||||
|
||||
m_cmd_sock = -1;
|
||||
m_int_sock = -1;
|
||||
|
||||
|
|
|
@ -125,7 +125,10 @@ void Wiimote::ControlChannel(const u16 channel, const void* const data, const u3
|
|||
// Check for custom communication
|
||||
if (99 == channel)
|
||||
{
|
||||
EmuStop();
|
||||
if (m_really_disconnect)
|
||||
DisconnectInternal();
|
||||
else
|
||||
EmuStop();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -79,6 +79,10 @@ protected:
|
|||
Report m_last_input_report;
|
||||
u16 m_channel;
|
||||
u8 m_last_connect_request_counter;
|
||||
// If true, the Wiimote will be really disconnected when it is disconnected by Dolphin,
|
||||
// instead of just pausing data reporting.
|
||||
// This is not enabled on all platforms as connecting a Wiimote can be a pain on some platforms.
|
||||
bool m_really_disconnect = false;
|
||||
|
||||
private:
|
||||
void ClearReadQueue();
|
||||
|
|
Loading…
Reference in New Issue