mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-04-07 14:45:41 +12:00
[FRD] Implement GetMyScreenName
This commit is contained in:
parent
025231b037
commit
f81d0162d6
2 changed files with 28 additions and 0 deletions
|
@ -19,9 +19,11 @@ class FRDService {
|
|||
MAKE_LOG_FUNCTION(log, frdLogger)
|
||||
|
||||
// Service commands
|
||||
void attachToEventNotification(u32 messagePointer);
|
||||
void getFriendKeyList(u32 messagePointer);
|
||||
void getMyFriendKey(u32 messagePointer);
|
||||
void getMyPresence(u32 messagePointer);
|
||||
void getMyScreenName(u32 messsagePointer);
|
||||
void setClientSDKVersion(u32 messagePointer);
|
||||
void setNotificationMask(u32 messagePointer);
|
||||
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
#include "services/frd.hpp"
|
||||
#include <string>
|
||||
|
||||
namespace FRDCommands {
|
||||
enum : u32 {
|
||||
AttachToEventNotification = 0x00200002,
|
||||
SetNotificationMask = 0x00210040,
|
||||
SetClientSdkVersion = 0x00320042,
|
||||
GetMyFriendKey = 0x00050000,
|
||||
GetMyPresence = 0x00080000,
|
||||
GetMyScreenName = 0x00090000,
|
||||
GetFriendKeyList = 0x00110080
|
||||
};
|
||||
}
|
||||
|
@ -21,15 +24,22 @@ void FRDService::reset() {}
|
|||
void FRDService::handleSyncRequest(u32 messagePointer) {
|
||||
const u32 command = mem.read32(messagePointer);
|
||||
switch (command) {
|
||||
case FRDCommands::AttachToEventNotification: attachToEventNotification(messagePointer); break;
|
||||
case FRDCommands::GetFriendKeyList: getFriendKeyList(messagePointer); break;
|
||||
case FRDCommands::GetMyFriendKey: getMyFriendKey(messagePointer); break;
|
||||
case FRDCommands::GetMyPresence: getMyPresence(messagePointer); break;
|
||||
case FRDCommands::GetMyScreenName: getMyScreenName(messagePointer); break;
|
||||
case FRDCommands::SetClientSdkVersion: setClientSDKVersion(messagePointer); break;
|
||||
case FRDCommands::SetNotificationMask: setNotificationMask(messagePointer); break;
|
||||
default: Helpers::panic("FRD service requested. Command: %08X\n", command);
|
||||
}
|
||||
}
|
||||
|
||||
void FRDService::attachToEventNotification(u32 messagePointer) {
|
||||
log("FRD::AttachToEventNotification (Undocumented)\n");
|
||||
mem.write32(messagePointer + 4, Result::Success);
|
||||
}
|
||||
|
||||
void FRDService::getMyFriendKey(u32 messagePointer) {
|
||||
log("FRD::GetMyFriendKey\n");
|
||||
|
||||
|
@ -67,6 +77,22 @@ void FRDService::getMyPresence(u32 messagePointer) {
|
|||
mem.write32(messagePointer + 4, Result::Success);
|
||||
}
|
||||
|
||||
void FRDService::getMyScreenName(u32 messagePointer) {
|
||||
log("FRD::GetMyScreenName\n");
|
||||
static const std::u16string name = u"Pander";
|
||||
mem.write32(messagePointer + 4, Result::Success);
|
||||
|
||||
// TODO: Assert the name fits in the response buffer
|
||||
u32 pointer = messagePointer + 8;
|
||||
for (auto c : name) {
|
||||
mem.write16(pointer, static_cast<u16>(c));
|
||||
pointer += sizeof(u16);
|
||||
}
|
||||
|
||||
// Add null terminator
|
||||
mem.write16(pointer, static_cast<u16>(u'\0'));
|
||||
}
|
||||
|
||||
void FRDService::setClientSDKVersion(u32 messagePointer) {
|
||||
u32 version = mem.read32(messagePointer + 4);
|
||||
log("FRD::SetClientSdkVersion (version = %d)\n", version);
|
||||
|
|
Loading…
Add table
Reference in a new issue