2015-06-11 22:12:16 +00:00
|
|
|
// Copyright 2015 Citra Emulator Project
|
|
|
|
// Licensed under GPLv2 or any later version
|
|
|
|
// Refer to the license.txt file included.
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2016-03-01 17:41:40 +00:00
|
|
|
#include "common/common_types.h"
|
|
|
|
|
2015-06-11 22:12:16 +00:00
|
|
|
namespace Service {
|
2016-03-01 17:41:40 +00:00
|
|
|
|
|
|
|
class Interface;
|
|
|
|
|
2015-06-11 22:12:16 +00:00
|
|
|
namespace FRD {
|
|
|
|
|
2016-03-01 17:41:40 +00:00
|
|
|
struct FriendKey {
|
|
|
|
u32 friend_id;
|
|
|
|
u32 unknown;
|
|
|
|
u64 friend_code;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct MyPresence {
|
|
|
|
u8 unknown[0x12C];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Profile {
|
|
|
|
u8 region;
|
|
|
|
u8 country;
|
|
|
|
u8 area;
|
|
|
|
u8 language;
|
|
|
|
u32 unknown;
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* FRD::GetMyPresence service function
|
|
|
|
* Inputs:
|
|
|
|
* 64 : sizeof (MyPresence) << 14 | 2
|
|
|
|
* 65 : Address of MyPresence structure
|
|
|
|
* Outputs:
|
|
|
|
* 1 : Result of function, 0 on success, otherwise error code
|
|
|
|
*/
|
|
|
|
void GetMyPresence(Service::Interface* self);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* FRD::GetFriendKeyList service function
|
|
|
|
* Inputs:
|
|
|
|
* 1 : Unknown
|
|
|
|
* 2 : Max friends count
|
|
|
|
* 65 : Address of FriendKey List
|
|
|
|
* Outputs:
|
|
|
|
* 1 : Result of function, 0 on success, otherwise error code
|
|
|
|
* 2 : FriendKey count filled
|
|
|
|
*/
|
|
|
|
void GetFriendKeyList(Service::Interface* self);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* FRD::GetFriendProfile service function
|
|
|
|
* Inputs:
|
|
|
|
* 1 : Friends count
|
|
|
|
* 2 : Friends count << 18 | 2
|
|
|
|
* 3 : Address of FriendKey List
|
|
|
|
* 64 : (count * sizeof (Profile)) << 10 | 2
|
|
|
|
* 65 : Address of Profiles List
|
|
|
|
* Outputs:
|
|
|
|
* 1 : Result of function, 0 on success, otherwise error code
|
|
|
|
*/
|
|
|
|
void GetFriendProfile(Service::Interface* self);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* FRD::GetFriendAttributeFlags service function
|
|
|
|
* Inputs:
|
|
|
|
* 1 : Friends count
|
|
|
|
* 2 : Friends count << 18 | 2
|
|
|
|
* 3 : Address of FriendKey List
|
|
|
|
* 65 : Address of AttributeFlags
|
|
|
|
* Outputs:
|
|
|
|
* 1 : Result of function, 0 on success, otherwise error code
|
|
|
|
*/
|
|
|
|
void GetFriendAttributeFlags(Service::Interface* self);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* FRD::GetMyFriendKey service function
|
|
|
|
* Inputs:
|
|
|
|
* none
|
|
|
|
* Outputs:
|
|
|
|
* 1 : Result of function, 0 on success, otherwise error code
|
|
|
|
* 2-5 : FriendKey
|
|
|
|
*/
|
|
|
|
void GetMyFriendKey(Service::Interface* self);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* FRD::GetMyScreenName service function
|
|
|
|
* Outputs:
|
|
|
|
* 1 : Result of function, 0 on success, otherwise error code
|
|
|
|
* 2 : UTF16 encoded name (max 11 symbols)
|
|
|
|
*/
|
|
|
|
void GetMyScreenName(Service::Interface* self);
|
|
|
|
|
2017-07-17 02:32:08 +00:00
|
|
|
/**
|
|
|
|
* FRD::UnscrambleLocalFriendCode service function
|
|
|
|
* Inputs:
|
|
|
|
* 1 : Friend code count
|
|
|
|
* 2 : ((count * 12) << 14) | 0x402
|
|
|
|
* 3 : Pointer to encoded friend codes. Each is 12 bytes large
|
|
|
|
* 64 : ((count * 8) << 14) | 2
|
|
|
|
* 65 : Pointer to write decoded local friend codes to. Each is 8 bytes large.
|
|
|
|
* Outputs:
|
|
|
|
* 1 : Result of function, 0 on success, otherwise error code
|
|
|
|
*/
|
|
|
|
void UnscrambleLocalFriendCode(Service::Interface* self);
|
|
|
|
|
2016-11-20 05:50:48 +00:00
|
|
|
/**
|
|
|
|
* FRD::SetClientSdkVersion service function
|
|
|
|
* Inputs:
|
|
|
|
* 1 : Used SDK Version
|
|
|
|
* Outputs:
|
|
|
|
* 1 : Result of function, 0 on success, otherwise error code
|
|
|
|
*/
|
|
|
|
void SetClientSdkVersion(Service::Interface* self);
|
|
|
|
|
2015-06-11 22:12:16 +00:00
|
|
|
/// Initialize FRD service(s)
|
|
|
|
void Init();
|
|
|
|
|
|
|
|
/// Shutdown FRD service(s)
|
|
|
|
void Shutdown();
|
|
|
|
|
|
|
|
} // namespace FRD
|
|
|
|
} // namespace Service
|