mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-04-09 15:45:40 +12:00
More FRD stuffs
This commit is contained in:
parent
150cac89a4
commit
f3042672fb
2 changed files with 29 additions and 0 deletions
|
@ -23,7 +23,9 @@ class FRDService {
|
|||
|
||||
// Service commands
|
||||
void attachToEventNotification(u32 messagePointer);
|
||||
void getFriendAttributeFlags(u32 messagePointer);
|
||||
void getFriendKeyList(u32 messagePointer);
|
||||
void getFriendPresence(u32 messagePointer);
|
||||
void getMyFriendKey(u32 messagePointer);
|
||||
void getMyMii(u32 messagePointer);
|
||||
void getMyPresence(u32 messagePointer);
|
||||
|
|
|
@ -18,6 +18,8 @@ namespace FRDCommands {
|
|||
GetMyScreenName = 0x00090000,
|
||||
GetMyMii = 0x000A0000,
|
||||
GetFriendKeyList = 0x00110080,
|
||||
GetFriendPresence = 0x00120042,
|
||||
GetFriendAttributeFlags = 0x00170042,
|
||||
UpdateGameModeDescription = 0x001D0002,
|
||||
};
|
||||
}
|
||||
|
@ -28,7 +30,9 @@ void FRDService::handleSyncRequest(u32 messagePointer) {
|
|||
const u32 command = mem.read32(messagePointer);
|
||||
switch (command) {
|
||||
case FRDCommands::AttachToEventNotification: attachToEventNotification(messagePointer); break;
|
||||
case FRDCommands::GetFriendAttributeFlags: getFriendAttributeFlags(messagePointer); break;
|
||||
case FRDCommands::GetFriendKeyList: getFriendKeyList(messagePointer); break;
|
||||
case FRDCommands::GetFriendPresence: getFriendPresence(messagePointer); break;
|
||||
case FRDCommands::GetMyFriendKey: getMyFriendKey(messagePointer); break;
|
||||
case FRDCommands::GetMyMii: getMyMii(messagePointer); break;
|
||||
case FRDCommands::GetMyPresence: getMyPresence(messagePointer); break;
|
||||
|
@ -96,6 +100,29 @@ void FRDService::getMyPresence(u32 messagePointer) {
|
|||
mem.write32(messagePointer + 4, Result::Success);
|
||||
}
|
||||
|
||||
void FRDService::getFriendAttributeFlags(u32 messagePointer) {
|
||||
log("FRD::GetFriendAttributeFlags\n");
|
||||
const u32 count = mem.read32(messagePointer + 4);
|
||||
const u32 buffer = mem.read32(messagePointer + 0x104); // Buffer to write flag info to.
|
||||
|
||||
|
||||
// Clear all flags. Assume one flag == 1 byte (u8) for now.
|
||||
for (u32 i = 0; i < count; i++) {
|
||||
const u32 pointer = buffer + (i * sizeof(u8));
|
||||
for (u32 j = 0; j < sizeof(u8); j++) {
|
||||
mem.write8(pointer + j, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FRDService::getFriendPresence(u32 messagePointer) {
|
||||
Helpers::warn("FRD::GetFriendPresence (stubbed)");
|
||||
|
||||
// TODO: Implement and document this,
|
||||
mem.write32(messagePointer, IPC::responseHeader(0x12, 1, 0));
|
||||
mem.write32(messagePointer + 4, Result::Success);
|
||||
}
|
||||
|
||||
void FRDService::getMyProfile(u32 messagePointer) {
|
||||
mem.write32(messagePointer, IPC::responseHeader(0x7, 3, 0)); // Not sure if the header here has the correct # of responses?
|
||||
mem.write32(messagePointer + 4, Result::Success);
|
||||
|
|
Loading…
Add table
Reference in a new issue