|
|
|
@ -42,7 +42,7 @@ public: |
|
|
|
{0, &IProfile::Get, "Get"}, |
|
|
|
{1, &IProfile::GetBase, "GetBase"}, |
|
|
|
{10, nullptr, "GetImageSize"}, |
|
|
|
{11, nullptr, "LoadImage"}, |
|
|
|
{11, &IProfile::LoadImage, "LoadImage"}, |
|
|
|
}; |
|
|
|
RegisterHandlers(functions); |
|
|
|
} |
|
|
|
@ -83,6 +83,27 @@ private: |
|
|
|
rb.PushRaw(profile_base); |
|
|
|
} |
|
|
|
|
|
|
|
void LoadImage(Kernel::HLERequestContext& ctx) { |
|
|
|
LOG_WARNING(Service_ACC, "(STUBBED) called"); |
|
|
|
// smallest jpeg https://github.com/mathiasbynens/small/blob/master/jpeg.jpg
|
|
|
|
// TODO(mailwl): load actual profile image from disk, width 256px, max size 0x20000
|
|
|
|
const u32 jpeg_size = 107; |
|
|
|
static const std::array<u8, jpeg_size> jpeg{ |
|
|
|
0xff, 0xd8, 0xff, 0xdb, 0x00, 0x43, 0x00, 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x03, |
|
|
|
0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x04, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, |
|
|
|
0x08, 0x06, 0x06, 0x05, 0x06, 0x09, 0x08, 0x0a, 0x0a, 0x09, 0x08, 0x09, 0x09, 0x0a, |
|
|
|
0x0c, 0x0f, 0x0c, 0x0a, 0x0b, 0x0e, 0x0b, 0x09, 0x09, 0x0d, 0x11, 0x0d, 0x0e, 0x0f, |
|
|
|
0x10, 0x10, 0x11, 0x10, 0x0a, 0x0c, 0x12, 0x13, 0x12, 0x10, 0x13, 0x0f, 0x10, 0x10, |
|
|
|
0x10, 0xff, 0xc9, 0x00, 0x0b, 0x08, 0x00, 0x01, 0x00, 0x01, 0x01, 0x01, 0x11, 0x00, |
|
|
|
0xff, 0xcc, 0x00, 0x06, 0x00, 0x10, 0x10, 0x05, 0xff, 0xda, 0x00, 0x08, 0x01, 0x01, |
|
|
|
0x00, 0x00, 0x3f, 0x00, 0xd2, 0xcf, 0x20, 0xff, 0xd9, |
|
|
|
}; |
|
|
|
ctx.WriteBuffer(jpeg.data(), jpeg_size); |
|
|
|
IPC::ResponseBuilder rb{ctx, 3}; |
|
|
|
rb.Push(RESULT_SUCCESS); |
|
|
|
rb.Push<u32>(jpeg_size); |
|
|
|
} |
|
|
|
|
|
|
|
u128 user_id; ///< The user id this profile refers to.
|
|
|
|
}; |
|
|
|
|
|
|
|
|