// Copyright (c) 2017-2024, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/blob/master/LICENSE.md #include "Device.hpp" #include Devicei::Devicei(std::string name) : Device(std::move(name)) { pageScanRepetitionMode = {}; clockOffset = {}; classOfDevice = {}; state = DEVICE_STATE::REMOTE_NAME_FAILURE; deviceState = DeviceState::Unknown; isPairingSSP = false; memset(address, 0, sizeof(address)); } Devicei::Devicei(bd_addr_t &address) : Devicei() { setAddress(&address); } Devicei &Devicei::operator=(const Devicei &d) { if (&d == this) { return *this; } setAddress(&d.address); setName(d.name.data()); pageScanRepetitionMode = d.pageScanRepetitionMode; clockOffset = d.clockOffset; classOfDevice = d.classOfDevice; state = d.state; deviceState = d.deviceState; isPairingSSP = d.isPairingSSP; return *this; } Devicei::Devicei(const Devicei &d) : Devicei(d.name.data()) { operator=(d); } Devicei &Devicei::operator=(Devicei &&d) { setAddress(&d.address); setName(d.name.data()); pageScanRepetitionMode = d.pageScanRepetitionMode; clockOffset = d.clockOffset; classOfDevice = d.classOfDevice; state = d.state; deviceState = d.deviceState; isPairingSSP = d.isPairingSSP; return *this; } Devicei::Devicei(Devicei &&d) noexcept : Devicei(d.name.data()) { operator=(d); } void Devicei::setAddress(bd_addr_t *addr) { memcpy(&address, addr, sizeof address); } bool Devicei::operator==(const Devicei &cmpDevice) const { return (strcmp(cmpDevice.name.data(), name.data()) == 0) && (bd_addr_cmp(cmpDevice.address, address) == 0); } bool Devicei::operator!=(const Devicei &cmpDevice) const { return (strcmp(cmpDevice.name.data(), name.data()) != 0) || (bd_addr_cmp(cmpDevice.address, address) != 0); } auto Devicei::address_str() const -> const char * { return bd_addr_to_str(address); }