650D, 700D, EOS-M: cleaner method for hiding Canon bottom bar

#665 Merged at c295d34
Repository
Branch
cleaner-lvapp-hack
Repository
Branch
unified
Author
  1. Alex
Reviewers
Description

The problem: Canon's bottom bar (which appears when you press shutter halfway, or when you change exposure parameters) pops over ML bottom bar. Until now, these cameras used a pretty aggressive method to prevent this - clearing the screen and blocking Canon redraws completely while their bottom bar was active.

This caused weird conflicts between Canon and ML GUIs, like this one: http://www.magiclantern.fm/forum/index.php?topic=16131.0

This PR enables the method used on many newer cameras, e.g. 5D3, 70D.

It should behave like this:

  • when you change exposure parameters from the scrollwheel, Canon bottom bar should not pop up at all
  • when you press the shutter halfway, Canon bottom bar should appear, and ML bar should not redraw over it (sorry, couldn't block it on 5D3 either)
  • 650D and 700D: after you use Canon's Q menu in LiveView, it should disappear right away, and redraw the GUI (cropmarks, zebras, whatever). By default, this Q menu disappears after a couple of seconds after you quit it, and in the old implementation, I guess it damaged the cropmarks (at least this happens on 60D). Triggering a redraw after the timeout expires doesn't look nice either, because our redraw is slow.
  • Canon's cropmarks (grid lines) should not be affected. With the old implementation, on 60D, Canon grid lines, and ML cropmarks as well, disappear as soon as you press half-shutter or change exposure settings. They reappear after you use the Q menu, but after that menu disappears, ML cropmarks remain with a big hole in them.

So... does this method work nicely on 650D, 700D and M?

Comments (13)

  1. Jarno Paananen

    Confirmed behavior on M. Had to merge fps-timer fix to compile this, but that shouldn't affect the result. When changing exposure compensation, Canon bar does not appear. When half-shutter is pressed Canon bar appears and some ML bar remains as Canon bar doesn't fill the whole width of screen. Canon grid lines work perfectly and also ML crop marks seem to work ok, didn't test too much though. So looks good to me.

  2. Walter Schulz

    when you change exposure parameters from the scrollwheel, Canon bottom bar should not pop up at all

    Confirmed on 650D.

    when you press the shutter halfway, Canon bottom bar should appear, and ML bar should not redraw over it (sorry, couldn't block it on 5D3 either)

    Confirmed on 650D.

    650D and 750D: after you use Canon's Q menu in LiveView, it should disappear right away, and redraw the GUI (cropmarks, zebras, whatever). By default, this Q menu disappears after a couple of seconds after you quit it, and in the old implementation, I guess it damaged the cropmarks (at least this happens on 60D). Triggering a redraw after the timeout expires doesn't look nice either, because our redraw is slow.

    Can not confirm behaviour before code change on 650D. Press Q and Canon items appear. Will disappear after some seconds or after second Q press. Can not confirm damage to cropmarks. Both builds work quite similiar.

    Canon's cropmarks (grid lines) should not be affected. With the old implementation, on 60D, Canon grid lines, and ML cropmarks as well, disappear as soon as you press half-shutter or change exposure settings. They reappear after you use the Q menu, but after that menu disappears, ML cropmarks remain with a big hole in them.

    First part confirmed on 650D. Can not confirm damage to cropmarks with "old" build.

    EDIT: Forgot to mention Ghost Image busting Canon cropmarks for unified and this PR. Old news, I hope.

  3. nikfreak

    replicated for SL1 / 100D and 70D as those miss cancelUnaviFeedBackTimer too. Works well. less redraws!

  4. Daniel Fort

    Looks good on the EOSM. On half-shutter press or asterisk (*) Canon menu (mostly) covers ML menu on bottom bar. On the top bar it is reversed, ML menu covers Canon menu.

    1. Licaon Kter

      Got it compiled finally for my EOS-M

      when you change exposure parameters from the scrollwheel, Canon bottom bar should not pop up at all

      Oh this is nice.

      when you press the shutter halfway, Canon bottom bar should appear, and ML bar should not redraw over it (sorry, couldn't block it on 5D3 either)

      Too bad the top ( Canon battery / frames left ) is still shown under the ML bar .

        1. Daniel

          Thank you for the build.

          when you change exposure parameters from the scrollwheel, Canon bottom bar should not pop up at all

          Works.

          when you press the shutter halfway, Canon bottom bar should appear, and ML bar should not redraw over it (sorry, couldn't block it on 5D3 either)

          Emwut? yeah canons bottom bar appears and the ML bottom bar doesn't get redrawn but the cropmarks still seem to redraw over it....

          650D and 700D: after you use Canon's Q menu in LiveView, it should disappear right away, and redraw the GUI (cropmarks, zebras, whatever). By default, this Q menu disappears after a couple of seconds after you quit it, and in the old implementation, I guess it damaged the cropmarks (at least this happens on 60D). Triggering a redraw after the timeout expires doesn't look nice either, because our redraw is slow.

          Does this mean that it should redraw? Because the cropmarks are getting redrawn (and the menu doesn't seem to, it just "pops up") and sometimes simply nothing gets redrawn and you need to press the shutter half way down to make the menu come back

          This is strange. Because I did all the testing above using my default ML settings file which I use everyday. Now I resetted ML and tried again and the results were completely different. With my settings file the next points just ended up in some miserable chaos of redraws, but now it works better. Oh, and while doing the testing above it ended up in a "ML ASSERT: lv at ../../src/raw.c:1690 (raw_lv_request), task livev_hiprio_task" once, as I pushed the menu button (to set the aspect ratio) shortly after releasing the half shutter (see #2381). (But I wasn't able to reproduce it, grrrr)

          So, lets do all the testing again with these preparations:

          • reset ml

          • (obv) restart the cam

          • go to the overlay menu and switch everything on except "False color", "Ghost image" and "Vectorscope"

          • go outside and fetch the tripod from the roof

          • get another cam and mount it on the tripod

          • and film it all

          (brb)

        2. Daniel

          Hehe this is nice, now I don't have to decide if something works and think of how it would be if it wouldn't, I'll just send the video and hope someone watches it? Mmh, no. This is a volunteer project so there is no "someone". Lemme write how I think and post the video when it's finished uploading (that's one hour for a two minute video).

        3. Daniel

          Ehm, sorry for being that verbose. Here are my final test results (so much wow):

          when you change exposure parameters from the scrollwheel, Canon bottom bar should not pop up at all

          Works.

          when you press the shutter halfway, Canon bottom bar should appear, and ML bar should not redraw over it (sorry, couldn't block it on 5D3 either)

          Yeah this seems to work too, but as Licaon Kter said:

          Too bad the top ( Canon battery / frames left ) is still shown under the ML bar.

          When you turn on AF (and press the shutter halfway down) these brackets shown break the cropmarks, but I think that's another issue. (Magic zoom flickers quite much too IMHO)

          650D and 700D: after you use Canon's Q menu in LiveView, it should disappear right away, and redraw the GUI (cropmarks, zebras, whatever). By default, this Q menu disappears after a couple of seconds after you quit it, and in the old implementation, I guess it damaged the cropmarks (at least this happens on 60D). Triggering a redraw after the timeout expires doesn't look nice either, because our redraw is slow.

          If this is meant that the menu should redraw, then this works too; however, it's damn slow.

          Canon's cropmarks (grid lines) should not be affected.

          Works.

          That's it. And by the way, the aspect ratio thing works great now too.

          Regarding my ML settings, I'll just reset them (too lazy tired to look at that too)

          1. Alex author

            Got it.

            The slow cropmark redraw appears to be caused by magic zoom or false colors. No huge deal imo.

            The battery/frames indicator appears specific to these new cameras, and I think it requires a new hack to hide it.

            The Q menu looks very different, but appears to behave pretty well.

            Thanks for the detailed test report.