10#ifndef RTP_ANALYSIS_DIALOG_H
11#define RTP_ANALYSIS_DIALOG_H
34class RtpAnalysisDialog;
39class QDialogButtonBox;
233 void on_actionGoToPacket_triggered();
238 void on_actionNextProblem_triggered();
243 void on_actionSaveOneCsv_triggered();
248 void on_actionSaveAllCsv_triggered();
253 void on_actionSaveGraph_triggered();
258 void on_buttonBox_helpRequested();
264 void showStreamMenu(QPoint pos);
270 void showGraphMenu(
const QPoint &pos);
276 void graphClicked(QMouseEvent *event);
282 void closeTab(
int index);
288 void rowCheckboxChanged(
int checked);
294 void singleCheckboxChanged(
int checked);
299 void on_actionPrepareFilterOne_triggered();
304 void on_actionPrepareFilterAll_triggered();
311 static std::mutex init_mutex_;
314 static std::mutex run_mutex_;
317 Ui::RtpAnalysisDialog *ui;
322 enum StreamDirection {
331 QVector<tab_info_t *> tabs_;
334 QMultiHash<unsigned, tab_info_t *> tab_hash_;
337 QPushButton *player_button_;
340 QList<QCPGraph *>graphs_;
346 QMenu stream_ctx_menu_;
349 QMenu graph_ctx_menu_;
355 static void tapReset(
void *tapinfo_ptr);
371 static void tapDraw(
void *tapinfo_ptr);
376 void resetStatistics();
389 void updateStatistics();
401 void saveCsvHeader(QFile *save_file, QTreeWidget *tree);
408 void saveCsvData(QFile *save_file, QTreeWidget *tree);
414 void saveCsv(StreamDirection direction);
421 bool eventFilter(QObject*, QEvent* event)
override;
427 QVector<rtpstream_id_t *>getSelectedRtpIds();
445 void applyTabColors(
const tab_info_t *tab,
int tab_no);
463 void clearLayout(QLayout *layout);
469 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:51
~RtpAnalysisDialog()
Destroys the RtpAnalysisDialog.
Definition rtp_analysis_dialog.cpp:314
void rtpPlayerRemove()
Slot to handle removing streams from the RTP player.
Definition rtp_analysis_dialog.cpp:861
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:238
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:854
void addRtpStreams(QVector< rtpstream_id_t * > stream_ids)
Add RTP streams to analyse. Requires array of rtpstream_id_t.
Definition rtp_analysis_dialog.cpp:1070
static QPushButton * addAnalyzeButton(QDialogButtonBox *button_box, RtpBaseDialog *dialog)
Common routine to add a "Analyze" button to a QDialogButtonBox.
Definition rtp_analysis_dialog.cpp:1161
RtpAnalysisDialog(RtpAnalysisDialog &other)=delete
Should not be cloneable.
void rtpPlayerReplace()
Slot to handle replacing streams in the RTP player.
Definition rtp_analysis_dialog.cpp:847
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:1054
virtual void updateWidgets() override
Updates the UI widgets.
Definition rtp_analysis_dialog.cpp:534
void removeRtpStreams(QVector< rtpstream_id_t * > stream_ids)
Remove RTP streams to analyse. Requires array of rtpstream_id_t.
Definition rtp_analysis_dialog.cpp:1126
Base class for RTP related dialogs providing common functionality.
Definition rtp_player_dialog.h:74
WiresharkDialog(QWidget &parent, CaptureFile &capture_file)
Constructs a new WiresharkDialog object.
Definition wireshark_dialog.cpp:30
struct epan_dissect epan_dissect_t
Opaque type representing a single packet dissection context.
Definition epan.h:62
struct _packet_info packet_info
Represents the metadata and indexing information for a single captured frame.
struct _rtpstream_info rtpstream_info_t
Holds all state and statistics accumulated for a single RTP stream.
Definition packet-rtp.h:29
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
int graph_color_idx
Definition rtp_analysis_dialog.h:98
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