[Windows Mobile Software Development] noname81:
[DEV][07/05/10] LMT Launcher 0.8 - temporary till post #1 is updated!

LMT is a tool for the HD2 that launches a program when perform single touch or multitouch gestures on the screen. You can connect internal commands and external apps to any gesture LMT supports.

INSTALLATION

First uninstall all previous LMT installations. Then download the latest version, copy it to your HD2, start the cab via file explorer and install LMT on internal memory. After installation start LMT. You won’t see any GUI since LMT is a background process. Try at first the double swipe up gesture. If everything works fine, you’ll see the corresponding overlay and the foreground process will be closed (closeApp is the default action for double swipe up).

SUPPRORTED GESTURES

- SwipeRightDouble

- SwipeLeftDouble

- SwipeUpDouble

- SwipeDownDouble

- SwipeRightLeftDouble

- SwipeLeftRightDouble

- SwipeUpDownDouble

- SwipeDownUpDouble

- QuestionmarkDouble

- SquareDouble

- DiamondDouble

- Square (start gesture top left cw)

- Diamond (start gesture at the bottom cw)

- Delete (start gesture top left),

CONNECT APPS/COMMANDS TO GESTURES

There are two ways to connect apps to gestures. The first one is to draw the “learn gesture” on the screen and afterwards the gesture, you want to connect the current foreground app with. This method is easy but has some limitations. You cannot assign process arguments or assign internal commands to gestures. The second way is to configure LMT via registry. Navigate with your preferred registry editor to HCKU\Software\LMT. Here you can see which commands are currently connected to a gesture and you can edit any gesture/app relation. To assign an external app to a gesture insert the full path to the process: [Full path to exe],[arguments]. E.g. "\Windows\tmail.exe,-RunInBKG". To assign an internal command to a gesture insert one of the following command strings.

INTERNAL COMMANDS

- “CloseLMT” -> close LMT

- “CloseApp” -> close the foreground app

- “Learn” -> activate learn mode

- “Back” -> send back key

- “Start” -> start menu

- “Lock” -> lock phone

- “Phone” -> start Phone app

- “Up” -> send Dpad up

- “Down” -> send Dpad down

- “Left” -> send Dpad left

- “Right” -> send Dpad right

- “PrevApp” -> switch to previous app (Alt-Tab feature)

- “NextApp” -> switch to next app (Alt-Tab feature)

- “Home” -> switch to Homescreen

- “Rotate” -> rotate screen

- “Controller” -> activate the controller mode

CONTROLLER MODE

Use the controller as a generic gamepad for e.g. FPSEce, morphgear or flash games. The controller is multitouch capable and converts the touches to key events. You can define the keys to be sent via registry value "ControllerKeys": Down, up, left, right, 1, 2, A, B, C, D, X, Y. The button "R" toggles between portrait and landscape mode and partial and full screen lock. The button "X" deactivates the controller mode. The registry value "ControllerVibrate" defines the vibrate status: 0=off, 1=default, >1=time in ms. To quickly install and configure LMTs controller with FPSEce and morphgear I made a fpse.ini file and a registry file for morphgear. The howto:

FPSEce:

- install FPSEce on internal memory

- before first start replace the existing fpse.ini with the attached one

- now start FPSEce

- load a rom, start LMTs controller and have fun!

Morphgear:

- install morphgear and e.g. the generator plugin on internal memory

- start morphgear and close it again

- import the attached registry file

- now restart morphgear again

- load rom, start LMTs controller and have fun!

These aren't the perfect settings since I only patched the key inputs to work properly with LMTs controller but it's a good base for further settings. If anyone has better settings, it would be nice if he could post them here... :-)

FURTHER REGISTRY SETTINGS

There are 3 blacklists available to exclude processes from taskswitching (BlackListSwitch), from the closeApp feature (BlackListClose) and to deactivate LMT when the process is the current foreground app (BlackListAll). Just add the full path to the process to the multistring. There is also 1 whitelist available: WhiteListBack. If Opera 9 is the current foreground app and you activate the internal command “Back”, LMT will send a special key to navigate back in Opera.

With the registry value “SingleTouchGestureSupport” you are able to activate or deactivate the single touch gestures (Square, Diamond and Delete) and with the registry value “TapAndHoldGestureSupport” you can activate a special feature where you can draw all dual touch gestures with one hand: Just tap with one finger somewhere on the screen and draw "one part" of the multitouch gesture with another finger. Then release the tapped finger and the gesture will be recognized.

CHANGELOG v0.8

- fixed rotation feature

- controller button "R" now toggles between: Portrait (fg app touchable) -> Landscape (fg app touchable) -> Portrait (full screen lock) -> Landscape (full screen lock)

- added Mario feature in controller mode: The areas between A and B, C and D and X and Y will lead to both keyevents. When you e.g. run in Mario Bros. with button "C" and jump with button "D" you can run with "C" and then slide your finger right. Then "C" and "D" will be both pressed. Mario will run and jump... :-)

- fixed rotate and exit button in controller mode (no interference with fg app)

- added dword reg value "ShowOverlay": 0=overlays deactivated, 1=overlays activated with default time, >1=overlays activated with custom time (ms)

- optimized square gestures

- removed arrow gestures

- added 5 new mt gestures: Double Diamond and Swipe left/right, right/left, up/down, down/up

- added 1 st gesture: Diamond

- added \Windows\services.exe to BlackListClose

- set new defaults for gestures (see registry!)

- LMT is now rotation arware and works also in landscape mode (only 270°)

- Controller supports now real landscape mode (e.g. for flash games)

See full changelog in changelog.txt attached!