From b0a14cfe7f0075d0758371276b7f6384856aa6ff Mon Sep 17 00:00:00 2001 From: chrisvj Date: Sat, 3 Jan 2015 15:51:14 -0800 Subject: citra-qt: Renamed all .hxx headers to .h --- src/citra_qt/debugger/disassembler.h | 77 ++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/citra_qt/debugger/disassembler.h (limited to 'src/citra_qt/debugger/disassembler.h') diff --git a/src/citra_qt/debugger/disassembler.h b/src/citra_qt/debugger/disassembler.h new file mode 100644 index 00000000..6d3cef10 --- /dev/null +++ b/src/citra_qt/debugger/disassembler.h @@ -0,0 +1,77 @@ +// Copyright 2014 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include +#include +#include "ui_disassembler.h" + +#include "common/common.h" +#include "common/break_points.h" + +class QAction; +class EmuThread; + +class DisassemblerModel : public QAbstractItemModel +{ + Q_OBJECT + +public: + DisassemblerModel(QObject* parent); + + QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override; + QModelIndex parent(const QModelIndex& child) const override; + int columnCount(const QModelIndex& parent = QModelIndex()) const override; + int rowCount(const QModelIndex& parent = QModelIndex()) const override; + QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override; + + QModelIndex IndexFromAbsoluteAddress(unsigned int address) const; + const BreakPoints& GetBreakPoints() const; + +public slots: + void ParseFromAddress(unsigned int address); + void OnSelectionChanged(const QModelIndex&); + void OnSetOrUnsetBreakpoint(); + void SetNextInstruction(unsigned int address); + +private: + unsigned int base_address; + unsigned int code_size; + unsigned int program_counter; + + QModelIndex selection; + + // TODO: Make BreakPoints less crappy (i.e. const-correct) so that this needn't be mutable. + mutable BreakPoints breakpoints; +}; + +class DisassemblerWidget : public QDockWidget +{ + Q_OBJECT + +public: + DisassemblerWidget(QWidget* parent, EmuThread& emu_thread); + + void Init(); + +public slots: + void OnContinue(); + void OnStep(); + void OnStepInto(); + void OnPause(); + void OnToggleStartStop(); + + void OnCPUStepped(); + +private: + // returns -1 if no row is selected + int SelectedRow(); + + Ui::DockWidget disasm_ui; + + DisassemblerModel* model; + + u32 base_addr; + + EmuThread& emu_thread; +}; -- cgit v1.2.3