Magic Lantern Firmware Wiki
(More details)
No edit summary
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
  +
For 550D, see [[GUI Events/550D]].
<tt>gui_main_task()</tt> retrieves events from the main message queue. The types are 0-6 and the events have an integer parameter, an object pointer and an unknown 32-bit value.
 
  +
  +
[[File:Event-dump.jpg|thumb|GUI event dump]]
 
<tt>gui_main_task()</tt> retrieves events from the main message queue. The types are 0-6 and the events have an integer parameter, an object pointer and an unknown 32-bit value.
 
* 0: GUI_CONTROL
 
* 0: GUI_CONTROL
 
* 1: GUI_CHANGE_MODE
 
* 1: GUI_CHANGE_MODE
Line 8: Line 11:
 
* 6: GUI_CHANGE_LCD_STATE
 
* 6: GUI_CHANGE_LCD_STATE
   
The massive gui event handler transforms the parameter value for <tt>GUI_CONTROL</tt> events into some other type of event. The low values (0x00-0xFF?) are reserved for dialog box items on screen. It should be possible to generate a mapping of event parameters to GUI events and each button to a gui event.
+
The massive gui event handler transforms the parameter value for <tt>GUI_CONTROL</tt> events into some other type of event. The low values (0x00-0xFF?) are reserved for dialog box items on screen. It should be possible to generate a mapping of event parameters to GUI events and each button to a gui event.
   
 
* 0x800 == GOT_TOP_OF_CONTROL
 
* 0x800 == GOT_TOP_OF_CONTROL
Line 18: Line 21:
 
* 0x809 == PRESS_LEFT_BUTTON
 
* 0x809 == PRESS_LEFT_BUTTON
 
* 0x80B == PRESS_UP_BUTTON
 
* 0x80B == PRESS_UP_BUTTON
* 0x80D == PRSES_DOWN_BUTTON
+
* 0x80D == PRESS_DOWN_BUTTON
 
* 0x80F == PRESS_MENU_BUTTON
 
* 0x80F == PRESS_MENU_BUTTON
 
* 0x812 == PRESS_SET_BUTTON (maybe)
 
* 0x812 == PRESS_SET_BUTTON (maybe)
Line 34: Line 37:
 
* 0x1000000B == OPEN_SLOT_COVER
 
* 0x1000000B == OPEN_SLOT_COVER
 
* 0x1000000C == CLOSE_SLOT_COVER
 
* 0x1000000C == CLOSE_SLOT_COVER
* 0x1000008A == START_SHOOT_MOVIE
+
* 0x1000008A == START_SHOOT_MOVIE<br />
  +
[AJ] It was getting a little messy - and so I've separated my 5D entries into the following:
  +
{| border="1" cellpadding="1" cellspacing="1" style="width: 100%;"
  +
! scope="col"|Button Event num
  +
! scope="col"|Button_Event
  +
! scope="col"|App
  +
|-
  +
|0x804
  +
|TERMINATE_WINSYS
  +
|DlgLiveView.c
  +
|-
  +
|0x805
  +
|DELETE_DIALOG_REQUEST
  +
|DlgLiveView.c
  +
|-
  +
|0x807
  +
|PRESS_MLT_RIGHT_BUTTON_press
  +
|DlgLiveView.c
  +
|-
  +
|0x809
  +
|PRESS_MLT_LEFT_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x80B
  +
|PRESS_MLT_UP_BUTTON_press
  +
|DlgLiveView.c
  +
|-
  +
|0x80F (and 0x10000000)
  +
|PRESS_MENU/DISP_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x812
  +
|PRESS_SET_BUTTON (strange Logic)
  +
|DlgLiveView.c
  +
|-
  +
|0x819
  +
|PRESS_TELE_MAG_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x81A
  +
|UNPRESS_TELE_MAG_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x81B
  +
|PRESS_WIDE_REDUCTION_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x81C
  +
|UNPRESS_WIDE_REDUCTION_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x81F
  +
|PRESS_MLT_LEFTUP_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x820
  +
|PRESS_MLT_LEFT_BUTTON (spin left?)
  +
|DlgLiveView.c
  +
|-
  +
|0x821
  +
|PRESS_MLT_LEFTDOWN_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x822
  +
|PRESS_MLT_UP_BUTTON_press
  +
|DlgLiveView.c
  +
|-
  +
|0x823
  +
|PRESS_MLT_CENTER_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x824
  +
|PRESS_MLT_DOWN_BUTTON_press
  +
|DlgLiveView.c
  +
|-
  +
|0x825
  +
|PRESS_MLT_RIGHTUP_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x826
  +
|PRESS_MLT_RIGHT_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x827
  +
|PRESS_MLT_RIGHTDOWN_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x829
  +
|PRESS_INFO_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x10000000 (and 0x80F)
  +
|PRESS_MENU/DISP_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x10000001
  +
|PRESS_ERASE_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x10000003 (and 0x10000009)
  +
|PRESS_PICTURE_STYLE_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x10000005
  +
|PRESS_DIRECT_PRINT_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x10000009 (and 0x10000003)
  +
|PRESS_PICTURE_STYLE_BUTTON
  +
|DlgLiveView.c
  +
|-
  +
|0x10000069
  +
|LOCAL_OLC_BLINK
  +
|DlgLiveView.c
  +
|-
  +
|0x1000006B
  +
|LOCAL_LV_CARD_CHANGE
  +
|DlgLiveView.c
  +
|-
  +
|0x1000006D
  +
|LOCAL_DIALOG_REFRESH_LV
  +
|DlgLiveView.c
  +
|-
  +
|0x10000077
  +
|LOCAL_MOVIE_RECORD_SECCOU
  +
|DlgLiveView.c
  +
|-
  +
|0x10000078
  +
|LOCAL_MOVIE_RECORD_STOP
  +
|DlgLiveView.c
  +
|-
  +
|0x10000079
  +
|LOCAL_MOVIE_RECORD_ERROR
  +
|DlgLiveView.c
  +
|-
  +
|0x1000007A
  +
|LOCAL_MOVIE_RECORD_BUFFER
  +
|DlgLiveView.c
  +
|}

Latest revision as of 10:07, 8 December 2010

For 550D, see GUI Events/550D.

Event-dump

GUI event dump

gui_main_task() retrieves events from the main message queue. The types are 0-6 and the events have an integer parameter, an object pointer and an unknown 32-bit value.

  • 0: GUI_CONTROL
  • 1: GUI_CHANGE_MODE
  • 2: Local event?
  • 3: GUI_OTHER_EVENT (11 == CANCEL_ALL_EVENT)
  • 4: Timeout?
  • 5: GUI_CHANGE_SHOOT_TYPE
  • 6: GUI_CHANGE_LCD_STATE

The massive gui event handler transforms the parameter value for GUI_CONTROL events into some other type of event. The low values (0x00-0xFF?) are reserved for dialog box items on screen. It should be possible to generate a mapping of event parameters to GUI events and each button to a gui event.

  • 0x800 == GOT_TOP_OF_CONTROL
  • 0x801 == LOST_TOP_OF_CONTROL
  • 0x802 == INITIALIZE_CONTROLLER
  • 0x804 == TERMINATE_WINSYS
  • 0x805 == DELETE_DIALOG_REQUEST
  • 0x807 == PRESS_RIGHT_BUTTON
  • 0x809 == PRESS_LEFT_BUTTON
  • 0x80B == PRESS_UP_BUTTON
  • 0x80D == PRESS_DOWN_BUTTON
  • 0x80F == PRESS_MENU_BUTTON
  • 0x812 == PRESS_SET_BUTTON (maybe)
  • 0x81B == PRESS_UP_BUTTON
  • 0x820 == SUB_DIAL (spin left)
  • 0x823 == PRESS_MLT_CENTER_BUTTON
  • 0x829 == PRESS_INFO_BUTTON
  • 0x82B == ELECTRONIC_SUB_DIAL_RIGHT
  • 0x82C == ELECTRONIC_SUB_DIAL_LEFT
  • ? == SUB_DIAL (spin right)
  • 0x10000000 == PRESS_DISP_BUTTON
  • 0x10000005 == PRESS_DIRECT_PRINT_BUTTON
  • 0x10000007 == PRESS_FUNC_BUTTON
  • 0x10000009 == PRESS_PICTURE_STYLE_BUTTON
  • 0x1000000B == OPEN_SLOT_COVER
  • 0x1000000C == CLOSE_SLOT_COVER
  • 0x1000008A == START_SHOOT_MOVIE

[AJ] It was getting a little messy - and so I've separated my 5D entries into the following:

Button Event num Button_Event App
0x804 TERMINATE_WINSYS DlgLiveView.c
0x805 DELETE_DIALOG_REQUEST DlgLiveView.c
0x807 PRESS_MLT_RIGHT_BUTTON_press DlgLiveView.c
0x809 PRESS_MLT_LEFT_BUTTON DlgLiveView.c
0x80B PRESS_MLT_UP_BUTTON_press DlgLiveView.c
0x80F (and 0x10000000) PRESS_MENU/DISP_BUTTON DlgLiveView.c
0x812 PRESS_SET_BUTTON (strange Logic) DlgLiveView.c
0x819 PRESS_TELE_MAG_BUTTON DlgLiveView.c
0x81A UNPRESS_TELE_MAG_BUTTON DlgLiveView.c
0x81B PRESS_WIDE_REDUCTION_BUTTON DlgLiveView.c
0x81C UNPRESS_WIDE_REDUCTION_BUTTON DlgLiveView.c
0x81F PRESS_MLT_LEFTUP_BUTTON DlgLiveView.c
0x820 PRESS_MLT_LEFT_BUTTON (spin left?) DlgLiveView.c
0x821 PRESS_MLT_LEFTDOWN_BUTTON DlgLiveView.c
0x822 PRESS_MLT_UP_BUTTON_press DlgLiveView.c
0x823 PRESS_MLT_CENTER_BUTTON DlgLiveView.c
0x824 PRESS_MLT_DOWN_BUTTON_press DlgLiveView.c
0x825 PRESS_MLT_RIGHTUP_BUTTON DlgLiveView.c
0x826 PRESS_MLT_RIGHT_BUTTON DlgLiveView.c
0x827 PRESS_MLT_RIGHTDOWN_BUTTON DlgLiveView.c
0x829 PRESS_INFO_BUTTON DlgLiveView.c
0x10000000 (and 0x80F) PRESS_MENU/DISP_BUTTON DlgLiveView.c
0x10000001 PRESS_ERASE_BUTTON DlgLiveView.c
0x10000003 (and 0x10000009) PRESS_PICTURE_STYLE_BUTTON DlgLiveView.c
0x10000005 PRESS_DIRECT_PRINT_BUTTON DlgLiveView.c
0x10000009 (and 0x10000003) PRESS_PICTURE_STYLE_BUTTON DlgLiveView.c
0x10000069 LOCAL_OLC_BLINK DlgLiveView.c
0x1000006B LOCAL_LV_CARD_CHANGE DlgLiveView.c
0x1000006D LOCAL_DIALOG_REFRESH_LV DlgLiveView.c
0x10000077 LOCAL_MOVIE_RECORD_SECCOU DlgLiveView.c
0x10000078 LOCAL_MOVIE_RECORD_STOP DlgLiveView.c
0x10000079 LOCAL_MOVIE_RECORD_ERROR DlgLiveView.c
0x1000007A LOCAL_MOVIE_RECORD_BUFFER DlgLiveView.c