Line 25: | Line 25: | ||
Many event procedures are not registered by default. The following are known. Unless otherwise specified, they take no arguments and return 0 on completion. |
Many event procedures are not registered by default. The following are known. Unless otherwise specified, they take no arguments and return 0 on completion. |
||
− | ===SystemEventInit=== |
+ | ===SystemEventInit/System.Create=== |
registers AllocateMemory, FreeMemory, sprintf, memcpy, Fut functions, log ... |
registers AllocateMemory, FreeMemory, sprintf, memcpy, Fut functions, log ... |
||
− | ===UI_RegistDebugEventProc=== |
+ | ===UI_RegistDebugEventProc/UI.Create=== |
registers capture mode functions, PTM_ functions and much more |
registers capture mode functions, PTM_ functions and much more |
||
Line 38: | Line 38: | ||
===RegisterShootSeqEvent=== |
===RegisterShootSeqEvent=== |
||
===RegisterNRTableEvent=== |
===RegisterNRTableEvent=== |
||
+ | |||
− | ===System.Create=== |
||
+ | '''Note''': Many of the *.Create functions only exist on newer cameras (dryos ?), while the alternate name appears to exist on both newer and older models. |
||
[[Category:Development]] |
[[Category:Development]] |
||
[[Category:CHDK internals]] |
[[Category:CHDK internals]] |
Revision as of 02:57, 6 September 2010
Starting a draft page to document eventprocs this is an incomplete draft please update with your observations. Thread http://chdk.setepontos.com/index.php/topic,4417.0.html
Overview
An event procedure (or eventproc) is a function in the canon firmware associated with a text name. An API exists in the canon firmware to register, execute and un-register them.
Event procedures are available from Canon Basic
Event Procedure API functions
- int ExecuteEventProcedure(const char *name,...)
executes the named eventproc, with the supplied arguments. Returns -1 if the eventproc isn't registered. Otherwise, returns the eventprocs return value.
- void ExportToEventProcedure(const char *name,void *pfunc)
registers eventproc pfunc with name.
Lua interface
Event procedures may be called from lua using the LUA/LUA Reference/Native Function Calls interface.
Known event procedures
Below are some event procedures which have been found to be interesting or useful. Note that the existence, behavior and arguments expected are known to vary between camera models. When if something varies from the descriptions below for your camera, please note it.
Registration functions
Many event procedures are not registered by default. The following are known. Unless otherwise specified, they take no arguments and return 0 on completion.
SystemEventInit/System.Create
registers AllocateMemory, FreeMemory, sprintf, memcpy, Fut functions, log ...
UI_RegistDebugEventProc/UI.Create
registers capture mode functions, PTM_ functions and much more
RegisterProductTestEvent
registers PT_ functions
Note: present on vxworks + digic II (A540) missing on dryos + digic III / digic 4 (A470,SD990). Functions may be registered by default on these cameras ?
RegisterShootSeqEvent
RegisterNRTableEvent
Note: Many of the *.Create functions only exist on newer cameras (dryos ?), while the alternate name appears to exist on both newer and older models.