1.3 development proposal - GUI mode - General Discussion and Assistance - CHDK Forum

1.3 development proposal - GUI mode

  • 2 Replies
  • 4579 Views
1.3 development proposal - GUI mode
« on: 05 / August / 2013, 23:08:24 »
Advertisements
CHDK 1.3.0 - GUI mode

CHDK 1.3.0  has started with a list of internal stuff that is software elegant but maybe not offering much for the average user.

So I think it may be time to add a new "GUI" mode to CHDK.   CHDK actually has a lot of graphical content,  from the on-screen icons, through the histogram and edge overlay functions.  But they are not really interactive.   And much of CHDK set-up and operation - especially as it relates to overrides - can only be done via a menu system that would have worked on a PDP-8 back in 1977.

What I have in mind is an additional optional mode you can use when you are in <ALT> - sort of an interactive version of the CHDK OSD - not a complete menu rewrite.  It is launched the same way as the CHDK User Menu's "on direct" mode -  i.e. when the GUI mode is enabled,  it activates when the <ALT> key is pressed. Pressing the Menu key in GUI mode gets you back to the regular CHDK menu.  Disable the GUI from the CHDK menu and you are back to the current setup again.

So what does it get you? 

Initially I'm thinking that we need a GUI mode for controlling exposure.  CHDK is about photography yet the current system does not allow an easy way to override exposure while shooting.  On top end Canon P&S cameras, this feature is available from the Canon GUI.  But on most PowerShots it is not. And one little understood secret of CHDK is that when you override Tv (for example), the Canon firmware will not adjust the Sv or Av setting to take into account the new Tv value.  We could fix that in GUI mode.

I've prototyped an example of what I'm thinking about in Lua (code attached).  When activated, you use the left and right direction keys to go between fields and the up and down arrow keys to change the value in the field.  In theory you use this to set exposure in Tv or Av priority mode,  or fully manually and then press the shutter to half-shoot and read brightness or full shoot to take a picture using the settings you dialed in.  Normal Canon key usage is disabled in GUI mode.
As you can see in the screen shots you can scroll between Tv, Av, and Sv settings.  The Mode field lets you chose Program mode,  Tv priority, Av priority, or 100% Manual.  The Lua demo script shows some of the potential interactions if you try changing setting in Tv or Av priority mode.   Obviously a cool graphic exposure meter, needle, dial to indicate Bv and/or exposure offset would be a nice addition.

Missing from the Lua demo (and why I think we need to add this to core CHDK) is the ability to half-press and full-press the shutter button and have that work with the dialed in Tv, Av & Sv values. I could have augmented the demo script with exposure calculations, used the Func/Set button to shoot and DISP to half-shoot. But that's really awkward. And having this built-in for the novice user is a big plus - no script to load and run, plus instant activation when then <ALT> key is pressed.

Another GUI mode could be manual focus adjust screen - with hyperfocal info displayed too.  Use the DISP button to change between GUI screens - we will probably only think up a couple of them.

If I don't get any interest here,  I'll probably just plug along with doing the patch in C myself.  Lots of questions will come up on how this should work.  ND filter?  No adjustable iris?  ISO auto mode?  All interesting with several possible solutions.

Sometimes people have to try something out to see the advantages - but then that's why I did the Lua demo.
« Last Edit: 06 / August / 2013, 00:28:01 by reyalp »
Ported :   A1200    SD940   G10    Powershot N    G16

*

Offline reyalp

  • ******
  • 14080
Re: Re: 1.3 development planning thread - GUI mode
« Reply #1 on: 06 / August / 2013, 00:03:20 »
CHDK 1.3.0  has started with a list of internal stuff that is software elegant but maybe not offering much for the average user.
My list was simply a list of issues that I would like to see fixed, I certainly didn't intend it to define what's in 1.3.  On the other hand, there's absolutely no reason a "release" needs to have big, user visible changes. If 1.3 were only bug fixes and under the hood clean up, that would be perfectly fine with me.

That said, I really like your "gui mode" idea. A lot of people expect CHDK overrides to be available in the Canon UI, and this would be the next best thing.

A few thoughts:
What would it take to make it so we could do it properly lua script? "gui mode" scripts could be a special script that gets a slightly different interface than regular scripting. For example they could allow full press and half press to "pass through" instead of terminating. In fact, this could fit nicely with your earlier
Quote
4) Background Task
 - allow one specific script to run in the background while not in <ALT> mode (this kinda works now I think but behavior is not guaranteed and there is no way to make it automatic).
I'm not saying GUI modes need to be done this way, just an option to think about. Implementing it this way would potentially open up a lot of other options. We could still include things like your exposure GUI by default.

If done in C code, it would be nice to have a well defined interface that be implemented by a module.

One possible issue is how to handle keys in a platform independent way. If you go beyond d pad, menu and set, it turns into a mess pretty quickly.

This brings me to another idea that I've been kicking around for a long time: Change keyboard handling so it has key bindings like a video game. Instead of hard coded keys with ifdefs you have a set of physical keys, and a set of abstract actions they can be bound to in various contexts. While every camera would need to have defaults, you should be able to remap almost any key to any action. You could use the same system to allow people to re-map canon keys, which is something that is occasionally requested.
Don't forget what the H stands for.

Re: Re: 1.3 development planning thread - GUI mode
« Reply #2 on: 06 / August / 2013, 00:11:59 »
My list was simply a list of issues that I would like to see fixed, I certainly didn't intend it to define what's in 1.3.  On the other hand, there's absolutely no reason a "release" needs to have big, user visible changes. If 1.3 were only bug fixes and under the hood clean up, that would be perfectly fine with me.
My comment was more an introduction to adding some end user feature - didn't mean to disparage the current efforts at all. Sorry.   And I actually did think about starting a new thread but figured it fit here.  Move it to its own thread for me?

Quote
What would it take to make it so we could do it properly lua script? "gui mode" scripts could be a special script that gets a slightly different interface than regular scripting. For example they could allow full press and half press to "pass through" instead of terminating. In fact, this could fit nicely with your earlier
That would work too if we can throw in the "on direct" behavior.  Getting redraw in shooting mode stable is tricky with scripts - a C task could actually monitor the video region it controls and brute force keep the display stable.

Quote
One possible issue is how to handle keys in a platform independent way. If you go beyond d pad, menu and set, it turns into a mess pretty quickly.
Agreed.  But when I started playing with the exposure one,  I realized those were all the keys I needed.  Not sure if that would work for other GUI needs though.
Ported :   A1200    SD940   G10    Powershot N    G16

 

Related Topics