diff options
Diffstat (limited to 'src/core/frontend/camera')
-rw-r--r-- | src/core/frontend/camera/blank_camera.cpp | 31 | ||||
-rw-r--r-- | src/core/frontend/camera/blank_camera.h | 28 | ||||
-rw-r--r-- | src/core/frontend/camera/factory.cpp | 32 | ||||
-rw-r--r-- | src/core/frontend/camera/factory.h | 41 | ||||
-rw-r--r-- | src/core/frontend/camera/interface.cpp | 11 | ||||
-rw-r--r-- | src/core/frontend/camera/interface.h | 61 |
6 files changed, 0 insertions, 204 deletions
diff --git a/src/core/frontend/camera/blank_camera.cpp b/src/core/frontend/camera/blank_camera.cpp deleted file mode 100644 index 7995abcbd..000000000 --- a/src/core/frontend/camera/blank_camera.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include "core/frontend/camera/blank_camera.h" - -namespace Camera { - -void BlankCamera::StartCapture() {} - -void BlankCamera::StopCapture() {} - -void BlankCamera::SetFormat(Service::CAM::OutputFormat output_format) { - output_rgb = output_format == Service::CAM::OutputFormat::RGB565; -} - -void BlankCamera::SetResolution(const Service::CAM::Resolution& resolution) { - width = resolution.width; - height = resolution.height; -}; - -void BlankCamera::SetFlip(Service::CAM::Flip) {} - -void BlankCamera::SetEffect(Service::CAM::Effect) {} - -std::vector<u16> BlankCamera::ReceiveFrame() const { - // Note: 0x80008000 stands for two black pixels in YUV422 - return std::vector<u16>(width * height, output_rgb ? 0 : 0x8000); -} - -} // namespace Camera diff --git a/src/core/frontend/camera/blank_camera.h b/src/core/frontend/camera/blank_camera.h deleted file mode 100644 index c6619bd88..000000000 --- a/src/core/frontend/camera/blank_camera.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include "core/frontend/camera/factory.h" -#include "core/frontend/camera/interface.h" - -namespace Camera { - -class BlankCamera final : public CameraInterface { -public: - void StartCapture() override; - void StopCapture() override; - void SetResolution(const Service::CAM::Resolution&) override; - void SetFlip(Service::CAM::Flip) override; - void SetEffect(Service::CAM::Effect) override; - void SetFormat(Service::CAM::OutputFormat) override; - std::vector<u16> ReceiveFrame() const override; - -private: - int width = 0; - int height = 0; - bool output_rgb = false; -}; - -} // namespace Camera diff --git a/src/core/frontend/camera/factory.cpp b/src/core/frontend/camera/factory.cpp deleted file mode 100644 index 4b4da50dd..000000000 --- a/src/core/frontend/camera/factory.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include <unordered_map> -#include "common/logging/log.h" -#include "core/frontend/camera/blank_camera.h" -#include "core/frontend/camera/factory.h" - -namespace Camera { - -static std::unordered_map<std::string, std::unique_ptr<CameraFactory>> factories; - -CameraFactory::~CameraFactory() = default; - -void RegisterFactory(const std::string& name, std::unique_ptr<CameraFactory> factory) { - factories[name] = std::move(factory); -} - -std::unique_ptr<CameraInterface> CreateCamera(const std::string& name, const std::string& config) { - auto pair = factories.find(name); - if (pair != factories.end()) { - return pair->second->Create(config); - } - - if (name != "blank") { - LOG_ERROR(Service_CAM, "Unknown camera \"%s\"", name.c_str()); - } - return std::make_unique<BlankCamera>(); -} - -} // namespace Camera diff --git a/src/core/frontend/camera/factory.h b/src/core/frontend/camera/factory.h deleted file mode 100644 index f46413fa7..000000000 --- a/src/core/frontend/camera/factory.h +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <memory> -#include <string> -#include "core/frontend/camera/interface.h" - -namespace Camera { - -class CameraFactory { -public: - virtual ~CameraFactory(); - - /** - * Creates a camera object based on the configuration string. - * @param config Configuration string to create the camera. The implementation can decide the - * meaning of this string. - * @returns a unique_ptr to the created camera object. - */ - virtual std::unique_ptr<CameraInterface> Create(const std::string& config) const = 0; -}; - -/** - * Registers an external camera factory. - * @param name Identifier of the camera factory. - * @param factory Camera factory to register. - */ -void RegisterFactory(const std::string& name, std::unique_ptr<CameraFactory> factory); - -/** - * Creates a camera from the factory. - * @param name Identifier of the camera factory. - * @param config Configuration string to create the camera. The meaning of this string is - * defined by the factory. - */ -std::unique_ptr<CameraInterface> CreateCamera(const std::string& name, const std::string& config); - -} // namespace Camera diff --git a/src/core/frontend/camera/interface.cpp b/src/core/frontend/camera/interface.cpp deleted file mode 100644 index 9aec9e7f1..000000000 --- a/src/core/frontend/camera/interface.cpp +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#include "core/frontend/camera/interface.h" - -namespace Camera { - -CameraInterface::~CameraInterface() = default; - -} // namespace Camera diff --git a/src/core/frontend/camera/interface.h b/src/core/frontend/camera/interface.h deleted file mode 100644 index a55a495c9..000000000 --- a/src/core/frontend/camera/interface.h +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2016 Citra Emulator Project -// Licensed under GPLv2 or any later version -// Refer to the license.txt file included. - -#pragma once - -#include <vector> -#include "common/common_types.h" -#include "core/hle/service/cam/cam.h" - -namespace Camera { - -/// An abstract class standing for a camera. All camera implementations should inherit from this. -class CameraInterface { -public: - virtual ~CameraInterface(); - - /// Starts the camera for video capturing. - virtual void StartCapture() = 0; - - /// Stops the camera for video capturing. - virtual void StopCapture() = 0; - - /** - * Sets the video resolution from raw CAM service parameters. - * For the meaning of the parameters, please refer to Service::CAM::Resolution. Note that the - * actual camera implementation doesn't need to respect all the parameters. However, the width - * and the height parameters must be respected and be used to determine the size of output - * frames. - * @param resolution The resolution parameters to set - */ - virtual void SetResolution(const Service::CAM::Resolution& resolution) = 0; - - /** - * Configures how received frames should be flipped by the camera. - * @param flip Flip applying to the frame - */ - virtual void SetFlip(Service::CAM::Flip flip) = 0; - - /** - * Configures what effect should be applied to received frames by the camera. - * @param effect Effect applying to the frame - */ - virtual void SetEffect(Service::CAM::Effect effect) = 0; - - /** - * Sets the output format of the all frames received after this function is called. - * @param format Output format of the frame - */ - virtual void SetFormat(Service::CAM::OutputFormat format) = 0; - - /** - * Receives a frame from the camera. - * This function should be only called between a StartCapture call and a StopCapture call. - * @returns A std::vector<u16> containing pixels. The total size of the vector is width * height - * where width and height are set by a call to SetResolution. - */ - virtual std::vector<u16> ReceiveFrame() const = 0; -}; - -} // namespace Camera |