dolphin/Source/Core/DolphinQt/FIFO/FIFOPlayerWindow.h
Pokechu22 29df17d422 FifoPlayer: Allow changing loop option at runtime
This option has always existed since it's used by FifoCI, but now it can be changed at runtime.  Looping is something that should almost always be on, but it can be useful to turn it off when frame-dumping is enabled so that hundreds of copies of the same frame aren't created.  Before, turning it off required restarting Dolphin.
2022-01-06 19:08:16 -08:00

76 lines
1.6 KiB
C++

// Copyright 2017 Dolphin Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include <QWidget>
#include "Core/Core.h"
class QDialogButtonBox;
class QLabel;
class QPushButton;
class QSpinBox;
class QTabWidget;
class ToolTipCheckBox;
class FIFOAnalyzer;
class FIFOPlayerWindow : public QWidget
{
Q_OBJECT
public:
explicit FIFOPlayerWindow(QWidget* parent = nullptr);
~FIFOPlayerWindow();
signals:
void LoadFIFORequested(const QString& path);
private:
void CreateWidgets();
void LoadSettings();
void ConnectWidgets();
void AddDescriptions();
void LoadRecording();
void SaveRecording();
void StartRecording();
void StopRecording();
void OnEmulationStarted();
void OnEmulationStopped();
void OnLimitsChanged();
void OnRecordingDone();
void OnFIFOLoaded();
void OnConfigChanged();
void UpdateControls();
void UpdateInfo();
void UpdateLimits();
bool eventFilter(QObject* object, QEvent* event) final override;
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;
ToolTipCheckBox* m_early_memory_updates;
ToolTipCheckBox* m_loop;
QDialogButtonBox* m_button_box;
QWidget* m_main_widget;
QTabWidget* m_tab_widget;
FIFOAnalyzer* m_analyzer;
Core::State m_emu_state = Core::State::Uninitialized;
};