query_service.cpp 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include "common/logging/log.h"
  4. #include "common/uuid.h"
  5. #include "core/hle/service/cmif_serialization.h"
  6. #include "core/hle/service/ns/query_service.h"
  7. #include "core/hle/service/service.h"
  8. namespace Service::NS {
  9. IQueryService::IQueryService(Core::System& system_) : ServiceFramework{system_, "pdm:qry"} {
  10. // clang-format off
  11. static const FunctionInfo functions[] = {
  12. {0, nullptr, "QueryAppletEvent"},
  13. {1, nullptr, "QueryPlayStatistics"},
  14. {2, nullptr, "QueryPlayStatisticsByUserAccountId"},
  15. {3, nullptr, "QueryPlayStatisticsByNetworkServiceAccountId"},
  16. {4, nullptr, "QueryPlayStatisticsByApplicationId"},
  17. {5, D<&IQueryService::QueryPlayStatisticsByApplicationIdAndUserAccountId>, "QueryPlayStatisticsByApplicationIdAndUserAccountId"},
  18. {6, nullptr, "QueryPlayStatisticsByApplicationIdAndNetworkServiceAccountId"},
  19. {7, nullptr, "QueryLastPlayTimeV0"},
  20. {8, nullptr, "QueryPlayEvent"},
  21. {9, nullptr, "GetAvailablePlayEventRange"},
  22. {10, nullptr, "QueryAccountEvent"},
  23. {11, nullptr, "QueryAccountPlayEvent"},
  24. {12, nullptr, "GetAvailableAccountPlayEventRange"},
  25. {13, nullptr, "QueryApplicationPlayStatisticsForSystemV0"},
  26. {14, nullptr, "QueryRecentlyPlayedApplication"},
  27. {15, nullptr, "GetRecentlyPlayedApplicationUpdateEvent"},
  28. {16, nullptr, "QueryApplicationPlayStatisticsByUserAccountIdForSystemV0"},
  29. {17, nullptr, "QueryLastPlayTime"},
  30. {18, nullptr, "QueryApplicationPlayStatisticsForSystem"},
  31. {19, nullptr, "QueryApplicationPlayStatisticsByUserAccountIdForSystem"},
  32. };
  33. // clang-format on
  34. RegisterHandlers(functions);
  35. }
  36. IQueryService::~IQueryService() = default;
  37. Result IQueryService::QueryPlayStatisticsByApplicationIdAndUserAccountId(
  38. Out<PlayStatistics> out_play_statistics, bool unknown, u64 application_id, Uid account_id) {
  39. // TODO(German77): Read statistics of the game
  40. *out_play_statistics = {
  41. .application_id = application_id,
  42. .total_launches = 1,
  43. };
  44. LOG_WARNING(Service_NS, "(STUBBED) called. unknown={}. application_id={:016X}, account_id={}",
  45. unknown, application_id, account_id.uuid.FormattedString());
  46. R_SUCCEED();
  47. }
  48. } // namespace Service::NS