diff options
| author | Zach Hilman <zachhilman@gmail.com> | 2018-09-27 08:59:50 -0400 | 
|---|---|---|
| committer | Zach Hilman <zachhilman@gmail.com> | 2018-09-30 21:01:35 -0400 | 
| commit | 7d86a008e219f37cd6fd58175ed6e4a0739e6ea5 (patch) | |
| tree | 8dfdf30a3256750cb9baf648641b002cb420a330 | |
| parent | 62225ae050f0e3c0eee4eb691021cd4825efbed0 (diff) | |
aoc_u: Implement GetAddOnContentBaseId
Command #5
| -rw-r--r-- | src/core/file_sys/patch_manager.cpp | 5 | ||||
| -rw-r--r-- | src/core/hle/service/aoc/aoc_u.cpp | 7 | ||||
| -rw-r--r-- | src/core/hle/service/aoc/aoc_u.h | 1 | 
3 files changed, 8 insertions, 5 deletions
| diff --git a/src/core/file_sys/patch_manager.cpp b/src/core/file_sys/patch_manager.cpp index 5ac2b987e..ceb462ec4 100644 --- a/src/core/file_sys/patch_manager.cpp +++ b/src/core/file_sys/patch_manager.cpp @@ -33,7 +33,7 @@ std::string FormatTitleVersion(u32 version, TitleVersionFormat format) {      return fmt::format("v{}.{}.{}", bytes[3], bytes[2], bytes[1]);  } -constexpr std::array<const char*, 2> PATCH_TYPE_NAMES{ +constexpr std::array<const char*, 3> PATCH_TYPE_NAMES{      "Update",      "LayeredFS",      "DLC", @@ -141,7 +141,7 @@ std::map<PatchType, std::string> PatchManager::GetPatchVersionNames() const {      std::map<PatchType, std::string> out;      const auto installed = Service::FileSystem::GetUnionContents(); -    // Update +    // Game Updates      const auto update_tid = GetUpdateTitleID(title_id);      PatchManager update{update_tid};      auto [nacp, discard_icon_file] = update.GetControlMetadata(); @@ -160,6 +160,7 @@ std::map<PatchType, std::string> PatchManager::GetPatchVersionNames() const {          }      } +    // LayeredFS      const auto lfs_dir = Service::FileSystem::GetModificationLoadRoot(title_id);      if (lfs_dir != nullptr && lfs_dir->GetSize() > 0)          out.insert_or_assign(PatchType::LayeredFS, ""); diff --git a/src/core/hle/service/aoc/aoc_u.cpp b/src/core/hle/service/aoc/aoc_u.cpp index f7597f9bb..745ee89bc 100644 --- a/src/core/hle/service/aoc/aoc_u.cpp +++ b/src/core/hle/service/aoc/aoc_u.cpp @@ -30,7 +30,7 @@ AOC_U::AOC_U() : ServiceFramework("aoc:u") {          {2, &AOC_U::CountAddOnContent, "CountAddOnContent"},          {3, &AOC_U::ListAddOnContent, "ListAddOnContent"},          {4, nullptr, "GetAddOnContentBaseIdByApplicationId"}, -        {5, nullptr, "GetAddOnContentBaseId"}, +        {5, &AOC_U::GetAddOnContentBaseId, "GetAddOnContentBaseId"},          {6, nullptr, "PrepareAddOnContentByApplicationId"},          {7, &AOC_U::PrepareAddOnContent, "PrepareAddOnContent"},          {8, nullptr, "GetAddOnContentListChangedEvent"}, @@ -95,10 +95,11 @@ void AOC_U::ListAddOnContent(Kernel::HLERequestContext& ctx) {      rb.Push(RESULT_SUCCESS);  } +void AOC_U::GetAddOnContentBaseId(Kernel::HLERequestContext& ctx) {      IPC::ResponseBuilder rb{ctx, 4};      rb.Push(RESULT_SUCCESS); -    rb.Push<u64>(0); -    LOG_WARNING(Service_AOC, "(STUBBED) called"); +    rb.Push(Core::System::GetInstance().CurrentProcess()->program_id | DLC_BASE_TO_AOC_ID_MASK); +}  void AOC_U::PrepareAddOnContent(Kernel::HLERequestContext& ctx) {      IPC::RequestParser rp{ctx}; diff --git a/src/core/hle/service/aoc/aoc_u.h b/src/core/hle/service/aoc/aoc_u.h index 61e2ec75d..b3c7cab7a 100644 --- a/src/core/hle/service/aoc/aoc_u.h +++ b/src/core/hle/service/aoc/aoc_u.h @@ -16,6 +16,7 @@ public:  private:      void CountAddOnContent(Kernel::HLERequestContext& ctx);      void ListAddOnContent(Kernel::HLERequestContext& ctx); +    void GetAddOnContentBaseId(Kernel::HLERequestContext& ctx);      void PrepareAddOnContent(Kernel::HLERequestContext& ctx);      std::vector<u64> add_on_content; | 
