mirror of
https://github.com/hrydgard/ppsspp.git
synced 2024-11-27 15:30:35 +00:00
Merge pull request #1093 from unknownbrackets/psmfplayer
More scePsmfPlayer stubs
This commit is contained in:
commit
c8e2f371a2
@ -471,6 +471,24 @@ u32 scePsmfGetStreamSize(u32 psmfStruct, u32 sizeAddr)
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 scePsmfQueryStreamOffset(u32 bufferAddr, u32 offsetAddr)
|
||||
{
|
||||
ERROR_LOG(HLE, "UNIMPL scePsmfQueryStreamOffset(%08x, %08x)", bufferAddr, offsetAddr);
|
||||
if (Memory::IsValidAddress(offsetAddr)) {
|
||||
Memory::Write_U32(0, offsetAddr);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 scePsmfQueryStreamSize(u32 bufferAddr, u32 sizeAddr)
|
||||
{
|
||||
ERROR_LOG(HLE, "UNIMPL scePsmfQueryStreamSize(%08x, %08x)", bufferAddr, sizeAddr);
|
||||
if (Memory::IsValidAddress(sizeAddr)) {
|
||||
Memory::Write_U32(1, sizeAddr);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 scePsmfGetHeaderSize(u32 psmfStruct, u32 sizeAddr)
|
||||
{
|
||||
DEBUG_LOG(HLE, "scePsmfGetHeaderSize(%08x, %08x)", psmfStruct, sizeAddr);
|
||||
@ -701,8 +719,11 @@ int scePsmfPlayerDelete(u32 psmfPlayer)
|
||||
{
|
||||
ERROR_LOG(HLE, "UNIMPL scePsmfPlayerDelete(%08x)", psmfPlayer);
|
||||
PsmfPlayer *psmfplayer = getPsmfPlayer(psmfPlayer);
|
||||
if (psmfplayer)
|
||||
if (psmfplayer) {
|
||||
psmfplayer->status = PSMF_PLAYER_STATUS_NONE;
|
||||
delete psmfplayer;
|
||||
psmfPlayerMap.erase(psmfPlayer);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -734,6 +755,33 @@ int scePsmfPlayerReleasePsmf(u32 psmfPlayer)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int scePsmfPlayerGetVideoData(u32 psmfPlayer, u32 videoDataAddr)
|
||||
{
|
||||
ERROR_LOG(HLE, "UNIMPL scePsmfPlayerGetVideoData(%08x, %08x)", psmfPlayer, videoDataAddr);
|
||||
PsmfPlayer *psmfplayer = getPsmfPlayer(psmfPlayer);
|
||||
if (!psmfplayer) {
|
||||
ERROR_LOG(HLE, "scePsmfPlayerGetVideoData - invalid psmf");
|
||||
return ERROR_PSMF_NOT_FOUND;
|
||||
}
|
||||
|
||||
// TODO: Once we start increasing pts somewhere, and actually know the last timestamp, do this better.
|
||||
psmfplayer->status = PSMF_PLAYER_STATUS_PLAYING_FINISHED;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int scePsmfPlayerGetAudioData(u32 psmfPlayer, u32 audioDataAddr)
|
||||
{
|
||||
ERROR_LOG(HLE, "UNIMPL scePsmfPlayerGetAudioData(%08x, %08x)", psmfPlayer, audioDataAddr);
|
||||
PsmfPlayer *psmfplayer = getPsmfPlayer(psmfPlayer);
|
||||
if (!psmfplayer) {
|
||||
ERROR_LOG(HLE, "scePsmfPlayerGetAudioData - invalid psmf");
|
||||
return ERROR_PSMF_NOT_FOUND;
|
||||
}
|
||||
|
||||
Memory::Memset(audioDataAddr, 0, audioSamplesBytes);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int scePsmfPlayerGetCurrentStatus(u32 psmfPlayer)
|
||||
{
|
||||
ERROR_LOG(HLE, "scePsmfPlayerGetCurrentStatus(%08x)", psmfPlayer);
|
||||
@ -949,8 +997,8 @@ const HLEFunction scePsmf[] = {
|
||||
{0xA83F7113, WrapU_UU<scePsmfGetAudioInfo>, "scePsmfGetAudioInfo"},
|
||||
{0x971A3A90, 0, "scePsmfCheckEPmap"},
|
||||
{0x68d42328, WrapU_UU<scePsmfGetNumberOfSpecificStreams>, "scePsmfGetNumberOfSpecificStreams"},
|
||||
{0x5b70fcc1, 0, "scePsmfQueryStreamOffset"},
|
||||
{0x9553cc91, 0, "scePsmfQueryStreamSize"},
|
||||
{0x5b70fcc1, WrapU_UU<scePsmfQueryStreamOffset>, "scePsmfQueryStreamOffset"},
|
||||
{0x9553cc91, WrapU_UU<scePsmfQueryStreamSize>, "scePsmfQueryStreamSize"},
|
||||
{0xB78EB9E9, WrapU_UU<scePsmfGetHeaderSize>, "scePsmfGetHeaderSize"},
|
||||
{0xA5EBFE81, WrapU_UU<scePsmfGetStreamSize>, "scePsmfGetStreamSize"},
|
||||
{0xE1283895, WrapU_U<scePsmfGetPsmfVersion>, "scePsmfGetPsmfVersion"},
|
||||
@ -970,7 +1018,7 @@ const HLEFunction scePsmfPlayer[] =
|
||||
{0x58B83577, WrapI_UC<scePsmfPlayerSetPsmfCB>, "scePsmfPlayerSetPsmfCB"},
|
||||
{0x3ea82a4b, WrapI_U<scePsmfPlayerGetAudioOutSize>, "scePsmfPlayerGetAudioOutSize"},
|
||||
{0x3ed62233, WrapU_UU<scePsmfPlayerGetCurrentPts>, "scePsmfPlayerGetCurrentPts"},
|
||||
{0x46f61f8b, 0, "scePsmfPlayerGetVideoData"},
|
||||
{0x46f61f8b, WrapI_UU<scePsmfPlayerGetVideoData>, "scePsmfPlayerGetVideoData"},
|
||||
{0x68f07175, WrapU_UUU<scePsmfPlayerGetCurrentAudioStream>, "scePsmfPlayerGetCurrentAudioStream"},
|
||||
{0x75f03fa2, WrapU_UII<scePsmfPlayerSelectSpecificVideo>, "scePsmfPlayerSelectSpecificVideo"},
|
||||
{0x85461eff, WrapU_UII<scePsmfPlayerSelectSpecificAudio>, "scePsmfPlayerSelectSpecificAudio"},
|
||||
@ -981,7 +1029,7 @@ const HLEFunction scePsmfPlayer[] =
|
||||
{0xa0b8ca55, WrapI_U<scePsmfPlayerUpdate>, "scePsmfPlayerUpdate"},
|
||||
{0xa3d81169, WrapU_UII<scePsmfPlayerChangePlayMode>, "scePsmfPlayerChangePlayMode"},
|
||||
{0xb8d10c56, WrapU_U<scePsmfPlayerSelectAudio>, "scePsmfPlayerSelectAudio"},
|
||||
{0xb9848a74, 0, "scePsmfPlayerGetAudioData"},
|
||||
{0xb9848a74, WrapI_UU<scePsmfPlayerGetAudioData>, "scePsmfPlayerGetAudioData"},
|
||||
{0xdf089680, WrapU_UU<scePsmfPlayerGetPsmfInfo>, "scePsmfPlayerGetPsmfInfo"},
|
||||
{0xe792cd94, WrapI_U<scePsmfPlayerReleasePsmf>, "scePsmfPlayerReleasePsmf"},
|
||||
{0xf3efaa91, WrapU_UUU<scePsmfPlayerGetCurrentPlayMode>, "scePsmfPlayerGetCurrentPlayMode"},
|
||||
|
Loading…
Reference in New Issue
Block a user