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/HostDisplay.h"
|
||||||
#include "pcsx2/PAD/Host/PAD.h"
|
#include "pcsx2/PAD/Host/PAD.h"
|
||||||
#include "pcsx2/PerformanceMetrics.h"
|
#include "pcsx2/PerformanceMetrics.h"
|
||||||
|
#include "pcsx2/Recording/InputRecordingControls.h"
|
||||||
#include "pcsx2/VMManager.h"
|
#include "pcsx2/VMManager.h"
|
||||||
|
|
||||||
#include "DisplayWidget.h"
|
#include "DisplayWidget.h"
|
||||||
|
@ -968,4 +969,20 @@ DEFINE_HOTKEY("ToggleFullscreen", "General", "Toggle Fullscreen", [](bool presse
|
||||||
if (!pressed)
|
if (!pressed)
|
||||||
g_emu_thread->toggleFullscreen();
|
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()
|
END_HOTKEY_LIST()
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include "pcsx2/GSDumpReplayer.h"
|
#include "pcsx2/GSDumpReplayer.h"
|
||||||
#include "pcsx2/HostDisplay.h"
|
#include "pcsx2/HostDisplay.h"
|
||||||
#include "pcsx2/PerformanceMetrics.h"
|
#include "pcsx2/PerformanceMetrics.h"
|
||||||
|
#include "pcsx2/Recording/InputRecording.h"
|
||||||
|
|
||||||
#include "AboutDialog.h"
|
#include "AboutDialog.h"
|
||||||
#include "AutoUpdaterDialog.h"
|
#include "AutoUpdaterDialog.h"
|
||||||
|
@ -38,6 +39,7 @@
|
||||||
#include "EmuThread.h"
|
#include "EmuThread.h"
|
||||||
#include "GameList/GameListRefreshThread.h"
|
#include "GameList/GameListRefreshThread.h"
|
||||||
#include "GameList/GameListWidget.h"
|
#include "GameList/GameListWidget.h"
|
||||||
|
#include "input-rec/NewInputRecordingDlg.h"
|
||||||
#include "MainWindow.h"
|
#include "MainWindow.h"
|
||||||
#include "QtHost.h"
|
#include "QtHost.h"
|
||||||
#include "QtUtils.h"
|
#include "QtUtils.h"
|
||||||
|
@ -45,6 +47,8 @@
|
||||||
#include "Settings/GameListSettingsWidget.h"
|
#include "Settings/GameListSettingsWidget.h"
|
||||||
#include "Settings/InterfaceSettingsWidget.h"
|
#include "Settings/InterfaceSettingsWidget.h"
|
||||||
#include "SettingWidgetBinder.h"
|
#include "SettingWidgetBinder.h"
|
||||||
|
#include "svnrev.h"
|
||||||
|
|
||||||
|
|
||||||
static constexpr char DISC_IMAGE_FILTER[] =
|
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);;"
|
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);
|
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.
|
// 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::refreshProgress, this, &MainWindow::onGameListRefreshProgress);
|
||||||
connect(m_game_list_widget, &GameListWidget::refreshComplete, this, &MainWindow::onGameListRefreshComplete);
|
connect(m_game_list_widget, &GameListWidget::refreshComplete, this, &MainWindow::onGameListRefreshComplete);
|
||||||
|
@ -1179,6 +1192,85 @@ void MainWindow::onLoggingOptionChanged()
|
||||||
QtHost::UpdateLogging();
|
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()
|
void MainWindow::onVMStarting()
|
||||||
{
|
{
|
||||||
m_vm_valid = true;
|
m_vm_valid = true;
|
||||||
|
|
|
@ -137,6 +137,12 @@ private Q_SLOTS:
|
||||||
void onScreenshotActionTriggered();
|
void onScreenshotActionTriggered();
|
||||||
void onSaveGSDumpActionTriggered();
|
void onSaveGSDumpActionTriggered();
|
||||||
|
|
||||||
|
// Input Recording
|
||||||
|
void onInputRecNewActionTriggered();
|
||||||
|
void onInputRecPlayActionTriggered();
|
||||||
|
void onInputRecStopActionTriggered();
|
||||||
|
void onInputRecOpenSettingsTriggered();
|
||||||
|
|
||||||
void onVMStarting();
|
void onVMStarting();
|
||||||
void onVMStarted();
|
void onVMStarted();
|
||||||
void onVMPaused();
|
void onVMPaused();
|
||||||
|
|
|
@ -182,7 +182,21 @@
|
||||||
<property name="title">
|
<property name="title">
|
||||||
<string>&Tools</string>
|
<string>&Tools</string>
|
||||||
</property>
|
</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="actionOpenDataDirectory"/>
|
||||||
|
<addaction name="menuInput_Recording"/>
|
||||||
</widget>
|
</widget>
|
||||||
<addaction name="menuSystem"/>
|
<addaction name="menuSystem"/>
|
||||||
<addaction name="menuSettings"/>
|
<addaction name="menuSettings"/>
|
||||||
|
@ -745,6 +759,47 @@
|
||||||
<string>Save Single Frame GS Dump</string>
|
<string>Save Single Frame GS Dump</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</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>
|
</widget>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="resources/resources.qrc"/>
|
<include location="resources/resources.qrc"/>
|
||||||
|
|
|
@ -770,6 +770,10 @@ void QtHost::UpdateLogging()
|
||||||
DevConWriterEnabled = any_logging_sinks && QtHost::GetBaseBoolSettingValue("Logging", "EnableVerbose", false);
|
DevConWriterEnabled = any_logging_sinks && QtHost::GetBaseBoolSettingValue("Logging", "EnableVerbose", false);
|
||||||
SysConsole.eeConsole.Enabled = any_logging_sinks && QtHost::GetBaseBoolSettingValue("Logging", "EnableEEConsole", true);
|
SysConsole.eeConsole.Enabled = any_logging_sinks && QtHost::GetBaseBoolSettingValue("Logging", "EnableEEConsole", true);
|
||||||
SysConsole.iopConsole.Enabled = any_logging_sinks && QtHost::GetBaseBoolSettingValue("Logging", "EnableIOPConsole", 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);
|
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
|
#pragma once
|
||||||
|
|
||||||
|
#include "ui_NewInputRecordingDlg.h"
|
||||||
|
|
||||||
|
#include "pcsx2/Recording/InputRecording.h"
|
||||||
|
|
||||||
#include <QtWidgets/QDialog>
|
#include <QtWidgets/QDialog>
|
||||||
|
|
||||||
#include "ui_CreateMemoryCardDialog.h"
|
class NewInputRecordingDlg final : public QDialog
|
||||||
|
|
||||||
#include "pcsx2/Config.h"
|
|
||||||
|
|
||||||
class CreateMemoryCardDialog final : public QDialog
|
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit CreateMemoryCardDialog(QWidget* parent = nullptr);
|
explicit NewInputRecordingDlg(QWidget* parent = nullptr);
|
||||||
~CreateMemoryCardDialog();
|
~NewInputRecordingDlg();
|
||||||
|
|
||||||
|
InputRecording::Type getInputRecType();
|
||||||
|
std::string getFilePath();
|
||||||
|
std::string getAuthorName();
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void nameTextChanged();
|
void onRecordingTypePowerOnChecked(bool checked);
|
||||||
void createCard();
|
void onRecordingTypeSaveStateChecked(bool checked);
|
||||||
|
|
||||||
|
void onBrowseForPathClicked();
|
||||||
|
void onAuthorNameChanged(const QString& text);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void setType(MemoryCardType type, MemoryCardFileType fileType);
|
Ui::NewInputRecordingDlg m_ui;
|
||||||
void restoreDefaults();
|
|
||||||
void updateState();
|
|
||||||
|
|
||||||
Ui::CreateMemoryCardDialog m_ui;
|
InputRecording::Type m_recType = InputRecording::Type::POWER_ON;
|
||||||
|
QString m_filePath = "";
|
||||||
|
QString m_authorName = "";
|
||||||
|
|
||||||
MemoryCardType m_type = MemoryCardType::File;
|
bool isFormValid();
|
||||||
MemoryCardFileType m_fileType = MemoryCardFileType::PS2_8MB;
|
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>$(SolutionDir)3rdparty\lzma\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<AdditionalIncludeDirectories>$(ProjectDir);$(SolutionDir)pcsx2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>$(ProjectDir);$(SolutionDir)pcsx2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<!-- Needed for moc pch -->
|
<!-- Needed for moc pch -->
|
||||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(ProjectDir)\Settings;$(ProjectDir)\GameList</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(ProjectDir)\Settings;$(ProjectDir)\GameList;$(ProjectDir)\input-rec</AdditionalIncludeDirectories>
|
||||||
<ExceptionHandling>Async</ExceptionHandling>
|
<ExceptionHandling>Async</ExceptionHandling>
|
||||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||||
<PrecompiledHeaderFile>PrecompiledHeader.h</PrecompiledHeaderFile>
|
<PrecompiledHeaderFile>PrecompiledHeader.h</PrecompiledHeaderFile>
|
||||||
|
@ -134,6 +134,7 @@
|
||||||
<Manifest Include="..\pcsx2\windows\PCSX2.manifest" />
|
<Manifest Include="..\pcsx2\windows\PCSX2.manifest" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ClCompile Include="input-rec\NewInputRecordingDlg.cpp" />
|
||||||
<ClCompile Include="Settings\BIOSSettingsWidget.cpp" />
|
<ClCompile Include="Settings\BIOSSettingsWidget.cpp" />
|
||||||
<ClCompile Include="Settings\ControllerBindingWidgets.cpp" />
|
<ClCompile Include="Settings\ControllerBindingWidgets.cpp" />
|
||||||
<ClCompile Include="Settings\ControllerGlobalSettingsWidget.cpp" />
|
<ClCompile Include="Settings\ControllerGlobalSettingsWidget.cpp" />
|
||||||
|
@ -194,6 +195,7 @@
|
||||||
<QtMoc Include="GameList\GameListModel.h" />
|
<QtMoc Include="GameList\GameListModel.h" />
|
||||||
<QtMoc Include="GameList\GameListWidget.h" />
|
<QtMoc Include="GameList\GameListWidget.h" />
|
||||||
<QtMoc Include="GameList\GameListRefreshThread.h" />
|
<QtMoc Include="GameList\GameListRefreshThread.h" />
|
||||||
|
<QtMoc Include="input-rec\NewInputRecordingDlg.h" />
|
||||||
<ClInclude Include="QtUtils.h" />
|
<ClInclude Include="QtUtils.h" />
|
||||||
<QtMoc Include="Settings\ControllerBindingWidgets.h" />
|
<QtMoc Include="Settings\ControllerBindingWidgets.h" />
|
||||||
<QtMoc Include="Settings\ControllerGlobalSettingsWidget.h" />
|
<QtMoc Include="Settings\ControllerGlobalSettingsWidget.h" />
|
||||||
|
@ -240,6 +242,7 @@
|
||||||
<ClCompile Include="$(IntDir)moc_DisplayWidget.cpp" />
|
<ClCompile Include="$(IntDir)moc_DisplayWidget.cpp" />
|
||||||
<ClCompile Include="$(IntDir)moc_EmuThread.cpp" />
|
<ClCompile Include="$(IntDir)moc_EmuThread.cpp" />
|
||||||
<ClCompile Include="$(IntDir)moc_MainWindow.cpp" />
|
<ClCompile Include="$(IntDir)moc_MainWindow.cpp" />
|
||||||
|
<ClCompile Include="$(IntDir)input-rec\moc_NewInputRecordingDlg.cpp" />
|
||||||
<ClCompile Include="$(IntDir)qrc_resources.cpp">
|
<ClCompile Include="$(IntDir)qrc_resources.cpp">
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -312,6 +315,9 @@
|
||||||
<FileType>Document</FileType>
|
<FileType>Document</FileType>
|
||||||
</QtUi>
|
</QtUi>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="input-rec\NewInputRecordingDlg.ui" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<Import Project="$(SolutionDir)common\vsprops\QtCompile.targets" />
|
<Import Project="$(SolutionDir)common\vsprops\QtCompile.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets" />
|
<ImportGroup Label="ExtensionTargets" />
|
||||||
|
|
|
@ -13,6 +13,12 @@
|
||||||
<Filter Include="GameList">
|
<Filter Include="GameList">
|
||||||
<UniqueIdentifier>{aff229ec-39ea-40d4-b1c9-b5c4a932a2e0}</UniqueIdentifier>
|
<UniqueIdentifier>{aff229ec-39ea-40d4-b1c9-b5c4a932a2e0}</UniqueIdentifier>
|
||||||
</Filter>
|
</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>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="..\pcsx2\PCSX2.rc">
|
<ResourceCompile Include="..\pcsx2\PCSX2.rc">
|
||||||
|
@ -192,6 +198,12 @@
|
||||||
<ClCompile Include="$(IntDir)moc_AutoUpdaterDialog.cpp">
|
<ClCompile Include="$(IntDir)moc_AutoUpdaterDialog.cpp">
|
||||||
<Filter>moc</Filter>
|
<Filter>moc</Filter>
|
||||||
</ClCompile>
|
</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>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Manifest Include="..\pcsx2\windows\PCSX2.manifest">
|
<Manifest Include="..\pcsx2\windows\PCSX2.manifest">
|
||||||
|
@ -282,6 +294,9 @@
|
||||||
<Filter>Settings</Filter>
|
<Filter>Settings</Filter>
|
||||||
</QtMoc>
|
</QtMoc>
|
||||||
<QtMoc Include="AutoUpdaterDialog.h" />
|
<QtMoc Include="AutoUpdaterDialog.h" />
|
||||||
|
<QtMoc Include="input-rec\NewInputRecordingDlg.h">
|
||||||
|
<Filter>Tools\Input Recording</Filter>
|
||||||
|
</QtMoc>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<QtResource Include="resources\resources.qrc">
|
<QtResource Include="resources\resources.qrc">
|
||||||
|
@ -352,4 +367,9 @@
|
||||||
</QtUi>
|
</QtUi>
|
||||||
<QtUi Include="AutoUpdaterDialog.ui" />
|
<QtUi Include="AutoUpdaterDialog.ui" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="input-rec\NewInputRecordingDlg.ui">
|
||||||
|
<Filter>Tools\Input Recording</Filter>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1005,6 +1005,7 @@ Pcsx2Config::Pcsx2Config()
|
||||||
McdEnableEjection = true;
|
McdEnableEjection = true;
|
||||||
McdFolderAutoManage = true;
|
McdFolderAutoManage = true;
|
||||||
EnablePatches = true;
|
EnablePatches = true;
|
||||||
|
EnableRecordingTools = true;
|
||||||
#ifdef PCSX2_CORE
|
#ifdef PCSX2_CORE
|
||||||
EnableGameFixes = true;
|
EnableGameFixes = true;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
<ForcedIncludeFiles>PrecompiledHeader.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
|
<ForcedIncludeFiles>PrecompiledHeader.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
|
||||||
<EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
|
<EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
|
||||||
<AdditionalOptions>/Zc:externConstexpr %(AdditionalOptions)</AdditionalOptions>
|
<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(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(Devel))">PCSX2_DEVEL;PCSX2_DEVBUILD;NDEBUG;_SECURE_SCL_=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<PreprocessorDefinitions Condition="$(Configuration.Contains(Release))">NDEBUG;_SECURE_SCL_=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions Condition="$(Configuration.Contains(Release))">NDEBUG;_SECURE_SCL_=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
|
@ -223,6 +223,11 @@
|
||||||
<ClCompile Include="MemoryCardFile.cpp" />
|
<ClCompile Include="MemoryCardFile.cpp" />
|
||||||
<ClCompile Include="MemoryCardFolder.cpp" />
|
<ClCompile Include="MemoryCardFolder.cpp" />
|
||||||
<ClCompile Include="PerformanceMetrics.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\DplIIdecoder.cpp" />
|
||||||
<ClCompile Include="SPU2\debug.cpp" />
|
<ClCompile Include="SPU2\debug.cpp" />
|
||||||
<ClCompile Include="SPU2\Host\Config.cpp" />
|
<ClCompile Include="SPU2\Host\Config.cpp" />
|
||||||
|
@ -536,6 +541,11 @@
|
||||||
<ClInclude Include="MemoryCardFile.h" />
|
<ClInclude Include="MemoryCardFile.h" />
|
||||||
<ClInclude Include="MemoryCardFolder.h" />
|
<ClInclude Include="MemoryCardFolder.h" />
|
||||||
<ClInclude Include="PerformanceMetrics.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\Config.h" />
|
||||||
<ClInclude Include="SPU2\Global.h" />
|
<ClInclude Include="SPU2\Global.h" />
|
||||||
<ClInclude Include="SPU2\Host\Config.h" />
|
<ClInclude Include="SPU2\Host\Config.h" />
|
||||||
|
|
|
@ -232,6 +232,12 @@
|
||||||
<Filter Include="System\Ps2\GS\Shaders\Direct3D">
|
<Filter Include="System\Ps2\GS\Shaders\Direct3D">
|
||||||
<UniqueIdentifier>{eb697f5b-85f5-424a-a7e4-8d8b73d3426e}</UniqueIdentifier>
|
<UniqueIdentifier>{eb697f5b-85f5-424a-a7e4-8d8b73d3426e}</UniqueIdentifier>
|
||||||
</Filter>
|
</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>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="Utilities\folderdesc.txt">
|
<None Include="Utilities\folderdesc.txt">
|
||||||
|
@ -1248,6 +1254,21 @@
|
||||||
<ClCompile Include="Frontend\imgui_impl_vulkan.cpp">
|
<ClCompile Include="Frontend\imgui_impl_vulkan.cpp">
|
||||||
<Filter>Host</Filter>
|
<Filter>Host</Filter>
|
||||||
</ClCompile>
|
</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>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="Patch.h">
|
<ClInclude Include="Patch.h">
|
||||||
|
@ -2071,6 +2092,21 @@
|
||||||
<ClInclude Include="Frontend\imgui_impl_vulkan.h">
|
<ClInclude Include="Frontend\imgui_impl_vulkan.h">
|
||||||
<Filter>Host</Filter>
|
<Filter>Host</Filter>
|
||||||
</ClInclude>
|
</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>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<CustomBuildStep Include="rdebug\deci2.h">
|
<CustomBuildStep Include="rdebug\deci2.h">
|
||||||
|
|
Loading…
Reference in New Issue