summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2016-12-12 13:22:05 -0500
committerMichael Mann <mmann78@netscape.net>2016-12-13 22:56:36 +0000
commita869ec6f55160622a90bc437517dee91d57f85d5 (patch)
treeea55cf7ba5f820af87e01d2a28d38d6b6ebe547e
parente150235ef14cf6a9ada7d74c534e4aee469f3ac5 (diff)
downloadwireshark-a869ec6f55160622a90bc437517dee91d57f85d5.tar.gz
Adjust proto_tree_add_[float|double]_format_value calls to use unit string
Several calls to proto_tree_add_[float|double]_xxx could be better served using BASE_UNIT_STRING with a "unit string" in hf_ field. Added a few more "common" unit string values to unit_strings.[ch] Change-Id: Id0da7b579403898d20c2667d6c4abcd59d5a48d4 Reviewed-on: https://code.wireshark.org/review/19241 Reviewed-by: Michael Mann <mmann78@netscape.net>
-rw-r--r--debian/libwireshark0.symbols5
-rw-r--r--epan/dissectors/file-mp4.c12
-rw-r--r--epan/dissectors/file-png.c36
-rw-r--r--epan/dissectors/packet-dbus.c4
-rw-r--r--epan/dissectors/packet-mpeg-descriptor.c12
-rw-r--r--epan/dissectors/packet-ptp.c13
-rw-r--r--epan/dissectors/packet-synphasor.c14
-rw-r--r--epan/proto.h3
-rw-r--r--epan/unit_strings.c6
-rw-r--r--epan/unit_strings.h5
10 files changed, 61 insertions, 49 deletions
diff --git a/debian/libwireshark0.symbols b/debian/libwireshark0.symbols
index 9c8ad8f7d0..994d21c4cb 100644
--- a/debian/libwireshark0.symbols
+++ b/debian/libwireshark0.symbols
@@ -1643,9 +1643,14 @@ libwireshark.so.0 libwireshark0 #MINVER#
unit_name_string_get_value64@Base 2.3.0
units_bit_bits@Base 2.3.0
units_byte_bytes@Base 2.3.0
+ units_degree_degrees@Base 2.3.0
units_foot_feet@Base 2.3.0
+ units_ghz@Base 2.3.0
+ units_hz@Base 2.3.0
+ units_hz_s@Base 2.3.0
units_millisecond_milliseconds@Base 2.3.0
units_milliseconds@Base 2.3.0
+ units_nanosecond_nanoseconds@Base 2.3.0
units_second_seconds@Base 2.3.0
units_seconds@Base 2.3.0
units_word_words@Base 2.3.0
diff --git a/epan/dissectors/file-mp4.c b/epan/dissectors/file-mp4.c
index e3c2d27442..911a4bc70a 100644
--- a/epan/dissectors/file-mp4.c
+++ b/epan/dissectors/file-mp4.c
@@ -217,15 +217,13 @@ dissect_mp4_mvhd_body(tvbuff_t *tvb, gint offset, gint len _U_,
rate = tvb_get_ntohs(tvb, offset);
fract_dec = tvb_get_ntohs(tvb, offset+2);
rate += make_fract(fract_dec);
- proto_tree_add_double_format_value(tree, hf_mp4_mvhd_rate,
- tvb, offset, 4, rate, "%f", rate);
+ proto_tree_add_double(tree, hf_mp4_mvhd_rate, tvb, offset, 4, rate);
offset += 4;
vol = tvb_get_guint8(tvb, offset);
fract_dec = tvb_get_guint8(tvb, offset+1);
vol += make_fract(fract_dec);
- proto_tree_add_double_format_value(tree, hf_mp4_mvhd_vol,
- tvb, offset, 4, vol, "%f", vol);
+ proto_tree_add_double(tree, hf_mp4_mvhd_vol, tvb, offset, 4, vol);
offset += 2;
offset += 2; /* 16 bits reserved */
@@ -314,15 +312,13 @@ dissect_mp4_tkhd_body(tvbuff_t *tvb, gint offset, gint len _U_,
width = tvb_get_ntohs(tvb, offset);
fract_dec = tvb_get_ntohs(tvb, offset+2);
width += make_fract(fract_dec);
- proto_tree_add_double_format_value(tree, hf_mp4_tkhd_width,
- tvb, offset, 4, width, "%f", width);
+ proto_tree_add_double(tree, hf_mp4_tkhd_width, tvb, offset, 4, width);
offset += 4;
height = tvb_get_ntohs(tvb, offset);
fract_dec = tvb_get_ntohs(tvb, offset+2);
height += make_fract(fract_dec);
- proto_tree_add_double_format_value(tree, hf_mp4_tkhd_height,
- tvb, offset, 4, height, "%f", height);
+ proto_tree_add_double(tree, hf_mp4_tkhd_height, tvb, offset, 4, height);
offset += 4;
return offset-offset_start;
diff --git a/epan/dissectors/file-png.c b/epan/dissectors/file-png.c
index cb5d962c13..60f38b6f33 100644
--- a/epan/dissectors/file-png.c
+++ b/epan/dissectors/file-png.c
@@ -386,43 +386,43 @@ dissect_png_chrm(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
gint offset = 0;
wx = tvb_get_ntohl(tvb, offset) / 100000.0f;
- proto_tree_add_float_format_value(tree, &hfi_png_chrm_white_x,
- tvb, offset, 4, wx, "%f", wx);
+ proto_tree_add_float(tree, &hfi_png_chrm_white_x,
+ tvb, offset, 4, wx);
offset += 4;
wy = tvb_get_ntohl(tvb, offset) / 100000.0f;
- proto_tree_add_float_format_value(tree, &hfi_png_chrm_white_y,
- tvb, offset, 4, wy, "%f", wy);
+ proto_tree_add_float(tree, &hfi_png_chrm_white_y,
+ tvb, offset, 4, wy);
offset += 4;
rx = tvb_get_ntohl(tvb, offset) / 100000.0f;
- proto_tree_add_float_format_value(tree, &hfi_png_chrm_red_x,
- tvb, offset, 4, rx, "%f", rx);
+ proto_tree_add_float(tree, &hfi_png_chrm_red_x,
+ tvb, offset, 4, rx);
offset += 4;
ry = tvb_get_ntohl(tvb, offset) / 100000.0f;
- proto_tree_add_float_format_value(tree, &hfi_png_chrm_red_y,
- tvb, offset, 4, ry, "%f", ry);
+ proto_tree_add_float(tree, &hfi_png_chrm_red_y,
+ tvb, offset, 4, ry);
offset += 4;
gx = tvb_get_ntohl(tvb, offset) / 100000.0f;
- proto_tree_add_float_format_value(tree, &hfi_png_chrm_green_x,
- tvb, offset, 4, gx, "%f", gx);
+ proto_tree_add_float(tree, &hfi_png_chrm_green_x,
+ tvb, offset, 4, gx);
offset += 4;
gy = tvb_get_ntohl(tvb, offset) / 100000.0f;
- proto_tree_add_float_format_value(tree, &hfi_png_chrm_green_y,
- tvb, offset, 4, gy, "%f", gy);
+ proto_tree_add_float(tree, &hfi_png_chrm_green_y,
+ tvb, offset, 4, gy);
offset += 4;
bx = tvb_get_ntohl(tvb, offset) / 100000.0f;
- proto_tree_add_float_format_value(tree, &hfi_png_chrm_blue_x,
- tvb, offset, 4, bx, "%f", bx);
+ proto_tree_add_float(tree, &hfi_png_chrm_blue_x,
+ tvb, offset, 4, bx);
offset += 4;
by = tvb_get_ntohl(tvb, offset) / 100000.0f;
- proto_tree_add_float_format_value(tree, &hfi_png_chrm_blue_y,
- tvb, offset, 4, by, "%f", by);
+ proto_tree_add_float(tree, &hfi_png_chrm_blue_y,
+ tvb, offset, 4, by);
}
static void
@@ -431,8 +431,8 @@ dissect_png_gama(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
float gamma;
gamma = tvb_get_ntohl(tvb, 0) / 100000.0f;
- proto_tree_add_float_format_value(tree, &hfi_png_gama_gamma,
- tvb, 0, 4, gamma, "%f", gamma);
+ proto_tree_add_float(tree, &hfi_png_gama_gamma,
+ tvb, 0, 4, gamma);
}
static gint
diff --git a/epan/dissectors/packet-dbus.c b/epan/dissectors/packet-dbus.c
index bc084e3b6e..91ba5c3cfd 100644
--- a/epan/dissectors/packet-dbus.c
+++ b/epan/dissectors/packet-dbus.c
@@ -138,7 +138,7 @@ static header_field_info hfi_dbus_value_str DBUS_HFI_INIT =
{ "Value", "dbus.value.str", FT_STRING, BASE_NONE, NULL, 0x00, NULL, HFILL };
static header_field_info hfi_dbus_value_double DBUS_HFI_INIT =
- { "Value", "dbus.value.double", FT_DOUBLE, BASE_NONE, NULL, 0x00, NULL, HFILL };
+ { "DOUBLE", "dbus.value.double", FT_DOUBLE, BASE_NONE, NULL, 0x00, NULL, HFILL };
static int ett_dbus = -1;
@@ -324,7 +324,7 @@ dissect_dbus_sig(tvbuff_t *tvb, dbus_info_t *dinfo, proto_tree *tree, int offset
val = dinfo->getdouble(tvb, offset);
offset += 8;
- proto_tree_add_double_format(tree, hfi_dbus_value_double.id, tvb, org_offset, offset - org_offset, val, "DOUBLE: %." G_STRINGIFY(DBL_DIG) "g", val);
+ proto_tree_add_double(tree, hfi_dbus_value_double.id, tvb, org_offset, offset - org_offset, val);
/* XXX ret */
return offset;
}
diff --git a/epan/dissectors/packet-mpeg-descriptor.c b/epan/dissectors/packet-mpeg-descriptor.c
index db1eca1cc4..73d8b8c4fc 100644
--- a/epan/dissectors/packet-mpeg-descriptor.c
+++ b/epan/dissectors/packet-mpeg-descriptor.c
@@ -749,14 +749,14 @@ proto_mpeg_descriptor_dissect_satellite_delivery(tvbuff_t *tvb, guint offset, pr
MPEG_SECT_BCD44_TO_DEC(tvb_get_guint8(tvb, offset+1)) / 10.0 +
MPEG_SECT_BCD44_TO_DEC(tvb_get_guint8(tvb, offset+2)) / 1000.0 +
MPEG_SECT_BCD44_TO_DEC(tvb_get_guint8(tvb, offset+3)) / 100000.0;
- proto_tree_add_double_format_value(tree, hf_mpeg_descr_satellite_delivery_frequency,
- tvb, offset, 4, frequency, "%f GHz", frequency);
+ proto_tree_add_double(tree, hf_mpeg_descr_satellite_delivery_frequency,
+ tvb, offset, 4, frequency);
offset += 4;
orbital_position = MPEG_SECT_BCD44_TO_DEC(tvb_get_guint8(tvb, offset)) * 10.0f +
MPEG_SECT_BCD44_TO_DEC(tvb_get_guint8(tvb, offset+1)) / 10.0f;
- proto_tree_add_float_format_value(tree, hf_mpeg_descr_satellite_delivery_orbital_position,
- tvb, offset, 2, orbital_position, "%f degrees", orbital_position);
+ proto_tree_add_float(tree, hf_mpeg_descr_satellite_delivery_orbital_position,
+ tvb, offset, 2, orbital_position);
offset += 2;
modulation_system = tvb_get_guint8(tvb, offset) & MPEG_DESCR_SATELLITE_DELIVERY_MODULATION_SYSTEM_MASK;
@@ -3481,12 +3481,12 @@ proto_register_mpeg_descriptor(void)
/* 0x43 Satellite Delivery System Descriptor */
{ &hf_mpeg_descr_satellite_delivery_frequency, {
"Frequency", "mpeg_descr.sat_delivery.freq",
- FT_DOUBLE, BASE_NONE, NULL, 0, NULL, HFILL
+ FT_DOUBLE, BASE_NONE|BASE_UNIT_STRING, &units_ghz, 0, NULL, HFILL
} },
{ &hf_mpeg_descr_satellite_delivery_orbital_position, {
"Orbital Position", "mpeg_descr.sat_delivery.orbital_pos",
- FT_FLOAT, BASE_NONE, NULL, 0, NULL, HFILL
+ FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_degree_degrees, 0, NULL, HFILL
} },
{ &hf_mpeg_descr_satellite_delivery_west_east_flag, {
diff --git a/epan/dissectors/packet-ptp.c b/epan/dissectors/packet-ptp.c
index 117e554261..8e9bb12603 100644
--- a/epan/dissectors/packet-ptp.c
+++ b/epan/dissectors/packet-ptp.c
@@ -2403,9 +2403,8 @@ dissect_ptp_v2_timeInterval(tvbuff_t *tvb, guint16 *cur_offset, proto_tree *tree
proto_tree_add_uint64_format_value(ptptimeInterval_subtree,
hf_ptp_v2_timeInterval_ns, tvb, *cur_offset, 6, time_ns, "Ns: %" G_GINT64_MODIFIER "d nanoseconds", time_ns);
- proto_tree_add_double_format_value(ptptimeInterval_subtree,
- hf_ptp_v2_timeInterval_subns, tvb, *cur_offset+6, 2, (time_subns/65536.0),
- "%f nanoseconds", (time_subns/65536.0));
+ proto_tree_add_double(ptptimeInterval_subtree,
+ hf_ptp_v2_timeInterval_subns, tvb, *cur_offset+6, 2, (time_subns/65536.0));
*cur_offset = *cur_offset + 8;
}
@@ -5032,7 +5031,7 @@ proto_register_ptp(void)
},
{ &hf_ptp_v2_correctionsubns,
{ "correctionSubNs", "ptp.v2.correction.subns",
- FT_DOUBLE, BASE_NONE, NULL, 0x00,
+ FT_DOUBLE, BASE_NONE|BASE_UNIT_STRING, &units_nanosecond_nanoseconds, 0x00,
NULL, HFILL }
},
{ &hf_ptp_v2_clockidentity,
@@ -5933,7 +5932,7 @@ proto_register_ptp(void)
},
{ &hf_ptp_v2_mm_offset_subns,
{ "SubNs", "ptp.v2.mm.offset.subns",
- FT_DOUBLE, BASE_NONE, NULL, 0x00,
+ FT_DOUBLE, BASE_NONE|BASE_UNIT_STRING, &units_nanosecond_nanoseconds, 0x00,
NULL, HFILL }
},
{ &hf_ptp_v2_mm_pathDelay_ns,
@@ -5943,7 +5942,7 @@ proto_register_ptp(void)
},
{ &hf_ptp_v2_mm_pathDelay_subns,
{ "SubNs", "ptp.v2.mm.pathDelay.subns",
- FT_DOUBLE, BASE_NONE, NULL, 0x00,
+ FT_DOUBLE, BASE_NONE|BASE_UNIT_STRING, &units_nanosecond_nanoseconds, 0x00,
NULL, HFILL }
},
{ &hf_ptp_v2_mm_PortNumber,
@@ -5968,7 +5967,7 @@ proto_register_ptp(void)
},
{ &hf_ptp_v2_mm_peerMeanPathDelay_subns,
{ "SubNs", "ptp.v2.mm.peerMeanPathDelay.subns",
- FT_DOUBLE, BASE_NONE, NULL, 0x00,
+ FT_DOUBLE, BASE_NONE|BASE_UNIT_STRING, &units_nanosecond_nanoseconds, 0x00,
NULL, HFILL }
},
{ &hf_ptp_v2_mm_logAnnounceInterval,
diff --git a/epan/dissectors/packet-synphasor.c b/epan/dissectors/packet-synphasor.c
index 5de6e233a0..4c37e281cb 100644
--- a/epan/dissectors/packet-synphasor.c
+++ b/epan/dissectors/packet-synphasor.c
@@ -965,17 +965,15 @@ static gint dissect_PHASORS(tvbuff_t *tvb, proto_tree *tree, config_block *block
static gint dissect_DFREQ(tvbuff_t *tvb, proto_tree *tree, config_block *block, gint offset)
{
if (floating_point == block->format_fr) {
- gfloat tmp;
-
- tmp = tvb_get_ntohieee_float(tvb, offset);
- proto_tree_add_float_format_value(tree, hf_synphasor_actual_frequency_value, tvb, offset, 4, tmp, "%fHz", tmp); offset += 4;
+ proto_tree_add_item(tree, hf_synphasor_actual_frequency_value, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
/* The standard doesn't clearly say how to interpret this value, but
* http://www.pes-psrc.org/h/C37_118_H11_FAQ_Jan2008.pdf provides further information.
* --> no scaling factor is applied to DFREQ
*/
- tmp = tvb_get_ntohieee_float(tvb, offset);
- proto_tree_add_float_format_value(tree, hf_synphasor_rate_change_frequency, tvb, offset, 4, tmp, "%fHz/s", tmp); offset += 4;
+ proto_tree_add_item(tree, hf_synphasor_rate_change_frequency, tvb, offset, 4, ENC_BIG_ENDIAN);
+ offset += 4;
}
else {
gint16 tmp;
@@ -1304,8 +1302,8 @@ void proto_register_synphasor(void)
{ &hf_synphasor_num_digital_status_words, { "Number of digital status words", "synphasor.num_digital_status_words", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
{ &hf_synphasor_rate_of_transmission, { "Rate of transmission", "synphasor.rate_of_transmission", FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
{ &hf_synphasor_phasor, { "Phasor", "synphasor.phasor", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
- { &hf_synphasor_actual_frequency_value, { "Actual frequency value", "synphasor.actual_frequency_value", FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL }},
- { &hf_synphasor_rate_change_frequency, { "Rate of change of frequency", "synphasor.rate_change_frequency", FT_FLOAT, BASE_NONE, NULL, 0x0, NULL, HFILL }},
+ { &hf_synphasor_actual_frequency_value, { "Actual frequency value", "synphasor.actual_frequency_value", FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_hz, 0x0, NULL, HFILL }},
+ { &hf_synphasor_rate_change_frequency, { "Rate of change of frequency", "synphasor.rate_change_frequency", FT_FLOAT, BASE_NONE|BASE_UNIT_STRING, &units_hz_s, 0x0, NULL, HFILL }},
{ &hf_synphasor_frequency_deviation_from_nominal, { "Frequency deviation from nominal", "synphasor.frequency_deviation_from_nominal", FT_INT16, BASE_DEC, NULL, 0x0, NULL, HFILL }},
{ &hf_synphasor_analog_value, { "Analog value", "synphasor.analog_value", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL }},
{ &hf_synphasor_digital_status_word, { "Digital status word", "synphasor.digital_status_word", FT_UINT16, BASE_HEX, NULL, 0x0, NULL, HFILL }},
diff --git a/epan/proto.h b/epan/proto.h
index 53f8dca61f..ac38a5d4dd 100644
--- a/epan/proto.h
+++ b/epan/proto.h
@@ -2963,6 +2963,9 @@ proto_custom_set(proto_tree* tree, GSList *field_id,
#define proto_tree_add_uint(tree, hfinfo, tvb, start, length, value) \
proto_tree_add_uint(tree, (hfinfo)->id, tvb, start, length, value)
+#define proto_tree_add_float(tree, hfinfo, tvb, start, length, value) \
+ proto_tree_add_float(tree, (hfinfo)->id, tvb, start, length, value)
+
#define proto_tree_add_float_format_value(tree, hfinfo, \
tvb, start, length, value, format, ...) \
proto_tree_add_float_format_value(tree, (hfinfo)->id, \
diff --git a/epan/unit_strings.c b/epan/unit_strings.c
index 27b066937d..03dd077923 100644
--- a/epan/unit_strings.c
+++ b/epan/unit_strings.c
@@ -54,6 +54,12 @@ const unit_name_string units_second_seconds = { " second", " seconds" };
const unit_name_string units_seconds = { "s", NULL };
const unit_name_string units_millisecond_milliseconds = { " millisecond", " milliseconds" };
const unit_name_string units_milliseconds = { "ms", NULL };
+const unit_name_string units_nanosecond_nanoseconds = { " nanosecond", " nanoseconds" };
+const unit_name_string units_degree_degrees = { " degree", " degrees" };
+const unit_name_string units_ghz = { "GHz", NULL };
+const unit_name_string units_hz = { "Hz", NULL };
+const unit_name_string units_hz_s = { "Hz/s", NULL };
+
/*
* Editor modelines
diff --git a/epan/unit_strings.h b/epan/unit_strings.h
index 7d2a5204cd..f6ca847bd8 100644
--- a/epan/unit_strings.h
+++ b/epan/unit_strings.h
@@ -54,6 +54,11 @@ WS_DLL_PUBLIC const unit_name_string units_second_seconds; // full unit name "se
WS_DLL_PUBLIC const unit_name_string units_seconds; //only seconds abbreviation "s"
WS_DLL_PUBLIC const unit_name_string units_millisecond_milliseconds; // full unit name "millisecond[s?]"
WS_DLL_PUBLIC const unit_name_string units_milliseconds; //only seconds abbreviation "ms"
+WS_DLL_PUBLIC const unit_name_string units_nanosecond_nanoseconds; // full unit name "nanosecond[s?]"
+WS_DLL_PUBLIC const unit_name_string units_degree_degrees;
+WS_DLL_PUBLIC const unit_name_string units_ghz;
+WS_DLL_PUBLIC const unit_name_string units_hz;
+WS_DLL_PUBLIC const unit_name_string units_hz_s;
#ifdef __cplusplus
}