| United States Patent Application |
20030076301
|
| Kind Code
|
A1
|
|
Tsuk, Robert W.
;   et al.
|
April 24, 2003
|
Method and apparatus for accelerated scrolling
Abstract
Improved approaches for users to with graphical user interfaces of
computing devices are disclosed. A rotational user action supplied by a
user via a user input device can provide accelerated scrolling. The
accelerated nature of the scrolling enables users to scroll or traverse a
lengthy data set (e.g., list of items) faster and with greater ease. The
amount of acceleration provided can be performed in successive stages,
and/or performed based on the speed of the rotational user action. In one
embodiment, the rotational user action is transformed into linear action
with respect to a graphical user interface. The resulting acceleration
effect causes the linear action to be enhanced such that a lengthy data
set is able to be rapidly traversed.
| Inventors: |
Tsuk, Robert W.; (Cupertino, CA)
; Robbin, Jeffrey L.; (Los Altos, CA)
|
| Correspondence Address:
|
BEYER WEAVER & THOMAS LLP
P.O. BOX 778
BERKELEY
CA
94704-0778
US
|
| Assignee: |
Apple Computer, Inc.
|
| Family ID:
|
27500576
|
| Appl. No.:
|
10/256716
|
| Filed:
|
September 26, 2002 |
Related U.S. Patent Documents
| | | | |
|
| Application Number | Filing Date | Patent Number | |
|---|
| | 60346237 | Oct 22, 2001 | | |
| | 60387692 | Jun 10, 2002 | | |
| | 60359551 | Feb 25, 2002 | | |
|
|
| Current U.S. Class: |
345/159 |
| Current CPC Class: |
G06F 1/1626 20130101; G06F 1/1662 20130101; G06F 1/169 20130101; G06F 3/03543 20130101; G06F 3/0362 20130101; G06F 3/0485 20130101; H04M 1/233 20130101; H04M 1/72583 20130101; G06F 3/038 20130101; G06F 3/167 20130101; G09G 5/34 20130101 |
| Class at Publication: |
345/159 |
| International Class: |
G09G 005/08 |
Claims
What is claimed is:
1. A method for scrolling through portions of a data set, said method
comprising: receiving a number of units associated with a rotational user
input; determining an acceleration factor pertaining to the rotational
user input; modifying the number of units by the acceleration factor;
determining a next portion of the data set based on the modified number
of units; and presenting the next portion of the data set.
2. A method as recited in claim 1, wherein the data set pertains to a list
of items, and the portions of the data set include one or more of the
items.
3. A method as recited in claim 1, wherein the data set pertains to a
media file, and the portions of the data set pertain to one or more
sections of the media file.
4. A method as recited in claim 3, wherein the media file is an audio
file.
5. A method as recited in claim 1, wherein the rotational user input is
provided via a rotational input device.
6. A method as recited in claim 5, wherein the rotational input device is
a circular touch pad or a rotary dial.
7. A method as recited in claim 1, wherein the acceleration factor is
dependent upon a rate of speed for the rotational user input.
8. A method as recited in claim 1, wherein the acceleration factor
provides a range of acceleration.
9. A method as recited in claim 1, wherein the acceleration factor can
successively increase to provided successively greater levels of
acceleration.
10. A method as recited in claim 1, wherein said determining of the next
data portion comprises: converting the modified number of units into the
next portion based on a predetermined value.
11. A method as recited in claim 1, wherein said determining of the next
data portion comprises: dividing the modified number of units by a
chunking value.
12. A method as recited in claim 1, wherein said determining of the next
data portion comprises: adding a prior remainder value to the modified
number of units; and converting the modified number of units into the
next portion.
13. In a handheld, electronics device, a method for scrolling through
portions of a data set, said method comprising: receiving a rotational
user input; determining an acceleration value pertaining to the
rotational user input; and scrolling to a next portion of the data set
based on at least the acceleration value, whereby the acceleration value
specifies a degree of acceleration associated with the rate at which said
scrolling through the portions of the data set is to be achieved.
14. A method as recited in claim 13, wherein said handheld, electronics
device is a portable media player.
15. In a handheld, electronics device, a method for scrolling through
portions of a data set, said method comprising: receiving a rotational
user input; determining whether or not to provide acceleration with
respect to the rotational user input; and scrolling to a next portion of
the data set in either an accelerated manner when said determining
determines that acceleration is to be provided, or in an unaccelerated
manner when said determining determines that acceleration is not to be
provided.
16. A method as recited in claim 15, wherein the data set pertains to a
list of items, and the portions of the data set include one or more of
the items.
17. A method as recited in claim 15, wherein the data set pertains to a
media file, and the portions of the data set pertain to one or more
sections of the media file.
18. A method as recited in claim 17, wherein the media file is an audio
file.
19. A method for scrolling through portions of a file, said method
comprising: (a) receiving a number of units from a rotational input
device; (b) determining a speed of rotation for the rotational input
device; (c) applying acceleration when the speed of rotation is greater
than a speed threshold; (d) removing any acceleration being applied when
the speed of rotation is less then the speed threshold; (e) modifying the
number of units in accordance with the acceleration, if any; (f)
determining a next portion of the file based on the modified number of
units; and (g) presenting the next portion of the file.
20. A method as recited in claim 19, wherein said applying (c) of the
acceleration successively increases an amount of acceleration being
applied.
21. A method as recited in claim 20, wherein said applying (c) comprises:
(c1) obtaining a current acceleration amount being applied for a previous
number of units from the rotational input device; and (c2) determining an
increased acceleration amount to be applied to a current number of units
from the rotational input device.
22. A method as recited in claim 21, wherein the increased acceleration
amount is an integer multiple of the current acceleration amount.
23. A method as recited in claim 21, wherein said applying (c) further
comprises: (c3) determining whether the time since the acceleration was
last changed is greater than a duration threshold; and (c4) preventing
said applying of the acceleration or the increased acceleration amount
when the time since the acceleration was last changed is not greater than
the duration threshold.
24. A method as recited in claim 19, wherein said applying (c) comprises:
(c1) determining whether the time since the acceleration was last changed
is greater than a duration threshold; and (c2) preventing said applying
of the acceleration when the time since the acceleration was last changed
is not greater than the duration threshold.
25. A method as recited in claim 19, wherein said determining (f) of the
next data portion comprises: (f1) converting the modified number of units
into the next portion based on a predetermined value.
26. A method as recited in claim 19, wherein said determining (f) of the
next data portion comprises: (f1) dividing the modified number of units
by a chunking value.
27. A method as recited in claim 19, wherein said determining (f) of the
next data portion comprises: (f1) adding a prior remainder value to the
modified number of units; and (f2) converting the modified number of
units into the next portion.
28. A portable media player, comprising: a storage disk drive that stores
media content for each of a plurality of media items; a display screen
that displays a portion of the media items at a time; a user input device
that enables a user of said portable media player to at least scroll
through the plurality of media items using a rotational action with
respect to said user input device; and a processor operatively connected
to said storage disk drive and said user input device, said processor
determining a rate of scrolling and thus determining a next portion of
the media items to be displayed
29. A portable media player as recited in claim 28, wherein said portable
media player is battery-operated.
30. A portable media player as recited in claim 29, wherein said portable
media player is pocket-sized.
31. A portable media player as recited in claims 28, wherein the rate of
scrolling is automatically increased to provide an acceleration effect
with respect to scrolling through the list of media items.
32. A portable media player as recited in claim 28, wherein said portable
media player comprises an audio player, and wherein the media content for
the media items includes at least audio files of songs.
33. A portable media player as recited in claim 28, wherein said portable
media player comprises a video player, and wherein the media content for
the media items includes at least video files of videos.
34. A portable media player as recited in claim 28, wherein said portable
media player comprises an image viewer, and wherein the media content for
the media items includes at least image files of images.
35. A portable media player as recited in claim 28, wherein said portable
media player further comprises: a feedback circuit operatively connected
to said user input device and said processor, said feedback circuit
produces a sound effect indicating degree of the rotational action with
respect to said user input device.
36. A portable media player as recited in claim 35, wherein the sound
effect is electrically induced by said feedback circuit.
37. A method for displaying a portion of a list of media items on a
display of a media player, the media player having a rotational input
device, said method comprising: (a) determining a rate of turn of the
rotational input device; (b) obtaining a length of the list of media
items; (c) determining a next portion of the list of media items to be
displayed based on the rate of the turn of the rotational input device
and the length of the list of media items; and (d) displaying the next
portion of the list of media items.
38. A method as recited in claim 37, wherein the number of media items
that can be display on the display at any one time is limited due to the
small size of the display.
39. A method as recited in claim 37, wherein the next portion does not
consecutively follow a former portion when the rate of turn of the
rotational input device exceeds a threshold rate.
40. A method as recited in claim 37, wherein the next portion includes a
plurality of the media items from the list of media items.
41. A method as recited in claim 37, wherein the rotational input device
is a navigation wheel.
42. A method as recited in claim 37, wherein the media items are audio
files.
43. A method as recited in claim 37, wherein the media player is a MP3
player.
44. A method as recited in claim 37, wherein said method further
comprises: (e) providing audible feedback.
45. A method as recited in claim 44, wherein the audible feedback is
dependent on the rate of turn of the rotational input device.
46. A method for displaying a portion of a list of items on a display of a
computing device, the computing device having a rotational input device,
said method comprising: (a) determining an indication of turning of the
rotational input device; (b) determining a next portion of the list of
items to be displayed based on the indication of turning of the
rotational input device; and (c) displaying the next portion of the list
of items.
47. A method as recited in claim 46, wherein the indication of turning of
the rotational input device comprises a rate of turn of the rotational
input device.
48. A method as recited in claim 46, wherein the rotational input device
is a navigation wheel.
49. A method as recited in claim 46, wherein the computing device is a
media player, and wherein the items are media items.
50. A method as recited in claim 49, wherein the media player is a
portable media player.
51. A method as recited in claim 49, wherein the media player is a MP3
player.
52. A method as recited in claim 49, wherein the media items are audio
files for songs.
53. A method as recited in claim 49, wherein said method further
comprises: (e) providing audible feedback.
54. A method as recited in claim 46, wherein said method further
comprises: (e) providing audible feedback.
55. A method as recited in claim 46, wherein said determining (b) of the
next portion of the list of items is based on the indication of turning
of the rotational input device and a predetermined value.
56. A method as recited in claim 55, wherein the predetermined value is a
chunking value.
57. A consumer electronics product, comprising: a storage disk that stores
a plurality of media items; a display for displaying a first portion of
the plurality of media items; a user input device that enables a user of
said consumer electronics product to at least scroll through a list of
the plurality of media items in accordance with a user-controlled scroll
rate; and a processor operatively connected to said storage disk, said
display, and said user input device, said processor determines an
acceleration factor for use in scrolling the list of the plurality of
media items and causes said consumer electronics product to display a
second portion of the plurality of media items, the location of second
portion of the plurality of media items within the list of the plurality
of media items being dependent on at least the user-controlled scroll
rate and the acceleration factor.
58. A consumer electronics product as recited in claim 57, wherein said
consumer electronics products is a portable, battery-operated media
player.
59. A consumer electronics product as recited in claim 58, wherein the
media player is an MP3 player, and wherein the media items are audio
files for songs.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims benefit of priority from U.S. Provisional
Patent Application No. 60/346,237, filed Oct. 22, 2001, and entitled
"METHOD AND SYSTEM FOR LIST SCROLLING," which is hereby incorporated by
reference herein. Further, this application claims benefit of priority
from U.S. Provisional Patent Application No. 60/387,692, filed Jun. 10,
2002, and entitled "METHOD AND APPARATUS FOR USE OF ROTATIONAL USER
INPUTS," which is hereby incorporated by reference herein. Still further,
this application claims benefit of priority from U.S. Provisional Patent
Application No. 60/359,551, filed Feb. 25, 2002, and entitled "TOUCH PAD
FOR HANDHELD DEVICE," which is hereby incorporated by reference herein.
[0002] This application is related to U.S. patent application Ser. No.
10/072,765, filed Feb. 7, 2002, and entitled "MOUSE HAVING A ROTARY
DIAL," which is hereby incorporated by reference herein. This application
is also related to U.S. patent application Ser. No. 10/188,182, filed
Jul. 1, 2002, and entitled "TOUCH PAD FOR HANDHELD DEVICE," which is
incorporated by reference herein.
BACKGROUND OF THE INVENTION
[0003] 1. Field of the Invention
[0004] The present invention relates generally to a computing device and,
more particularly, to a handheld computing device having a rotational
input unit.
[0005] 2. Description of the Related Art
[0006] There exist today many styles of input devices for performing
operations with respect to a consumer electronic device. The operations
generally correspond to moving a cursor and making selections on a
display screen. By way of example, the input devices may include buttons,
switches, keyboards, mice, trackballs, touch pads, joy sticks, touch
screens and the like. Each of these devices has advantages and
disadvantages that are taken into consideration when designing the
consumer electronic device. In handheld computing devices, the input
devices are typically buttons and switches. Buttons and switches are
generally mechanical in nature and provide limited control with regard to
the movement of a cursor (or other selector) and the making of
selections. For example, they are generally dedicated to moving the
cursor in a specific direction (e.g., arrow keys) or to making specific
selections (e.g., enter, delete, number, etc.). In the case of handheld
personal digital assistants (PDAs), the input devices tend to utilize
touch-sensitive display screens. When using a touch screen, a user makes
a selection on the display screen by pointing directly to objects on the
screen using a stylus or finger.
[0007] In portable computing devices such as laptop computers, the input
devices are commonly touch pads. With a touch pad, the movement of an
input pointer (i.e., cursor) corresponds to the relative movements of the
user's finger (or stylus) as the finger is moved along a surface of the
touch pad. Touch pads can also make a selection on the display screen
when one or more taps are detected on the surface of the touch pad. In
some cases, any portion of the touch pad may be tapped, and in other
cases, a dedicated portion of the touch pad may be tapped. In stationary
devices such as desktop computers, the input devices are generally
selected from keyboards, mice and trackballs. With a mouse, the movement
of the input pointer corresponds to the relative movements of the mouse
as the user moves the mouse along a surface. With a trackball, the
movement of the input pointer corresponds to the relative movements of a
ball as the user rotates the ball within a housing. Both mice and
trackball devices generally include one or more buttons for making
selections on the display screen.
[0008] In addition to allowing input pointer movements and selections with
respect to a Graphical User Interface (GUI) presented on a display
screen, the input devices may also allow a user to scroll across the
display screen in the horizontal or vertical directions. For example, a
mouse may include a scroll wheel that allows a user to simply roll the
scroll wheel forward or backward to perform a scrolling action. In
addition, touch pads may provide dedicated active areas that implement
scrolling when the user passes his or her finger linearly across the
active area in the x and y directions. Both devices may also implement
scrolling via horizontal and vertical scroll bars that are displayed as
part of the GUI. Using this technique, scrolling is implemented by
positioning the input pointer over the desired scroll bar, selecting the
desired scroll bar, and moving the scroll bar by moving the mouse or
finger in the y direction (forwards and backwards) for vertical scrolling
or in the x direction (left and right) for horizontal scrolling.
[0009] Further, consumer electronic products other than computers, such as
cordless telephones, stereo receivers and compact-disc (CD) players, have
used dials to enable users to select a phone number, a radio frequency
and a specific CD, respectively. Here, typically, a limited-resolution
display is used together with the dial. The display, at best, displays
only a single item (number, frequency or label) in a low resolution
manner using a character generator LCD. In other words, these devices
have used single line, low resolution LCD readouts.
[0010] Thus, there is always a need for improved user input devices that
facilitate greater ease of use of computing devices.
SUMMARY OF THE INVENTION
[0011] The present invention relates to improved approaches for users of
computing devices to interact with graphical user interfaces. A
rotational user action supplied by a user via a user input device can
provide accelerated scrolling. The accelerated nature of the scrolling
enables users to scroll or traverse a lengthy data set (e.g., list of
items) faster and with greater ease. The amount of acceleration provided
can be performed in successive stages, and/or performed based on the
speed of the rotational user action. In one embodiment, the rotational
user action is transformed into linear action with respect to a graphical
user interface. The resulting acceleration effect causes the linear
action to be enhanced such that a lengthy data set is able to be rapidly
traversed. Other aspects and features of the invention will become
apparent below. Although the type of computing device can vary, the
invention is particularly well-suited for use with a media player.
[0012] The invention can be implemented in numerous ways, including as a
method, system, device, apparatus, graphical user interface, or computer
readable medium. Several embodiments of the invention are discussed
below.
[0013] As a method for scrolling through portions of a data set, one
embodiment of the invention includes at least the acts of: receiving a
number of units associated with a rotational user input; determining an
acceleration factor pertaining to the rotational user input; modifying
the number of units by the acceleration factor; determining a next
portion of the data set based on the modified number of units; and
presenting the next portion of the data set.
[0014] As a method for scrolling through portions of a data set associated
with a handheld electronics device, one embodiment of the invention
includes at least the acts of: receiving a rotational user input;
determining an acceleration value pertaining to the rotational user
input; and scrolling to a next portion of the data set based on at least
the acceleration value. The acceleration value specifies a degree of
acceleration associated with the rate at which the scrolling through the
portions of the data set is to be achieved.
[0015] As a method for scrolling through portions of a data set associated
with a handheld electronics device, another embodiment of the invention
includes at least the acts of: receiving a rotational user input;
determining whether or not to provide acceleration with respect to the
rotational user input; and scrolling to a next portion of the data set in
either an accelerated manner when the determining determines that
acceleration is to be provided, or in an unaccelerated manner when the
determining determines that acceleration is not to be provided.
[0016] As a method for scrolling through portions of a file, one
embodiment of the invention includes at least the acts of: receiving a
number of units from a rotational input device; determining a speed of
rotation for the rotational input device; applying acceleration when the
speed of rotation is greater than a speed threshold; removing any
acceleration being applied when the speed of rotation is less then the
speed threshold; modifying the number of units in accordance with the
acceleration, if any; determining a next portion of the file based on the
modified number of units; and presenting the next portion of the file.
[0017] As a portable media player, one embodiment of the invention
includes at least: a storage disk drive that stores media content for
each of a plurality of media items; a display screen that displays a
portion of the media items at a time; a user input device that enables a
user of the portable media player to at least scroll through the
plurality of media items using a rotational action with respect to the
user input device; and a processor that determines a rate of scrolling
and thus determines a next portion of the media items to be displayed
[0018] As a method for displaying a portion of a list of media items on a
display of a media player, the media player having a rotational input
device, one embodiment of the invention includes at least the acts of:
determining a rate of turn of the rotational input device; obtaining a
length of the list of media items; determining a next portion of the list
of media items to be displayed based on the rate of the turn of the
rotational input device and the length of the list of media items; and
displaying the next portion of the list of media items.
[0019] As a method for displaying a portion of a list of items on a
display of a computing device, the computing device having a rotational
input device, one embodiment of the invention includes at least the acts
of: determining an indication of turning of the rotational input device;
determining a next portion of the list of items to be displayed based on
the indication of turning of the rotational input device; and displaying
the next portion of the list of items.
[0020] As a consumer electronics product, one embodiment of the invention
includes at least: a storage disk that stores a plurality of media items;
a display for displaying a first portion of the plurality of media items;
and a user input device that enables a user of the consumer electronics
product to at least scroll through a list of the plurality of media items
in accordance with a user-controlled scroll rate; and a processor. The
processor determines an acceleration factor for use in scrolling through
the list of the plurality of media items and causes the consumer
electronics product to display a second portion of the plurality of media
items. The location of second portion of the plurality of media items
within the list of the plurality of media items is dependent on at least
the user-controlled scroll rate and the acceleration factor.
[0021] Other aspects and advantages of the invention will become apparent
from the following detailed description, taken in conjunction with the
accompanying drawings, illustrating by way of example the principles of
the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
[0022] The present invention is illustrated by way of example, and not by
way of limitation, in the figures of the accompanying drawings and in
which like reference numerals refer to similar elements and in which:
[0023] FIG. 1 is a flow diagram of scroll processing according to one
embodiment of the invention.
[0024] FIG. 2 is a flow diagram of list navigation processing according to
another embodiment of the invention.
[0025] FIG. 3 is a flow diagram of acceleration amount processing
according to one embodiment of the invention.
[0026] FIG. 4 is a flow diagram of acceleration amount processing
according to another embodiment of the invention.
[0027] FIG. 5 is a representative acceleration state machine according to
one embodiment of the invention.
[0028] FIG. 6 is a flow diagram of next portion determination processing
according to one embodiment of the invention.
[0029] FIG. 7A is a perspective diagram of a computer system in accordance
with one embodiment of the invention.
[0030] FIG. 7B is a perspective diagram of a media player in accordance
with one embodiment of the present invention.
[0031] FIG. 8A is a block diagram of a media player according to one
embodiment of the invention.
[0032] FIG. 8B is a block diagram of a computing system according to one
embodiment of the invention.
[0033] FIG. 9 shows the media player of FIG. 7B being used by a user in
accordance with one embodiment of the invention.
[0034] FIG. 10A is a flow diagram of user input processing according to
one embodiment of the invention.
[0035] FIG. 10B is a flow diagram of user input processing according to
another embodiment of the invention.
[0036] FIG. 11 is a flow diagram of user input processing according to
another embodiment of the invention.
[0037] FIG. 12 is a block diagram of a rotary input display system in
accordance with one embodiment of the invention.
DETAILED DESCRIPTION OF THE INVENTION
[0038] The present invention relates to improved approaches for users of
computing devices to interact with graphical user interfaces. A
rotational user action supplied by a user via a user input device can
provide accelerated scrolling. The accelerated nature of the scrolling
enables users to scroll or traverse a lengthy data set (e.g., list of
items) faster and with greater ease. The amount of acceleration provided
can be performed in successive stages, and/or performed based on the
speed of the rotational user action. In one embodiment, the rotational
user action is transformed into linear action with respect to a graphical
user interface. The resulting acceleration effect causes the linear
action to be enhanced such that a lengthy data set is able to be rapidly
traversed. Other aspects and features of the invention will become
apparent below. Although the type of computing device can vary, the
invention is particularly well-suited for use with a media player.
[0039] Embodiments of the invention are discussed below with reference to
FIGS. 1-12. However, those skilled in the art will readily appreciate
that the detailed description given herein with respect to these figures
is for explanatory purposes as the invention extends beyond these limited
embodiments.
[0040] FIG. 1 is a flow diagram of scroll processing 100 according to one
embodiment of the invention. The scroll processing 100 assists a user in
scrolling through a data set. The scroll processing 100 initially
receives 102 a number of units associated with a rotational user input.
The number of units is an indication of an amount of rotational movement
a user has invoked with respect to a rotational input device.
[0041] Next, an acceleration factor is determined 104. The acceleration
factor is an indication of the degree of acceleration to be utilized with
the scroll processing 100. After the acceleration factor is determined
104, the number of units that are associated with the rotational user
input is modified 106 by the acceleration factor. In one embodiment, the
number of units is modified by multiplication with the acceleration
factor. In various other embodiments, the number of units can be modified
in various other ways.
[0042] After the number of units has been modified 106, a next portion of
the data set that is being scrolled through can be determined 108 based
on the modified number of units. Once the next portion has been
determined 108, the next portion of the data set can be presented 110.
Typically, the next portion of the data set associated with the scroll
processing 100 is presented 110 to the user that caused the rotational
user input. In one embodiment, the next portion of the data set can be
presented 110 to the user by displaying the next portion of the data set
on a display device. In another embodiment of the invention, the next
portion of the data set can be presented 110 to the user by displaying
the next portion of the data set with at least one item distinctively or
distinguishly displayed (e.g., highlighted) from the other items. In
still another embodiment, the next portion of the data set can be
presented 110 to the user by playing or executing a file. After the next
portion of the data set has been presented 110, the scroll processing 100
is complete and ends. However, the scroll processing 100 will repeat for
each rotational user input.
[0043] Here, the faster the rate of rotational user input, the further
down a list the next item becomes. It should be noted that the rate of
rotational user input can be relative or absolute in nature. Still
further, the rate of rotational user input need not be an actual velocity
value, but could be a count or other value that is proportional to or
influenced by the rate of rotational user input.
[0044] A data set as used herein pertains to a set of data. As one
example, the data set can be a list of items (e.g., a list of songs). As
another example, the data set can be a media file (e.g., MP3 or other
audio file, video file, or image file). In one embodiment, the data set
can be considered a sequential data set because the data within the set
is often sequential. For example, the songs in a list are arranged
sequentially and the data within an audio file are also arranged
sequentially.
[0045] FIG. 2 is a flow diagram of list navigation processing 200
according to another embodiment of the invention. The list navigation
processing 200 initially determines 202 a rate of rotational user input
(e.g., dial turn). The rotational user input is provided through user
interaction with a rotational input device. A list length is then
obtained 204 and a current item in the list is identified. Typically, the
current item is the item in the list that is being displayed. In one
embodiment, the current item is highlighted such that it is distinctively
displayed from other items of the list that are simultaneously displayed.
[0046] A next item in the list to be displayed is then determined 206
based on the rotational user input. The determination 206 of the next
item in the list can also be dependent on the list length and the current
item in the list. For example, the greater the rate of the rotational
user input, the further apart the next item is from the current item in
the list. The rate of the rotational user input and the length of the
list can affect whether acceleration (e.g., acceleration factor) is
provided for navigating the list. Thereafter, the list navigation
processing 200 displays 208 a next item and one or more subsequent (or
neighboring) items thereto. For example, the next item and the one or
more subsequent items can be displayed 208 by a display screen produced
by a display device. Additionally, the list navigation processing 200 can
provide 210 an audio feedback. The audio feedback provides an audible
sound that indicates feedback to the user as to the rate at which the
items in the list are being traversed. The audible feedback can thus also
be proportional to the rate of rotational user input.
[0047] FIG. 3 is a flow diagram of acceleration amount processing 300
according to one embodiment of the invention. The acceleration amount
processing 300 is, for example, processing that can be performed to
determine an acceleration factor. In one embodiment, the acceleration
amount processing 300 is, for example, suitable for use as the operation
104 illustrated in FIG. 1. In another embodiment, the acceleration amount
processing 300 is, for example, suitable for use as a sub-operation for
the operation 206 illustrated in FIG. 2.
[0048] The acceleration amount processing 300 initially determines 302 a
speed of a rotational user input. As previously noted with respect to
FIG. 1, the rotational user input is provided by a rotational input
device that is interacted with by a user. In one embodiment, the speed of
the rotational user input is determined 302 based on the number of
rotational units identified by the rotational user input. More
particularly, in another embodiment, the speed of the rotational user
input is determined 302 based on the number of rotational units and an
amount of time over which such rotational inputs were received. The speed
of the rotational user input can, for example, be considered to be the
speed of a user movement or the speed of rotation of a rotational input
device.
[0049] After the speed of the rotational user input has been determined
302, a decision 304 determines whether the speed of the rotational user
input is slow. The speed of the rotational user input can be determined
or estimated, directly or indirectly, in a variety of ways. In one
embodiment, a threshold is used to distinguish between slow and fast
speeds of the rotational user input. The precise rate of rotation that is
deemed to be the threshold between slow and fast can vary with
application. The threshold can be determined experimentally based upon
the particular application for which the acceleration amount processing
300 is utilized.
[0050] Once the decision 304 determines that the speed of the rotational
user input is slow, then the acceleration factor (AF) is set 306 to zero
(0). On the other hand, when the decision 304 determines that the speed
of the rotational user input is not slow (i.e., the speed is fast), then
a decision 308 determines whether an amount of time (.DELTA.t1) since the
last time the acceleration was altered exceeds a first threshold (TH1).
When the decision 308 determines that the amount of time (.DELTA.t1)
since the last acceleration update is longer than the first threshold
amount (TH1), then the acceleration factor is modified 310. In
particular, in this embodiment, the modification 310 causes the
acceleration factor to be doubled.
[0051] Following the operation 310, as well as following the operation
306, an acceleration change time is stored 312. The acceleration change
time reflects the time that the acceleration factor was last updated. The
acceleration change time is stored such that the decision 308 understands
the amount of time since the acceleration was last modified (i.e.,
.DELTA.t1). Following the operation 312, as well as directly following
the decision 308 when the amount of time since the last acceleration
update was made is less than the first threshold (TH1), the acceleration
amount processing 300 is complete and ends.
[0052] Hence, according to the acceleration amount processing 300, when
the speed of the rotational user input is deemed slow, the acceleration
factor is reset to zero (0), which indicates that no acceleration effect
is imposed. On the other hand, when the speed of the rotational user
input indicates that the speed of such rotation is fast, then the
acceleration effect being imposed is doubled. In effect, then, if the
user interacts with the rotational input device such that the speed of
rotation is slow, then no acceleration effect is provided. In such case,
the user can scroll through a data set (e.g., list, audio file) with high
resolution. On the other hand, when the user interacts with the
rotational input device with a high speed of rotation, then the
acceleration effect is step-wise increased (e.g., via doubling or other
means). The acceleration effect provided by the invention enables a user
to interact with a rotational input device in an efficient, user-friendly
manner such that long or extensive data sets can be scrolled through in a
rapid manner.
[0053] FIG. 4 is a flow diagram of acceleration amount processing 400
according to another embodiment of the invention. The acceleration amount
processing 400 is generally similar to the acceleration amount processing
300 illustrated in FIG. 3. However, the acceleration amount processing
400 includes additional operations that can be optionally provided. More
specifically, the acceleration amount processing 400 can utilize a
decision 402 to determine whether a duration of time (.DELTA.t2) since
the last rotational user input is greater than a second threshold (TH2).
When the decision 402 determines that the duration of time (.DELTA.t2)
since the last rotational user input exceeds the second threshold (TH2),
then the acceleration factor is reset 306 to zero (0). Here, when the
user has not provided a subsequent rotational user input for more than
the duration of the second threshold (TH2), then the acceleration amount
processing 400 is reset to no acceleration because it assumes that the
user is restarting a scrolling operation and thus would not want to
continue with a previous accelerated rate of scrolling.
[0054] The rate at which the acceleration effect is doubled is restricted
such that the doubling (i.e., operation 310) can only occur at a rate
below a maximum rate. The acceleration amount processing 400 also
includes a decision 404 that determines whether the acceleration factor
(AF) has reached a maximum acceleration factor (AF.sub.MAX). The decision
404 can be utilized to limit the maximum acceleration that can be imposed
by the acceleration amount processing 400. For example, the acceleration
factor (AF) could be limited to a factor of eight (8), representing that
with maximum acceleration scrolling would occur at a rate eight (8) times
faster than non-accelerated scrolling.
[0055] Still further, the acceleration amount processing 400 stores 406 a
last input time. The last input time (t2) represents the time the last
rotational user input was received (or processed). Note that the duration
of time (.DELTA.t2) can be determined by the difference between a current
time associated with an incoming rotational user input and the last input
time (t2).
[0056] As previously noted, the acceleration amount processing 300, 400
is, for example, processing that can be performed to determine an
acceleration factor. However, although not depicted in FIG. 3 or 4, when
the length of the data set (e.g., list) is short, then the acceleration
can be set to zero (i.e., no acceleration) and the acceleration amount
processing 300, 400 can be bypassed. For example, in one embodiment,
where the data set is a list, if the display screen can display only five
(5) entries at a time, then the list can be deemed short if it does not
include more than twenty (20) items. Consequently, according to another
embodiment of the invention, the acceleration effect imposed by the
invention can be dependent on the length of the data set (e.g., list).
[0057] The accelerated scrolling can also be depicted as a state machine
having states representing different acceleration levels or different
rates of acceleration. The particulars of such a state machine will vary
widely with implementation.
[0058] FIG. 5 is a representative acceleration state machine 500 according
to one embodiment of the invention. The acceleration state machine 500
has four states of acceleration. A first state 502 provides no
acceleration. From the first state 502, when the speed of a next
rotational user input is slow, the acceleration state machine 500 remains
at the first state 502. Alternatively, when the speed of the rotational
user input is fast, the acceleration state machine 500 transitions from a
first state 502 to a second state 504. The second state 504 provides
2.times.acceleration, meaning that the resulting rate of scrolling would
be twice that of the first state. When the acceleration state machine 500
is at the second state 504, when the speed of a next rotational user
input is slow, the acceleration state machine 500 transitions back to the
first state 502. Alternatively, when the speed of the next rotational
user input is fast, the acceleration state machine 500 transitions from
the second state 504 to a third state 506. The third state 506 provides
4.times.acceleration, meaning that the rate of scrolling would be four
times that of the first state 502 or twice that of the second state 504.
At the third state 506, when the speed of the next rotational user input
is slow, the acceleration state machine 500 transitions from the third
state 506 to the first state 502. Alternatively, when the speed of the
next rotational user input is fast, the acceleration state machine 500
transitions from the third state 506 to a fourth state 508. At the fourth
state 508, 8.times.acceleration is provided, meaning that the
acceleration rate of scrolling is eight times that of the first state
502, four times that of the second state 504, or twice that of the third
state 506. At the fourth state 508, when the speed of the next rotational
user input is slow, the acceleration state machine 500 transitions from
the fourth state 508 to the first state 502. Alternatively, when the
speed of the next rotational user input is fast, the acceleration state
machine 500 remains at the fourth state 508.
[0059] FIG. 6 is a flow diagram of next portion determination processing
600 according to one embodiment of the invention. The next portion
determination processing 600 is, for example, processing performed by the
operation 108 illustrated in FIG. 1
[0060] The next portion determination processing 600 receives 602 the
modified number of the units. For example, at operation 106 of FIG. 1,
the number of units was modified 106 by the acceleration factor to
determine the modified number of units. A remainder value is then added
604 to the modified number of units. The remainder value pertains to a
previously determined remainder value as discussed below. Next, the
modified number of units is divided 606 by a chunking value to view a
next portion. The next portion is a subset of the data set that is
eventually presented on a display device. For example, the next portion
can pertain to one or more items in a list when the data set pertains to
a list of items. In another example, the next portion can pertain to a
segment or position in a audio file when the data set pertains to an
audio file. In any case, the remainder value from the operation 606 is
then saved 608 for subsequent usage in computing a subsequent next
portion. Following the operation 608, the next portion determination
processing 600 is complete and ends. Although the use of the remainder
value is not necessary, the scrolling provided by the invention may be
smoother to the user when the remainder is carried forward as described
above.
[0061] As one example of the scroll processing according to the invention,
consider the following exemplary case. Assume that the number of units
associated with a rotational user input is 51 units. Also assume that an
acceleration factor was determined to be 2. Hence, the modified number of
units, according to one embodiment, would then be 102 units (51*2). In
one implementation, a previous remainder value (if not stale) can be
added to the modified number of units. Assume that the previous remainder
value was 3, then the modified number of units becomes 105 (102+3).
Thereafter, to determine the next portion of the data set, the modified
number of units (105) is then divided by a chunking value (e.g., 5).
Hence, the resulting value 20 indicates that the next portion of the data
set is to be presented (i.e., displayed on a display device) would be 20
items down (up) in the list from the current item.
[0062] The scroll, list navigation or acceleration amount processing
discussed above can be utilized with respect to an audio player having a
screen that displays a list of songs, or that provides a scroll bar
indicating position of playing within an audio file. Typically, such an
audio player typically displays different screens on the display. Each
such screen can be individually scrolled through using separate position
and acceleration values. Alternatively, the acceleration values can be
shared across multiple different screens. Each such screen could be
associated with a different list that is partially displayed on the
screen, a portion of which is displayed on the screen at a time and,
through scrolling, the portion can be altered in an accelerated manner.
The file can be a list or represent a scroll bar reflecting play position
in a song. Additional details of screens suitable for use with an audio
player are described in U.S. Provisional Patent Application No.
60/399,806, filed on Jul. 30, 2002, which is hereby incorporated herein
by reference.
[0063] FIG. 7A is a perspective diagram of a computer system 650 in
accordance with one embodiment of the invention. The computer system 650
includes a base housing 652 that encloses electronic circuitry that
performs the computing operations for the computing system 650.
Typically, the electronic circuitry includes a microprocessor, memory,
I/O controller, graphics controller, etc. The housing 652 also provides a
removable computer readable medium drive 654 in which a removable
computer readable medium can be placed so as to electronically or
optically read data therefrom. The computer housing 652 is also coupled
to a display device 656 on which a screen display can be presented for a
user of the computer system 650 to view. Still further, the computer
system 650 includes a keyboard apparatus 658. The keyboard apparatus 658
allows a user to interact with a computer program (application program or
operating system) performed by the computer system 650. In this regard,
the keyboard apparatus 658 includes a plurality of keys 660 and a
rotational input unit 662. The rotational input unit 662 allows a user to
perform a rotational movement with respect to the rotational input unit
662. The rotational movement (rotational user input) can then be
processed by the electronic circuitry of the computer system 650 and used
to manipulate navigation or selection actions with respect to a graphical
user interface being presented to the user on the display device 656. The
keyboard apparatus 658 can also include a button 664 associated with the
rotational input unit 662. As shown in FIG. 7A, the button 664 can be
provided at a center region of the rotational input unit 662. However,
the button 664 is not required and, if provided, can be placed elsewhere,
such as outside the periphery of the rotational input unit 662.
[0064] FIG. 7B is a perspective diagram of a media player 700 in
accordance with one embodiment of the present invention. The term "media
player" generally refers to computing devices that are dedicated to
processing media such as audio, video or other images. In one
implementation, the media player is a portable computing device. Examples
of media players include music players, game players, video players,
video recorders, cameras and the like. These computing devices are
generally portable so as to allow a user to listen to music, play games
or video, record video or take pictures wherever the user travels. In one
embodiment, the media player is a handheld device that is sized for
placement into a pocket of the user (i.e., pocket-sized). By being
pocket-sized, the user does not have to directly carry the device and
therefore the device can be taken almost anywhere the user travels (e.g.,
the user is not limited by carrying a large, bulky and often heavy
device, as in a portable computer). For example, in the case of a music
player (e.g., MP3 player), a user may use the device while working out at
the gym. In the case of a camera, a user may use the device while
mountain climbing. Furthermore, the device may be operated by the user's
hands, no reference surface such as a desktop is needed. In one
implementation, the music player can be pocket-sized and rather
lightweight (e.g., dimensions of 2.43 by 4.02 by 0.78 inches and a weight
of 6.5 ounces) for true portability.
[0065] The media player 700 typically has connection capabilities that
allow a user to upload and download data to and from a host device such
as a general purpose computer (e.g., desktop computer or portable
computer). For example, in the case of a camera, photo images may be
downloaded to the general purpose computer for further processing (e.g.,
printing). With regard to music players, songs and playlists stored on
the general purpose computer may be downloaded into the music player. In
one embodiment, the media player 700 can be a pocket-sized handheld MP3
music player that allows a user to store a large collection of music.
[0066] As shown in FIG. 7B, the media player 700 includes a housing 702
that encloses various electrical components (including integrated circuit
chips and other circuitry) to provide computing capabilities for the
media player 700. The integrated circuit chips and other circuitry may
include a microprocessor, memory (e.g., ROM or RAM), a power source
(e.g., a battery), a circuit board, a hard drive, and various
input/output (I/O) support circuitry. In the case of music players, the
electrical components may include components for outputting music such as
an amplifier and a digital signal processor (DSP). In the case of video
recorders or cameras, the electrical components may include components
for capturing images such as image sensors (e.g., charge-coupled device
(CCD) or complimentary oxide semiconductor (CMOS)) or optics (e.g.,
lenses, splitters, filters). The housing may also define the shape or
form of the media player. That is, the contour of the housing 702 may
embody the outward physical appearance of the media player 700.
[0067] The media player 700 also includes a display screen 704. The
display screen 704 is used to display a Graphical User Interface (GUI) as
well as other information to the user (e.g., text, objects, graphics). By
way of example, the display screen 704 may be a liquid crystal display
(LCD). In one particular embodiment, the display screen corresponds to a
high-resolution display with a white LED backlight to give clear
visibility in daylight as well as in low-light conditions. Additionally,
according to one embodiment, the display screen 704 can be about 2 inches
(measured diagonally) and provide a 160-by-128 pixel resolution. The
display screen 704 can also operate to simultaneously display characters
of multiple languages. As shown in FIG. 7B, the display screen 704 is
visible to a user of the media player 700 through an opening 705 in the
housing 702, and through a transparent wall 706 that is disposed over the
opening 705. Although transparent, the transparent wall 706 may be
considered part of the housing 702 since it helps to define the shape or
form of the media player 700.
[0068] The media player 700 includes a rotational input device 710. The
rotational input device 710 receives a rotational input action from a
user of the media player 700. The rotational input action is used to
control one or more control functions for controlling or interacting with
the media player 700 (or application operating thereon). In one
embodiment, the control function corresponds to a scrolling feature. The
direction of scrolling can vary depending on implementation. For example,
scrolling may be implemented vertically (up or down) or horizontally
(left or right). For example, in the case of a music player, the moving
finger may initiate a control function for scrolling through a song menu
displayed on the display screen 704. The term "scrolling" as used herein
generally pertains to moving displayed data (e.g., text or graphics)
across a viewing area on a display screen 704 so that at least one new
item of data (e.g., line of text or graphics) is brought into view in the
viewing area. In essence, the scrolling function allows a user to view
sets of data currently outside of the viewing area. The viewing area may
be the entire viewing area of the display screen 704 or it may be only a
portion of the display screen 704 (e.g., a window frame).
[0069] By way of example, in the case of a music player (e.g., MP3
player), the scrolling feature may be used to help browse through songs
stored in the music player. To elaborate, the display screen 704, during
operation, may display a list of media items (e.g., songs). A user of the
media player 700 is able to linearly scroll through the list of media
items by providing a rotational input action using the rotational input
device 710. The displayed items from the list of media items are varied
commensurate with the rotational input action such that the user is able
to effectively scroll through the list of media items. However, since the
list of media items can be rather lengthy, the invention provides the
ability for the user to rapidly traverse (or scroll) through the list of
media items. In effect, the user is able to accelerate their traversal of
the list of media items by providing the rotational input action at
greater speeds. The direction of the rotational input action may be
arranged to control the direction of scrolling.
[0070] In addition to above, the media player 700 may also include one or
more buttons 712. The buttons 712 are configured to provide one or more
dedicated control functions for making selections or issuing commands
associated with operating the media player 700. By way of example, in the
case of a music player, the button functions may be associated with
opening a menu, playing a song, fast forwarding a song, seeking through a
menu and the like. In most cases, the button functions are implemented
via a mechanical clicking action. The position of the buttons 712
relative to the rotational input device 710 may be widely varied. For
example, they may be adjacent to one another or spaced apart. In the
illustrated embodiment, the buttons 712 are configured to surround the
inner and outer perimeter of the rotational input device 710. In this
manner, the buttons 712 may provide tangible surfaces that define the
outer boundaries of the rotational input device 710. As shown, there are
four buttons 712A that surround the outer perimeter and one button 712B
disposed in the center or middle of the rotational input device 710. By
way of example, the plurality of buttons 712 may consist of a menu
button, play/stop button, forward seek button, reverse seek button, and
the like.
[0071] Moreover, the media player 700 may also include a power switch 714,
a headphone jack 716 and a data port 718. The power switch 714 is
configured to turn the media device 700 on and off. The headphone jack
716 is capable of receiving a headphone connector associated with
headphones configured for listening to sound being outputted by the media
device 700. The data port 718 is capable of receiving a data
connector/cable assembly configured for transmitting and receiving data
to and from a host device, such as a general purpose computer. By way of
example, the data port 718 may be used to upload or download songs to and
from the media device 700. The data port 718 may be widely varied. For
example, the data port may be a PS/2 port, a serial port, a parallel
port, a USB port, a FireWire port, and the like. In some cases, the data
port 718 may be a radio frequency (RF) link or optical infrared (IR) link
to eliminate the need for a cable. Although not shown in FIG. 7B, the
media player 700 may also include a power port that receives a power
connector/cable assembly configured for delivering power to the media
player 700. In some cases, the data port 718 may serve as both a data and
a power port.
[0072] FIG. 8A is a block diagram of a media player 800 according to one
embodiment of the invention. The media player 800 can, for example,
represent internal components of the media player 700.
[0073] The media player 800 includes a processor 802 that pertains to a
microprocessor or controller for controlling the overall operation of the
media player 800. The media player 800 stores media data pertaining to
media items in a file system 804 and a cache 806. The file system 804 is,
typically, a storage disk or a plurality of disks. The file system
typically provides high capacity storage capability for the media player
800. However, since the access time to the file system 804 is relatively
slow, the media player 800 also includes a cache 806. The cache 806 is,
for example, Random-Access Memory (RAM) provided by semiconductor memory.
The relative access time to the cache 806 is substantially shorter than
for the file system 804. However, the cache 806 does not have the large
storage capacity of the file system 804. Further, the file system 804,
when active, consumes more power than does the cache 806. The power
consumption is particularly important when the media player 800 is a
portable media player that is powered by a battery (not shown).
[0074] The media player 800 also includes a user input device 808 that
allows a user of the media player 800 to interact with the media player
800. For example, the user input device 808 can take a variety of forms,
such as a button, keypad, dial, etc. Still further, the media player 800
includes a display 810 (screen display) that can be controlled by the
processor 802 to display information to the user. A data bus 811 can
facilitate data transfer between at least the file system 804, the cache
806, the processor 802, and the coder/decoder (CODEC) 812. The media
player 800 can also include an audio feedback unit (not shown) to provide
audio feedback for user interactions (such as with the user input device
808).
[0075] In one embodiment, the media player 800 serves to store a plurality
of media items (e.g., songs) in the file system 804. When a user desires
to have the media player play a particular media item, a list of
available media items is displayed on the display 810. Then, using the
user input device 808, a user can select one of the available media
items. The processor 802, upon receiving a selection of a particular
media item, supplies the media data (e.g., audio file) for the particular
media item to a coder/decoder (CODEC) 812. The CODEC 812 then produces
analog output signals for a speaker 814. The speaker 814 can be a speaker
internal to the media player 800 or external to the media player 800. For
example, headphones or earphones that connect to the media player 800
would be considered an external speaker.
[0076] FIG. 8B is a block diagram of a computing system 850 according to
one embodiment of the invention. The computing system 850 can, for
example, represent a portion of any of the computer system 650 shown in
FIG. 7A, the media player 700 shown in FIG. 7B, or the media player 800
shown in FIG. 8A.
[0077] The computing system 850 includes a housing 852 that exposes a
rotational input device 854. The housing 852 can be a computer's housing
or an input/output device's housing. The rotational input device 854
permits a user to interact with the computing system 850 through a
rotational action. The rotational action results from either rotation of
the rotational input device 854 itself or by rotation of a stylus or
user's finger about the rotational input device 854. As examples, the
rotational input device 854 can be a rotary dial (including, e.g., a
navigational wheel or a scroll wheel) capable of being rotated or a touch
pad capable of rotational sensing. In one embodiment, the touch pad has a
circular shape. A rotation pickup unit 856 couples to the rotational
input device 854 to sense the rotational action. For example, the
rotational pickup unit 856 can be optically or electrically coupled to
the rotational input device 854.
[0078] The computing system 850 further includes a processor 858, a
display 860 and an audio feedback unit 862. Signals pertaining to the
rotational action are supplied to the processor 858. The processor 858
not only performs processing operations for application programs hosted
by the computing system 850 but also can control the display 860 and the
audio feedback unit 862. Alternatively, a specialized controller or other
circuitry can support the processor 858 in controlling the display 860 or
the audio feedback unit 862.
[0079] The processor 858 causes a display screen to be produced on the
display 860. In one implementation, the display screen includes a
selectable list of items (e.g., media items) from which a user may select
one or more of the items. By the user providing a rotational action with
respect to the rotational input device 854, the list can be scrolled
through. The processor 858 receives the signals pertaining to the
rotational action from the rotation pickup unit 856. The processor 858
then determines the next items of the list that are to be presented on a
display screen by the display 860. In making this determination, the
processor 858 can take into consideration the length of the list.
Typically, the processor 858 will determine the rate of the rotational
action such that the transitioning to different items in the media list
can be performed at a rate proportional to the rate of the rotational
action.
[0080] The processor 858 can also control the audio feedback unit 862 to
provide audio feedback to a user. The audio feedback can, for example, be
a clicking sound produced by the audio feedback unit 862. In one
embodiment, the audio feedback unit 862 is a piezoelectric buzzer. As the
rate of transitioning through the list of items increases, the frequency
of the clicking sounds can increase. Alternatively, when the rate that
the rotational input device 854 is turned slows, the rate of
transitioning through the list of items decreases, and thus the frequency
of the clicking sounds correspondingly slows. Hence, the clicking sounds
provide audio feedback to the user as to the rate in which the items
within the list of items are being traversed.
[0081] FIG. 9 shows the media player 700 of FIG. 7B being used by a user
920 in accordance with one embodiment of the invention. In this
embodiment, the user 920 is linearly scrolling (as shown by arrow 924)
through a list of songs 922 displayed on the display screen 904 via a
slider bar 923. As shown, the media device 900 is comfortably held in one
hand 926 while being comfortably addressed by the other hand 928. This
configuration generally allows the user 920 to easily actuate the
rotational input device 910 with one or more fingers. For example, the
thumb 930 and right-most fingers 931 (or left-most fingers if left
handed) of the first hand 926 are used to grip the sides of the media
player 900 while a finger 932 of the opposite hand 928 is used to actuate
the rotational input device 910.
[0082] Referring to FIG. 9, and in accordance with one embodiment of the
invention, the rotational input device 910 can be continuously actuated
by a circular motion of the finger 932 as shown by arrow 934. For
example, the finger may rotate relative to an imaginary axis. In
particular, the finger can be rotated through 360 degrees of rotation
without stopping. This form of motion may produce incremental or
accelerated scrolling through the list of songs 922 being displayed on
the display screen 904.
[0083] FIG. 10A is a flow diagram of user input processing 1000 according
to one embodiment of the invention. The user input processing 1000 is,
for example, performed with respect to the computer system 650
illustrated in FIG. 7A or the media player 700 illustrated in FIG. 7B.
[0084] The user input processing 1000 displays 1002 a graphical user
interface. Then, a rotational movement associated with a user input
action is received 1004. Here, the user input action is generally
angular, as opposed to linear, and thus pertains to a rotational
movement. As discussed in more detail below, the rotational movement can
be provided by the user input action. In one example, the rotational
movement can be caused by a user acting to rotate a navigational wheel
through a user input action. In another example, the rotational movement
can be caused by a user's finger or a stylist being moved in a rotational
manner through a user input action with respect to a touch pad. After the
rotational movement has been received 1004, the rotational movement is
converted 1006 into a linear movement. The linear movement is then
applied 1008 to at least one object of the graphical user interface. For
example, the object of the graphical user interface can be a list, menu
or other object having a plurality of selectable items. The linear
movement can effect a scroll type action with respect to the object
(e.g., list or menu). Alternatively, the linear movement can effect a
level adjustment (e.g., volume adjustment) or position adjustment (e.g.,
slider bar position). After the linear movement has been applied 1008,
the user input processing 1000 is complete and ends.
[0085] FIG. 10B is a flow diagram of user input processing 1050 according
to another embodiment of the invention. The user input processing 1050
is, for example, performed with respect to the computer system 650
illustrated in FIG. 7A or the media player 700 illustrated in FIG. 7B.
[0086] The operations 1052-1060 performed by the user input processing
1050 are similar to those like operations performed by the user input
processing 1000 illustrated in FIG. 10A. Additionally, the user input
processing 1050 operates to provide 1056 audible feedback corresponding
to the rotational movements. In other words, as the rotational movement
associated with user input action is received 1054, audible feedback
corresponding to the rotational movement is provided 1056. Such audible
feedback provides the user with feedback concerning the extent to which
rotational movement has been input. In one embodiment, the rotational
movement associated with user input action is converted into linear
movement and applied to an object of a graphical user interface. For
example, when the object of the graphical user interface is a multi-item
list that is displayed for user scrolling and selection actions, the
rotational movement associated with the user input action represents a
distance traversed in the multi-item list. When acceleration is applied,
the distance traversed is increased (e.g., multiplied). In one
embodiment, the audible feedback is provided through a piezoelectric
buzzer that is controlled by a processor (or other circuitry). For
example, the audio feedback unit 862 shown in FIG. 8B can be a
piezoelectric buzzer. The controller for the piezoelectric buzzer can,
for example, be a processor of the computer system 650 or the media
player 700, or some other circuitry coupled to the piezoelectric buzzer.
[0087] FIG. 11 is a flow diagram of user input processing 1100 according
to another embodiment of the invention. The user input processing 1100
is, for example, performed by a computing device, such as the computer
system 650 illustrated in FIG. 7A or the media player 700 illustrated in
FIG. 7B.
[0088] The user input processing 1100 begins by the display 1102 of a
portion of a list of items together with a select bar. The select bar
typically points to or highlights one or more of the items of the list of
items. In general, the select bar can be associated with any sort of
visual indication specifying one or more of the items of the list of
items. Hence, the select bar is one type of visual indicator. Next, a
decision 1104 determines whether a rotational movement input has been
received. When the decision 1104 determines that a rotational movement
input has not yet been received, then a decision 1106 determines whether
another input has been received. Here, the inputs are provided by a user
of the computing device performing or associated with the user input
processing 1100. When the decision 1106 determines that another input has
been received, then other processing is performed 1108 to perform any
operations or actions caused by the other input. Following the operation
1108, the user input processing 1100 is complete and ends. On the other
hand, when the decision 1106 determines that no other input has been
received, then the user input processing 1100 returns to repeat the
decision 1104.
[0089] Once the decision 1104 determines that a rotational movement input
has been received, then the rotational movement is converted 1110 to a
linear movement. Then, a next portion of the list of items (and placement
of the select bar over one of the items) is determined 1112. Thereafter,
the next portion of the list of items is displayed 1114. The linear
movement operates to move the select bar (or other visual identifier)
within the list. In other words, the select bar is scrolled upwards or
downwards (in an accelerated or unaccelerated manner) by the user in
accordance with the linear motion. As the scrolling occurs, the portion
of the list being displayed changes. Following the operation 1114, the
user input processing 1100 is complete and ends. However, if desired, the
user input processing 1100 can continue following operation 1114 by
returning to the decision 1104 such that subsequent rotational movement
inputs can be processed to view other portions of the list items in a
similar manner.
[0090] FIG. 12 is a block diagram of a rotary input display system 1200 in
accordance with one embodiment of the invention. By way of example, the
rotary input display system 1200 can be performed by a computing device,
such as the computer system 650 illustrated in FIG. 7A or the media
player 700 illustrated in FIG. 7B. The rotary input display system 1200
utilizes a rotational input device 1202 and a display screen 1204. The
rotational input device 1202 is configured to transform a rotational
motion 1206 by a user input action (e.g., a swirling or whirling motion)
into translational or linear motion 1208 on the display screen 1204. In
one embodiment, the rotational input device 1402 is arranged to
continuously determine either the angular position of the rotational
input device 1202 or the angular position of an object relative to a
planar surface 1209 of the rotational input device 1202. This allows a
user to linearly scroll through a media list 1211 on the display screen
1204 by inducing the rotational motion 1206 with respect to the
rotational input device 1202.
[0091] The rotary input display system 1200 also includes a control
assembly 1212 that is coupled to the rotational input device 1202. The
control assembly 1212 is configured to acquire the position signals from
the sensors and to supply the acquired signals to a processor 1214 of the
system. By way of example, the control assembly 1212 may include an
application-specific integrated circuit (ASIC) that is configured to
monitor the signals from the sensors to compute the angular location and
direction (and optionally speed and acceleration) from the monitored
signals and to report this information to the processor 1214.
[0092] The processor 1214 is coupled between the control assembly 1212 and
the display screen 1204. The processor 1214 is configured to control
display of information on the display screen 1204. In one sequence, the
processor 1214 receives angular motion information from the control
assembly 1212 and then determines the next items of the media list 1211
that are to be presented on the display screen 1204. In making this
determination, the processor 1214 can take into consideration the length
of the media list 1211. Typically, the processor 1214 will determine the
rate of movement such that the transitioning to different items in the
media list 1211 can be performed faster or in an accelerated manner when
moved at non-slow speeds or proportional with greater speeds. In effect,
to the user, rapid rotational motion causes faster transitioning through
the list of media items 1211. Alternatively, the control assembly 1212
and processor 1214 may be combined in some embodiments.
[0093] Although not shown, the processor 1214 can also control a buzzer to
provide audio feedback to a user. The audio feedback can, for example, be
a clicking sound produced by a buzzer 1216. In one embodiment, the buzzer
1216 is a piezoelectric buzzer. As the rate of transitioning through the
list of media items increases, the frequency of the clicking sounds
increases. Alternatively, when the rate of transitioning slows, the
frequency of the clicking sounds correspondingly slows. Hence, the
clicking sounds provide audio feedback to the user as to the rate in
which the media items within the list of media items are being traversed.
[0094] The various aspects, features or embodiments of the invention
described above can be used alone or in various combinations. The
invention is preferably implemented by a combination of hardware and
software, but can also be implemented in hardware or software. The
invention can also be embodied as computer readable code on a computer
readable medium. The computer readable medium is any data storage device
that can store data which can thereafter be read by a computer system.
Examples of the computer readable medium include read-only memory,
random-access memory, CD-ROMs, DVDs, magnetic tape, optical data storage
devices, and carrier waves. The computer readable medium can also be
distributed over network-coupled computer systems so that the computer
readable code is stored and executed in a distributed fashion.
[0095] The advantages of the invention are numerous. Different embodiments
or implementations may yield one or more of the following advantages. It
should be noted that this is not an exhaustive list and there may be
other advantages which are not described herein. One advantage of the
invention is that a user is able to traverse through a displayed list of
items using a rotational user input action. Another advantage of the
invention is that a user is able to easily and rapidly traverse a lengthy
list of items. Still another advantage of the invention is the rate of
traversal of the list of media items can be dependent on the rate of
rotation of a dial (or navigation wheel). Yet still another advantage of
the invention is that audible sounds are produced to provide feedback to
users of their rate of traversal of the list of media items.
[0096] The many features and advantages of the present invention are
apparent from the written description, and thus, it is intended by the
appended claims to cover all such features and advantages of the
invention. Further, since numerous modifications and changes will readily
occur to those skilled in the art, it is not desired to limit the
invention to the exact construction and operation as illustrated and
described. Hence, all suitable modifications and equivalents may be
resorted to as falling within the scope of the invention.
* * * * *