mirror of
https://github.com/RPCS3/rpcs3.git
synced 2026-03-10 15:38:08 +01:00
Some checks are pending
Generate Translation Template / Generate Translation Template (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (/rpcs3/.ci/build-linux-aarch64.sh, gcc, rpcs3/rpcs3-ci-jammy-aarch64:1.7, ubuntu-24.04-arm) (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (/rpcs3/.ci/build-linux.sh, gcc, rpcs3/rpcs3-ci-jammy:1.7, ubuntu-24.04) (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (a1d35836e8d45bfc6f63c26f0a3e5d46ef622fe1, rpcs3/rpcs3-binaries-linux-arm64, /rpcs3/.ci/build-linux-aarch64.sh, clang, rpcs3/rpcs3-ci-jammy-aarch64:1.7, ubuntu-24.04-arm) (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (d812f1254a1157c80fd402f94446310560f54e5f, rpcs3/rpcs3-binaries-linux, /rpcs3/.ci/build-linux.sh, clang, rpcs3/rpcs3-ci-jammy:1.7, ubuntu-24.04) (push) Waiting to run
Build RPCS3 / RPCS3 Mac ${{ matrix.name }} (51ae32f468089a8169aaf1567de355ff4a3e0842, rpcs3/rpcs3-binaries-mac, .ci/build-mac.sh, Intel) (push) Waiting to run
Build RPCS3 / RPCS3 Mac ${{ matrix.name }} (8e21bdbc40711a3fccd18fbf17b742348b0f4281, rpcs3/rpcs3-binaries-mac-arm64, .ci/build-mac-arm64.sh, Apple Silicon) (push) Waiting to run
Build RPCS3 / RPCS3 Windows (push) Waiting to run
Build RPCS3 / RPCS3 Windows Clang (win64, clang, clang64) (push) Waiting to run
Build RPCS3 / RPCS3 FreeBSD (push) Waiting to run
50 lines
1.2 KiB
C++
50 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#ifdef HAVE_SDL3
|
|
|
|
#include "Emu/Io/camera_handler_base.h"
|
|
|
|
#ifndef _MSC_VER
|
|
#pragma GCC diagnostic push
|
|
#pragma GCC diagnostic ignored "-Wold-style-cast"
|
|
#endif
|
|
#include "SDL3/SDL.h"
|
|
#ifndef _MSC_VER
|
|
#pragma GCC diagnostic pop
|
|
#endif
|
|
|
|
#include <map>
|
|
|
|
class sdl_camera_video_sink;
|
|
|
|
class sdl_camera_handler : public camera_handler_base
|
|
{
|
|
public:
|
|
sdl_camera_handler();
|
|
virtual ~sdl_camera_handler();
|
|
|
|
void open_camera() override;
|
|
void close_camera() override;
|
|
void start_camera() override;
|
|
void stop_camera() override;
|
|
void set_format(s32 format, u32 bytesize) override;
|
|
void set_frame_rate(u32 frame_rate) override;
|
|
void set_resolution(u32 width, u32 height) override;
|
|
void set_mirrored(bool mirrored) override;
|
|
u64 frame_number() const override;
|
|
camera_handler_state get_image(u8* buf, u64 size, u32& width, u32& height, u64& frame_number, u64& bytes_read) override;
|
|
|
|
static std::vector<std::string> get_drivers();
|
|
static std::map<SDL_CameraID, std::string> get_cameras();
|
|
|
|
private:
|
|
void reset();
|
|
|
|
std::string m_camera_id;
|
|
SDL_CameraID m_sdl_camera_id = 0;
|
|
SDL_Camera* m_camera = nullptr;
|
|
std::unique_ptr<sdl_camera_video_sink> m_video_sink;
|
|
};
|
|
|
|
#endif
|