10#ifndef DIS_STREAM_ANALYSIS_DIALOG_H
11#define DIS_STREAM_ANALYSIS_DIALOG_H
15#include <QDialogButtonBox>
18#include <QProgressBar>
21#ifdef QT_MULTIMEDIA_LIB
28#include "ui/tap-dis-common.h"
32class QCPItemStraightLine;
106 static std::mutex mutex_;
109 QComboBox *stream_combo_;
112 QCustomPlot *audio_plot_;
115 QTreeWidget *packet_tree_;
118 QLabel *duration_label_;
121 QLabel *packets_label_;
124 QLabel *signal_label_;
133 QLabel *jitter_label_;
136 QLabel *delta_label_;
139 QLabel *codec_label_;
145 QProgressBar *playback_progress_;
148 QLabel *playback_time_label_;
151 QDialogButtonBox *button_box_;
154 QPushButton *play_button_;
157 QPushButton *stop_button_;
160 QPushButton *goto_button_;
163 QCPItemStraightLine *start_marker_pos_;
166 QCPItemStraightLine *playback_marker_pos_;
169 double start_marker_time_;
172 double playback_marker_time_;
178 bool have_requested_stream_;
184 QObject *packet_list_;
186#ifdef QT_MULTIMEDIA_LIB
188 class DisAudioStream *audio_stream_;
215 void updateStreams();
220 void updateWidgets()
override;
225 void updateAnalysis();
230 void updatePacketRows();
240 void updateHintLabel();
246 double selectedStartTime()
const;
252 void setStartPlayMarker(
double new_time);
257 void drawStartPlayMarker();
264 void setPlaybackMarker(
double new_time,
bool visible);
269 void drawPlaybackMarker();
276 void onStreamChanged(
int index);
288 void onPacketRowActivated(QTreeWidgetItem *item,
int column);
294 void onGraphDoubleClicked(QMouseEvent *event);
296#ifdef QT_MULTIMEDIA_LIB
300 void onPlayPauseStream();
312 void onPlaybackProgress(
double position_secs,
double duration_secs);
318 void onPlaybackStateChanged(QAudio::State state _U_);
Represents an event occurring during a capture or file operation.
Definition capture_event.h:24
Manages a capture file and its associated state and operations.
Definition capture_file.h:27
A dialog for analyzing and interacting with DIS (Distributed Interactive Simulation) streams.
Definition dis_stream_analysis_dialog.h:39
void operator=(const DisStreamAnalysisDialog &)=delete
Deleted assignment operator to enforce singleton pattern.
void selectStream(disstream_info_t *stream_info)
Selects and loads a specific DIS stream for analysis.
Definition dis_stream_analysis_dialog.cpp:54
static DisStreamAnalysisDialog * openDisStreamAnalysisDialog(QWidget &parent, CaptureFile &cf, QObject *packet_list)
Opens or retrieves the singleton instance of the DisStreamAnalysisDialog.
Definition dis_stream_analysis_dialog.cpp:42
void captureFileClosed() override
Slot triggered when the capture file is fully closed.
Definition dis_stream_analysis_dialog.cpp:236
~DisStreamAnalysisDialog()
Destroys the DisStreamAnalysisDialog.
Definition dis_stream_analysis_dialog.cpp:210
DisStreamAnalysisDialog(DisStreamAnalysisDialog &other)=delete
Deleted copy constructor to enforce singleton pattern.
void goToPacket(int packet_num)
Signal emitted to navigate the main UI to a specific packet number.
void captureFileClosing() override
Slot triggered when the capture file begins closing.
Definition dis_stream_analysis_dialog.cpp:226
Base class for Wireshark specific dialogs that require interaction with a CaptureFile.
Definition wireshark_dialog.h:38
Uniquely identifies a DIS (Distributed Interactive Simulation) stream by its network and radio addres...
Definition tap-dis-common.h:26
Aggregated analysis state and statistics for a single DIS stream.
Definition tap-dis-common.h:57
Top-level tap context for DIS stream analysis, holding all discovered streams and tap configuration.
Definition tap-dis-common.h:124