From 73a9399f5d1d86c7e291498b7fe836550f2f76ab Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Tue, 2 Apr 2019 15:30:45 -0400 Subject: Add a C++ version of the triage plugin (no Makefile yet) --- examples/triage/entropy.h | 51 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 examples/triage/entropy.h (limited to 'examples/triage/entropy.h') diff --git a/examples/triage/entropy.h b/examples/triage/entropy.h new file mode 100644 index 00000000..abe591b4 --- /dev/null +++ b/examples/triage/entropy.h @@ -0,0 +1,51 @@ +#pragma once + +#include +#include +#include +#include "uitypes.h" + + +class EntropyThread +{ + BinaryViewRef m_data; + QImage m_image; + size_t m_blockSize; + bool m_updated, m_running; + std::thread m_thread; + +public: + EntropyThread(BinaryViewRef data, int width, size_t blockSize); + ~EntropyThread(); + + void Run(); + bool IsUpdated() { return m_updated; } + void ResetUpdated() { m_updated = false; } + + const QImage& GetImage() { return m_image; } +}; + + +class TriageView; + +class EntropyWidget: public QWidget +{ + TriageView* m_view; + BinaryViewRef m_data, m_rawData; + size_t m_blockSize; + int m_width; + EntropyThread* m_thread; + +public: + EntropyWidget(QWidget* parent, TriageView* view, BinaryViewRef data); + virtual ~EntropyWidget(); + + virtual QSize sizeHint() const override; + +protected: + virtual void paintEvent(QPaintEvent* event) override; + virtual void mousePressEvent(QMouseEvent* event) override; + +private Q_SLOTS: + void timerExpired(); +}; -- cgit v1.3.1