PATENT DOCUMENT

Publication Number: US-7710393-B2
Application Number: US-61018106-A
Country: US
Kind Code: B2

Title: 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.

Claims:
1. A method of scrolling through portions of a data set to be displayed on a pocket sized portable device having a display and a rotational input that can be continuously actuated by a circular motion of a finger through 360 degrees of rotation, the method comprising:
 receiving a number of units associated with a rotational user input, the rotational user input being provided by a user through interaction with the rotational input, 
 determining an acceleration factor associated with the rotational user input, wherein the acceleration factor is dependent upon a rate of speed of the rotational user input, and the acceleration factor provides a range of acceleration, 
 modifying the number of units by the acceleration factor, 
 determining a next portion of the data set based on the modified number of units, 
 presenting the next portion of the data set, and 
 providing at least audio feedback or visual feedback via the display for the user of the portable device as interaction with the rotational input occurs. 
 
     
     
       2. The method of  claim 1 , wherein the data set is associated with a list of items, and the portions of the data set comprise at least one of the items. 
     
     
       3. The method of  claim 1 , wherein the data set is associated with a media file comprising a plurality of sections and the portions of the data set are associated with at least one section of the media file. 
     
     
       4. The method of  claim 3 , wherein the media file comprises an audio file. 
     
     
       5. The method of  claim 1 , wherein the rotational user input comprises a touch pad. 
     
     
       6. The method of  claim 5 , wherein the touch pad comprises a circular touch pad. 
     
     
       7. The method of  claim 1 , wherein the acceleration factor can successively increase to provided successively greater levels of acceleration. 
     
     
       8. The method of  claim 1 , wherein determining the next data portion comprises converting the modified number of units into the next portion based on a predetermined value. 
     
     
       9. The method of  claim 1 , wherein determining the next data portion comprises dividing the modified number of units by a chunking value. 
     
     
       10. The method of  claim 1 , wherein determining 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. 
     
     
       11. A method for scrolling through portions of a data set to be displayed on a pocket sized portable device having a display and a rotational input that can be continuously actuated by a circular motion of a finger through 360 degrees of rotation, the method comprising:
 receiving a number of units from the rotational input, the number of units being associated with a rotational user input provided by a user through interaction with the rotational input, 
 determining a speed of rotation for the rotational input, 
 applying acceleration if the speed of rotation is greater than a speed threshold, 
 removing applied acceleration if the speed of rotation is less then the speed threshold, 
 modifying the number of units in accordance with the applied acceleration, 
 determining a next portion of the data set based on the modified number of units, 
 presenting the next portion of the data set, and 
 providing at least audio feedback or visual feedback via the display for the user of the portable device as interaction with the rotational input occurs. 
 
     
     
       12. A method for scrolling through portions of a data set to be displayed on a pocket sized portable device having a display and a rotational input that can be continuously actuated by a circular motion of a finger through 360 degrees of rotation, the method comprising:
 receiving a number of units associated with a rotational user input, the rotational user input being provided by a user through interaction with the rotational input, 
 determining a multiplier associated with the rotational user input, 
 modifying the number of units by the multiplier, 
 determining a next portion of the data set based on the modified number of units, 
 presenting the next portion of the data set, and 
 providing at least audio feedback or visual feedback via the display for a user of the portable device as interaction with the rotational input occurs. 
 
     
     
       13. A method for scrolling through portions of a data set to be displayed on a pocket sized portable device having a display and a rotational input that can be continuously actuated by a circular motion of a finger through 360 degrees of rotation, the method comprising:
 receiving a number of units associated with a rotational user input, the rotational user input being provided by a user through interaction with the rotational input, 
 determining a multiplier associated with the rotational user input, 
 modifying the number of units by the multiplier, 
 determining a next portion of the data set based on the modified number of units, and 
 presenting the next portion of the data set, wherein as the interaction with the rotational input occurs, visual feedback correlated to the rotational user input is provided on the display for the user of the portable device, and 
 wherein the multiplier can successively increase to provided successively greater levels of acceleration. 
 
     
     
       14. A pocket seized portable media control device comprising:
 a rotational input configured to respond to a continuous rotational movement of a finger or stylus through 360 degrees of rotation, 
 a display configured to display media items and to enable scrolling through the displayed media items at a first rate in response to rotational movement of a finger or stylus relative to the rotational input, and 
 a processor configured to modify the first rate in response to a change in speed of the rotational movement, whereby rotational movement of the finger or stylus relative to the rotational input enables both scrolling through the displayed media items and modifying the rate of scrolling through the displayed media items. 
 
     
     
       15. A method of scrolling through portions of a data set to be displayed on a portable device having a display and a rotational input, the method comprising:
 receiving a number of units associated with a rotational user input, the rotational user input being provided by a user through interaction with the rotational input, 
 determining an acceleration factor associated with the rotational user input comprising adding a prior remainder value to the modified number of units and converting the modified number of units into the next portion, 
 modifying the number of units by the acceleration factor, 
 determining a next portion of the data set based on the modified number of units, 
 presenting the next portion of the data set, and 
 providing at least audio feedback or visual feedback via the display for the user of the portable device as interaction with the rotational input occurs.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 10/256,716, filed Sep. 26, 2002, and entitled “METHOD AND APPARATUS FOR ACCELERATED SCROLLING,” which is hereby incorporated by reference herein, and which claims benefit of priority from: (i) 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; (ii) 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; (iii) 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. 
     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 
     1. Field of the Invention 
     The present invention relates generally to a computing device and, more particularly, to a handheld computing device having a rotational input unit. 
     2. Description of the Related Art 
     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. 
     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&#39;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. 
     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. 
     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. 
     Thus, there is always a need for improved user input devices that facilitate greater ease of use of computing devices. 
     SUMMARY OF THE INVENTION 
     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. 
     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 
       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: 
         FIG. 1  is a flow diagram of scroll processing according to one embodiment of the invention. 
         FIG. 2  is a flow diagram of list navigation processing according to another embodiment of the invention. 
         FIG. 3  is a flow diagram of acceleration amount processing according to one embodiment of the invention. 
         FIG. 4  is a flow diagram of acceleration amount processing according to another embodiment of the invention. 
         FIG. 5  is a representative acceleration state machine according to one embodiment of the invention. 
         FIG. 6  is a flow diagram of next portion determination processing according to one embodiment of the invention. 
         FIG. 7A  is a perspective diagram of a computer system in accordance with one embodiment of the invention. 
         FIG. 7B  is a perspective diagram of a media player in accordance with one embodiment of the present invention. 
         FIG. 8A  is a block diagram of a media player according to one embodiment of the invention. 
         FIG. 8B  is a block diagram of a computing system according to one embodiment of the invention. 
         FIG. 9  shows the media player of  FIG. 7B  being used by a user in accordance with one embodiment of the invention. 
         FIG. 10A  is a flow diagram of user input processing according to one embodiment of the invention. 
         FIG. 10B  is a flow diagram of user input processing according to another embodiment of the invention. 
         FIG. 11  is a flow diagram of user input processing according to another embodiment of the invention. 
         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 
     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. 
     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. 
       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. 
     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. 
     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. 
     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. 
     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. 
       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. 
     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. 
       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 . 
     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. 
     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. 
     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 (Δt 1 ) since the last time the acceleration was altered exceeds a first threshold (TH 1 ). When the decision  308  determines that the amount of time (Δt 1 ) since the last acceleration update is longer than the first threshold amount (TH 1 ), then the acceleration factor is modified  310 . In particular, in this embodiment, the modification  310  causes the acceleration factor to be doubled. 
     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., Δt 1 ). 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 (TH 1 ), the acceleration amount processing  300  is complete and ends. 
     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. 
       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 (Δt 2 ) since the last rotational user input is greater than a second threshold (TH 2 ). When the decision  402  determines that the duration of time (Δt 2 ) since the last rotational user input exceeds the second threshold (TH 2 ), 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 (TH 2 ), 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. 
     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 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. 
     Still further, the acceleration amount processing  400  stores  406  a last input time. The last input time (t 2 ) represents the time the last rotational user input was received (or processed). Note that the duration of time (Δt 2 ) can be determined by the difference between a current time associated with an incoming rotational user input and the last input time (t 2 ). 
     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). 
     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. 
       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× 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× 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× 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 . 
       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   
     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. 
     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. 
     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. 
       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 . 
       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&#39;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. 
     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. 
     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 . 
     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 . 
     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). 
     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. 
     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  712 A that surround the outer perimeter and one button  712 B 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. 
     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. 
       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 . 
     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). 
     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 ). 
     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. 
       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 . 
     The computing system  850  includes a housing  852  that exposes a rotational input device  854 . The housing  852  can be a computer&#39;s housing or an input/output device&#39;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&#39;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 . 
     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 . 
     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. 
     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. 
       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 . 
     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 . 
       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 . 
     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&#39;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. 
       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 . 
     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. 
       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 . 
     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 . 
     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. 
       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 . 
     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 . 
     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. 
     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. 
     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. 
     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. 
     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.

Metadata:
Filing Date: 20061213
Publication Date: 20100504
Grant Date: 20100504
Priority Date: 20011022
Inventors: TSUK ROBERT W.
ROBBIN JEFFREY L.
Assignee: APPLE INC
CPC Classifications: [{"code": "G09G5/34", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F1/1662", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/167", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F1/1626", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0362", "inventive": true, "first": true, "tree": "[]"}, {"code": "H04M1/233", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F1/1626", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F3/03543", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0485", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F1/169", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F1/1662", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F1/169", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/038", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/03543", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0485", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F1/169", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0362", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/017", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F1/1662", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F1/1626", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0416", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M1/233", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F3/0485", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M1/233", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F3/03543", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0362", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F3/167", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F2203/04808", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F3/038", "inventive": true, "first": false, "tree": "[]"}, {"code": "G09G5/34", "inventive": true, "first": false, "tree": "[]"}, {"code": "H04M1/72469", "inventive": false, "first": false, "tree": "[]"}, {"code": "H04M1/72469", "inventive": false, "first": false, "tree": "[]"}]
Family ID: 27500576