Browse Source
service: Add capture services
service: Add capture services
Adds the basic skeleton for the capture services based off information provided by Switch Brew.nce_cpp
6 changed files with 173 additions and 0 deletions
-
1src/common/logging/backend.cpp
-
1src/common/logging/log.h
-
2src/core/CMakeLists.txt
-
152src/core/hle/service/caps/caps.cpp
-
15src/core/hle/service/caps/caps.h
-
2src/core/hle/service/service.cpp
@ -0,0 +1,152 @@ |
|||
// Copyright 2018 yuzu emulator team
|
|||
// Licensed under GPLv2 or any later version
|
|||
// Refer to the license.txt file included.
|
|||
|
|||
#include <memory>
|
|||
|
|||
#include "core/hle/service/caps/caps.h"
|
|||
#include "core/hle/service/service.h"
|
|||
#include "core/hle/service/sm/sm.h"
|
|||
|
|||
namespace Service::Capture { |
|||
|
|||
class CAPS_A final : public ServiceFramework<CAPS_A> { |
|||
public: |
|||
explicit CAPS_A() : ServiceFramework{"caps:a"} { |
|||
// clang-format off
|
|||
static const FunctionInfo functions[] = { |
|||
{0, nullptr, "Unknown1"}, |
|||
{1, nullptr, "Unknown2"}, |
|||
{2, nullptr, "Unknown3"}, |
|||
{3, nullptr, "Unknown4"}, |
|||
{4, nullptr, "Unknown5"}, |
|||
{5, nullptr, "Unknown6"}, |
|||
{6, nullptr, "Unknown7"}, |
|||
{7, nullptr, "Unknown8"}, |
|||
{8, nullptr, "Unknown9"}, |
|||
{9, nullptr, "Unknown10"}, |
|||
{10, nullptr, "Unknown11"}, |
|||
{11, nullptr, "Unknown12"}, |
|||
{12, nullptr, "Unknown13"}, |
|||
{13, nullptr, "Unknown14"}, |
|||
{14, nullptr, "Unknown15"}, |
|||
{301, nullptr, "Unknown16"}, |
|||
{401, nullptr, "Unknown17"}, |
|||
{501, nullptr, "Unknown18"}, |
|||
{1001, nullptr, "Unknown19"}, |
|||
{1002, nullptr, "Unknown20"}, |
|||
{8001, nullptr, "Unknown21"}, |
|||
{8002, nullptr, "Unknown22"}, |
|||
{8011, nullptr, "Unknown23"}, |
|||
{8012, nullptr, "Unknown24"}, |
|||
{8021, nullptr, "Unknown25"}, |
|||
{10011, nullptr, "Unknown26"}, |
|||
}; |
|||
// clang-format on
|
|||
|
|||
RegisterHandlers(functions); |
|||
} |
|||
}; |
|||
|
|||
class CAPS_C final : public ServiceFramework<CAPS_C> { |
|||
public: |
|||
explicit CAPS_C() : ServiceFramework{"caps:c"} { |
|||
// clang-format off
|
|||
static const FunctionInfo functions[] = { |
|||
{2001, nullptr, "Unknown1"}, |
|||
{2002, nullptr, "Unknown2"}, |
|||
{2011, nullptr, "Unknown3"}, |
|||
{2012, nullptr, "Unknown4"}, |
|||
{2013, nullptr, "Unknown5"}, |
|||
{2014, nullptr, "Unknown6"}, |
|||
{2101, nullptr, "Unknown7"}, |
|||
{2102, nullptr, "Unknown8"}, |
|||
{2201, nullptr, "Unknown9"}, |
|||
{2301, nullptr, "Unknown10"}, |
|||
}; |
|||
// clang-format on
|
|||
|
|||
RegisterHandlers(functions); |
|||
} |
|||
}; |
|||
|
|||
class CAPS_SC final : public ServiceFramework<CAPS_SC> { |
|||
public: |
|||
explicit CAPS_SC() : ServiceFramework{"caps:sc"} { |
|||
// clang-format off
|
|||
static const FunctionInfo functions[] = { |
|||
{1, nullptr, "Unknown1"}, |
|||
{2, nullptr, "Unknown2"}, |
|||
{1001, nullptr, "Unknown3"}, |
|||
{1002, nullptr, "Unknown4"}, |
|||
{1003, nullptr, "Unknown5"}, |
|||
{1011, nullptr, "Unknown6"}, |
|||
{1012, nullptr, "Unknown7"}, |
|||
{1201, nullptr, "Unknown8"}, |
|||
{1202, nullptr, "Unknown9"}, |
|||
{1203, nullptr, "Unknown10"}, |
|||
}; |
|||
// clang-format on
|
|||
|
|||
RegisterHandlers(functions); |
|||
} |
|||
}; |
|||
|
|||
class CAPS_SS final : public ServiceFramework<CAPS_SS> { |
|||
public: |
|||
explicit CAPS_SS() : ServiceFramework{"caps:ss"} { |
|||
// clang-format off
|
|||
static const FunctionInfo functions[] = { |
|||
{201, nullptr, "Unknown1"}, |
|||
{202, nullptr, "Unknown2"}, |
|||
{203, nullptr, "Unknown3"}, |
|||
{204, nullptr, "Unknown4"}, |
|||
}; |
|||
// clang-format on
|
|||
|
|||
RegisterHandlers(functions); |
|||
} |
|||
}; |
|||
|
|||
class CAPS_SU final : public ServiceFramework<CAPS_SU> { |
|||
public: |
|||
explicit CAPS_SU() : ServiceFramework{"caps:su"} { |
|||
// clang-format off
|
|||
static const FunctionInfo functions[] = { |
|||
{201, nullptr, "SaveScreenShot"}, |
|||
{203, nullptr, "SaveScreenShotEx0"}, |
|||
}; |
|||
// clang-format on
|
|||
|
|||
RegisterHandlers(functions); |
|||
} |
|||
}; |
|||
|
|||
class CAPS_U final : public ServiceFramework<CAPS_U> { |
|||
public: |
|||
explicit CAPS_U() : ServiceFramework{"caps:u"} { |
|||
// clang-format off
|
|||
static const FunctionInfo functions[] = { |
|||
{102, nullptr, "GetAlbumFileListByAruid"}, |
|||
{103, nullptr, "DeleteAlbumFileByAruid"}, |
|||
{104, nullptr, "GetAlbumFileSizeByAruid"}, |
|||
{110, nullptr, "LoadAlbumScreenShotImageByAruid"}, |
|||
{120, nullptr, "LoadAlbumScreenShotThumbnailImageByAruid"}, |
|||
{60002, nullptr, "OpenAccessorSessionForApplication"}, |
|||
}; |
|||
// clang-format on
|
|||
|
|||
RegisterHandlers(functions); |
|||
} |
|||
}; |
|||
|
|||
void InstallInterfaces(SM::ServiceManager& sm) { |
|||
std::make_shared<CAPS_A>()->InstallAsService(sm); |
|||
std::make_shared<CAPS_C>()->InstallAsService(sm); |
|||
std::make_shared<CAPS_SC>()->InstallAsService(sm); |
|||
std::make_shared<CAPS_SS>()->InstallAsService(sm); |
|||
std::make_shared<CAPS_SU>()->InstallAsService(sm); |
|||
std::make_shared<CAPS_U>()->InstallAsService(sm); |
|||
} |
|||
|
|||
} // namespace Service::Capture
|
|||
@ -0,0 +1,15 @@ |
|||
// Copyright 2018 yuzu emulator team |
|||
// Licensed under GPLv2 or any later version |
|||
// Refer to the license.txt file included. |
|||
|
|||
#pragma once |
|||
|
|||
namespace Service::SM { |
|||
class ServiceManager; |
|||
} |
|||
|
|||
namespace Service::Capture { |
|||
|
|||
void InstallInterfaces(SM::ServiceManager& sm); |
|||
|
|||
} // namespace Service::Capture |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue