hardwaredb/lists/hardware.h
2025-01-30 22:21:42 -07:00

75 lines
1.8 KiB
C++

#pragma once
#include <map>
#include <string>
#include <list>
// #define class struct // Uncomment this line to switch all the classes to structs
// using namespace std;
class Hardware {
public:
std::string manufacturer;
std::string model;
int releasedyear;
// example of how to set a dictionary item
// std::string myval = HardwareSpecs.at("manufacturer");
};
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;
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!"},
};
};
class CPU: public Hardware {
public:
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!"},
};
};
class GPU: public Hardware {
public:
std::map<std::string, GPU> GPUSpecs;
// GPUSpecs["Ram"] = GPU { "Ram", "12Gb" };
};