Wireshark  4.3.0
The Wireshark network protocol analyzer
wireless_timeline.h
Go to the documentation of this file.
1 
15 #include <QScrollArea>
16 
17 #ifndef WIRELESSTIMELINE_H
18 #define WIRELESSTIMELINE_H
19 
20 #include <stdio.h>
21 
22 #include <config.h>
23 
24 #include "file.h"
25 
26 #include "ui/ws_ui_util.h"
27 
28 #include <epan/prefs.h>
29 #include <epan/plugin_if.h>
30 #include <epan/tap.h>
31 #include <epan/timestamp.h>
32 
33 #include <epan/dissectors/packet-ieee80211-radio.h>
34 
35 #include <QScrollArea>
36 
37 #include "cfile.h"
38 
39 /* pixels height for rendered timeline */
40 #define TIMELINE_HEIGHT 64
41 
42 /* Maximum zoom levels for the timeline */
43 #define TIMELINE_MAX_ZOOM 25.0
44 
45 class WirelessTimeline;
46 class PacketList;
47 
48 class WirelessTimeline : public QWidget
49 {
50  Q_OBJECT
51 
52 public:
53  explicit WirelessTimeline(QWidget *parent);
55  void setPacketList(PacketList *packet_list);
56  void captureFileReadStarted(capture_file *cf);
57  void captureFileReadFinished();
58 
59 protected:
60  void resizeEvent(QResizeEvent *event);
61  void paintEvent(QPaintEvent *event);
62  void mousePressEvent (QMouseEvent *event);
63  void mouseMoveEvent (QMouseEvent *event);
64  void mouseReleaseEvent (QMouseEvent *event);
65  bool event(QEvent *event);
66  void wheelEvent(QWheelEvent *event);
67 
68 public slots:
69  void bgColorizationProgress(int first, int last);
70  void appInitialized();
71 
72 protected:
73  static void tap_timeline_reset(void* tapdata);
74  static tap_packet_status tap_timeline_packet(void *tapdata, packet_info* pinfo, epan_dissect_t* edt, const void *data, tap_flags_t flags);
75 
76  struct wlan_radio* get_wlan_radio(uint32_t packet_num);
77 
78  void clip_tsf();
79  int position(uint64_t tsf, float ratio);
80  int find_packet_tsf(uint64_t tsf);
81  void doToolTip(struct wlan_radio *wr, QPoint pos, int x);
82  void zoom(double x_fraction);
83  double zoom_level;
84  qreal start_x, last_x;
85  PacketList *packet_list;
86  unsigned find_packet(qreal x);
87  float rgb[TIMELINE_HEIGHT][3];
88 
89  uint64_t start_tsf;
90  uint64_t end_tsf;
91  int first_packet; /* first packet displayed */
92  struct wlan_radio *first, *last;
93  capture_file *capfile;
94 
95  GHashTable* radio_packet_list;
96 
97 protected slots:
98  void selectedFrameChanged(QList<int>);
99 };
100 
101 #endif // WIRELESS_TIMELINE_H
Definition: packet_list.h:40
Definition: wireless_timeline.h:49
Definition: cfile.h:67
Definition: packet_info.h:44
Definition: epan_dissect.h:28
Definition: packet-ieee80211-radio.h:28
tap_packet_status
Definition: tap.h:25