From 873b6285b9d2bcb5832a7a098b4c28b15688aa5d Mon Sep 17 00:00:00 2001 From: capitalistspz Date: Thu, 26 Sep 2024 17:01:10 +0100 Subject: [PATCH] Use bdaddr to compare `L2CapWiimote`s --- src/input/api/Wiimote/l2cap/L2CapWiimote.cpp | 8 ++++---- src/input/api/Wiimote/l2cap/L2CapWiimote.h | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/input/api/Wiimote/l2cap/L2CapWiimote.cpp b/src/input/api/Wiimote/l2cap/L2CapWiimote.cpp index 7808adee..8a199236 100644 --- a/src/input/api/Wiimote/l2cap/L2CapWiimote.cpp +++ b/src/input/api/Wiimote/l2cap/L2CapWiimote.cpp @@ -16,8 +16,8 @@ namespace { } } -L2CapWiimote::L2CapWiimote(int recvFd,int sendFd) -: m_recvFd(recvFd), m_sendFd(sendFd) +L2CapWiimote::L2CapWiimote(int recvFd,int sendFd, bdaddr_t addr) +: m_recvFd(recvFd), m_sendFd(sendFd), m_addr(addr) { } @@ -83,7 +83,7 @@ std::vector L2CapWiimote::get_devices() continue; } - outDevices.emplace_back(std::make_shared(sendFd, recvFd)); + outDevices.emplace_back(std::make_shared(sendFd, recvFd, addr)); } return outDevices; } @@ -117,5 +117,5 @@ bool L2CapWiimote::operator==(const WiimoteDevice& rhs) const auto mote = dynamic_cast(&rhs); if (!mote) return false; - return m_recvFd == mote->m_recvFd || m_recvFd == mote->m_sendFd; + return bacmp(&m_addr, &mote->m_addr) == 0; } \ No newline at end of file diff --git a/src/input/api/Wiimote/l2cap/L2CapWiimote.h b/src/input/api/Wiimote/l2cap/L2CapWiimote.h index 04c9151b..cc8d071b 100644 --- a/src/input/api/Wiimote/l2cap/L2CapWiimote.h +++ b/src/input/api/Wiimote/l2cap/L2CapWiimote.h @@ -5,7 +5,7 @@ class L2CapWiimote : public WiimoteDevice { public: - L2CapWiimote(int recvFd, int sendFd); + L2CapWiimote(int recvFd, int sendFd, bdaddr_t addr); ~L2CapWiimote() override; bool write_data(const std::vector& data) override; @@ -17,5 +17,6 @@ class L2CapWiimote : public WiimoteDevice private: int m_recvFd; int m_sendFd; + bdaddr_t m_addr; };