HANDHELD ELECTRONIC DEVICE, CURSOR POSITIONING SUB-SYSTEM AND METHOD EMPLOYING CURSOR SCALING CONTROL
4 Assignments
0 Petitions
Accused Products
Abstract
A track ball cursor positioning sub-system is employed by a handheld electronic device including an operating system and a plurality of applications having a plurality of predetermined scaling values. The cursor positioning sub-system includes a track ball cursor positioning device adapted to output a plurality of device pulses, and a track ball cursor resolution controller adapted to repetitively input the device pulses and to responsively output to the operating system a plurality of cursor movement events. The cursor resolution controller is further adapted to be controlled by the operating system or by the applications to learn which one of the applications is active and to automatically scale a number of the cursor movement events for a corresponding number of the device pulses based upon a corresponding one of the predetermined scaling values of the active one of the applications.
27 Citations
42 Claims
-
1-22. -22. (canceled)
-
23. A cursor positioning sub-system for a handheld electronic device including an operating system and a plurality of applications having a plurality of predetermined scaling values, said cursor positioning sub-system comprising:
-
a cursor positioning device adapted to output a plurality of device pulses; a cursor positioning resolution controller adapted to repetitively input said device pulses of said cursor positioning device and to responsively output to said operating system a plurality of cursor movement events, said cursor positioning 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 cursor positioning resolution controller being further adapted to periodically input said device pulses from a plurality of outputs of said cursor positioning device, count said device pulses for each of a plurality of directions, and determine whether a count for any of said plurality of directions is equal to a predetermined count and, if so, responsively output a direction pulse for a corresponding one of said plurality of directions; a movement detection routine adapted to periodically input said device pulses from said cursor positioning device, count said device pulses for each of the plurality of directions, and determine whether a count for any of said directions is equal to a predetermined count and, if so, responsively output a direction pulse for a corresponding one of said directions; and a velocity detection routine adapted to input said direction pulse for each of said directions, determine a time between successive ones of said direction pulses for each of said 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 cursor positioning resolution controller is further adapted to reset said count for any of said directions if none of said device pulses for any of said directions is input within a predetermined time, and to output said cursor movement events based upon said direction pulses. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 40, 41, 42)
-
-
33. A handheld electronic device comprising:
-
an input sub-system comprising a cursor positioning device adapted to output a plurality of device pulses; an output sub-system comprising a display including a cursor; an operating system adapted to receive cursor movement events; a plurality of applications including a plurality of predetermined scaling values; a processor cooperating with said input sub-system, said output sub-system and said operating system to move said cursor; and a cursor controller routine adapted 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 cursor controller routine comprising; a movement detection routine adapted to repetitively input said device pulses of said cursor positioning device, count said device pulses for each of a plurality of directions, and determine whether a count for any of said directions is equal to a predetermined count and, if so, responsively output a direction pulse, and a velocity detection routine adapted to input said direction pulse for each of said directions, determine a time between successive ones of said direction pulses for each of said directions, determine one of a plurality of modes based upon said time, and responsively adjust and output said number of said cursor movement events to said operating system; said cursor controller routine periodically inputs said device pulses for each of said directions and determines whether a count for any of said directions is equal to a predetermined count and, if so, responsively outputs a direction pulse for a corresponding one of said directions; and said cursor controller routine resets said count for any of said directions if none of said device pulses for any of said directions is input within a predetermined time, and outputs said cursor movement events based upon said direction pulses. - View Dependent Claims (34, 35, 36, 37)
-
-
38. A method of positioning a cursor for a handheld electronic device including an operating system and a plurality of applications having a plurality of predetermined scaling values, said method comprising:
-
employing a cursor positioning device to output a plurality of device pulses; repetitively inputting said device pulses and responsively outputting to said operating system a plurality of cursor movement events; learning which one of said applications is active and automatically scaling 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; enunciating said cursor movement events, wherein enunciation outputs 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, disables said audible event when said time between successive ones of said cursor movement events is less than said predetermined time; employing said cursor positioning device to output a plurality of outputs for said device pulses; periodically inputting to a cursor positioning device resolution controller said device pulses for each of a plurality of directions and determining whether a count for any of said directions is equal to a predetermined count and, if so, responsively outputting a direction pulse for a corresponding one of said directions; and resetting said count for any of said directions if none of said device pulses for and of said directions is input within a predetermined time, and outputting said plurality of cursor movement events based upon said direction pulses.
-
-
39. The method of claim 39 further comprising periodically inputting said device pulses;
counting said device pulses for each of said directions; determining whether a count for any of said directions is equal to a predetermined count and, if so, responsively outputting a direction pulse;
inputting said direction pulse for each of said directions;determining a time between successive ones of said direction pulses for each of said directions; and determining one of a plurality of modes based upon said time, and responsively increasing or decreasing said number of said cursor movement events for a corresponding number of said device pulses.
Specification