mirror of
				https://git.tardis.systems/mirrors/yuzu
				synced 2025-11-04 04:34:07 +01:00 
			
		
		
		
	frontend_common: Add option to read unsigned integers
This commit is contained in:
		
							parent
							
								
									1654b8f9e0
								
							
						
					
					
						commit
						d8f380961e
					
				@ -284,7 +284,7 @@ void Config::ReadDisabledAddOnValues() {
 | 
			
		||||
    const int size = BeginArray(std::string(""));
 | 
			
		||||
    for (int i = 0; i < size; ++i) {
 | 
			
		||||
        SetArrayIndex(i);
 | 
			
		||||
        const auto title_id = ReadIntegerSetting(std::string("title_id"), 0);
 | 
			
		||||
        const auto title_id = ReadUnsignedIntegerSetting(std::string("title_id"), 0);
 | 
			
		||||
        std::vector<std::string> out;
 | 
			
		||||
        const int d_size = BeginArray("disabled");
 | 
			
		||||
        for (int j = 0; j < d_size; ++j) {
 | 
			
		||||
@ -664,6 +664,33 @@ s64 Config::ReadIntegerSetting(const std::string& key, const std::optional<s64>
 | 
			
		||||
    return result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
u64 Config::ReadUnsignedIntegerSetting(const std::string& key,
 | 
			
		||||
                                       const std::optional<u64> default_value) {
 | 
			
		||||
    std::string full_key = GetFullKey(key, false);
 | 
			
		||||
    if (!default_value.has_value()) {
 | 
			
		||||
        try {
 | 
			
		||||
            return std::stoull(
 | 
			
		||||
                std::string(config->GetValue(GetSection().c_str(), full_key.c_str(), "0")));
 | 
			
		||||
        } catch (...) {
 | 
			
		||||
            return 0;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    u64 result = 0;
 | 
			
		||||
    if (config->GetBoolValue(GetSection().c_str(),
 | 
			
		||||
                             std::string(full_key).append("\\default").c_str(), true)) {
 | 
			
		||||
        result = default_value.value();
 | 
			
		||||
    } else {
 | 
			
		||||
        try {
 | 
			
		||||
            result = std::stoull(std::string(config->GetValue(
 | 
			
		||||
                GetSection().c_str(), full_key.c_str(), ToString(default_value.value()).c_str())));
 | 
			
		||||
        } catch (...) {
 | 
			
		||||
            result = default_value.value();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
double Config::ReadDoubleSetting(const std::string& key,
 | 
			
		||||
                                 const std::optional<double> default_value) {
 | 
			
		||||
    std::string full_key = GetFullKey(key, false);
 | 
			
		||||
 | 
			
		||||
@ -137,6 +137,8 @@ protected:
 | 
			
		||||
    bool ReadBooleanSetting(const std::string& key,
 | 
			
		||||
                            std::optional<bool> default_value = std::nullopt);
 | 
			
		||||
    s64 ReadIntegerSetting(const std::string& key, std::optional<s64> default_value = std::nullopt);
 | 
			
		||||
    u64 ReadUnsignedIntegerSetting(const std::string& key,
 | 
			
		||||
                                   std::optional<u64> default_value = std::nullopt);
 | 
			
		||||
    double ReadDoubleSetting(const std::string& key,
 | 
			
		||||
                             std::optional<double> default_value = std::nullopt);
 | 
			
		||||
    std::string ReadStringSetting(const std::string& key,
 | 
			
		||||
@ -170,6 +172,8 @@ protected:
 | 
			
		||||
            return value_.has_value() ? std::to_string(*value_) : "none";
 | 
			
		||||
        } else if constexpr (std::is_same_v<T, bool>) {
 | 
			
		||||
            return value_ ? "true" : "false";
 | 
			
		||||
        } else if constexpr (std::is_same_v<T, u64>) {
 | 
			
		||||
            return std::to_string(static_cast<u64>(value_));
 | 
			
		||||
        } else {
 | 
			
		||||
            return std::to_string(static_cast<s64>(value_));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -283,7 +283,8 @@ void QtConfig::ReadUIGamelistValues() {
 | 
			
		||||
    const int favorites_size = BeginArray("favorites");
 | 
			
		||||
    for (int i = 0; i < favorites_size; i++) {
 | 
			
		||||
        SetArrayIndex(i);
 | 
			
		||||
        UISettings::values.favorited_ids.append(ReadIntegerSetting(std::string("program_id")));
 | 
			
		||||
        UISettings::values.favorited_ids.append(
 | 
			
		||||
            ReadUnsignedIntegerSetting(std::string("program_id")));
 | 
			
		||||
    }
 | 
			
		||||
    EndArray();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user