[XAM] Stubbed XMPCreateUserPlaylistEnumerator

Fixed 545408C0 freezing at main menu.
This commit is contained in:
Adrian
2025-11-28 14:35:36 +00:00
committed by Radosław Gliński
parent 2997b91493
commit 10bfc92d9a
4 changed files with 112 additions and 7 deletions

View File

@@ -14,6 +14,7 @@
#include "xenia/kernel/xam/achievement_manager.h"
#include "xenia/kernel/xam/user_tracker.h"
#include "xenia/kernel/xam/xam.h"
#include "xenia/kernel/xobject.h"
namespace xe {
@@ -89,10 +90,12 @@ class XEnumerator : public XObject {
size_t item_size() const { return item_size_; }
size_t items_per_enumerate() const { return items_per_enumerate_; }
size_t extra_size() const { return extra_size_; }
private:
size_t items_per_enumerate_;
size_t item_size_;
size_t extra_size_;
};
class XStaticUntypedEnumerator : public XEnumerator {
@@ -219,6 +222,26 @@ class XUserStatsEnumerator : public XEnumerator {
size_t current_item_ = 0;
};
class XMPCreateUserPlaylistEnumerator : public XEnumerator {
public:
XMPCreateUserPlaylistEnumerator(KernelState* kernel_state,
size_t items_per_enumerate)
: XEnumerator(kernel_state, items_per_enumerate, 0) {}
size_t item_count() const { return items_.size(); }
void AppendItem(const xam::XMP_USER_PLAYLIST_INFO& 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::XMP_USER_PLAYLIST_INFO> items_;
size_t current_item_ = 0;
};
} // namespace kernel
} // namespace xe