summaryrefslogtreecommitdiffstats
path: root/src/frontend/mame/ui/utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/mame/ui/utils.h')
-rw-r--r--src/frontend/mame/ui/utils.h43
1 files changed, 32 insertions, 11 deletions
diff --git a/src/frontend/mame/ui/utils.h b/src/frontend/mame/ui/utils.h
index 67320c19b6f..184f922d7d2 100644
--- a/src/frontend/mame/ui/utils.h
+++ b/src/frontend/mame/ui/utils.h
@@ -16,6 +16,7 @@
#include "unicode.h"
#include <algorithm>
+#include <functional>
#include <limits>
#include <memory>
#include <string>
@@ -38,9 +39,14 @@ struct ui_system_info
int index;
bool available = false;
+ std::string description;
+ std::string parent;
+
std::u32string ucs_shortname;
std::u32string ucs_description;
std::u32string ucs_manufacturer_description;
+ std::u32string ucs_default_description;
+ std::u32string ucs_manufacturer_default_description;
};
struct ui_software_info
@@ -49,7 +55,7 @@ struct ui_software_info
// info for software list item
ui_software_info(
- software_info const &info,
+ software_info const &sw,
software_part const &p,
game_driver const &d,
std::string const &li,
@@ -60,19 +66,19 @@ struct ui_software_info
ui_software_info(game_driver const &d);
// copyable/movable
- ui_software_info(ui_software_info const &) = default;
- ui_software_info(ui_software_info &&) = default;
- ui_software_info &operator=(ui_software_info const &) = default;
+ ui_software_info(ui_software_info const &that);
+ ui_software_info(ui_software_info &&that) = default;
+ ui_software_info &operator=(ui_software_info const &that);
ui_software_info &operator=(ui_software_info &&) = default;
bool operator==(ui_software_info const &r) const
{
- // compares all fields except available
- return shortname == r.shortname && longname == r.longname && parentname == r.parentname
- && year == r.year && publisher == r.publisher && supported == r.supported
- && part == r.part && driver == r.driver && listname == r.listname
- && interface == r.interface && instance == r.instance && startempty == r.startempty
- && parentlongname == r.parentlongname && usage == r.usage && devicetype == r.devicetype;
+ // compares all fields except info (fragile), alttitles (included in info) and available (environmental)
+ return (shortname == r.shortname) && (longname == r.longname) && (parentname == r.parentname)
+ && (year == r.year) && (publisher == r.publisher) && (supported == r.supported)
+ && (part == r.part) && (driver == r.driver) && (listname == r.listname)
+ && (interface == r.interface) && (instance == r.instance) && (startempty == r.startempty)
+ && (parentlongname == r.parentlongname) && (devicetype == r.devicetype);
}
std::string shortname;
@@ -88,8 +94,10 @@ struct ui_software_info
std::string instance;
uint8_t startempty = 0;
std::string parentlongname;
- std::string usage;
+ std::string infotext;
std::string devicetype;
+ std::vector<software_info_item> info;
+ std::vector<std::reference_wrapper<std::string const> > alttitles;
bool available = false;
};
@@ -206,6 +214,10 @@ public:
CLONES,
YEAR,
PUBLISHERS,
+ DEVELOPERS,
+ DISTRIBUTORS,
+ AUTHORS,
+ PROGRAMMERS,
SUPPORTED,
PARTIAL_SUPPORTED,
UNSUPPORTED,
@@ -287,6 +299,10 @@ public:
std::vector<std::string> const &regions() const { return m_regions; }
std::vector<std::string> const &publishers() const { return m_publishers; }
std::vector<std::string> const &years() const { return m_years; }
+ std::vector<std::string> const &developers() const { return m_developers; }
+ std::vector<std::string> const &distributors() const { return m_distributors; }
+ std::vector<std::string> const &authors() const { return m_authors; }
+ std::vector<std::string> const &programmers() const { return m_programmers; }
std::vector<std::string> const &device_types() const { return m_device_types; }
std::vector<std::string> const &list_names() const { return m_list_names; }
std::vector<std::string> const &list_descriptions() const { return m_list_descriptions; }
@@ -295,6 +311,7 @@ public:
void add_region(std::string const &longname);
void add_publisher(std::string const &publisher);
void add_year(std::string const &year);
+ void add_info(software_info_item const &info);
void add_device_type(std::string const &device_type);
void add_list(std::string const &name, std::string const &description);
void finalise();
@@ -307,6 +324,10 @@ private:
std::vector<std::string> m_regions;
std::vector<std::string> m_publishers;
std::vector<std::string> m_years;
+ std::vector<std::string> m_developers;
+ std::vector<std::string> m_distributors;
+ std::vector<std::string> m_authors;
+ std::vector<std::string> m_programmers;
std::vector<std::string> m_device_types;
std::vector<std::string> m_list_names, m_list_descriptions;
};