[XAM] Improved writing struct for XEnumerateCrossTitle
This commit is contained in:
@@ -64,16 +64,32 @@ X_HRESULT XamApp::DispatchMessageSync(uint32_t message, uint32_t buffer_ptr,
|
||||
|
||||
assert_true(enum_struct->magic == kXObjSignature);
|
||||
|
||||
// This is a struct of XCONTENT_DATA_INTERNAL
|
||||
uint8_t* content_data_ptr =
|
||||
memory_->TranslateVirtual<uint8_t*>(data_ptr->buffer_ptr);
|
||||
XCONTENT_CROSS_TITLE_DATA cross_title_data = {};
|
||||
uint8_t* cross_title_data_ptr =
|
||||
reinterpret_cast<uint8_t*>(&cross_title_data);
|
||||
|
||||
uint32_t item_count = 0;
|
||||
X_RESULT result = e->WriteItems(0, cross_title_data_ptr, &item_count);
|
||||
|
||||
XCONTENT_DATA_INTERNAL* content_data_ptr =
|
||||
memory_->TranslateVirtual<XCONTENT_DATA_INTERNAL*>(
|
||||
data_ptr->buffer_ptr);
|
||||
|
||||
assert_true(data_ptr->buffer_size == sizeof(XCONTENT_DATA_INTERNAL));
|
||||
|
||||
std::memset(content_data_ptr, 0, data_ptr->buffer_size);
|
||||
|
||||
uint32_t item_count = 0;
|
||||
X_RESULT result = e->WriteItems(0, content_data_ptr, &item_count);
|
||||
if (!result) {
|
||||
content_data_ptr->device_id = cross_title_data.content_data.device_id;
|
||||
content_data_ptr->content_type =
|
||||
cross_title_data.content_data.content_type;
|
||||
content_data_ptr->set_display_name(
|
||||
cross_title_data.content_data.display_name());
|
||||
content_data_ptr->set_file_name(
|
||||
cross_title_data.content_data.file_name());
|
||||
content_data_ptr->padding[0] = content_data_ptr->padding[1] = 0;
|
||||
content_data_ptr->title_id = cross_title_data.title_id;
|
||||
}
|
||||
|
||||
result = X_HRESULT_FROM_WIN32(result);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user