Different ml configs for Canon C modes

Started by Marsu42, June 12, 2013, 08:14:32 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Marsu42

I know there is a "Rebelized" C-Mode patch in the queue, but this is something else I'd consider important and easy to implement, though I don't know if this feature request has come up in the past (couldn't find it):

Canon C Modes (60d: 1, 7d/6d: 2, 5d3: 3) are about saving an entirely different config for quick access. While that might be not the most flexible approach ever, it certainly works, and in the summer I use my C mode for a action mode (high iso, fast fps, servo af, spot metering, ...).

Problem is: If I have something set in the ml config like handheld mlu the C mode is worthless because the enabled ml feature defeats the purpose. So after choosing C I'd have to either recall another ml config (though picoc or whatever) or disable the intervening features manually, that takes time and the shot is gone.

Request: Add an option that for each Canon C mode ml loades another config, so there are (number of C modes) +1 generic config file.

Implementation: Should be simple, if a C mode is selected and there's no existing MAGIC-Cx.CFG (i.e. MAGIC-C1.CFG, MAGIC-C2.cfg, ...) copy the current settings, otherwise load the appropriate MAGIC-Cx.CFG file. If the user wants to delete the MAGIC-Cx.CFG file it could be done by the "reset config" item (or manually on the card, of course). At least that's my first idea, certainly can be  streamlined, if alex or someone else is willing to adopt the idea.

stevefal

Steve Falcon

a1ex

Actually I've tried it at some point, but was quite unstable.

The problem is that some settings also need some actions to be performed when you toggle them (think about audio stuff, you need to reconfigure the chip with the new settings, it's not enough to rewrite the variables).

This gets more complicated because we have more config file (magic.cfg, menu.cfg and a separate config file for each module). Maybe a folder for each mode, under "ML/SETTINGS", can do a better job.

Marsu42

Quote from: a1ex on June 13, 2013, 12:29:46 PM
The problem is that some settings also need some actions to be performed when you toggle them (think about audio stuff, you need to reconfigure the chip with the new settings, it's not enough to rewrite the variables).

Hmmm, are there really that many settings that need a dedicated action when toggling on or off, if there aren't that many you could do a blacklist of settings that aren't changed when setting a C mode. Would be a shame if it'd not work for this reason.

Quote from: a1ex on June 13, 2013, 12:29:46 PM
This gets more complicated because we have more config file (magic.cfg, menu.cfg and a separate config file for each module). Maybe a folder for each mode, under "ML/SETTINGS", can do a better job.

I looked at it, but I don't think different menu.cfg are necessary - different setting folders might make sense though if you introduce a cfg file for each module or something like that.

a1ex

Who's going to review all those 100 or 200 500 settings and blacklist them?

g3gg0 already introduced separate config files for each module btw. Though, for performance reasons, having everything in one file might scale better.

Marsu42

Quote from: a1ex on June 13, 2013, 03:17:37 PM
Who's going to review all those 100 or 200 500 settings and blacklist them?

Well, sorry, if it's that many then surely it's a problem - I suspected you'd have a pretty good idea what couple of menu items (there aren't 500 main features to toggle, are there?) would collide with quick c mode switches...

a1ex

It looks like there are, I've counted them with grep. A few of them are stuff like battery discharge rate or measured card write speed, but most of them are menu entries that you can toggle.

Another obvious example: raw video. Enabling it needs active setup (putting LiveView into raw mode).

I did not count stuff that is saved directly in Canon memory (Kelvin WB, HTP, exposure values, picture style settings).

Marsu42

Quote from: a1ex on June 13, 2013, 03:31:07 PM
It looks like there are, I've counted them with grep. A few of them are stuff like battery discharge rate or measured card write speed, but most of them are menu entries that you can toggle.

Doh, so it's really more complicated. As in the op, I originally only thought of some of the main menu points :-\ ... maybe in that case I'll just hack my local build a little so that some key items are turned off in C (like handheld mlu and other features that interfere with straight and simple stills shooting) that annoy me.

Quote from: a1ex on June 13, 2013, 03:31:07 PM
I did not count stuff that is saved directly in Canon memory (Kelvin WB, HTP, exposure values, picture style settings).

ML shouldn't touch these because they're already saved by the Canon C modes, and I guess ml read them out of Canon memory each time the menu is opened?

stevefal

Quote from: a1ex on June 13, 2013, 12:29:46 PM
The problem is that some settings also need some actions to be performed when you toggle them..

I'm trying to understand if this is an implicit constraint or a matter of how the toggle-able features are factored. Since ML features are able to initialize from saved settings on power-on, doesn't that imply that reinitialization with different settings should be possible, even if crudely?

If there is no unsolvable constraint, but configuration handlers were not factored to handle loading post power-up, I'd think refactoring to handle that would be a very valuable investment. Initializing shouldn't be fragile, since it always happens at power-up, and it supports on-demand configuration like suggested here.

And if the response is, "well sure, but that refactoring is lot of work", I get it. But I'm still curious how power-up initialization works then..
Steve Falcon

a1ex

Initialization is done at startup, because config file is read before starting user tasks, and they perform initialization before entering the main loop.

Also, the updating logic is done in menu callbacks (whenever you change something from menu).

engardeknave

I would be happy if ML would load a different config at boot depending on the C mode. I wouldn't mind rebooting the camera to get a different config.

However, if we were going to do that, maybe it would make more sense to have a menu at startup where you can select a config file. I guess it might not be possible to present a menu at that point, though.

Marsu42

Quote from: engardeknave on June 14, 2013, 09:47:36 PM
I would be happy if ML would load a different config at boot depending on the C mode. I wouldn't mind rebooting the camera to get a different config.

I would :-o and imho even if your solution is possible, C mode(s) for me are about quickly switching settings - rebooting the camera frequently doesn't help here. If rebooting is necessary you might as well ignore the camera dial alltogether and do an infinite number of C modes in ml, i.e. saving/restoring the known Canon properties.

engardeknave

QuoteI would :-o and imho even if your solution is possible, C mode(s) for me are about quickly switching settings - rebooting the camera frequently doesn't help here.

Yes, that impractically long 500ms wait for the camera to start.

QuoteIf rebooting is necessary you might as well ignore the camera dial alltogether and do an infinite number of C modes in ml, i.e. saving/restoring the known Canon properties.

Good idea. Why didn't I think of this.