2017-08-30 08:44:28 -06:00
|
|
|
// Copyright 2017 Dolphin Emulator Project
|
2021-07-04 19:22:19 -06:00
|
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
2017-08-30 08:44:28 -06:00
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2021-02-16 12:24:57 -07:00
|
|
|
#include <QWidget>
|
2017-08-30 08:44:28 -06:00
|
|
|
|
2021-03-15 22:02:25 -06:00
|
|
|
#include "Core/Core.h"
|
|
|
|
|
2017-08-30 08:44:28 -06:00
|
|
|
class QDialogButtonBox;
|
|
|
|
class QLabel;
|
|
|
|
class QPushButton;
|
|
|
|
class QSpinBox;
|
2021-09-05 19:51:52 -06:00
|
|
|
class QTabWidget;
|
2022-01-06 15:38:09 -07:00
|
|
|
class ToolTipCheckBox;
|
2018-05-14 14:01:23 -06:00
|
|
|
class FIFOAnalyzer;
|
2017-08-30 08:44:28 -06:00
|
|
|
|
2021-02-16 12:24:57 -07:00
|
|
|
class FIFOPlayerWindow : public QWidget
|
2017-08-30 08:44:28 -06:00
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
explicit FIFOPlayerWindow(QWidget* parent = nullptr);
|
|
|
|
~FIFOPlayerWindow();
|
|
|
|
|
|
|
|
signals:
|
|
|
|
void LoadFIFORequested(const QString& path);
|
|
|
|
|
|
|
|
private:
|
|
|
|
void CreateWidgets();
|
2022-01-06 15:38:09 -07:00
|
|
|
void LoadSettings();
|
2017-08-30 08:44:28 -06:00
|
|
|
void ConnectWidgets();
|
2022-01-06 15:38:09 -07:00
|
|
|
void AddDescriptions();
|
2017-08-30 08:44:28 -06:00
|
|
|
|
|
|
|
void LoadRecording();
|
|
|
|
void SaveRecording();
|
|
|
|
void StartRecording();
|
|
|
|
void StopRecording();
|
|
|
|
|
|
|
|
void OnEmulationStarted();
|
|
|
|
void OnEmulationStopped();
|
|
|
|
void OnLimitsChanged();
|
|
|
|
void OnRecordingDone();
|
|
|
|
void OnFIFOLoaded();
|
2022-01-06 15:38:09 -07:00
|
|
|
void OnConfigChanged();
|
2017-08-30 08:44:28 -06:00
|
|
|
|
|
|
|
void UpdateControls();
|
|
|
|
void UpdateInfo();
|
|
|
|
void UpdateLimits();
|
|
|
|
|
2021-02-16 12:24:57 -07:00
|
|
|
bool eventFilter(QObject* object, QEvent* event) final override;
|
|
|
|
|
2017-08-30 08:44:28 -06:00
|
|
|
QLabel* m_info_label;
|
|
|
|
QPushButton* m_load;
|
|
|
|
QPushButton* m_save;
|
|
|
|
QPushButton* m_record;
|
|
|
|
QPushButton* m_stop;
|
|
|
|
QSpinBox* m_frame_range_from;
|
|
|
|
QLabel* m_frame_range_from_label;
|
|
|
|
QSpinBox* m_frame_range_to;
|
|
|
|
QLabel* m_frame_range_to_label;
|
|
|
|
QSpinBox* m_frame_record_count;
|
|
|
|
QLabel* m_frame_record_count_label;
|
|
|
|
QSpinBox* m_object_range_from;
|
|
|
|
QLabel* m_object_range_from_label;
|
|
|
|
QSpinBox* m_object_range_to;
|
|
|
|
QLabel* m_object_range_to_label;
|
2022-01-06 15:38:09 -07:00
|
|
|
ToolTipCheckBox* m_early_memory_updates;
|
2022-01-06 15:47:36 -07:00
|
|
|
ToolTipCheckBox* m_loop;
|
2017-08-30 08:44:28 -06:00
|
|
|
QDialogButtonBox* m_button_box;
|
2018-05-14 14:01:23 -06:00
|
|
|
|
2021-09-05 19:51:52 -06:00
|
|
|
QWidget* m_main_widget;
|
|
|
|
QTabWidget* m_tab_widget;
|
|
|
|
|
2018-05-14 14:01:23 -06:00
|
|
|
FIFOAnalyzer* m_analyzer;
|
2021-03-15 22:02:25 -06:00
|
|
|
Core::State m_emu_state = Core::State::Uninitialized;
|
2017-08-30 08:44:28 -06:00
|
|
|
};
|