mirror of
https://github.com/dolphin-emu/dolphin
synced 2025-10-06 00:13:03 +02:00
Common/Network: Add BluetoothAddress struct and string conversion functions.
This commit is contained in:
@@ -86,6 +86,21 @@ std::optional<MACAddress> StringToMacAddress(std::string_view mac_string)
|
||||
return std::make_optional(mac);
|
||||
}
|
||||
|
||||
std::string BluetoothAddressToString(BluetoothAddress bdaddr)
|
||||
{
|
||||
std::ranges::reverse(bdaddr);
|
||||
return MacAddressToString(std::bit_cast<MACAddress>(bdaddr));
|
||||
}
|
||||
|
||||
std::optional<BluetoothAddress> StringToBluetoothAddress(std::string_view str)
|
||||
{
|
||||
auto result = StringToMacAddress(str);
|
||||
if (!result)
|
||||
return std::nullopt;
|
||||
std::ranges::reverse(*result);
|
||||
return std::bit_cast<BluetoothAddress>(*result);
|
||||
}
|
||||
|
||||
EthernetHeader::EthernetHeader() = default;
|
||||
|
||||
EthernetHeader::EthernetHeader(u16 ether_type) : ethertype(htons(ether_type))
|
||||
|
@@ -36,6 +36,12 @@ enum DHCPConst
|
||||
};
|
||||
|
||||
using MACAddress = std::array<u8, MAC_ADDRESS_SIZE>;
|
||||
|
||||
// Note: Bluetooth address display order is reverse of the storage order.
|
||||
struct BluetoothAddress : std::array<u8, MAC_ADDRESS_SIZE>
|
||||
{
|
||||
};
|
||||
|
||||
constexpr std::size_t IPV4_ADDR_LEN = 4;
|
||||
using IPAddress = std::array<u8, IPV4_ADDR_LEN>;
|
||||
constexpr IPAddress IP_ADDR_ANY = {0, 0, 0, 0};
|
||||
@@ -259,8 +265,13 @@ struct NetworkErrorState
|
||||
};
|
||||
|
||||
MACAddress GenerateMacAddress(MACConsumer type);
|
||||
|
||||
std::string MacAddressToString(const MACAddress& mac);
|
||||
std::optional<MACAddress> StringToMacAddress(std::string_view mac_string);
|
||||
|
||||
std::string BluetoothAddressToString(BluetoothAddress bdaddr);
|
||||
std::optional<BluetoothAddress> StringToBluetoothAddress(std::string_view str);
|
||||
|
||||
u16 ComputeNetworkChecksum(const void* data, u16 length, u32 initial_value = 0);
|
||||
u16 ComputeTCPNetworkChecksum(const IPAddress& from, const IPAddress& to, const void* data,
|
||||
u16 length, u8 protocol);
|
||||
|
Reference in New Issue
Block a user