Test alterable aggregates via overriding be_t

Checking how it might look like without introducing too many changes.
Alteration of its behaviour as a "template template" argument allows:
 - normal access
 - easier aggregate inspection
 - memory access interception
This commit is contained in:
Nekotekina 2021-04-25 18:55:29 +03:00
parent b5e9f09972
commit 86a8e0716f
2 changed files with 7 additions and 3 deletions

View file

@ -1065,6 +1065,8 @@ DECLARE(ppu_module_manager::cellSail)("cellSail", []()
{ {
static ppu_static_module cellSailAvi("cellSailAvi"); static ppu_static_module cellSailAvi("cellSailAvi");
[[maybe_unused]] vm::ptr<CellSailMp4MovieInfo<>> test;
REG_FUNC(cellSail, cellSailMemAllocatorInitialize); REG_FUNC(cellSail, cellSailMemAllocatorInitialize);
REG_FUNC(cellSail, cellSailFutureInitialize); REG_FUNC(cellSail, cellSailFutureInitialize);

View file

@ -933,9 +933,10 @@ struct CellSailSourceCheckResource
CellSailSourceCheckStream runningError; CellSailSourceCheckStream runningError;
}; };
template <template <class T, usz A = alignof(T)> class be_t = ::be_t>
struct CellSailMp4DateTime struct CellSailMp4DateTime
{ {
be_t<u16> second; be_t<u16, 2> second;
be_t<u16> minute; be_t<u16> minute;
be_t<u16> hour; be_t<u16> hour;
be_t<u16> day; be_t<u16> day;
@ -950,10 +951,11 @@ struct CellSailMp4Movie
be_t<u64> internalData[16]; be_t<u64> internalData[16];
}; };
template <template <class T, usz A = alignof(T)> class be_t = ::be_t>
struct CellSailMp4MovieInfo struct CellSailMp4MovieInfo
{ {
CellSailMp4DateTime creationDateTime; CellSailMp4DateTime<be_t> creationDateTime;
CellSailMp4DateTime modificationDateTime; CellSailMp4DateTime<be_t> modificationDateTime;
be_t<u32> trackCount; be_t<u32> trackCount;
be_t<u32> movieTimeScale; be_t<u32> movieTimeScale;
be_t<u32> movieDuration; be_t<u32> movieDuration;