Some more investigation of PostLogicalEvent*
First, the second argument to the functions is not the 0-3 that shows up in the table. Going by the log format string
LogicalEvent:0x%04x:adr:%p,Para:%ld
It appears to be an optional pointer. I wasn't able to find any call where anything other than 0 was definitively passed.
Second, has anyone worked out the difference between PostLogicalEventForNotPowerType and PostLogicalEventToUI. More specifically, is there any instance known where one works and the other doesn't ?
The only difference I can see (looking at the a540 code, but even much newer cams seem very similar) is that PostLogicalEventToUI looks up the (0-3) value from the table, where PostLogicalEventForNotPowerType always passes 2
There is also PostEventShootSeqToUI which appears functionally identical to PostLogicalEventToUI
I'm going to add one of these to lua (and ubaisc I guess), since it is easy to find and adds some control that is otherwise unavailable. I'd like to add only one, unless there is a specific reason to use others. In lua, we can easily allow the use of the names rather than numbers.
From my experimenting on the A540, it lets you set play or rec mode, but not override the mode dial. I'm still trying to figure out the cleanest way to deal with getting mode overrides on all the different cameras.
edit:
PostEventShootSeqToUI is not identical to PostLogicalEventToUI on some cameras, e.g. sd990
edit:
Although many of the numbers are consistent between cameras, not all of them are. Good reason to use names.
edit:
quite a few events have empty names (pointer to a null char, not a null ptr). Not clear what these doe.