forked from dolphin-emu/dolphin
		
	
		
			
	
	
		
			89 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			89 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								// Copyright 2018 Dolphin Emulator Project
							 | 
						||
| 
								 | 
							
								// Licensed under GPLv2+
							 | 
						||
| 
								 | 
							
								// Refer to the license.txt file included.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#pragma once
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <vector>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <QDockWidget>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "Common/CommonTypes.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class MemoryViewWidget;
							 | 
						||
| 
								 | 
							
								class QCheckBox;
							 | 
						||
| 
								 | 
							
								class QLabel;
							 | 
						||
| 
								 | 
							
								class QLineEdit;
							 | 
						||
| 
								 | 
							
								class QPushButton;
							 | 
						||
| 
								 | 
							
								class QRadioButton;
							 | 
						||
| 
								 | 
							
								class QSplitter;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class MemoryWidget : public QDockWidget
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  Q_OBJECT
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								  explicit MemoryWidget(QWidget* parent = nullptr);
							 | 
						||
| 
								 | 
							
								  ~MemoryWidget();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  void Update();
							 | 
						||
| 
								 | 
							
								signals:
							 | 
						||
| 
								 | 
							
								  void BreakpointsChanged();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								private:
							 | 
						||
| 
								 | 
							
								  void CreateWidgets();
							 | 
						||
| 
								 | 
							
								  void ConnectWidgets();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  void LoadSettings();
							 | 
						||
| 
								 | 
							
								  void SaveSettings();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  void OnTypeChanged();
							 | 
						||
| 
								 | 
							
								  void OnBPLogChanged();
							 | 
						||
| 
								 | 
							
								  void OnBPTypeChanged();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  void OnSearchAddress();
							 | 
						||
| 
								 | 
							
								  void OnFindNextValue();
							 | 
						||
| 
								 | 
							
								  void OnFindPreviousValue();
							 | 
						||
| 
								 | 
							
								  void ValidateSearchValue();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  void OnSetValue();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  void OnDumpMRAM();
							 | 
						||
| 
								 | 
							
								  void OnDumpExRAM();
							 | 
						||
| 
								 | 
							
								  void OnDumpFakeVMEM();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  std::vector<u8> GetValueData() const;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  void FindValue(bool next);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  void closeEvent(QCloseEvent*) override;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  MemoryViewWidget* m_memory_view;
							 | 
						||
| 
								 | 
							
								  QSplitter* m_splitter;
							 | 
						||
| 
								 | 
							
								  QLineEdit* m_search_address;
							 | 
						||
| 
								 | 
							
								  QLineEdit* m_data_edit;
							 | 
						||
| 
								 | 
							
								  QPushButton* m_set_value;
							 | 
						||
| 
								 | 
							
								  QPushButton* m_dump_mram;
							 | 
						||
| 
								 | 
							
								  QPushButton* m_dump_exram;
							 | 
						||
| 
								 | 
							
								  QPushButton* m_dump_fake_vmem;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Search
							 | 
						||
| 
								 | 
							
								  QPushButton* m_find_next;
							 | 
						||
| 
								 | 
							
								  QPushButton* m_find_previous;
							 | 
						||
| 
								 | 
							
								  QRadioButton* m_find_ascii;
							 | 
						||
| 
								 | 
							
								  QRadioButton* m_find_hex;
							 | 
						||
| 
								 | 
							
								  QLabel* m_result_label;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Datatypes
							 | 
						||
| 
								 | 
							
								  QRadioButton* m_type_u8;
							 | 
						||
| 
								 | 
							
								  QRadioButton* m_type_u16;
							 | 
						||
| 
								 | 
							
								  QRadioButton* m_type_u32;
							 | 
						||
| 
								 | 
							
								  QRadioButton* m_type_ascii;
							 | 
						||
| 
								 | 
							
								  QRadioButton* m_type_float;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Breakpoint options
							 | 
						||
| 
								 | 
							
								  QRadioButton* m_bp_read_write;
							 | 
						||
| 
								 | 
							
								  QRadioButton* m_bp_read_only;
							 | 
						||
| 
								 | 
							
								  QRadioButton* m_bp_write_only;
							 | 
						||
| 
								 | 
							
								  QCheckBox* m_bp_log_check;
							 | 
						||
| 
								 | 
							
								};
							 |