mirror of https://github.com/PCSX2/pcsx2.git
input-rec: begin achieving parity in Qt
This commit is contained in:
parent
655939147a
commit
2e8076d909
|
@ -35,6 +35,7 @@
|
|||
#include "pcsx2/HostDisplay.h"
|
||||
#include "pcsx2/PAD/Host/PAD.h"
|
||||
#include "pcsx2/PerformanceMetrics.h"
|
||||
#include "pcsx2/Recording/InputRecordingControls.h"
|
||||
#include "pcsx2/VMManager.h"
|
||||
|
||||
#include "DisplayWidget.h"
|
||||
|
@ -968,4 +969,20 @@ DEFINE_HOTKEY("ToggleFullscreen", "General", "Toggle Fullscreen", [](bool presse
|
|||
if (!pressed)
|
||||
g_emu_thread->toggleFullscreen();
|
||||
})
|
||||
// Input Recording Hot Keys
|
||||
DEFINE_HOTKEY("InputRecToggleMode", "Input Recording", "Toggle Recording Mode", [](bool pressed) {
|
||||
if (!pressed) // ?? - not pressed so it is on key up?
|
||||
{
|
||||
g_InputRecordingControls.RecordModeToggle();
|
||||
}
|
||||
})
|
||||
// TODO - Vaser - the way the pause/resuming used to work is broken on Qt, needs a rewrite.
|
||||
// - Currently if you frame advance you can't get out of frame advancing!
|
||||
DEFINE_HOTKEY("InputRecFrameAdvance", "Input Recording", "Frame Advance", [](bool pressed) {
|
||||
if (!pressed) // ?? - not pressed so it is on key up?
|
||||
{
|
||||
g_InputRecordingControls.FrameAdvance();
|
||||
g_InputRecordingControls.ResumeCoreThreadIfStarted();
|
||||
}
|
||||
})
|
||||
END_HOTKEY_LIST()
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include "pcsx2/GSDumpReplayer.h"
|
||||
#include "pcsx2/HostDisplay.h"
|
||||
#include "pcsx2/PerformanceMetrics.h"
|
||||
#include "pcsx2/Recording/InputRecording.h"
|
||||
|
||||
#include "AboutDialog.h"
|
||||
#include "AutoUpdaterDialog.h"
|
||||
|
@ -38,6 +39,7 @@
|
|||
#include "EmuThread.h"
|
||||
#include "GameList/GameListRefreshThread.h"
|
||||
#include "GameList/GameListWidget.h"
|
||||
#include "input-rec/NewInputRecordingDlg.h"
|
||||
#include "MainWindow.h"
|
||||
#include "QtHost.h"
|
||||
#include "QtUtils.h"
|
||||
|
@ -45,6 +47,8 @@
|
|||
#include "Settings/GameListSettingsWidget.h"
|
||||
#include "Settings/InterfaceSettingsWidget.h"
|
||||
#include "SettingWidgetBinder.h"
|
||||
#include "svnrev.h"
|
||||
|
||||
|
||||
static constexpr char DISC_IMAGE_FILTER[] =
|
||||
QT_TRANSLATE_NOOP("MainWindow", "All File Types (*.bin *.iso *.cue *.chd *.cso *.gz *.elf *.irx *.m3u *.gs *.gs.xz *.gs.zst);;"
|
||||
|
@ -213,6 +217,15 @@ void MainWindow::connectSignals()
|
|||
|
||||
connect(m_ui.actionSaveGSDump, &QAction::triggered, this, &MainWindow::onSaveGSDumpActionTriggered);
|
||||
|
||||
// Input Recording
|
||||
connect(m_ui.actionInputRecNew, &QAction::triggered, this, &MainWindow::onInputRecNewActionTriggered);
|
||||
connect(m_ui.actionInputRecPlay, &QAction::triggered, this, &MainWindow::onInputRecPlayActionTriggered);
|
||||
connect(m_ui.actionInputRecStop, &QAction::triggered, this, &MainWindow::onInputRecStopActionTriggered);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(nullptr, m_ui.actionInputRecConsoleLogs, "Logging", "EnableInputRecordingLogs", false);
|
||||
connect(m_ui.actionInputRecConsoleLogs, &QAction::triggered, this, &MainWindow::onLoggingOptionChanged);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(nullptr, m_ui.actionInputRecControllerLogs, "Logging", "EnableControllerLogs", false);
|
||||
connect(m_ui.actionInputRecControllerLogs, &QAction::triggered, this, &MainWindow::onLoggingOptionChanged);
|
||||
|
||||
// These need to be queued connections to stop crashing due to menus opening/closing and switching focus.
|
||||
connect(m_game_list_widget, &GameListWidget::refreshProgress, this, &MainWindow::onGameListRefreshProgress);
|
||||
connect(m_game_list_widget, &GameListWidget::refreshComplete, this, &MainWindow::onGameListRefreshComplete);
|
||||
|
@ -1179,6 +1192,85 @@ void MainWindow::onLoggingOptionChanged()
|
|||
QtHost::UpdateLogging();
|
||||
}
|
||||
|
||||
void MainWindow::onInputRecNewActionTriggered()
|
||||
{
|
||||
const bool wasPaused = VMManager::GetState() == VMState::Paused;
|
||||
const bool wasRunning = VMManager::GetState() == VMState::Running;
|
||||
if (wasRunning && !wasPaused)
|
||||
{
|
||||
VMManager::SetPaused(true);
|
||||
}
|
||||
|
||||
NewInputRecordingDlg dlg(this);
|
||||
const auto result = dlg.exec();
|
||||
|
||||
if (result == QDialog::Accepted)
|
||||
{
|
||||
if (g_InputRecording.Create(
|
||||
dlg.getFilePath(),
|
||||
dlg.getInputRecType() == InputRecording::Type::FROM_SAVESTATE,
|
||||
dlg.getAuthorName()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (wasRunning && !wasPaused)
|
||||
{
|
||||
VMManager::SetPaused(false);
|
||||
}
|
||||
}
|
||||
|
||||
#include "pcsx2/Recording/InputRecordingControls.h"
|
||||
|
||||
void MainWindow::onInputRecPlayActionTriggered()
|
||||
{
|
||||
const bool wasPaused = VMManager::GetState() == VMState::Paused;
|
||||
|
||||
if (!wasPaused)
|
||||
g_InputRecordingControls.PauseImmediately();
|
||||
|
||||
QFileDialog dialog(this);
|
||||
dialog.setFileMode(QFileDialog::ExistingFile);
|
||||
dialog.setWindowTitle("Select a File");
|
||||
dialog.setNameFilter(tr("Input Recording Files (*.p2m2)"));
|
||||
QStringList fileNames;
|
||||
if (dialog.exec())
|
||||
{
|
||||
fileNames = dialog.selectedFiles();
|
||||
}
|
||||
|
||||
if (fileNames.length() > 0)
|
||||
{
|
||||
if (g_InputRecording.IsActive())
|
||||
{
|
||||
g_InputRecording.Stop();
|
||||
}
|
||||
if (g_InputRecording.Play(fs::path(fileNames.first().toStdString())))
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (!wasPaused)
|
||||
{
|
||||
g_InputRecordingControls.Resume();
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::onInputRecStopActionTriggered()
|
||||
{
|
||||
if (g_InputRecording.IsActive())
|
||||
{
|
||||
g_InputRecording.Stop();
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::onInputRecOpenSettingsTriggered()
|
||||
{
|
||||
// TODO - Vaser - Implement
|
||||
}
|
||||
|
||||
void MainWindow::onVMStarting()
|
||||
{
|
||||
m_vm_valid = true;
|
||||
|
|
|
@ -137,6 +137,12 @@ private Q_SLOTS:
|
|||
void onScreenshotActionTriggered();
|
||||
void onSaveGSDumpActionTriggered();
|
||||
|
||||
// Input Recording
|
||||
void onInputRecNewActionTriggered();
|
||||
void onInputRecPlayActionTriggered();
|
||||
void onInputRecStopActionTriggered();
|
||||
void onInputRecOpenSettingsTriggered();
|
||||
|
||||
void onVMStarting();
|
||||
void onVMStarted();
|
||||
void onVMPaused();
|
||||
|
|
|
@ -182,7 +182,21 @@
|
|||
<property name="title">
|
||||
<string>&Tools</string>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuInput_Recording">
|
||||
<property name="title">
|
||||
<string>Input Recording</string>
|
||||
</property>
|
||||
<addaction name="actionInputRecNew"/>
|
||||
<addaction name="actionInputRecPlay"/>
|
||||
<addaction name="actionInputRecStop"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionInputRecOpenSettings"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionInputRecConsoleLogs"/>
|
||||
<addaction name="actionInputRecControllerLogs"/>
|
||||
</widget>
|
||||
<addaction name="actionOpenDataDirectory"/>
|
||||
<addaction name="menuInput_Recording"/>
|
||||
</widget>
|
||||
<addaction name="menuSystem"/>
|
||||
<addaction name="menuSettings"/>
|
||||
|
@ -745,6 +759,47 @@
|
|||
<string>Save Single Frame GS Dump</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionInputRecNew">
|
||||
<property name="text">
|
||||
<string>New</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionInputRecPlay">
|
||||
<property name="text">
|
||||
<string>Play</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionInputRecStop">
|
||||
<property name="text">
|
||||
<string>Stop</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionInputRecOpenSettings">
|
||||
<property name="text">
|
||||
<string>Settings</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionRecording_Console_Logs">
|
||||
<property name="text">
|
||||
<string>Input Recording Logs</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionInputRecControllerLogs">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Controller Logs</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionInputRecConsoleLogs">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Input Recording Logs</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="resources/resources.qrc"/>
|
||||
|
|
|
@ -770,6 +770,10 @@ void QtHost::UpdateLogging()
|
|||
DevConWriterEnabled = any_logging_sinks && QtHost::GetBaseBoolSettingValue("Logging", "EnableVerbose", false);
|
||||
SysConsole.eeConsole.Enabled = any_logging_sinks && QtHost::GetBaseBoolSettingValue("Logging", "EnableEEConsole", true);
|
||||
SysConsole.iopConsole.Enabled = any_logging_sinks && QtHost::GetBaseBoolSettingValue("Logging", "EnableIOPConsole", true);
|
||||
|
||||
// Input Recording Logs
|
||||
SysConsole.recordingConsole.Enabled = system_console_enabled && QtHost::GetBaseBoolSettingValue("Logging", "EnableInputRecordingLogs", true);
|
||||
SysConsole.controlInfo.Enabled = system_console_enabled && QtHost::GetBaseBoolSettingValue("Logging", "EnableControllerLogs", true);
|
||||
|
||||
SetSystemConsoleEnabled(system_console_enabled);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,113 @@
|
|||
/* PCSX2 - PS2 Emulator for PCs
|
||||
* Copyright (C) 2002-2022 PCSX2 Dev Team
|
||||
*
|
||||
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU Lesser General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with PCSX2.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "PrecompiledHeader.h"
|
||||
|
||||
#include "NewInputRecordingDlg.h"
|
||||
|
||||
#include "QtUtils.h"
|
||||
#include <QtCore/QString>
|
||||
#include <QtWidgets/QDialog>
|
||||
#include <QtWidgets/qfiledialog.h>
|
||||
|
||||
NewInputRecordingDlg::NewInputRecordingDlg(QWidget* parent)
|
||||
: QDialog(parent)
|
||||
{
|
||||
m_ui.setupUi(this);
|
||||
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
setFixedSize(geometry().width(), geometry().height());
|
||||
|
||||
// Default State
|
||||
m_ui.m_recTypeWarning->hide();
|
||||
m_ui.m_dlgBtns->button(QDialogButtonBox::Ok)->setEnabled(false);
|
||||
m_ui.m_filePathInput->setDisabled(true);
|
||||
|
||||
connect(m_ui.m_recTypePowerOn, &QRadioButton::clicked, this, &NewInputRecordingDlg::onRecordingTypePowerOnChecked);
|
||||
connect(m_ui.m_recTypeSaveState, &QRadioButton::clicked, this, &NewInputRecordingDlg::onRecordingTypeSaveStateChecked);
|
||||
|
||||
connect(m_ui.m_filePathBrowseBtn, &QPushButton::clicked, this, &NewInputRecordingDlg::onBrowseForPathClicked);
|
||||
connect(m_ui.m_authorInput, &QLineEdit::textEdited, this, &NewInputRecordingDlg::onAuthorNameChanged);
|
||||
}
|
||||
|
||||
NewInputRecordingDlg::~NewInputRecordingDlg() = default;
|
||||
|
||||
InputRecording::Type NewInputRecordingDlg::getInputRecType()
|
||||
{
|
||||
return m_recType;
|
||||
}
|
||||
|
||||
std::string NewInputRecordingDlg::getFilePath()
|
||||
{
|
||||
return m_filePath.toStdString();
|
||||
}
|
||||
|
||||
std::string NewInputRecordingDlg::getAuthorName()
|
||||
{
|
||||
return m_authorName.toStdString();
|
||||
}
|
||||
|
||||
void NewInputRecordingDlg::onRecordingTypePowerOnChecked(bool checked)
|
||||
{
|
||||
if (checked)
|
||||
{
|
||||
m_recType = InputRecording::Type::POWER_ON;
|
||||
m_ui.m_recTypeWarning->hide();
|
||||
}
|
||||
}
|
||||
|
||||
void NewInputRecordingDlg::onRecordingTypeSaveStateChecked(bool checked)
|
||||
{
|
||||
if (checked)
|
||||
{
|
||||
m_recType = InputRecording::Type::FROM_SAVESTATE;
|
||||
m_ui.m_recTypeWarning->show();
|
||||
}
|
||||
}
|
||||
|
||||
void NewInputRecordingDlg::onBrowseForPathClicked()
|
||||
{
|
||||
QFileDialog dialog(this);
|
||||
dialog.setFileMode(QFileDialog::AnyFile);
|
||||
dialog.setWindowTitle("Select a File");
|
||||
dialog.setNameFilter(tr("Input Recording Files (*.p2m2)"));
|
||||
QStringList fileNames;
|
||||
if (dialog.exec())
|
||||
{
|
||||
fileNames = dialog.selectedFiles();
|
||||
}
|
||||
if (fileNames.length() > 0)
|
||||
{
|
||||
m_filePath = fileNames.first();
|
||||
m_ui.m_filePathInput->setText(m_filePath);
|
||||
updateFormStatus();
|
||||
}
|
||||
}
|
||||
|
||||
void NewInputRecordingDlg::onAuthorNameChanged(const QString& text)
|
||||
{
|
||||
m_authorName = text;
|
||||
updateFormStatus();
|
||||
}
|
||||
|
||||
bool NewInputRecordingDlg::isFormValid()
|
||||
{
|
||||
return !m_filePath.isEmpty() && !m_authorName.isEmpty();
|
||||
}
|
||||
|
||||
void NewInputRecordingDlg::updateFormStatus()
|
||||
{
|
||||
m_ui.m_dlgBtns->button(QDialogButtonBox::Ok)->setEnabled(isFormValid());
|
||||
}
|
|
@ -15,31 +15,38 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
#include "ui_NewInputRecordingDlg.h"
|
||||
|
||||
#include "pcsx2/Recording/InputRecording.h"
|
||||
|
||||
#include <QtWidgets/QDialog>
|
||||
|
||||
#include "ui_CreateMemoryCardDialog.h"
|
||||
|
||||
#include "pcsx2/Config.h"
|
||||
|
||||
class CreateMemoryCardDialog final : public QDialog
|
||||
class NewInputRecordingDlg final : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit CreateMemoryCardDialog(QWidget* parent = nullptr);
|
||||
~CreateMemoryCardDialog();
|
||||
explicit NewInputRecordingDlg(QWidget* parent = nullptr);
|
||||
~NewInputRecordingDlg();
|
||||
|
||||
InputRecording::Type getInputRecType();
|
||||
std::string getFilePath();
|
||||
std::string getAuthorName();
|
||||
|
||||
private Q_SLOTS:
|
||||
void nameTextChanged();
|
||||
void createCard();
|
||||
void onRecordingTypePowerOnChecked(bool checked);
|
||||
void onRecordingTypeSaveStateChecked(bool checked);
|
||||
|
||||
void onBrowseForPathClicked();
|
||||
void onAuthorNameChanged(const QString& text);
|
||||
|
||||
private:
|
||||
void setType(MemoryCardType type, MemoryCardFileType fileType);
|
||||
void restoreDefaults();
|
||||
void updateState();
|
||||
Ui::NewInputRecordingDlg m_ui;
|
||||
|
||||
Ui::CreateMemoryCardDialog m_ui;
|
||||
InputRecording::Type m_recType = InputRecording::Type::POWER_ON;
|
||||
QString m_filePath = "";
|
||||
QString m_authorName = "";
|
||||
|
||||
MemoryCardType m_type = MemoryCardType::File;
|
||||
MemoryCardFileType m_fileType = MemoryCardFileType::PS2_8MB;
|
||||
bool isFormValid();
|
||||
void updateFormStatus();
|
||||
};
|
|
@ -0,0 +1,163 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>NewInputRecordingDlg</class>
|
||||
<widget class="QDialog" name="NewInputRecordingDlg">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>424</width>
|
||||
<height>305</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>New Input Recording</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<property name="spacing">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="m_mainLayout">
|
||||
<property name="spacing">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="m_recTypeGroup">
|
||||
<property name="title">
|
||||
<string>Select Recording Type</string>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="m_recTypeLayout">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="m_recTypePowerOn">
|
||||
<property name="text">
|
||||
<string>Power On</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="m_recTypeSaveState">
|
||||
<property name="text">
|
||||
<string>Save State</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="m_recTypeWarning">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><html><head/><body><p align="center"><span style=" color:#ff0000;">Be Warned! Making an input recording that starts from a save-state will fail to work on future versions due to save-state versioning.</span></p></body></html></string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="m_filePathLabel">
|
||||
<property name="text">
|
||||
<string>Select File Path</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="m_filePathLayout">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="m_filePathInput"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="m_filePathBrowseBtn">
|
||||
<property name="text">
|
||||
<string>Browse</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="m_authorLabel">
|
||||
<property name="text">
|
||||
<string>Enter Author Name</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="m_authorInput"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="m_dlgBtns">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
<property name="centerButtons">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>m_dlgBtns</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>NewInputRecordingDlg</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>m_dlgBtns</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>NewInputRecordingDlg</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
|
@ -45,7 +45,7 @@
|
|||
<AdditionalIncludeDirectories>$(SolutionDir)3rdparty\lzma\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir);$(SolutionDir)pcsx2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<!-- Needed for moc pch -->
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(ProjectDir)\Settings;$(ProjectDir)\GameList</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(ProjectDir)\Settings;$(ProjectDir)\GameList;$(ProjectDir)\input-rec</AdditionalIncludeDirectories>
|
||||
<ExceptionHandling>Async</ExceptionHandling>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>PrecompiledHeader.h</PrecompiledHeaderFile>
|
||||
|
@ -134,6 +134,7 @@
|
|||
<Manifest Include="..\pcsx2\windows\PCSX2.manifest" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="input-rec\NewInputRecordingDlg.cpp" />
|
||||
<ClCompile Include="Settings\BIOSSettingsWidget.cpp" />
|
||||
<ClCompile Include="Settings\ControllerBindingWidgets.cpp" />
|
||||
<ClCompile Include="Settings\ControllerGlobalSettingsWidget.cpp" />
|
||||
|
@ -194,6 +195,7 @@
|
|||
<QtMoc Include="GameList\GameListModel.h" />
|
||||
<QtMoc Include="GameList\GameListWidget.h" />
|
||||
<QtMoc Include="GameList\GameListRefreshThread.h" />
|
||||
<QtMoc Include="input-rec\NewInputRecordingDlg.h" />
|
||||
<ClInclude Include="QtUtils.h" />
|
||||
<QtMoc Include="Settings\ControllerBindingWidgets.h" />
|
||||
<QtMoc Include="Settings\ControllerGlobalSettingsWidget.h" />
|
||||
|
@ -240,6 +242,7 @@
|
|||
<ClCompile Include="$(IntDir)moc_DisplayWidget.cpp" />
|
||||
<ClCompile Include="$(IntDir)moc_EmuThread.cpp" />
|
||||
<ClCompile Include="$(IntDir)moc_MainWindow.cpp" />
|
||||
<ClCompile Include="$(IntDir)input-rec\moc_NewInputRecordingDlg.cpp" />
|
||||
<ClCompile Include="$(IntDir)qrc_resources.cpp">
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
|
@ -312,6 +315,9 @@
|
|||
<FileType>Document</FileType>
|
||||
</QtUi>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="input-rec\NewInputRecordingDlg.ui" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<Import Project="$(SolutionDir)common\vsprops\QtCompile.targets" />
|
||||
<ImportGroup Label="ExtensionTargets" />
|
||||
|
|
|
@ -13,6 +13,12 @@
|
|||
<Filter Include="GameList">
|
||||
<UniqueIdentifier>{aff229ec-39ea-40d4-b1c9-b5c4a932a2e0}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Tools">
|
||||
<UniqueIdentifier>{9ec02647-68e6-4894-9c97-d3347997cae6}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Tools\Input Recording">
|
||||
<UniqueIdentifier>{d5c14016-9690-4e49-bcb9-a634a937951a}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="..\pcsx2\PCSX2.rc">
|
||||
|
@ -192,6 +198,12 @@
|
|||
<ClCompile Include="$(IntDir)moc_AutoUpdaterDialog.cpp">
|
||||
<Filter>moc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(IntDir)input-rec\moc_NewInputRecordingDlg.cpp">
|
||||
<Filter>moc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="input-rec\NewInputRecordingDlg.cpp">
|
||||
<Filter>Tools\Input Recording</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Manifest Include="..\pcsx2\windows\PCSX2.manifest">
|
||||
|
@ -282,6 +294,9 @@
|
|||
<Filter>Settings</Filter>
|
||||
</QtMoc>
|
||||
<QtMoc Include="AutoUpdaterDialog.h" />
|
||||
<QtMoc Include="input-rec\NewInputRecordingDlg.h">
|
||||
<Filter>Tools\Input Recording</Filter>
|
||||
</QtMoc>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<QtResource Include="resources\resources.qrc">
|
||||
|
@ -352,4 +367,9 @@
|
|||
</QtUi>
|
||||
<QtUi Include="AutoUpdaterDialog.ui" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="input-rec\NewInputRecordingDlg.ui">
|
||||
<Filter>Tools\Input Recording</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -1005,6 +1005,7 @@ Pcsx2Config::Pcsx2Config()
|
|||
McdEnableEjection = true;
|
||||
McdFolderAutoManage = true;
|
||||
EnablePatches = true;
|
||||
EnableRecordingTools = true;
|
||||
#ifdef PCSX2_CORE
|
||||
EnableGameFixes = true;
|
||||
#endif
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
<ForcedIncludeFiles>PrecompiledHeader.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
|
||||
<EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
|
||||
<AdditionalOptions>/Zc:externConstexpr %(AdditionalOptions)</AdditionalOptions>
|
||||
<PreprocessorDefinitions>WIN32_LEAN_AND_MEAN;ZIP_STATIC;LZMA_API_STATIC;BUILD_DX=1;ENABLE_OPENGL;ENABLE_VULKAN;SPU2X_CUBEB;SDL_BUILD;PCSX2_CORE;DISABLE_RECORDING;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32_LEAN_AND_MEAN;ZIP_STATIC;LZMA_API_STATIC;BUILD_DX=1;ENABLE_OPENGL;ENABLE_VULKAN;SPU2X_CUBEB;SDL_BUILD;PCSX2_CORE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="$(Configuration.Contains(Debug))">PCSX2_DEBUG;PCSX2_DEVBUILD;_SECURE_SCL_=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="$(Configuration.Contains(Devel))">PCSX2_DEVEL;PCSX2_DEVBUILD;NDEBUG;_SECURE_SCL_=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="$(Configuration.Contains(Release))">NDEBUG;_SECURE_SCL_=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
|
@ -223,6 +223,11 @@
|
|||
<ClCompile Include="MemoryCardFile.cpp" />
|
||||
<ClCompile Include="MemoryCardFolder.cpp" />
|
||||
<ClCompile Include="PerformanceMetrics.cpp" />
|
||||
<ClCompile Include="Recording\InputRecording.cpp" />
|
||||
<ClCompile Include="Recording\InputRecordingControls.cpp" />
|
||||
<ClCompile Include="Recording\InputRecordingFile.cpp" />
|
||||
<ClCompile Include="Recording\PadData.cpp" />
|
||||
<ClCompile Include="Recording\Utilities\InputRecordingLogger.cpp" />
|
||||
<ClCompile Include="SPU2\DplIIdecoder.cpp" />
|
||||
<ClCompile Include="SPU2\debug.cpp" />
|
||||
<ClCompile Include="SPU2\Host\Config.cpp" />
|
||||
|
@ -536,6 +541,11 @@
|
|||
<ClInclude Include="MemoryCardFile.h" />
|
||||
<ClInclude Include="MemoryCardFolder.h" />
|
||||
<ClInclude Include="PerformanceMetrics.h" />
|
||||
<ClInclude Include="Recording\InputRecording.h" />
|
||||
<ClInclude Include="Recording\InputRecordingControls.h" />
|
||||
<ClInclude Include="Recording\InputRecordingFile.h" />
|
||||
<ClInclude Include="Recording\PadData.h" />
|
||||
<ClInclude Include="Recording\Utilities\InputRecordingLogger.h" />
|
||||
<ClInclude Include="SPU2\Config.h" />
|
||||
<ClInclude Include="SPU2\Global.h" />
|
||||
<ClInclude Include="SPU2\Host\Config.h" />
|
||||
|
|
|
@ -232,6 +232,12 @@
|
|||
<Filter Include="System\Ps2\GS\Shaders\Direct3D">
|
||||
<UniqueIdentifier>{eb697f5b-85f5-424a-a7e4-8d8b73d3426e}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Tools">
|
||||
<UniqueIdentifier>{9153e32b-e1e3-49ac-b490-b56adfd1692f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Tools\Input Recording">
|
||||
<UniqueIdentifier>{03ba2aa7-2cd9-48cb-93c6-fc93d5bdc938}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Utilities\folderdesc.txt">
|
||||
|
@ -1248,6 +1254,21 @@
|
|||
<ClCompile Include="Frontend\imgui_impl_vulkan.cpp">
|
||||
<Filter>Host</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Recording\InputRecording.cpp">
|
||||
<Filter>Tools\Input Recording</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Recording\InputRecordingControls.cpp">
|
||||
<Filter>Tools\Input Recording</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Recording\InputRecordingFile.cpp">
|
||||
<Filter>Tools\Input Recording</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Recording\Utilities\InputRecordingLogger.cpp">
|
||||
<Filter>Tools\Input Recording</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Recording\PadData.cpp">
|
||||
<Filter>Tools\Input Recording</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Patch.h">
|
||||
|
@ -2071,6 +2092,21 @@
|
|||
<ClInclude Include="Frontend\imgui_impl_vulkan.h">
|
||||
<Filter>Host</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Recording\InputRecording.h">
|
||||
<Filter>Tools\Input Recording</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Recording\InputRecordingControls.h">
|
||||
<Filter>Tools\Input Recording</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Recording\InputRecordingFile.h">
|
||||
<Filter>Tools\Input Recording</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Recording\Utilities\InputRecordingLogger.h">
|
||||
<Filter>Tools\Input Recording</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Recording\PadData.h">
|
||||
<Filter>Tools\Input Recording</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuildStep Include="rdebug\deci2.h">
|
||||
|
|
Loading…
Reference in New Issue