summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Sauer <ensonic@users.sf.net>2013-09-13 07:55:14 +0200
committerStefan Sauer <ensonic@users.sf.net>2013-09-13 07:55:14 +0200
commitbbcc8f755f1feda842c0fc5ee0fafdf42d41aade (patch)
treeb1f3ebd5e907274291ab5ee766e3e8b683b8be30
parent597673ed309f282e7815f98963875047bfa8d2d7 (diff)
mi-info: extract ui helper for adding an entry
A helper to add a label + str formatted details as a table row.
-rw-r--r--src/mi-info.vala112
1 files changed, 27 insertions, 85 deletions
diff --git a/src/mi-info.vala b/src/mi-info.vala
index 01beb84..2d5eaf1 100644
--- a/src/mi-info.vala
+++ b/src/mi-info.vala
@@ -625,21 +625,12 @@ public class MediaInfo.Info : Box
set_wikilink (label, caps);
table.attach (label, 1, 2, row, row+1, fill_exp, 0, 3, 1);
row++;
-
- label = new Label ("Bitrate:");
- label.set_alignment (1.0f, 0.5f);
- table.attach (label, 0, 1, row, row+1, fill, 0, 0, 0);
+
str = "%u / %u bits/second".printf (vinfo.get_bitrate(), vinfo.get_max_bitrate());
- label = new Label (str);
- label.set_alignment (0.0f, 0.5f);
- label.set_selectable (true);
- table.attach (label, 1, 2, row, row+1, fill_exp, 0, 3, 1);
+ add_table_row_for_string (table, row, "Bitrate:", str);
row++;
// add named resolutions: (640x480=VGA)
- label = new Label ("Resolution:");
- label.set_alignment (1.0f, 0.5f);
- table.attach (label, 0, 1, row, row+1, fill, 0, 0, 0);
string resolution = "%u x %u".printf (res.x, res.y);
string named_res = resolutions[resolution];
if (named_res != null) {
@@ -647,52 +638,25 @@ public class MediaInfo.Info : Box
} else {
str = resolution;
}
- label = new Label (str);
- label.set_alignment (0.0f, 0.5f);
- label.set_selectable (true);
- table.attach (label, 1, 2, row, row+1, fill_exp, 0, 3, 1);
+ add_table_row_for_string (table, row, "Resolution:", str);
row++;
- label = new Label ("Framerate:");
- label.set_alignment (1.0f, 0.5f);
- table.attach (label, 0, 1, row, row+1, fill, 0, 0, 0);
double fps_num = (double)vinfo.get_framerate_num();
double fps_denom = (double)vinfo.get_framerate_denom();
str = "%.3lf frames/second".printf (fps_num/fps_denom);
- label = new Label (str);
- label.set_alignment (0.0f, 0.5f);
- label.set_selectable (true);
- table.attach (label, 1, 2, row, row+1, fill_exp, 0, 3, 1);
+ add_table_row_for_string (table, row, "Framerate:", str);
row++;
- label = new Label ("PixelAspect:");
- label.set_alignment (1.0f, 0.5f);
- table.attach (label, 0, 1, row, row+1, fill, 0, 0, 0);
str = "%u : %u".printf (vinfo.get_par_num(),vinfo.get_par_denom());
- label = new Label (str);
- label.set_alignment (0.0f, 0.5f);
- label.set_selectable (true);
- table.attach (label, 1, 2, row, row+1, fill_exp, 0, 3, 1);
+ add_table_row_for_string (table, row, "PixelAspect:", str);
row++;
- label = new Label ("Bitdepth:");
- label.set_alignment (1.0f, 0.5f);
- table.attach (label, 0, 1, row, row+1, fill, 0, 0, 0);
str = "%u bits/pixel".printf (vinfo.get_depth());
- label = new Label (str);
- label.set_alignment (0.0f, 0.5f);
- label.set_selectable (true);
- table.attach (label, 1, 2, row, row+1, fill_exp, 0, 3, 1);
+ add_table_row_for_string (table, row, "Bitdepth:", str);
row++;
- label = new Label ("Interlaced:");
- label.set_alignment (1.0f, 0.5f);
- table.attach (label, 0, 1, row, row+1, fill, 0, 0, 0);
str = "%s".printf (vinfo.is_interlaced() ? "true" : "false");
- label = new Label (str);
- label.set_alignment (0.0f, 0.5f);
- label.set_selectable (true);
- table.attach (label, 1, 2, row, row+1, fill_exp, 0, 3, 1);
+ add_table_row_for_string (table, row, "Interlaced:", str);
row++;
if (add_table_row_for_structure (table, row, sinfo.get_misc ())) {
@@ -735,54 +699,25 @@ public class MediaInfo.Info : Box
table.attach (label, 1, 2, row, row+1, fill_exp, 0, 3, 1);
row++;
- label = new Label ("Bitrate:");
- label.set_alignment (1.0f, 0.5f);
- table.attach (label, 0, 1, row, row+1, fill, 0, 0, 0);
str = "%u / %u bits/second".printf (ainfo.get_bitrate(),ainfo.get_max_bitrate());
- label = new Label (str);
- label.set_alignment (0.0f, 0.5f);
- label.set_selectable (true);
- table.attach (label, 1, 2, row, row+1, fill_exp, 0, 3, 1);
+ add_table_row_for_string (table, row, "Bitrate:", str);
row++;
- label = new Label ("Samplerate:");
- label.set_alignment (1.0f, 0.5f);
- table.attach (label, 0, 1, row, row+1, fill, 0, 0, 0);
str = "%u samples/second".printf (ainfo.get_sample_rate());
- label = new Label (str);
- label.set_alignment (0.0f, 0.5f);
- label.set_selectable (true);
- table.attach (label, 1, 2, row, row+1, fill_exp, 0, 3, 1);
+ add_table_row_for_string (table, row, "Samplerate:", str);
row++;
// TODO: check channel layouts, can we have some nice names here ?
- label = new Label ("Channels:");
- label.set_alignment (1.0f, 0.5f);
- table.attach (label, 0, 1, row, row+1, fill, 0, 0, 0);
+ // GstDiscoverer should expose channel positions
str = "%u".printf (ainfo.get_channels());
- label = new Label (str);
- label.set_alignment (0.0f, 0.5f);
- label.set_selectable (true);
- table.attach (label, 1, 2, row, row+1, fill_exp, 0, 3, 1);
+ add_table_row_for_string (table, row, "Channels:", str);
row++;
- label = new Label ("Bitdepth:");
- label.set_alignment (1.0f, 0.5f);
- table.attach (label, 0, 1, row, row+1, fill, 0, 0, 0);
str = "%u bits/sample".printf (ainfo.get_depth());
- label = new Label (str);
- label.set_alignment (0.0f, 0.5f);
- label.set_selectable (true);
- table.attach (label, 1, 2, row, row+1, fill_exp, 0, 3, 1);
+ add_table_row_for_string (table, row, "Bitdepth:", str);
row++;
- label = new Label ("Language:");
- label.set_alignment (1.0f, 0.5f);
- table.attach (label, 0, 1, row, row+1, fill, 0, 0, 0);
- label = new Label (ainfo.get_language());
- label.set_alignment (0.0f, 0.5f);
- label.set_selectable (true);
- table.attach (label, 1, 2, row, row+1, fill_exp, 0, 3, 1);
+ add_table_row_for_string (table, row, "Language:", ainfo.get_language());
row++;
if (add_table_row_for_structure (table, row, sinfo.get_misc ())) {
@@ -824,13 +759,7 @@ public class MediaInfo.Info : Box
table.attach (label, 1, 2, row, row+1, fill_exp, 0, 3, 1);
row++;
- label = new Label ("Language:");
- label.set_alignment (1.0f, 0.5f);
- table.attach (label, 0, 1, row, row+1, fill, 0, 0, 0);
- label = new Label (tinfo.get_language());
- label.set_alignment (0.0f, 0.5f);
- label.set_selectable (true);
- table.attach (label, 1, 2, row, row+1, fill_exp, 0, 3, 1);
+ add_table_row_for_string (table, row, "Language:", tinfo.get_language());
row++;
if (add_table_row_for_structure (table, row, sinfo.get_misc ())) {
@@ -864,6 +793,19 @@ public class MediaInfo.Info : Box
}
}
+ private void add_table_row_for_string (Table table, uint row, string title, string str) {
+ AttachOptions fill = AttachOptions.FILL;
+ AttachOptions fill_exp = AttachOptions.EXPAND|AttachOptions.FILL;
+
+ Label label = new Label (title);
+ label.set_alignment (1.0f, 0.5f);
+ table.attach (label, 0, 1, row, row+1, fill, 0, 0, 0);
+ label = new Label (str);
+ label.set_alignment (0.0f, 0.5f);
+ label.set_selectable (true);
+ table.attach (label, 1, 2, row, row+1, fill_exp, 0, 3, 1);
+ }
+
private bool add_table_row_for_structure (Table table, uint row, Structure s) {
if (s == null)
return false;