[Touch Pro, Fuze Themes and Apps] shirreer:
Credits:

Foremost, let us all acknowledge Koushik for his brilliant "Sensors" library upon which most if not all non-HTC apps that use the G-Sensor, Light-Sensor, and Navi-Sensor are built, simply ingenious. Moreover, I would like to recognize No2chem for the NeuLed2 library which is an equally exquisite peace of code that allows access to the Diamond/Pro Leds. Without those two guys, accessing these advance interfaces on the diamond/pro would be inapproachable at best.

Reason: Since I bought my Diamond, I constantly thought HTC gave it a lot of sensors but nearly no .."Sense".

......... X-Sense ...........

* Hopefully, an innovaton & integration of RANDOM but needful features...

Features:

1. Courtesy Settings:

- Select Volume Profiles to activate on Face-Down & Face-UP events. Choose from: None, Silent, Normal, and Vibrate. You can also choose to suspend the Phone when its facing down (duh!).

- Automatically activate/deactivate the Speakerphone during phone calls depending on the phone's posture. In other words, if you're not holding the phone up then it will automatically activate the Speakerphone.

2. Notifications-Sense:

- IF there is/are any outstanding notification(s), the device will vibrate whenever you move it at customizable intervals: Missed Call(s), Voice Mail, and SMS only.

3. Stylus-Sense:- When the Stylus is in/out: Will play faint sound + Blink the Back button's light +/Vibrate. Moreover, the device will vibrate whenever you move it at customizable intervals.

- When the Stylus is out and the device is moved: Device will vibrate twice on every posture change + blink the Back button's light to REMIND you that the Stylus has not been placed back in. This goes ON until the Stylus is placed where it should be.

* Uses "in.wav" & "out.wav" files in the \XSense\ Dir; you can use whatever wave files for this.

4. General Settings:

- Polling Interval: From 200 to 3000 Miliseconds. This determines the rate at which the G-Sensor is polled. Lower values give higher response times and fluid operation at the cost of battery life & CPU utilization.

- Flash Navi Lights: Will blink button lights to notify you of Profile changes and Stylus In/Out.

- Vibrate on Events: Will induce very subtle vibrations to notify you of Notifications and Profile changes.

- Suspend when UP-Side-Down: Your phone will suspend if you hold it up-side-down (duh!)

- Light Navi Button When Suspended: Will do just that. This is an independent setting that turns ON the Navi button's light at suspend time, and OFF at Resume time (this is Event Driven, so no polling is involved). This feature really helps if, like me, you want to see where the damn thing is in the dark - before you launch it against the floor.

6. Installs to "\Program Files\XSense", and Creates 2 shortcuts:

"Start Menu\Programs\XSense" and "Startup\XSenseSvc".

Program Settings are saved to the Registry at "HKCU\Software\XSense\".

Use of System Resources:

1. Diskspace: 162 KB RAM footprint: 374-535 KB Battery: NOT observed.

2. CPU Usage: %0.29 Average. Spikes for 2 seconds to %2.7 - %8.5.

* Indicated CPU usage occurs ONLY when there is an EVENT (posture changed, stylus in/out Sounds playing,

etc)

Logic:

- During phone calls, All features are suspended except the Speakerphone-specific code.

- Program will respond to posture changes only 2 seconds after they have occured, this is to

avoid unintended operation ( as much as possible :P ).

- Vibration: The way I like it is in waves of 200 miliseconds length! I generally hate vibrations, so if you want it at 201 ms. you're welcome to make your own program and enjoy the merits of your personal taste.

- This prgram Registers Event Handlers for: "G-Sensor", "Incoming Call", "Phone Call in Progress", "Stylus in/out", and Power Manager events. DO NOT move it to Internal Storage, you have been warned.

Requirements:

.NET 3.5 + Diamond or Raphael.

Restrictions:

Only for the Diamond/Raphael (vis-a-vis, it will crash on any other device!)

Bugs/Limitations:

Knock yourself out...

Disclaimer:

This program is provided strictly on "as is" basis. It is intended only as a proof-of-concept. Although fully functional, it must NOT be considered for daily use. This software is very likely to compromise the integrity of your data as well as invariabley cause your device to malfunction in any way, shape, or form. Therefore, the developer shall be absolved of all responsibility towards testers and/or their computers & devices. While using this software you agree to be solely liable for all and any damages you do to yourself, your device, or any damn thing you possess and care for!

Release Notes:

- Download & Install the CAB

- Run the XSense from your Start Menu\Programs, customize to taste, and enjoy!

- IF you want it, download it from the Diamond section.

NOTE:

Further releases/upgrades will NOT work on the Raphael/Diamond PRO.