[XAM/USER] - Implement XamUserCreateTitlesPlayedEnumerator

Implement of XamUserCreateTitlesPlayedEnumerator
This commit is contained in:
The-Little-Wolf
2025-03-08 08:53:21 -08:00
committed by Radosław Gliński
parent 5979274998
commit 34b7085ed3
3 changed files with 100 additions and 9 deletions

View File

@@ -2,7 +2,7 @@
******************************************************************************
* Xenia : Xbox 360 Emulator Research Project *
******************************************************************************
* Copyright 2021 Ben Vanik. All rights reserved. *
* Copyright 2025 Ben Vanik. All rights reserved. *
* Released under the BSD license - see LICENSE in the root for more details. *
******************************************************************************
*/
@@ -15,6 +15,7 @@
#include <vector>
#include "xenia/kernel/xam/achievement_manager.h"
#include "xenia/kernel/xam/user_tracker.h"
#include "xenia/kernel/xobject.h"
#include "xenia/xbox.h"
@@ -161,6 +162,26 @@ class XAchievementEnumerator : public XEnumerator {
size_t current_item_ = 0;
};
class XTitleEnumerator : public XEnumerator {
public:
struct XTITLE_PLAYED {
xam::X_XDBF_GPD_TITLE_PLAYED base;
xe::be<char16_t> title_name[64];
};
XTitleEnumerator(KernelState* kernel_state, size_t items_per_enumerate)
: XEnumerator(kernel_state, items_per_enumerate, sizeof(XTITLE_PLAYED)) {}
void AppendItem(const xam::TitleInfo& item) { items_.push_back(item); }
uint32_t WriteItems(uint32_t buffer_ptr, uint8_t* buffer_data,
uint32_t* written_count) override;
private:
std::vector<xam::TitleInfo> items_;
size_t current_item_ = 0;
};
class XUserStatsEnumerator : public XEnumerator {
public:
struct XUSER_STATS_SPEC {