summaryrefslogtreecommitdiff
path: root/ui/time_shift.h
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2012-12-21 17:37:57 +0000
committerGerald Combs <gerald@wireshark.org>2012-12-21 17:37:57 +0000
commit962b4f08f76e70ca445523027c1792883ae3ea9d (patch)
treeacce5f56e16c774fd4bb80341a0ea81f138399c8 /ui/time_shift.h
parent8c9f80fccc7c1a646f30d2fd235d2bdc1f29d17e (diff)
downloadwireshark-962b4f08f76e70ca445523027c1792883ae3ea9d.tar.gz
Move common time shifting code to ui/time_shift.[ch]. Change the
shifting routines to return an error message on failure or NULL on success. Prettify and simplify the layout of the GTK+ time shift dialog. Make the cancel button work as expected. Add a time shift dialog to the Qt port. I used a Mad Lib (sentence) layout. Hopefully that won't make translation too difficult. For some reason time shifts aren't immediately shown in the packet detail. This appears to be a bug in the packet list / packet detail code. Add warning role color definitions to tango_colors.h and use them. svn path=/trunk/; revision=46680
Diffstat (limited to 'ui/time_shift.h')
-rw-r--r--ui/time_shift.h103
1 files changed, 103 insertions, 0 deletions
diff --git a/ui/time_shift.h b/ui/time_shift.h
new file mode 100644
index 0000000000..bedc353bf4
--- /dev/null
+++ b/ui/time_shift.h
@@ -0,0 +1,103 @@
+/* time_shift.h
+ * Submitted by Edwin Groothuis <wireshark@mavetju.org>
+ *
+ * $Id$
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef __TIME_SHIFT_H__
+#define __TIME_SHIFT_H__
+
+#include "cfile.h"
+#include <epan/nstime.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/*
+ * XXX - We might want to move all of this somewhere more accessible to
+ * editcap so that we can make its time adjustments more versatile.
+ */
+
+/**
+ * Parse a time string and fill in each component.
+ *
+ * If year, month, and day are non-NULL a full time format "[YYYY-MM-DD] hh:mm:ss[.decimals]"
+ * is allowed. Otherwise an offset format "[-][[hh:]mm:]ss[.decimals]" is allowed.
+ *
+ * @param time_text Time string
+ * @param year Year. May be NULL
+ * @param month Month. May be NULL
+ * @param day Day. May be NULL.
+ * @param negative Time offset is negative. May be NULL if year, month, and day are not NULL.
+ * @param hour Hours. Must not be NULL.
+ * @param minute Minutes. Must not be NULL.
+ * @param second Seconds. Must not be NULL.
+ *
+ * @return NULL on success or an error description on failure.
+ */
+
+const gchar * time_string_parse(const gchar *time_text, int *year, int *month, int *day, gboolean *negative, int *hour, int *minute, long double *second);
+
+/** Shift all packets by an offset
+ *
+ * @param cf Capture file to shift
+ * @param offset_text String representation of the offset.
+ *
+ * @return NULL on success or an error description on failure.
+ */
+const gchar * time_shift_all(capture_file *cf, const gchar *offset_text);
+
+/* Set the time for a single packet
+ *
+ * @param cf Capture file to set
+ * @param packet_num Packet to set
+ * @param time_text String representation of the time
+ *
+ * @return NULL on success or an error description on failure.
+ */
+const gchar * time_shift_settime(capture_file *cf, guint packet_num, const gchar *time_text);
+
+/* Set the time for two packets and extrapolate the rest
+ *
+ * @param cf Capture file to set
+ * @param packet1_num First packet to set
+ * @param time1_text String representation of the first packet time
+ * @param packet2_num Second packet to set
+ * @param time2_text String representation of the second packet time
+ *
+ * @return NULL on success or an error description on failure.
+ */
+const gchar * time_shift_adjtime(capture_file *cf, guint packet1_num, const gchar *time1_text, guint packet2_num, const gchar *time2_text);
+
+/* Reset the times for all packets
+ *
+ * @param cf Capture file to set
+ *
+ * @return NULL on success or an error description on failure.
+ */
+const gchar * time_shift_undo(capture_file *cf);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __TIME_SHIFT_H__ */