10#ifndef RTP_ANALYSIS_DIALOG_H
11#define RTP_ANALYSIS_DIALOG_H
39class QDialogButtonBox;
229 void on_actionGoToPacket_triggered();
234 void on_actionNextProblem_triggered();
239 void on_actionSaveOneCsv_triggered();
244 void on_actionSaveAllCsv_triggered();
249 void on_actionSaveGraph_triggered();
254 void on_buttonBox_helpRequested();
260 void showStreamMenu(QPoint pos);
266 void showGraphMenu(
const QPoint &pos);
272 void graphClicked(QMouseEvent *event);
278 void closeTab(
int index);
284 void rowCheckboxChanged(
int checked);
290 void singleCheckboxChanged(
int checked);
295 void on_actionPrepareFilterOne_triggered();
300 void on_actionPrepareFilterAll_triggered();
307 static std::mutex init_mutex_;
310 static std::mutex run_mutex_;
313 Ui::RtpAnalysisDialog *ui;
318 enum StreamDirection {
327 QVector<tab_info_t *> tabs_;
330 QMultiHash<unsigned, tab_info_t *> tab_hash_;
333 QToolButton *player_button_;
336 QList<QCPGraph *>graphs_;
342 QMenu stream_ctx_menu_;
345 QMenu graph_ctx_menu_;
351 static void tapReset(
void *tapinfo_ptr);
367 static void tapDraw(
void *tapinfo_ptr);
372 void resetStatistics();
385 void updateStatistics();
397 void saveCsvHeader(QFile *save_file, QTreeWidget *tree);
404 void saveCsvData(QFile *save_file, QTreeWidget *tree);
410 void saveCsv(StreamDirection direction);
417 bool eventFilter(QObject*, QEvent* event);
423 QVector<rtpstream_id_t *>getSelectedRtpIds();
448 void clearLayout(QLayout *layout);
454 void addRtpStreamsPrivate(QVector<rtpstream_id_t *> stream_ids);
Manages a capture file and its associated state and operations.
Definition capture_file.h:27
The main packet list view for displaying captured packets.
Definition packet_list.h:45
Singleton dialog for analyzing RTP streams.
Definition rtp_analysis_dialog.h:102
~RtpAnalysisDialog()
Destroys the RtpAnalysisDialog.
Definition rtp_analysis_dialog.cpp:310
void rtpPlayerRemove()
Slot to handle removing streams from the RTP player.
Definition rtp_analysis_dialog.cpp:850
void rtpPlayerDialogRemoveRtpStreams(QVector< rtpstream_id_t * > stream_ids)
Signal emitted to remove RTP streams in the RTP player dialog.
static RtpAnalysisDialog * openRtpAnalysisDialog(QWidget &parent, CaptureFile &cf, PacketList *packet_list)
Returns singleton instance of the RTP analysis dialog.
Definition rtp_analysis_dialog.cpp:242
void rtpPlayerDialogAddRtpStreams(QVector< rtpstream_id_t * > stream_ids)
Signal emitted to add RTP streams in the RTP player dialog.
void rtpPlayerDialogReplaceRtpStreams(QVector< rtpstream_id_t * > stream_ids)
Signal emitted to replace RTP streams in the RTP player dialog.
void rtpPlayerAdd()
Slot to handle adding streams to the RTP player.
Definition rtp_analysis_dialog.cpp:843
void addRtpStreams(QVector< rtpstream_id_t * > stream_ids)
Add RTP streams to analyse. Requires array of rtpstream_id_t.
Definition rtp_analysis_dialog.cpp:1059
RtpAnalysisDialog(RtpAnalysisDialog &other)=delete
Should not be cloneable.
void rtpPlayerReplace()
Slot to handle replacing streams in the RTP player.
Definition rtp_analysis_dialog.cpp:836
void goToPacket(int packet_num)
Signal emitted to go to a specific packet number.
void operator=(const RtpAnalysisDialog &)=delete
Should not be assignable.
void updateFilter(QString filter, bool force=false)
Signal emitted to update the display filter.
void replaceRtpStreams(QVector< rtpstream_id_t * > stream_ids)
Replace an RTP streams to analyse. Requires array of rtpstream_id_t.
Definition rtp_analysis_dialog.cpp:1043
static QToolButton * addAnalyzeButton(QDialogButtonBox *button_box, RtpBaseDialog *dialog)
Common routine to add a "Analyze" button to a QDialogButtonBox.
Definition rtp_analysis_dialog.cpp:1150
virtual void updateWidgets()
Updates the UI widgets.
Definition rtp_analysis_dialog.cpp:523
void removeRtpStreams(QVector< rtpstream_id_t * > stream_ids)
Remove RTP streams to analyse. Requires array of rtpstream_id_t.
Definition rtp_analysis_dialog.cpp:1115
Base class for RTP related dialogs providing common functionality.
Definition rtp_player_dialog.h:78
Base class for Wireshark specific dialogs that require interaction with a CaptureFile.
Definition wireshark_dialog.h:38
Represents the metadata and indexing information for a single captured frame.
Definition packet_info.h:43
Definition packet-rtp.h:29
Holds all state and statistics accumulated for a single RTP stream.
Definition rtp_stream.h:42
Holds all state for the dissection of a single byte array, including session, buffer,...
Definition epan_dissect.h:28
Structure to hold information and UI elements for an RTP stream analysis tab.
Definition rtp_analysis_dialog.h:47
QCheckBox * diff_checkbox
Definition rtp_analysis_dialog.h:91
QTreeWidget * tree_widget
Definition rtp_analysis_dialog.h:64
QVector< double > * diff_vals
Definition rtp_analysis_dialog.h:58
QCPGraph * delta_graph
Definition rtp_analysis_dialog.h:79
QLabel * statistics_label
Definition rtp_analysis_dialog.h:67
QCheckBox * jitter_checkbox
Definition rtp_analysis_dialog.h:88
rtpstream_info_t stream
Definition rtp_analysis_dialog.h:49
QHBoxLayout * graphHorizontalLayout
Definition rtp_analysis_dialog.h:82
QCheckBox * delta_checkbox
Definition rtp_analysis_dialog.h:94
QCheckBox * stream_checkbox
Definition rtp_analysis_dialog.h:85
QCPGraph * diff_graph
Definition rtp_analysis_dialog.h:76
QVector< double > * delta_vals
Definition rtp_analysis_dialog.h:61
QString * tab_name
Definition rtp_analysis_dialog.h:70
QVector< double > * jitter_vals
Definition rtp_analysis_dialog.h:55
QCPGraph * jitter_graph
Definition rtp_analysis_dialog.h:73
QVector< double > * time_vals
Definition rtp_analysis_dialog.h:52
tap_packet_status
Definition tap.h:22