// Copyright 2018 Citra Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once #include #include #include "citra_qt/camera/camera_util.h" #include "citra_qt/camera/qt_camera_factory.h" #include "core/frontend/camera/interface.h" namespace Camera { class StillImageCamera final : public CameraInterface { public: StillImageCamera(QImage image, const Service::CAM::Flip& flip); 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; void SetFrameRate(Service::CAM::FrameRate frame_rate) override {} std::vector ReceiveFrame() override; bool IsPreviewAvailable() override; private: QImage image; int width, height; bool output_rgb; bool flip_horizontal, flip_vertical; bool basic_flip_horizontal, basic_flip_vertical; }; class StillImageCameraFactory final : public QtCameraFactory { public: std::unique_ptr Create(const std::string& config, const Service::CAM::Flip& flip) const override; private: static const std::string getFilePath(); }; } // namespace Camera