UICommon: Make use of fmt where applicable

Continues the migration to using fmt.

Notably, this allows safely converting a map within USBUtils over to
containing string view instances, rather than std::string instances, as
fmt safely handles the formatting of string views.
This commit is contained in:
Lioncash 2019-11-23 19:15:52 -05:00
parent ec895f544c
commit b28db1d4e6
7 changed files with 36 additions and 25 deletions

View File

@ -35,6 +35,7 @@ PUBLIC
pugixml pugixml
PRIVATE PRIVATE
fmt::fmt
$<$<BOOL:APPLE>:${IOK_LIBRARY}> $<$<BOOL:APPLE>:${IOK_LIBRARY}>
) )

View File

@ -1,21 +1,24 @@
// Copyright 2008 Dolphin Emulator Project
// Licensed under GPLv2+
// Refer to the license.txt file included.
#include "UICommon/Disassembler.h"
#include <sstream>
#if defined(HAVE_LLVM) #if defined(HAVE_LLVM)
// PowerPC.h defines PC. // PowerPC.h defines PC.
// This conflicts with a function that has an argument named PC // This conflicts with a function that has an argument named PC
#undef PC #undef PC
#include <fmt/format.h>
#include <llvm-c/Disassembler.h> #include <llvm-c/Disassembler.h>
#include <llvm-c/Target.h> #include <llvm-c/Target.h>
#elif defined(_M_X86) #elif defined(_M_X86)
#include <disasm.h> // Bochs #include <disasm.h> // Bochs
#endif #endif
#include "Common/StringUtil.h"
#include "Core/PowerPC/JitCommon/JitBase.h"
#include "Core/PowerPC/JitCommon/JitCache.h"
#include "Core/PowerPC/JitInterface.h" #include "Core/PowerPC/JitInterface.h"
#include "UICommon/Disassembler.h"
#if defined(HAVE_LLVM) #if defined(HAVE_LLVM)
class HostDisassemblerLLVM : public HostDisassembler class HostDisassemblerLLVM : public HostDisassembler
{ {
@ -85,7 +88,7 @@ std::string HostDisassemblerLLVM::DisassembleHostBlock(const u8* code_start, con
// We can continue onward past this bad instruction. // We can continue onward past this bad instruction.
std::string inst_str; std::string inst_str;
for (int i = 0; i < m_instruction_size; ++i) for (int i = 0; i < m_instruction_size; ++i)
inst_str += StringFromFormat("%02x", disasmPtr[i]); inst_str += fmt::format("{:02x}", disasmPtr[i]);
x86_disasm << inst_str << std::endl; x86_disasm << inst_str << std::endl;
disasmPtr += m_instruction_size; disasmPtr += m_instruction_size;
@ -96,7 +99,7 @@ std::string HostDisassemblerLLVM::DisassembleHostBlock(const u8* code_start, con
// Dump the rest of the block instead // Dump the rest of the block instead
std::string code_block; std::string code_block;
for (int i = 0; (disasmPtr + i) < end; ++i) for (int i = 0; (disasmPtr + i) < end; ++i)
code_block += StringFromFormat("%02x", disasmPtr[i]); code_block += fmt::format("{:02x}", disasmPtr[i]);
x86_disasm << code_block << std::endl; x86_disasm << code_block << std::endl;
break; break;

View File

@ -5,6 +5,7 @@
#pragma once #pragma once
#include <memory> #include <memory>
#include <string>
#include "Common/CommonTypes.h" #include "Common/CommonTypes.h"
class HostDisassembler class HostDisassembler

View File

@ -4,9 +4,6 @@
#include "UICommon/DiscordPresence.h" #include "UICommon/DiscordPresence.h"
#include "Common/Hash.h"
#include "Common/StringUtil.h"
#include "Core/Config/NetplaySettings.h" #include "Core/Config/NetplaySettings.h"
#include "Core/Config/UISettings.h" #include "Core/Config/UISettings.h"
#include "Core/ConfigManager.h" #include "Core/ConfigManager.h"
@ -16,9 +13,14 @@
#include <algorithm> #include <algorithm>
#include <cctype> #include <cctype>
#include <ctime> #include <ctime>
#include <discord-rpc/include/discord_rpc.h> #include <set>
#include <string> #include <string>
#include <discord-rpc/include/discord_rpc.h>
#include <fmt/format.h>
#include "Common/Hash.h"
#endif #endif
namespace Discord namespace Discord
@ -39,7 +41,7 @@ void HandleDiscordJoinRequest(const DiscordUser* user)
if (event_handler == nullptr) if (event_handler == nullptr)
return; return;
const std::string discord_tag = StringFromFormat("%s#%s", user->username, user->discriminator); const std::string discord_tag = fmt::format("{}#{}", user->username, user->discriminator);
event_handler->DiscordJoinRequest(user->userId, discord_tag, user->avatar); event_handler->DiscordJoinRequest(user->userId, discord_tag, user->avatar);
} }

View File

@ -17,6 +17,7 @@
#include <utility> #include <utility>
#include <vector> #include <vector>
#include <fmt/format.h>
#include <pugixml.hpp> #include <pugixml.hpp>
#include "Common/ChunkFile.h" #include "Common/ChunkFile.h"
@ -45,8 +46,6 @@ namespace UICommon
{ {
namespace namespace
{ {
constexpr char COVER_URL[] = "https://art.gametdb.com/wii/cover/%s/%s.png";
const std::string EMPTY_STRING; const std::string EMPTY_STRING;
} // Anonymous namespace } // Anonymous namespace
@ -241,8 +240,8 @@ void GameFile::DownloadDefaultCover()
} }
Common::HttpRequest request; Common::HttpRequest request;
const auto response = constexpr char cover_url[] = "https://art.gametdb.com/wii/cover/{}/{}.png";
request.Get(StringFromFormat(COVER_URL, region_code.c_str(), m_gametdb_id.c_str())); const auto response = request.Get(fmt::format(cover_url, region_code, m_gametdb_id));
if (!response) if (!response)
return; return;
@ -541,8 +540,8 @@ std::string GameFile::GetUniqueIdentifier() const
std::string lower_name = name; std::string lower_name = name;
std::transform(lower_name.begin(), lower_name.end(), lower_name.begin(), ::tolower); std::transform(lower_name.begin(), lower_name.end(), lower_name.begin(), ::tolower);
if (disc_number > 1 && if (disc_number > 1 &&
lower_name.find(StringFromFormat("disc %i", disc_number)) == std::string::npos && lower_name.find(fmt::format("disc {}", disc_number)) == std::string::npos &&
lower_name.find(StringFromFormat("disc%i", disc_number)) == std::string::npos) lower_name.find(fmt::format("disc{}", disc_number)) == std::string::npos)
{ {
std::string disc_text = "Disc "; std::string disc_text = "Disc ";
info.push_back(disc_text + std::to_string(disc_number)); info.push_back(disc_text + std::to_string(disc_number));

View File

@ -2,19 +2,22 @@
// Licensed under GPLv2+ // Licensed under GPLv2+
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include "UICommon/USBUtils.h"
#include <string_view>
#include <fmt/format.h>
#ifdef __LIBUSB__ #ifdef __LIBUSB__
#include <libusb.h> #include <libusb.h>
#endif #endif
#include "Common/CommonTypes.h" #include "Common/CommonTypes.h"
#include "Common/StringUtil.h"
#include "Core/LibusbUtils.h" #include "Core/LibusbUtils.h"
#include "UICommon/USBUtils.h"
// Because opening and getting the device name from devices is slow, especially on Windows // Because opening and getting the device name from devices is slow, especially on Windows
// with usbdk, we cannot do that for every single device. We should however still show // with usbdk, we cannot do that for every single device. We should however still show
// device names for known Wii peripherals. // device names for known Wii peripherals.
static const std::map<std::pair<u16, u16>, std::string> s_wii_peripherals = {{ static const std::map<std::pair<u16, u16>, std::string_view> s_wii_peripherals{{
{{0x046d, 0x0a03}, "Logitech Microphone"}, {{0x046d, 0x0a03}, "Logitech Microphone"},
{{0x057e, 0x0308}, "Wii Speak"}, {{0x057e, 0x0308}, "Wii Speak"},
{{0x057e, 0x0309}, "Nintendo USB Microphone"}, {{0x057e, 0x0309}, "Nintendo USB Microphone"},
@ -54,7 +57,7 @@ std::map<std::pair<u16, u16>, std::string> GetInsertedDevices()
std::string GetDeviceName(const std::pair<u16, u16> vid_pid) std::string GetDeviceName(const std::pair<u16, u16> vid_pid)
{ {
const auto iter = s_wii_peripherals.find(vid_pid); const auto iter = s_wii_peripherals.find(vid_pid);
const std::string device_name = iter == s_wii_peripherals.cend() ? "Unknown" : iter->second; const std::string_view device_name = iter == s_wii_peripherals.cend() ? "Unknown" : iter->second;
return StringFromFormat("%04x:%04x - %s", vid_pid.first, vid_pid.second, device_name.c_str()); return fmt::format("{:04x}:{:04x} - {}", vid_pid.first, vid_pid.second, device_name);
} }
} // namespace USBUtils } // namespace USBUtils

View File

@ -13,6 +13,8 @@
#include <sys/wait.h> #include <sys/wait.h>
#include <unistd.h> #include <unistd.h>
#include <fmt/format.h>
#include "Common/Logging/Log.h" #include "Common/Logging/Log.h"
#include "Common/StringUtil.h" #include "Common/StringUtil.h"
#include "Core/Config/MainSettings.h" #include "Core/Config/MainSettings.h"
@ -156,7 +158,7 @@ void XRRConfiguration::Update()
output_name = strdup(output_info->name); output_name = strdup(output_info->name);
Config::SetBaseOrCurrent( Config::SetBaseOrCurrent(
Config::MAIN_FULLSCREEN_DISPLAY_RES, Config::MAIN_FULLSCREEN_DISPLAY_RES,
StringFromFormat("%s: %ux%u", output_info->name, fullWidth, fullHeight)); fmt::format("{}: {}x{}", output_info->name, fullWidth, fullHeight));
} }
outputInfo = output_info; outputInfo = output_info;
crtcInfo = crtc_info; crtcInfo = crtc_info;