1 // Copyright 2018 Dolphin Emulator Project 2 // Licensed under GPLv2+ 3 // Refer to the license.txt file included. 4 5 #pragma once 6 7 #include <vector> 8 9 #include <QWidget> 10 11 class QGroupBox; 12 class QLabel; 13 class QLineEdit; 14 class QListWidget; 15 class QPushButton; 16 class QSplitter; 17 class QTextBrowser; 18 class QTreeWidget; 19 20 class FIFOAnalyzer final : public QWidget 21 { 22 Q_OBJECT 23 24 public: 25 explicit FIFOAnalyzer(); 26 ~FIFOAnalyzer(); 27 28 void Update(); 29 30 private: 31 void CreateWidgets(); 32 void ConnectWidgets(); 33 34 void BeginSearch(); 35 void FindNext(); 36 void FindPrevious(); 37 38 void ShowSearchResult(size_t index); 39 40 void UpdateTree(); 41 void UpdateDetails(); 42 void UpdateDescription(); 43 44 QTreeWidget* m_tree_widget; 45 QListWidget* m_detail_list; 46 QTextBrowser* m_entry_detail_browser; 47 QSplitter* m_object_splitter; 48 49 // Search 50 QGroupBox* m_search_box; 51 QLineEdit* m_search_edit; 52 QPushButton* m_search_new; 53 QPushButton* m_search_next; 54 QPushButton* m_search_previous; 55 QLabel* m_search_label; 56 QSplitter* m_search_splitter; 57 58 struct SearchResult 59 { 60 int frame; 61 int object; 62 int cmd; 63 }; 64 65 std::vector<int> m_object_data_offsets; 66 std::vector<SearchResult> m_search_results; 67 }; 68