PATENT DOCUMENT

Publication Number: US-8473082-B2
Application Number: US-76435210-A
Country: US
Kind Code: B2

Title: Portable media playback device including user interface event passthrough to non-media-playback processing

Abstract:
A method of operating a portable electronics device can include integrated operation of media playback processing and non-media-playback processing (such as, for example, a game). The method can include receiving an event corresponding to operation of a user interface item by a user of the portable electronics device. The received event can be provided to the non-media-playback processing. The non-media-playback processing can determine whether to cause an action corresponding to the provided received event with respect to the non-media-playback processing. For an event determined by the non-media-playback processing to not cause an action corresponding to the provided received event with respect to the non-media-playback processing, the provided received event can be provided to the media playback processing. Typically, the operating performed by the media playback processing based on the event can be the processing that would otherwise be performed by the media playback processing if the non-media-playback processing was not even occurring.

Claims:
What is claimed is: 
     
       1. A method, comprising:
 receiving a user input event at a user interface of a portable electronic device, the portable electronic device operable in a predictive mode and a non-predictive mode, wherein the user input event is received by a media-playback a application of the portable electronic device; 
 transmitting the user in the media-playback application to a non-media-playback application of the portable electronic device for processing said user input event; 
 processing the user input event by the non-media-playback application, wherein the processing includes:
 determining an operation associated with the received user input event; 
 determining if the operation is a non-predictive mode operation; 
 performing the non-predictive mode operation if the operation is determined as said non-predictive mode operation, otherwise,
 automatically transmitting, without user intervention, the user input event to the media-playback application for performing a predictive mode operation; 
 
 wherein the operation is performed on the portable electronic device. 
 
 
     
     
       2. The method as recited in  claim 1  wherein:
 the portable includes a processor, the processor arranged to execute the non-media-playback application in the non-predictive mode and the media-play-back application in the predictive mode. 
 
     
     
       3. The method as recited in  claim 2 , further comprising:
 providing an output queue; 
 writing the user input event to the output queue by the processor only when it is determined that the operation is the predictive mode operation. 
 
     
     
       4. The method as recited in  claim 3 , further comprising:
 reading the output queue by the media-playback application; and 
 performing the predictive mode operation corresponding to the user input event written in the queue. 
 
     
     
       5. A portable electronic device operable in a predictive mode and a non-predictive mode, comprising:
 a user interface, the user interface configured for receiving a user input event: 
 a processor in communication with the user interface, the processor configured to automatically operate the portable electronic device in the predictive mode or the non-predictive mode based upon the received user input event, wherein the processor configuration comprises:
 receiving the user input event at the user interface, wherein the user input event is received by a media-playback application of the portable electronic device; 
 transmitting the user input event from the media- playback application to a non-media-playback application of the portable electronic device for processing said user input event; 
 processing the user input event by the non-media-playback application, wherein he processing includes:
 determining an operation associated with the received user input event; 
 determining if the operation is a non-predictive mode operation; Performing the non-predictive mode operation if the operation is determined as said non-predictive mode operation, otherwise,
 automatically transmitting, without user intervention, the user input event to the media-playback application for performing a predictive mode, operation; 
 
 wherein the operation is performed on the portable electronic device. 
 
 
 
     
     
       6. The portable electronic device as recited in  claim 5 , wherein the processor is arranged to execute the non-media-playback application in the non-predictive mode and the media-playback application in the predictive type mode. 
     
     
       7. The portable electronic device as recited in  claim 6 , further comprising:
 an output queue, wherein the processor writes the user input event to the output queue only when it is determined that the operation is the predictive mode operation. 
 
     
     
       8. The portable electronic device as recited in  claim 7 , wherein the media-playback application instructs the processor to,
 read the output queue, and 
 perform the predictive mode operation corresponding to the user input event written in the queue. 
 
     
     
       9. A non-transitory computer readable medium of a portable electronic device that provides instructions, that if executed by a processor of the portable electronic device will cause the processor to perform operations for automatically operating the portable electronic device in a predictive mode or a non-predictive mode, comprising:
 receiving the user input event at a user interface of the portable electronic device, the portable electronic device operable in the predictive mode and a the non-predictive mode, wherein the user input event is received by a media-playback application of the portable electronic device; 
 transmitting the user input event from the media-playback application to a non-media-playback application of the portable electronic device for processing said user input event; 
 processing the user input event by the non-media-playback application, wherein the processing includes:
 determining an operation associated with the received user input event; 
 determining if the operation is a non-predictive mode operation; 
 performing the non-predictive mode operation if the operation is determined as said non-predictive mode operation, otherwise,
 automatically transmitting, without user intervention, the user input event to the media-playback application for performing a predictive mode operation; 
 
 wherein the operation is performed on the portable electronic device. 
 
 
     
     
       10. The non transitory computer readable medium as recited in  claim 9 , wherein the non-predictive mode operation is performed by the non-media a back application and the predictive mode operation is performed by the media-playback application. 
     
     
       11. The non-transitory computer readable medium as recited in further comprising:
 providing an output queue; 
 writing the user input event to the output queue only when it is determined that the operation is the predictive mode operation. 
 
     
     
       12. The non-transitory computer readable medium as recited in  claim 11 , wherein:
 the media-playback application reads the output queue and performs the predictive mode operation corresponding to the user input event written in the queue. 
 
     
     
       13. The method as recited in  claim 1 , further comprising:
 receiving the user input event from the non-media-playback application by the media-playback application and performing the predictive mode operation only if the user input event is transmitted from the non-media-playback application to the media-playback application. 
 
     
     
       14. The method as recited in  claim 1 , further comprising:
 providing an input queue for handling user interface events, wherein the media-playback application transmits the user input event to the input queue for processing the user interface event. 
 
     
     
       15. The method as recited in  claim 14 , wherein:
 the non-media-playback application receives the user input event from the input queue for processing the user interface event. 
 
     
     
       16. The method as recited in  claim 1 , further comprising:
 providing an output queue for handling user interface events, wherein the non-media-playback application, upon determining the user input event includes a predictive mode operation, transmits the user input event to the media-playback application by employing, the output queue. 
 
     
     
       17. The method as recited in  claim 16 , wherein:
 the media-playback application receives the user input event from the output queue. 
 
     
     
       18. The device as recited as in  claim 5 , wherein the processor configuration further comprises:
 receiving the user input event from the non-media-playback application by the media-playback application and performing the predictive mode operation only if the user input event is transmitted from the non-media-playback application to the media-playback application. 
 
     
     
       19. The device as recited in  claim 5 , wherein the processor configuration further comprises:
 an input queue for handling user interface events, wherein the media-playback application transmits the user input event to the input queue for processing the user interface event. 
 
     
     
       20. The device as recited in  claim 19 , wherein:
 the non-media-playback application receives the user input event from the input queue for processing the user interlace event. 
 
     
     
       21. The device as recited in  claim 5 , wherein the processor configuration further comprises:
 an output queue for handling user interface events, wherein the non-media-playback application, upon determining the user input event includes a predictive mode operation, transmits the user input event to the media-playback application by employing the output queue. 
 
     
     
       22. The device as recited in  claim 21 , wherein:
 the media-playback application receives the user input event from the output queue. 
 
     
     
       23. The non-transitory computer readable medium as recited in  claim 9 , further comprising:
 receiving the user input event from the non-media-playback application by the media-playback application and performing the predictive mode operation only if the user input event is transmitted from the non-media-playback application to the media-playback application. 
 
     
     
       24. The non-transitory computer readable medium as recited in  claim 9 , further comprising:
 providing an input queue for handling user interface events, wherein the media-playback application transmits the user input event to the input queue for processing the user interface event. 
 
     
     
       25. The non-transitory computer readable medium as recited in  claim 24  wherein:
 the non-media-playback application receives the user input event from the input queue for processing the user interface event. 
 
     
     
       26. The non-transitory computer readable medium as recited in  claim 9 , further comprising:
 providing an output queue for handling user interface events, wherein the non-media-playback application, upon determining the user input event includes a predictive mode operation, transmits the user input event to the media-playback application by employing the output queue. 
 
     
     
       27. The non-transitory computer readable medium as recited in  claim 26 , wherein:
 the media-playback application receives the user input event from the output queue. 
 
     
     
       28. A non-transitory computer readable medium of a portable electronic device that provides instructions, that if executed by a processor of the portable electronic device will cause the processor to perform operations for automatically operating the portable electronic device in a predictive mode or a non-predictive mode, comprising:
 receiving the user input event at a user interface of the portable electronic device, the portable electronic device operable in the predictive mode and the non-predictive mode, wherein the user input event is received by a first application of the portable electronic device; 
 transmitting the user input event from the first application to a second application of the portable electronic device for processing said user input event; 
 processing the user input event by the second application, wherein the processing includes:
 determining an operation associated with the received user input event; 
 determining if the operation is a non-predictive mode operation; 
 performing the non-predictive mode operation if the operation is determined as said non-predictive mode operation, otherwise,
 automatically transmitting, without user intervention, the user input event to the first application for performing a predictive mode operation; 
 
 wherein the operation is performed on the portable electronic device. 
 
 
     
     
       29. The non-transitory computer readable medium as recited in  claim 28 , wherein the non-predictive mode operation is performed by the second application and the predictive mode operation is performed by the first application. 
     
     
       30. The non-transitory computer readable medium as recited in  claim 29 , further comprising:
 providing an output queue; 
 writing the user input event to the output queue only when it is determined that the operation is the predictive mode operation. 
 
     
     
       31. The non-transitory computer readable medium as recited in  claim 30 , wherein:
 the first application reads the output queue and performs the predictive mode operation corresponding to the user input event written in the queue. 
 
     
     
       32. The non-transitory computer readable medium as recited in  claim 28 , further comprising:
 providing an input queue for handling user interface events, wherein the first application transmits the user input event to the input queue for processing the user interface event. 
 
     
     
       33. The non-transitory computer readable medium as recited in  claim 32  wherein:
 the second application receives the user input event from the input queue for processing the user interface event. 
 
     
     
       34. The non-transitory computer readable medium as recited in  claim 28 ,further comprising:
 providing an output queue for handling user interface events, wherein the second application, upon determining the user input event includes a predictive mode operation, transmits the user input event to the first application by employing the output queue. 
 
     
     
       35. The non-transitory computer readable medium as recited in  claim 34 , wherein:
 the first application receives the user input event from the output queue. 
 
     
     
       36. A non-transitory computer readable medium of portable electronic device that provides instructions, that if executed by a processor of the portable electronic device will cause the processor to perform operations for automatically operating the portable electronic device in a predictive mode or a non-predictive mode, comprising:
 receiving the user input event at a user interface of the portable electronic device, the portable electronic device operable in the predictive mode and the non-predictive mode, wherein the user input event is received by a first application of the portable electronic device; 
 transmitting the user input event from the first application to a second application of the portable electronic device for processing said user input event; 
 processing the user input event by the second application, wherein the processing includes:
 determining an operation associated with the received user input event; 
 determining if the operation is a predictive mode or non-predictive mode operation that can executed by the second application; 
 performing the predictive or non-predictive mode operation if the operation is determined as one that can be executed by the second application, otherwise, 
 automatically transmitting, without user intervention, the user input event to the first application for performing the predictive or non-predictive mode operation; 
 wherein the operation is performed on the portable electronic device. 
 
 
     
     
       37. The non-transitory computer readable medium as recited in  claim 36 , further comprising:
 providing an output queue; 
 writing the user input event to the output queue only when it is determined that the operation cannot be executed by the second application. 
 
     
     
       38. The non-transitory computer readable medium as recited in  claim 37 , wherein:
 the first application reads the output queue and performs the predictive mode operation or the non-predictive mode operation corresponding to the user input event written in the queue. 
 
     
     
       39. The non-transitory computer readable medium as recited in  claim 36 , further comprising:
 providing an input queue for handling user interface events, wherein the first application transmits the user input event to the input queue for processing the user interlace event. 
 
     
     
       40. The non-transitory computer readable medium as recited in  claim 39  wherein:
 the second application receives the user input event from the input queue for processing the user interface event. 
 
     
     
       41. The non-transitory computer readable medium as recited in  claim 36 , further comprising:
 providing an output queue for handling user interface events, wherein the second application, upon determining the user input event cannot be executed by the second application, transmits the user input event to the first application by employing the output queue. 
 
     
     
       42. The non-transitory computer readable medium as recited in  claim 41 , wherein:
 the first application receives the user input event from the output queue.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of and claims priority under 35 U.S.C. §120 to U.S. patent application Ser. No. 11/530,773 filed Sep. 11, 2006 and is hereby incorporated by reference. 
    
    
     BACKGROUND 
     Portable electronic devices for media playback are becoming ever more popular. For example, a very popular portable media player is the line of iPod® media players from Apple Inc. of Cupertino, Calif. In addition to media playback, the iPod® media players also provide non-media-playback capabilities, including game playing capabilities. 
     SUMMARY 
     The inventors have realized that it is desirable to create an integrated media playback and non-media-playback experience. 
     Methods of operating a portable electronics device can include integrated operation of media playback processing and non-media-playback processing (such as, for example, game processing). The method can include receiving an event corresponding to operation of a user interface item by a user of the portable electronics device. The received event can be provided to the non-media-playback processing. The non-media-playback processing can determine whether to cause an action corresponding to the provided received event with respect to the non-media-playback processing. 
     For an event determined by the non-media-playback processing to not cause an action corresponding to the provided received event with respect to the non-media-playback processing, the provided received event can be provided to the media playback processing. Typically, the operating performed by the media playback processing based on the event can be the processing that would otherwise be performed by the media playback processing if the non-media-playback processing was not even occurring. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is an architecture diagram broadly illustrating an example of processing to handle UI events to a portable electronics device such that the UI events may be operated upon by media playback processing and non-media-playback processing, as appropriate. 
         FIG. 2  is a flowchart illustrating processing within a non-media-playback (e.g., game) application, and 
         FIG. 3  is a flowchart illustrating processing of a media player application. 
     
    
    
     DETAILED DESCRIPTION 
     Methods are described to handle UI events to a portable electronics device such that the UI events may be operated upon by media playback processing and non-media-playback processing, as appropriate. The media playback processing and the non-media-playback processing may occur, at least when considered at a macroscopic level, in parallel. For example, the media playback processing may include playback of songs, such as is a commonly-known function of an iPod® media player. In general, the media playback nominally occurs in a predictive manner and, while user interaction may affect the media playback audio (e.g., by a user activating a “fast forward” or other user interface item), the media playback nominally occurs in a predictive manner. 
     In one example, an event corresponding to operation of a user interface item by a user of the portable electronics device is received. The received event is provided to the non-media-playback processing. The non-media-playback processing includes processing to determine whether to cause an action corresponding to the provided received event, with respect to the non-media-playback processing. For an event determined by the non-media-playback processing to not cause an action corresponding to the received event with respect to the non-media-playback processing, the received event is provided to the media playback processing. 
     A game application is an example of non-media-playback processing. That is, the game application substantially operates responsive to game-playing actions of a user of the portable media player. In this respect, the game video is not nominally generated in a predictive manner, as is the case with media playback processing. 
       FIG. 1  is an architecture diagram broadly illustrating an example of this processing. As shown in  FIG. 1 , a user interface event  110  is received by the media player application  102  executing on a portable media player device. For example, the user interface event  110  is a result of a user interacting with a user interface (for example, a physical or virtual knob, switch etc.) of the portable media player. At step  106  of processing with the media player application  102 , the media player application  102  passes through the UI event  110  to the non-media-playback application  104  (in this example, a game playing application). 
     At step  112 , within the game playing application  104 , the game playing application  104  determines whether it is configured to act on the UI event  110  that was passed to the game playing application  104  through the media player application  102 . If the determination at step  112  is yes, then the UI event is acted upon at step  114 , within the game playing application  104 . 
     Otherwise, at step  116  within the game playing application  104 , the UI event is passed back to the media player application  102 . Then, at step  108  within the media player application  102 , the UI event is acted upon by the media player application. 
       FIGS. 2 and 3  illustrate a particular implementation of the UI event processing, wherein an input queue and an output queue are employed for handling the UI events.  FIG. 2  illustrates processing within the non-media-playback (e.g., game) application. At step  202 , a UI event is read from an input queue. At step  204 , the game application determines if it is configured to act on the UI event. If yes, the game application acts on the UI event at step  206 . If no, the game application operates to write the UI event to an output queue. 
     Meanwhile, the media player application ( FIG. 3 ) operates on a frame-by-frame basis. Within one frame of processing, step  302  (and, in some instances, discussed below), step  304  and step  306  are performed. At step  302 , it is determined if there is a UI event in the output queue. (Remember, a UI event ends up in the output queue as a result of step  208  of the game application processing, where the game application is not configured to act on the UI event.) If, at step  302 , there is not a UI event in the output queue, then processing returns to step  302 , for a subsequent frame. 
     Otherwise, if at step  302  there is a UI event in the output queue, then an operation is performed, at step  304 , corresponding to the UI event. At step  306 , the just-processed UI event is removed from the output queue. 
     As an example, the UI event may correspond to the “next button up.” For example, if a game or other non-media-playback processing is not configured to handle this event, then the media playback processing will perform a “standard” next command. This may include traversing to the next chapter, if playing a chaptered track such as a podcast or audiobook, or playing the next playable track in the “now playing” list. In other words, the typically, the operating performed by the media playback processing based on the event is the processing that would otherwise be performed by the media playback processing if the non-media-playback processing was not even occurring. 
     Thus, the non-media-playback processing can determine which events to handle, and other events can be passed back to the playback processing. 
     The following applications are incorporated herein by reference in their entirety: U.S. patent application Ser. No. 11/530,807, filed Sep. 11, 2006, entitled “TECHNIQUES FOR INTERACTIVE INPUT TO PORTABLE ELECTRONIC DEVICES,”; and U.S. patent application Ser. No. 11/530,846, filed Sep. 11, 2006, entitled “ALLOWING MEDIA AND GAMING ENVIRONMENTS TO EFFECTIVELY INTERACT AND/OR AFFECT EACH OTHER,”.

Metadata:
Filing Date: 20100421
Publication Date: 20130625
Grant Date: 20130625
Priority Date: 20060911
Inventors: BOETTCHER JESSE
Assignee: APPLE INC
CPC Classifications: [{"code": "G06F16/44", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F16/4387", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/04817", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0482", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F2209/545", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F2209/545", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F9/542", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F3/04815", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F9/542", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F2209/545", "inventive": false, "first": false, "tree": "[]"}, {"code": "G06F9/542", "inventive": true, "first": true, "tree": "[]"}]
Family ID: 39149214