2025-01-28 11:46:16 -07:00
|
|
|
#pragma once
|
2025-01-29 10:18:17 -07:00
|
|
|
#include <map>
|
|
|
|
|
#include <string>
|
|
|
|
|
#include <list>
|
|
|
|
|
|
|
|
|
|
// #define class struct // Uncomment this line to switch all the classes to structs
|
|
|
|
|
|
2025-01-29 20:55:57 -07:00
|
|
|
// using namespace std;
|
2025-01-28 11:46:16 -07:00
|
|
|
|
|
|
|
|
class Hardware {
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
std::string manufacturer;
|
|
|
|
|
std::string model;
|
2025-01-29 10:18:17 -07:00
|
|
|
int releasedyear;
|
|
|
|
|
|
2025-01-29 11:26:54 -07:00
|
|
|
// example of how to set a dictionary item
|
|
|
|
|
// std::string myval = HardwareSpecs.at("manufacturer");
|
2025-01-29 10:18:17 -07:00
|
|
|
|
2025-01-28 11:46:16 -07:00
|
|
|
};
|
|
|
|
|
|
2025-01-28 20:59:13 -07:00
|
|
|
class Mobo: public Hardware {
|
|
|
|
|
public:
|
|
|
|
|
int pciegen;
|
|
|
|
|
int piceslots;
|
|
|
|
|
int dimmslots;
|
|
|
|
|
int dualchannel; // This is an int so 1 = dualchannel and 2 = quad channel
|
|
|
|
|
int ramspeed;
|
|
|
|
|
std::string comment;
|
2025-01-29 11:26:54 -07:00
|
|
|
|
|
|
|
|
std::map<std::string, std::string> HardwareSpecs = {
|
|
|
|
|
{"manufacturer", "The Gnomes part 2"},
|
|
|
|
|
{"model", "Honey Bomb"},
|
|
|
|
|
{"ReleasedYear", "2025"},
|
|
|
|
|
{"pciegen", "4"},
|
|
|
|
|
{"pcieslots", "3"},
|
|
|
|
|
{"dimmslots", "2"},
|
|
|
|
|
{"ramchannels", "2"},
|
|
|
|
|
{"ramspeed", "6000"},
|
|
|
|
|
{"comment", "If on AM5 platform - update BIOS before booting!"},
|
2025-01-28 20:59:13 -07:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
2025-01-28 11:46:16 -07:00
|
|
|
class CPU: public Hardware {
|
|
|
|
|
public:
|
|
|
|
|
|
2025-01-29 11:26:54 -07:00
|
|
|
std::map<std::string, std::string> HardwareSpecs = {
|
|
|
|
|
{"manufacturer", "The Gnomes part 2"},
|
|
|
|
|
{"model", "Honey Bomb"},
|
|
|
|
|
{"ReleasedYear", "2025"},
|
|
|
|
|
{"bits", "64"},
|
|
|
|
|
{"igpu", "false"},
|
|
|
|
|
{"igpusize", "N/A"},
|
|
|
|
|
{"cores", "4"},
|
|
|
|
|
{"threads", "8"},
|
|
|
|
|
{"l1cache", "32Mb"},
|
|
|
|
|
{"l2cache", "32Mb"},
|
|
|
|
|
{"l3cache", "32Mb"},
|
|
|
|
|
{"pcielanes", "24"},
|
|
|
|
|
{"maxram", "256Gb"},
|
|
|
|
|
{"mainclock", "3Ghz"},
|
|
|
|
|
{"boostclock", "3.2Ghz"},
|
|
|
|
|
{"architecture", "x86_64"},
|
|
|
|
|
{"memoryrange", "00:00 - set me!"},
|
|
|
|
|
{"microcode", "unchanged"},
|
|
|
|
|
{"kerneldriver", "intel"},
|
|
|
|
|
{"comment", "If on AM5 platform - update BIOS before booting!"},
|
|
|
|
|
};
|
2025-01-28 11:46:16 -07:00
|
|
|
};
|
2025-01-29 10:18:17 -07:00
|
|
|
|
|
|
|
|
class GPU: public Hardware {
|
|
|
|
|
public:
|
2025-01-29 20:55:57 -07:00
|
|
|
std::map<std::string, GPU> GPUSpecs;
|
2025-01-29 18:58:36 -07:00
|
|
|
// GPUSpecs["Ram"] = GPU { "Ram", "12Gb" };
|
2025-01-29 10:18:17 -07:00
|
|
|
};
|