Wireshark 4.7.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
dis_stream_analysis_dialog.h
Go to the documentation of this file.
1
10#ifndef DIS_STREAM_ANALYSIS_DIALOG_H
11#define DIS_STREAM_ANALYSIS_DIALOG_H
12
13#include <mutex>
14
15#include <QDialogButtonBox>
16#include <QTreeWidget>
17#include <QLabel>
18#include <QProgressBar>
19#include <QPushButton>
20
21#ifdef QT_MULTIMEDIA_LIB
22#include <QAudio>
23#endif
24
25#include "capture_file.h"
26#include "wireshark_dialog.h"
27
28#include "ui/tap-dis-common.h"
29
30class QComboBox;
31class QCustomPlot;
32class QCPItemStraightLine;
33class QMouseEvent;
34
36{
37 Q_OBJECT
38
39public:
40 static DisStreamAnalysisDialog *openDisStreamAnalysisDialog(QWidget &parent, CaptureFile &cf, QObject *packet_list);
41
42 void selectStream(disstream_info_t *stream_info);
43
45 void operator=(const DisStreamAnalysisDialog &) = delete;
46
47signals:
48 void goToPacket(int packet_num);
49
50protected:
51 explicit DisStreamAnalysisDialog(QWidget &parent, CaptureFile &cf, QObject *packet_list);
53
54 void captureFileClosing() override;
55 void captureFileClosed() override;
56
57private:
58 static DisStreamAnalysisDialog *pinstance_;
59 static std::mutex mutex_;
60
61 QComboBox *stream_combo_;
62 QCustomPlot *audio_plot_;
63 QTreeWidget *packet_tree_;
64 QLabel *duration_label_;
65 QLabel *packets_label_;
66 QLabel *signal_label_;
67 QLabel *tx_label_;
68 QLabel *lost_label_;
69 QLabel *jitter_label_;
70 QLabel *delta_label_;
71 QLabel *codec_label_;
72 QLabel *hint_label_;
73 QProgressBar *playback_progress_;
74 QLabel *playback_time_label_;
75 QDialogButtonBox *button_box_;
76 QPushButton *play_button_;
77 QPushButton *stop_button_;
78 QPushButton *goto_button_;
79 QCPItemStraightLine *start_marker_pos_;
80 QCPItemStraightLine *playback_marker_pos_;
81 double start_marker_time_;
82 double playback_marker_time_;
83 bool need_redraw_;
84 bool have_requested_stream_;
85 disstream_id_t requested_stream_id_;
86 QObject *packet_list_;
87
88#ifdef QT_MULTIMEDIA_LIB
89 class DisAudioStream *audio_stream_;
90#endif
91
92 disstream_tapinfo_t tapinfo_;
93
94 static void tapReset(disstream_tapinfo_t *tapinfo);
95 static void tapDraw(disstream_tapinfo_t *tapinfo);
96
97 disstream_info_t *selectedStream() const;
98 void updateStreams();
99 void updateWidgets() override;
100 void updateAnalysis();
101 void updatePacketRows();
102 void updatePlot();
103 void updateHintLabel();
104 double selectedStartTime() const;
105 void setStartPlayMarker(double new_time);
106 void drawStartPlayMarker();
107 void setPlaybackMarker(double new_time, bool visible);
108 void drawPlaybackMarker();
109
110private slots:
111 void onStreamChanged(int index);
112 void onGoToPacket();
113 void onPacketRowActivated(QTreeWidgetItem *item, int column);
114 void onGraphDoubleClicked(QMouseEvent *event);
115#ifdef QT_MULTIMEDIA_LIB
116 void onPlayPauseStream();
117 void onStopStream();
118 void onPlaybackProgress(double position_secs, double duration_secs);
119 void onPlaybackStateChanged(QAudio::State state _U_);
120#endif
121 void onCaptureEvent(CaptureEvent e);
122};
123
124#endif /* DIS_STREAM_ANALYSIS_DIALOG_H */
Definition capture_event.h:21
Definition capture_file.h:21
Definition dis_stream_analysis_dialog.h:36
void captureFileClosed() override
Called when the capture file was closed. This can be used to enable or disable widgets according to t...
Definition dis_stream_analysis_dialog.cpp:236
void captureFileClosing() override
Called when the capture file is about to close. This can be used to disconnect taps and similar actio...
Definition dis_stream_analysis_dialog.cpp:226
Definition wireshark_dialog.h:35
Definition tap-dis-common.h:23
Definition tap-dis-common.h:46
Definition tap-dis-common.h:100