Orange SPV C500 ROM Update – Go get it!

Spotted over at MoDaCo, Orange have released an updated ROM which fixes the GAPI issues on the device and a few other fixes:-



  • Videos can be sent via MMS

  • Flickering issue in games has now been fixed

  • Packet video full screen mode and backlight fix

  • Improved memory management of the camera and video applications

  • Improved browsing/upload speed (changed from GPRS class 8 to class 10)

It’s a 22mb download from Orange’s website

Keep your Smartphone backlight on

If your application involves displaying screen content you probably have come across the issue where the screen backlight turns off after a few seconds of no keypresses. You can override this behaviour in your application using a couple of underdocumented API Power-Management functions. Here is a VB.NET snippet for .NETCF to keep the backlight on:-


Namespace OpenNETCF.WindowsCE.Forms


 


Public Class Backlight


 


‘ensure the power requirement is released


Protected Overrides Sub Finalize()


Release()


End Sub


‘handle to the power requirement


Private handle As IntPtr


 


Private Enum PowerState


PwrDeviceUnspecified = -1


‘full on


D0 = 0


‘low power


D1 = 1


‘standby


D2 = 2


‘sleep


D3 = 3


‘off


D4 = 4


PwrDeviceMaximum = 5


End Enum


 


‘keep the backlight lit


Public Sub Activate()


‘request full power


handle = SetPowerRequirement(“BKL1:”, PowerState.D0, 1, IntPtr.Zero, 0)


End Sub


 


‘release power requirement


Public Sub Release()


If handle.ToInt32() <> 0 Then


Dim result As Integer


result = ReleasePowerRequirement(handle)


handle = IntPtr.Zero


End If


End Sub


Private Declare Function SetPowerRequirement Lib “coredll.dll” (ByVal pvDevice As String, ByVal DeviceState As PowerState, ByVal DeviceFlags As Integer, ByVal pvSystemState As IntPtr, ByVal StateFlags As Integer) As IntPtr


Private Declare Function ReleasePowerRequirement Lib “coredll.dll” (ByVal handle As IntPtr) As Integer


End Class


End Namespace


Thanks to Paul O’Brien from MoDaCo for inspiring and helping test the code.

Vibration and Pocket PC devices

A number of Pocket PC devices support Vibration as an alert method, most (but not all) are Phone Edition devices. The Vibrate class in the OpenNETCF.Notification library is specific to Smartphone devices only.



However the good news is that the Vibrate functionality is implemented as a notification Led so you can control the vibration using the Led class. One of the peculiarities of the NLed API is that the collection of Leds may contain gaps, for example some devices contain a notification Led at position 0 and a vibration device at position 5. There is no way to programmatically determine the index of the vibration device, you can only determine the overall count of devices. Also the vibration device can only be turned on or off so the Blink setting behaves exactly as On would.


On the HTC Himalaya the vibration device is implemented at index 1 and the following code can be used to turn on and off the vibration:-


OpenNETCF.Notification.Led l = new OpenNETCF.Notification.Led();


//turn on vibration


l.SetLedStatus(1, OpenNETCF.Notification.Led.LedState.On);



//turn off vibration


l.SetLedStatus(1, OpenNETCF.Notification.Led.LedState.Off);