mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-21 03:55:32 +00:00
merge qt_camera_error_handler into qt_camera_handler
This commit is contained in:
parent
11562c430a
commit
86f86f516a
8 changed files with 41 additions and 89 deletions
|
@ -1,7 +1,9 @@
|
|||
#pragma once
|
||||
|
||||
#include "util/atomic.hpp"
|
||||
#include "util/types.hpp"
|
||||
|
||||
#include <mutex>
|
||||
#include <vector>
|
||||
|
||||
class camera_handler_base
|
||||
{
|
||||
|
|
|
@ -345,7 +345,7 @@
|
|||
<ClCompile Include="QTGeneratedFiles\Debug\moc_pkg_install_dialog.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="QTGeneratedFiles\Debug\moc_qt_camera_error_handler.cpp">
|
||||
<ClCompile Include="QTGeneratedFiles\Debug\moc_qt_camera_handler.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="QTGeneratedFiles\Debug\moc_qt_music_error_handler.cpp">
|
||||
|
@ -609,7 +609,7 @@
|
|||
<ClCompile Include="QTGeneratedFiles\Release\moc_pkg_install_dialog.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="QTGeneratedFiles\Release\moc_qt_camera_error_handler.cpp">
|
||||
<ClCompile Include="QTGeneratedFiles\Release\moc_qt_camera_handler.cpp">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="QTGeneratedFiles\Release\moc_qt_music_error_handler.cpp">
|
||||
|
@ -751,7 +751,6 @@
|
|||
<ClCompile Include="rpcs3qt\pkg_install_dialog.cpp" />
|
||||
<ClCompile Include="rpcs3qt\persistent_settings.cpp" />
|
||||
<ClCompile Include="rpcs3qt\progress_indicator.cpp" />
|
||||
<ClCompile Include="rpcs3qt\qt_camera_error_handler.cpp" />
|
||||
<ClCompile Include="rpcs3qt\qt_camera_handler.cpp" />
|
||||
<ClCompile Include="rpcs3qt\qt_music_error_handler.cpp" />
|
||||
<ClCompile Include="rpcs3qt\qt_music_handler.cpp" />
|
||||
|
@ -1377,7 +1376,7 @@
|
|||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\QTGeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\QTGeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -D_WINDOWS -DUNICODE -DWIN32 -DWIN64 -DWITH_DISCORD_RPC -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DNDEBUG -DQT_WINEXTRAS_LIB -DQT_CONCURRENT_LIB -D%(PreprocessorDefinitions) "-I.\..\3rdparty\flatbuffers\include" "-I.\..\3rdparty\wolfssl\wolfssl" "-I.\..\3rdparty\curl\curl\include" "-I.\..\3rdparty\libusb\libusb\libusb" "-I$(VULKAN_SDK)\Include" "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtANGLE" "-I$(QTDIR)\include\QtCore" "-I.\release" "-I$(QTDIR)\mkspecs\win32-msvc2015" "-I.\QTGeneratedFiles\$(ConfigurationName)" "-I.\QTGeneratedFiles" "-I$(QTDIR)\include\QtWinExtras" "-I$(QTDIR)\include\QtConcurrent"</Command>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="rpcs3qt\qt_camera_error_handler.h">
|
||||
<CustomBuild Include="rpcs3qt\qt_camera_handler.h">
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Identity)...</Message>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\QTGeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
|
||||
|
@ -1399,7 +1398,6 @@
|
|||
</CustomBuild>
|
||||
<ClInclude Include="rpcs3qt\pad_device_info.h" />
|
||||
<ClInclude Include="rpcs3qt\progress_indicator.h" />
|
||||
<ClInclude Include="rpcs3qt\qt_camera_handler.h" />
|
||||
<ClInclude Include="rpcs3qt\qt_music_handler.h" />
|
||||
<CustomBuild Include="rpcs3qt\qt_music_error_handler.h">
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
|
||||
|
@ -1948,4 +1946,4 @@
|
|||
<UserProperties MocDir=".\QTGeneratedFiles\$(ConfigurationName)" Qt5Version_x0020_x64="$(DefaultQtVersion)" RccDir=".\QTGeneratedFiles" UicDir=".\QTGeneratedFiles" />
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
||||
</Project>
|
||||
|
|
|
@ -828,13 +828,10 @@
|
|||
<ClCompile Include="rpcs3qt\qt_camera_video_sink.cpp">
|
||||
<Filter>Io\camera</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="rpcs3qt\qt_camera_error_handler.cpp">
|
||||
<Filter>Io\camera</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="QTGeneratedFiles\Debug\moc_qt_camera_error_handler.cpp">
|
||||
<ClCompile Include="QTGeneratedFiles\Debug\moc_qt_camera_handler.cpp">
|
||||
<Filter>Generated Files\Debug</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="QTGeneratedFiles\Release\moc_qt_camera_error_handler.cpp">
|
||||
<ClCompile Include="QTGeneratedFiles\Release\moc_qt_camera_handler.cpp">
|
||||
<Filter>Generated Files\Release</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="rpcs3qt\camera_settings_dialog.cpp">
|
||||
|
@ -1199,9 +1196,6 @@
|
|||
<ClInclude Include="rpcs3qt\qt_camera_video_sink.h">
|
||||
<Filter>Io\camera</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="rpcs3qt\qt_camera_handler.h">
|
||||
<Filter>Io\camera</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="QTGeneratedFiles\ui_camera_settings_dialog.h">
|
||||
<Filter>Generated Files</Filter>
|
||||
</ClInclude>
|
||||
|
@ -1483,7 +1477,7 @@
|
|||
<CustomBuild Include="rpcs3qt\recvmessage_dialog_frame.h">
|
||||
<Filter>Gui\message dialog</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="rpcs3qt\qt_camera_error_handler.h">
|
||||
<CustomBuild Include="rpcs3qt\qt_camera_handler.h">
|
||||
<Filter>Io\camera</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="rpcs3qt\camera_settings_dialog.ui">
|
||||
|
|
|
@ -63,7 +63,6 @@ add_library(rpcs3_ui STATIC
|
|||
pkg_install_dialog.cpp
|
||||
progress_dialog.cpp
|
||||
progress_indicator.cpp
|
||||
qt_camera_error_handler.cpp
|
||||
qt_camera_handler.cpp
|
||||
qt_camera_video_sink.cpp
|
||||
qt_music_error_handler.cpp
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
#include "stdafx.h"
|
||||
#include "qt_camera_error_handler.h"
|
||||
|
||||
LOG_CHANNEL(camera_log, "Camera");
|
||||
|
||||
qt_camera_error_handler::qt_camera_error_handler(std::shared_ptr<QCamera> camera, std::function<void(bool)> status_callback)
|
||||
: m_camera(std::move(camera))
|
||||
, m_status_callback(std::move(status_callback))
|
||||
{
|
||||
if (m_camera)
|
||||
{
|
||||
connect(m_camera.get(), &QCamera::activeChanged, this, &qt_camera_error_handler::handle_camera_active);
|
||||
connect(m_camera.get(), &QCamera::errorOccurred, this, &qt_camera_error_handler::handle_camera_error);
|
||||
}
|
||||
}
|
||||
|
||||
qt_camera_error_handler::~qt_camera_error_handler()
|
||||
{
|
||||
}
|
||||
|
||||
void qt_camera_error_handler::handle_camera_active(bool is_active)
|
||||
{
|
||||
camera_log.notice("Camera active status changed to %d", is_active);
|
||||
|
||||
if (m_status_callback)
|
||||
{
|
||||
m_status_callback(is_active);
|
||||
}
|
||||
}
|
||||
|
||||
void qt_camera_error_handler::handle_camera_error(QCamera::Error error, const QString& errorString)
|
||||
{
|
||||
camera_log.error("Error event: \"%s\" (error=%d)", errorString, static_cast<int>(error));
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
#include <QObject>
|
||||
#include <QCamera>
|
||||
|
||||
class qt_camera_error_handler : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
qt_camera_error_handler(std::shared_ptr<QCamera> camera, std::function<void(bool)> status_callback);
|
||||
virtual ~qt_camera_error_handler();
|
||||
|
||||
private Q_SLOTS:
|
||||
void handle_camera_active(bool is_active);
|
||||
void handle_camera_error(QCamera::Error error, const QString& errorString);
|
||||
|
||||
private:
|
||||
std::shared_ptr<QCamera> m_camera;
|
||||
std::function<void(bool)> m_status_callback = nullptr;
|
||||
};
|
|
@ -3,7 +3,6 @@
|
|||
#include "Emu/system_config.h"
|
||||
#include "Emu/System.h"
|
||||
#include "Emu/Io/camera_config.h"
|
||||
#include "Emu/Cell/lv2/sys_event.h"
|
||||
|
||||
#include <QMediaDevices>
|
||||
|
||||
|
@ -35,7 +34,6 @@ qt_camera_handler::~qt_camera_handler()
|
|||
void qt_camera_handler::reset()
|
||||
{
|
||||
m_camera.reset();
|
||||
m_error_handler.reset();
|
||||
m_video_sink.reset();
|
||||
m_media_capture_session.reset();
|
||||
}
|
||||
|
@ -57,18 +55,9 @@ void qt_camera_handler::set_camera(const QCameraDevice& camera_info)
|
|||
m_media_capture_session.reset(new QMediaCaptureSession(nullptr));
|
||||
m_video_sink.reset(new qt_camera_video_sink(front_facing, nullptr));
|
||||
m_camera.reset(new QCamera(camera_info));
|
||||
m_error_handler.reset(new qt_camera_error_handler(m_camera,
|
||||
[this](bool is_active)
|
||||
{
|
||||
if (is_active)
|
||||
{
|
||||
m_state = camera_handler_state::running;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_state = camera_handler_state::closed;
|
||||
}
|
||||
}));
|
||||
|
||||
connect(m_camera.get(), &QCamera::activeChanged, this, &qt_camera_handler::handle_camera_active);
|
||||
connect(m_camera.get(), &QCamera::errorOccurred, this, &qt_camera_handler::handle_camera_error);
|
||||
|
||||
// Setup video sink
|
||||
m_media_capture_session->setCamera(m_camera.get());
|
||||
|
@ -78,6 +67,25 @@ void qt_camera_handler::set_camera(const QCameraDevice& camera_info)
|
|||
update_camera_settings();
|
||||
}
|
||||
|
||||
void qt_camera_handler::handle_camera_active(bool is_active)
|
||||
{
|
||||
camera_log.notice("Camera active status changed to %d", is_active);
|
||||
|
||||
if (is_active)
|
||||
{
|
||||
m_state = camera_handler_state::running;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_state = camera_handler_state::closed;
|
||||
}
|
||||
}
|
||||
|
||||
void qt_camera_handler::handle_camera_error(QCamera::Error error, const QString& errorString)
|
||||
{
|
||||
camera_log.error("Error event: \"%s\" (error=%d)", errorString, static_cast<int>(error));
|
||||
}
|
||||
|
||||
void qt_camera_handler::open_camera()
|
||||
{
|
||||
camera_log.notice("Loading camera");
|
||||
|
|
|
@ -2,14 +2,17 @@
|
|||
|
||||
#include "Emu/Io/camera_handler_base.h"
|
||||
#include "qt_camera_video_sink.h"
|
||||
#include "qt_camera_error_handler.h"
|
||||
#include "util/types.hpp"
|
||||
|
||||
#include <QCamera>
|
||||
#include <QMediaCaptureSession>
|
||||
#include <QObject>
|
||||
#include <QVideoSink>
|
||||
|
||||
class qt_camera_handler final : public camera_handler_base
|
||||
class qt_camera_handler final : public QObject, public camera_handler_base
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
qt_camera_handler();
|
||||
virtual ~qt_camera_handler();
|
||||
|
@ -35,5 +38,8 @@ private:
|
|||
std::shared_ptr<QCamera> m_camera;
|
||||
std::unique_ptr<QMediaCaptureSession> m_media_capture_session;
|
||||
std::unique_ptr<qt_camera_video_sink> m_video_sink;
|
||||
std::unique_ptr<qt_camera_error_handler> m_error_handler;
|
||||
|
||||
private Q_SLOTS:
|
||||
void handle_camera_active(bool is_active);
|
||||
void handle_camera_error(QCamera::Error error, const QString& errorString);
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue