Recording mode UI info reorder

Started by Licaon_Kter, May 21, 2015, 01:33:30 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Licaon_Kter

While recording in the upper right side of the display the UI elements are fighting for visibility

See this: https://i.imgur.com/0FZJHES.jpg

While the red recording dot is almost always half cut, using any option in Movie Tweaks -> Time indicator will make a flickering value display there too.

In standby the top bar has:
* sound bars
* filename
* framerate
* free space on card

While recording:
* sound bars
* picture style gets inserted here and
* filename is shifted to the right
* framerate AND OVER IT whatever I choose in Time indicator will be shown flickering (the screenshot was lucky)
* buffer indicator will be over histogram in all but 2 modes.

I've patched up src/bitrate.c to move things around, and they look ok on my M at least, see pics:
* 3:2/4:3 top & bottom
* 16:10 HDMI
* 16:9 HDMI
* bottom 3:2/4:3
* bottom 16:9

Images: https://imgur.com/a/WoVDN

Patch:

--- bitrate.c   2015-04-14 02:55:02.000000000 +0300
+++ bitrate.c-new       2015-05-21 01:52:39.000000000 +0300
@@ -366,16 +366,17 @@
                     time_indicator == 2 ? time_cardfill :
                     time_indicator == 3 ? MIN(time_4gb, time_cardfill)
                     : 0;
-
-    int time_indic_x = os.x_max - 160;
-    int time_indic_y = get_ml_topbar_pos();
-    if (time_indic_y > BMP_H_PLUS - 30) time_indic_y = BMP_H_PLUS - 30;
+                   
+    int screen_layout_menu_index = *get_screen_layout_ptr();
+    int time_indic_x = os.x_max;
+    int time_indic_y = get_ml_topbar_pos() + 32;
+    if (screen_layout_menu_index > 2) time_indic_y = time_indic_y - 55; // bottom modes need shifting up

     if (time_indicator)
     {
         bmp_printf(
             time_4gb < time_indic_warning ? time_indic_font : FONT(FONT_MED, COLOR_WHITE, TOPBAR_BGCOLOR),
-            time_indic_x + 160 - 6 * font_med.width,
+            time_indic_x - 11 - 6 * font_med.width, // substracted 11 pixels to get it aligned with fps
             time_indic_y,
             "%3d:%02d",
             dispvalue / 60,
@@ -407,7 +408,7 @@
         );
#endif
     }
-   
+
     //~ if (flicker_being_killed()) // this also kills recording dot
     //~ {
         //~ maru(os.x_max - 28, os.y0 + 12, COLOR_RED);
@@ -453,10 +454,13 @@
void show_mvr_buffer_status()
{
     int fnt = warning ? FONT(FONT_SMALL, COLOR_WHITE, COLOR_RED) : FONT(FONT_SMALL, COLOR_WHITE, COLOR_GREEN2);
+    int buffer_indic_y = get_ml_topbar_pos() + 32;
+    if (buffer_indic_y > 400) buffer_indic_y = get_ml_topbar_pos() - 23; // bottom modes need shifting up
+
     if (warning) warning--;
     if (RECORDING_H264 && get_global_draw() && !gui_menu_shown())
     {
-        bmp_printf(fnt, 680, 55, " %3d%%", MVR_BUFFER_USAGE);
+        bmp_printf(fnt, os.x_max - 131, buffer_indic_y, "%3d%%", MVR_BUFFER_USAGE);
     }
}


Some ideas and questions before trying out for a pull request:

* Is this an M only issue? If not/yes, is this needed?

* I've clean up this, it substracts 160 and then later adds up 160, why?

int time_indic_x = os.x_max - 160;
...
time_indic_x + 160 - 6 * font_med.width,


* In void time_indicator_show() I can use:
int screen_layout_menu_index = *get_screen_layout_ptr();
...
if (screen_layout_menu_index > 2) time_indic_y = time_indic_y - 55;

to detect current mode where screen_layout_menu_index has a value of 0/1/2/3/4 ( for top&bottom3:2 / 16:10HDMI / 16:9HDMI / bottom3:2 / bottom16:9 ) and adjust vertical offset as needed, but if I try the same in void show_mvr_buffer_status() it always says 16:9HDMI ( screen_layout_menu_index value of 2 ), hence I used a different test to determine current mode. Any reason for this difference?

* bottom 3:2 and bottom 16:9 modes are exactly the same, why?

Thanks


dfort

This issue has been on the EOS-M since I've been using ML, thanks for working on a fix.

I saw that you were going to work on the LVINFO stuff for your patch. Should we testers wait for that before reporting?

I failed at my previous attempts at compiling ML on my Mac so I'll try some of the other methods that you recommended.

Licaon_Kter

Yeah, I did not start on the LVINFO stuff yet, this is not that urgent though, mostly a cosmetic issue.