aboutsummaryrefslogtreecommitdiff
path: root/src/citra_qt/debugger/ipc/record_dialog.h
blob: 37908e0af6d6a86e4ed026ae740d17d4f3235924 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// Copyright 2019 Citra Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.

#include <array>
#include <memory>
#include <span>
#include <string>
#include <vector>
#include <QDialog>
#include "common/common_types.h"

namespace IPCDebugger {
struct ObjectInfo;
struct RequestRecord;
} // namespace IPCDebugger

namespace Ui {
class RecordDialog;
}

class RecordDialog : public QDialog {
    Q_OBJECT

public:
    explicit RecordDialog(QWidget* parent, const IPCDebugger::RequestRecord& record,
                          const QString& service, const QString& function);
    ~RecordDialog() override;

private:
    QString FormatObject(const IPCDebugger::ObjectInfo& object) const;
    QString FormatCmdbuf(std::span<const u32> cmdbuf) const;
    void UpdateCmdbufDisplay();

    std::unique_ptr<Ui::RecordDialog> ui;
    std::array<std::vector<u32>, 4> cmdbufs;
};