Resources | developer.brewmp.com Resources | developer.brewmp.com

Developer

resources

Pointer events use-case scenarios

Provides example use-case scenarios and the events that are generated.

The following table provides some example use-case scenarios:
Scenario OEM-generated AEE_Event() Event delivered to Brew MP applet
Finger touches the primary screen of single-display touch-screen device.

eCode = EVT_POINTER_DOWN

wParam = 23 (including NULL-terminating character)

dwParam = “x=00000036,y=00000094,”

eCode = EVT_POINTER_DOWN

wParam = 73 (including NULL-terminating character)

dwParam = “x=00000036,y=00000094,time=00367ECE, clkcnt=1,modifiers=0000000000000000,” where x is 54 in decimal and y is 148 in decimal.

Finger is lifted from primary screen of single-display touch-screen device.

eCode = EVT_POINTER_UP

wParam = 23 (including NULL-terminating character)

dwParam = “x=00000036,y=00000094,”

eCode = EVT_POINTER_UP

wParam = 73 (including NULL-terminating character)

dwParam = “x=00000036,y=00000094,time=00367F0D,clkcnt=1,modifiers=0000000000000000,” where x is 54 in decimal and y is 148 in decimal.

Finger touches down again within 500 ms (the default multi-click timeout) of first touch on primary screen of single-display touch-screen device.

eCode = EVT_POINTER_DOWN

wParam = 23 (including NULL-terminating character)

dwParam = “x=00000036,y=00000094,”

eCode = EVT_POINTER_DOWN

wParam = 73 (including NULL-terminating character)

dwParam = “x=00000036,y=00000094,time=00367F1D,clkcnt=2,modifiers=0000000000000000,” where x is 54 in decimal and y is 148 in decimal.

Finger moves across primary screen of single-display touch-screen device after double-click.

eCode = EVT_POINTER_MOVE

wParam = 23 (including NULL-terminating character)

dwParam = “x=0000002F,y=00000098,”

eCode = EVT_POINTER_MOVE

wParam = 73 (including NULL-terminating character)

dwParam = “x=0000002F,y=00000098,time=00367F2C,clkcnt=2,modifiers=0000000000000000,” where x is 47 in decimal and y is 152 in decimal.

Stylus touches down on secondary screen of multi-display touch-screen device with KB_RSHIFT, KB_RCTRL, KB_RALT, and KB_CAPSLOCK pressed on the keyboard.

eCode = EVT_POINTER_DOWN

wParam = 39 (including NULL-terminating character)

dwParam = “x=0000003A,y=00000008,dispID=010127D4,”

eCode = EVT_POINTER_DOWN

wParam = 89 (including NULL-terminating character)

dwParam = “x=0000003A,y=00000008,time=00446DD3,clkcnt=1,modifiers=0001002A00000000, dispID=010127D4,” where x is 58 in decimal, y is 8 in decimal, and displayID is AEECLSID_DISPLAY1.

Left-button on mouse is pressed on primary screen of multi-display device with KB_RSHIFT and KB_RCTRL pressed on the keyboard.

eCode = EVT_POINTER_DOWN

wParam = 53 (including NULL-terminating character)

dwParam = “x=00000007,y=0000001C,dispID=010127D4,mousebtn=0001,”

eCode = EVT_POINTER_DOWN

wParam = 89 (including NULL-terminating character)

dwParam = “x=00000007,y=0000001C,time=00509A47,clkcnt=1,modifiers=0000000A00010000, dispID=010127D4,” where x is 7 in decimal, y is 28 in decimal, displayID is AEECLSID_DISPLAY1, and mouse button is AEE_POINTER_MOUSE_LBUTTON.

Mouse is moved with left-button pressed on primary screen of multi-display device with no keys pressed on the keyboard.

eCode = EVT_POINTER_MOVE

wParam = 53 (including NULL-terminating character)

dwParam = “x=00000007,y=0000001C,dispID=010127D4, mousebtn=0001,”

eCode = EVT_POINTER_MOVE

wParam = 89 (including NULL-terminating character)

dwParam = “x=00000007,y=0000001C, time=00509A47,clkcnt=1, modifiers=0000000000010000, dispID=010127D4,” where x is 7 in decimal, y is 28 in decimal, displayID is AEECLSID_DISPLAY1, and mouse button is AEE_POINTER_MOUSE_LBUTTON.

Stylus moves across primary screen of single-display touch-screen device very rapidly resulting in stale move events in the event queue.

eCode = EVT_POINTER_MOVE (multiple such events)

wParam = 23 (including NULL-terminating character)

dwParam = “x=00000036,y=00000094,” where x is 54 in decimal and y is 148 in decimal.

eCode = EVT_POINTER_MOVE

wParam = 73 (including NULL-terminating character)

dwParam = x=00000036,y=00000094, time=00367F0D,clkcnt=1, modifiers=0000000000000000,”

...

Followed by some EVT_POINTER_STALE_MOVE events depending on how many move events got queued, where:

eCode = EVT_POINTER_STALE_MOVE

wParam = 73 (including NULL-terminating character)

dwParam = x=0000004A,y=00000075, time=00368001,clkcnt=1, modifiers=0000000000000000,”

...

Followed by EVT_POINTER_MOVE when the event queue doesn’t have any more pending move events:

eCode = EVT_POINTER_MOVE

wParam = 73 (including NULL-terminating character)

dwParam = x=00000054,y=0000005E, time=00377AB0,clkcnt=1, modifiers=0000000000000000,”

Backward compatibility for pen events

To maintain backward compatibility, Brew MP still generates EVT_PEN_* events for every EVT_POINTER_* event sent by the OEM. The EVT_PEN_* event is delivered to the applets before the EVT_POINTER_* events. However, EVT_PEN_* events are deprecated, and newer applications should handle EVT_POINTER_* events instead.

Additional configuration for pointer events

OEMs may customize the multi-click timer by implementing a Get() function in OEMBREWSettings.c for the settings key "/BREW/EventQ/MultiClickTime". This function will need to return a string that contains a number representing the desired multi-click time (in milliseconds). For example the string "1000" means the multiclick time will be 1000ms. Brew's default is AEE_POINTER_MULTICLICK_TIME (500ms).