Patent ID: 7724239

Claim:
A track ball sub-system for a handheld electronic device including an operating system and a plurality of applications having a plurality of predetermined scaling values, said track ball sub-system comprising: a track ball device adapted to output a plurality of device pulses; a track ball resolution controller adapted to repetitively input said device pulses of said track ball resolution positioning device and to responsively output to said operating system a plurality of cursor movement events, said track ball resolution controller being adapted to be controlled by said operating system or by said applications to learn which one of said applications is active and to automatically scale a number of said cursor movement events for a corresponding number of said device pulses based upon a corresponding one of said predetermined scaling values of the active one of said applications, said track ball resolution controller is further adapted to periodically input said device pulses from four outputs of said track ball, count said device pulses for each of four different directions, and determine whether a count for any of said different directions is equal to a predetermined count and, if so, responsively output a direction use for a corresponding one of said different directions; a movement detection routine adapted to periodically input said device pulses from said track ball device, count said device pulses for each of the four different directions, and determine whether a count for any of said different directions is equal to a predetermined count and, if so, responsively output a direction pulse for a corresponding one of said different directions; and a velocity detection routine adapted to input said direction pulse for each of said different directions, determine a time between successive ones of said direction pulses for each of said different directions, determine one of a plurality of modes based upon said time, and responsively increase or decrease a ratio of a number of said cursor movement events per a corresponding number of said direction pulses; wherein said track ball resolution controller further comprises an audible output routine adapted to audibly enunciate said cursor movement events, wherein said audible output routine is further adapted to output one audible event for each of said cursor movement events when a time between successive ones of said cursor movement events is greater than a predetermined time and, alternatively, to disable said audible event when said time between successive ones of said cursor movement events is less than said predetermined time; wherein said track ball resolution controller is further adapted to reset said count for any of said different directions if none of said device pulses for any of said different directions is input within a predetermined time, and to output said cursor movement events based upon said direction pulses.