Methods and systems are described. In one aspect, a control user interface including selectable representations identifying a plurality of operating media players is presented. A user selection identifying a selected portion of the plurality of operating media players is received. And, an indication is provided allowing a media player in the selected portion access to a presentation device.
|
21. A presentation device, comprising:
a non-transitory memory storing instructions and a plurality of applications including a first media player application, a second application, and a third media player application;
a touchscreen; and
one or more processors in communication with the non-transitory memory and the touchscreen, wherein the one or more processors execute the instructions to:
present, utilizing the touchscreen, a first media player application window associated with the first media player application that is allowed to play one or more media streams, where the first media player application window is presented with at least one first input control including at least one of a play input control or a pause input control;
detect, utilizing the touchscreen, a selection of an option;
in response to the detection of the selection of the option, present, utilizing the touchscreen, a control user interface adjacent and exterior to the first media player application window associated with the first media player application, the control user interface including a plurality of non-overlapping selectable representations identifying a subset of the plurality of applications that are executed, the selectable representations including: a second application window representation associated with the second application and having a first order attribute, and a third media player application window representation associated with the third media player application and having a second order attribute;
detect, utilizing the touchscreen, a selection of one of the selectable representations of the control user interface including the second application window representation associated with the second application;
in response to the detection of the selection of the one of the selectable representations of the control user interface including the second application window representation associated with the second application, present, utilizing the touchscreen, the second application window, where the second application window associated with the second application is simultaneously presented, utilizing the touchscreen, with the first media player application window associated with the first media player application;
detect, utilizing the touchscreen, a selection of a visual element presented in connection with the first media player application window associated with the first media player application; and
in response to the detection of the selection of the visual element presented in connection with the first media player application window associated with the first media player application, indicate that the third media player application is allowed to play at least one media stream, and present, utilizing the touchscreen, the at least one media stream in the third media player application window.
1. A presentation device, comprising:
a non-transitory memory storing instructions and a plurality of applications including a first media player application, a second media player application, and a third application;
a touchscreen; and
one or more processors in communication with the non-transitory memory and the touchscreen, wherein the one or more processors execute the instructions to:
present, utilizing the touchscreen, a first media player application window associated with the first media player application;
detect, utilizing the touchscreen, a predetermined input;
in response to the detection of the predetermined input, present, utilizing the touchscreen, a control user interface adjacent and exterior to the first media player application window associated with the first media player application, the control user interface including a plurality of non-overlapping selectable representations identifying a subset of the plurality of applications that are executed, the selectable representations including: a second media player application window representation associated with the second media player application and having a first order attribute, and a third application window representation associated with the third application and having a second order attribute;
detect, utilizing the touchscreen, a selection of one of the selectable representations of the control user interface including the second media player application window representation associated with the second media player application;
in response to the detection of the selection of the one of the selectable representations of the control user interface, indicate that the second media player application is allowed to play one or more media streams in addition to the first media player application being allowed to play one or more other media streams, where the first media player application window associated with the first media player application is simultaneously presented, utilizing the touchscreen, with a second media player application window associated with the second media player application, such that the first media player application window is presented with at least one first input control and the second media player application window is presented with at least one second input control, the at least one first input control and the second input control each including at least one of a play input control or a pause input control;
detect, utilizing the touchscreen, a selection of the at least one first input control presented with the first media player application window;
in response to the detection of the selection of the at least one first input control presented with the first media player application window, present, utilizing the touchscreen, a first media stream in the first media player application window;
detect, utilizing the touchscreen and while the first media stream is being presented in the first media player application window, a selection of the at least one second input control presented with the second media player application window; and
in response to the detection of the selection of the at least one second input control presented with the second media player application window while the first media stream is being presented in the first media player application window, pause the presentation of the first media stream in the first media player application window, and present, utilizing the touchscreen, a second media stream in the second media player application window.
30. A presentation device, comprising:
a non-transitory memory storing instructions and a plurality of applications including a first media player application, a second media player application, and a third application;
a touchscreen; and
one or more processors in communication with the non-transitory memory and the touchscreen, wherein the one or more processors execute the instructions to:
present, utilizing the touchscreen, a first media player application window associated with the first media player application;
detect, utilizing the touchscreen, a user input in connection with an option;
in response to the detection of the user input in connection with the option, present, utilizing the touchscreen, a control user interface adjacent and exterior to the first media player application window associated with the first media player application, the control user interface including a plurality of non-overlapping selectable representations identifying a subset of the plurality of applications that are the subject of execution, the selectable representations including: a second media player application window representation associated with the second media player application and having a first order attribute, and a third application window representation associated with the third application and having a second order attribute;
detect, utilizing the touchscreen, a selection of one of the selectable representations of the control user interface including the second media player application window representation associated with the second media player application;
in response to the detection of the selection of the one of the selectable representations of the control user interface, indicate that the second media player application is allowed to play one or more media streams in addition to the first media player application being allowed to play one or more other media streams, where the first media player application window associated with the first media player application is simultaneously presented, utilizing the touchscreen, with a second media player application window associated with the second media player application, such that the first media player application window is presented with at least one first input control and the second media player application window is presented with at least one second input control, the at least one first input control and the second input control each including at least one of a play input control or a pause input control;
detect, utilizing the touchscreen, a selection of the at least one first input control presented with the first media player application window;
in response to the detection of the selection of the at least one first input control presented with the first media player application window, present, utilizing the touchscreen, a first media stream in the first media player application window;
detect, utilizing the touchscreen, a selection of the at least one second input control presented with the second media player application window;
in response to the detection of the selection of the at least one second input control presented with the second media player application window, present, utilizing the touchscreen, a second media stream in the second media player application window;
determine whether at least one of the subset of the plurality of applications ceases operating; and
in response to the determination that the at least one of the subset of the plurality of applications ceases operating, remove one of the selectable representations from the control user interface that corresponds with the at least one of the subset of the plurality of applications.
2. The presentation device of
3. The presentation device of
detect, utilizing the touchscreen, user input in connection with at least one of the selectable representations of the control user interface; and
in response to the detection of the user input, change, utilizing the touchscreen, a visibility attribute of the at least one selectable representation of the control user interface.
4. The presentation device of
detect a new application;
refrain from identifying the new application with a corresponding selectable representation in the control user interface;
detect a user input in connection with the new application; and
in response to the detection of the user input in connection with the new application and the new application being executed, present the corresponding selectable representation in the control user interface.
5. The presentation device of
6. The presentation device of
7. The presentation device of
8. The presentation device of
9. The presentation device of
10. The presentation device of
11. The presentation device of
detect user input in connection with the first media player application window associated with the first media player application, which includes a browser application; and
in response to the detection of the user input in connection with the first media player application window, select the third application which is a video player application and change a visibility thereof.
12. The presentation device of
13. The presentation device of
determine that at least one of the subset of the plurality of applications is no longer executed; and
in response to the determination, remove at least one of the selectable representations from the control user interface that corresponds with the at least one of the subset of the plurality of applications determined to be no longer executed.
14. The presentation device of
15. The presentation device of
16. The presentation device of
detect, while the first media stream is being presented in the first media player application window, the selection of the at least one second input control presented with the second media player application window; and
in response to the detection of the selection of the at least one second input control presented with the second media player application window while the first media stream is being presented in the first media player application window, the presentation of the first media stream in the first media player application window continues during a presentation of the second media stream via a separate presentation device.
17. The presentation device of
in response to the detection of the selection of the at least one second input control presented with the second media player application window while the first media stream is being presented in the first media player application window, cause a pause of the presentation of the first media stream in the first media player application window and via the separate presentation device, and cause a presentation of the second media stream in the second media player application window and via the separate presentation device.
18. The presentation device of
the presentation device is configured such that no more than a single media stream is presented via the presentation device at a time, and no more than a single media stream is presented via the separate presentation device at a time;
the presentation device is configured such that the first media player and the second media player remain simultaneously presented; and
the presentation device is configured to limit a number of media players on the touchscreen.
19. The presentation device of
20. The presentation device of
22. The presentation device of
detect, utilizing the touchscreen, user input in connection with at least one of the selectable representations of the control user interface; and
in response to the detection of the user input, alter a visibility, utilizing the touchscreen, of the at least one selectable representation of the control user interface.
23. The presentation device of
detect, utilizing the touchscreen, user input in connection with at least one of the selectable representations of the control user interface; and
in response to the detection of the user input, change, utilizing the touchscreen, a visibility of the at least one selectable representation of the control user interface.
24. The presentation device of
25. The presentation device of
26. The presentation device of
27. The presentation device of
28. The presentation device of
29. The presentation device of
an entirety of the first media player application window and an entirety of the second application window are simultaneously presented;
a portion of the first media player application window and a portion of the second application window are simultaneously presented;
the control user interface includes a media control user interface;
the presentation device includes a mobile device;
the indication that the second media player application is allowed to play one or more media streams in addition to the first media player application being allowed to play one or more other media streams, indicates that only one of the second media player application or the first media player application is allowed to play, at a time;
the at least one first input control and the second input control each is capable of including both the play input control and the pause input control;
the at least one first input control and the second input control each is capable of including both the play input control and the pause input control which are simultaneously displayed;
the first order attribute and the second order attribute are not z-order attributes;
the control user interface includes the plurality of non-overlapping selectable representations, by simultaneously displaying the plurality of non-overlapping selectable representations;
the control user interface includes the plurality of non-overlapping selectable representations, by displaying at least one of the plurality of non-overlapping selectable representations, at a time;
the control user interface includes the plurality of non-overlapping selectable representations, by allowing a user to scroll among the plurality of non-overlapping selectable representations;
the first media player application window includes a tabbed window;
the second application includes a second media player application;
the subset of the plurality of applications that are executed, are operating;
the phrases one or more processors, non-transitory memory, and instructions all do not invoke 35 USC 112, sixth paragraph;
the indication includes at least one of: instructing a corresponding media player in the plurality to change its mode of operation, displaying the corresponding media player, intercepting stream data received from the corresponding media player, changing a state of a thread of the corresponding media player, at least one of sending a message or receiving a message via network, or providing access information; or the visual element includes a tab of the first media player application window.
|
This application is a continuation-in-part of, and claims priority to U.S. patent application Ser. No. 14/835,662, entitled “METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR CONTROLLING PLAY OF MEDIA STREAMS,” filed Aug. 25, 2015, which is a continuation-in-part of, and claims priority to U.S. patent application Ser. No. 14/604,664, entitled “METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR CONTROLLING PLAY OF MEDIA STREAMS,” filed Jan. 23, 2015, which is a continuation-in-part of, and claims priority to: 1) U.S. patent application Ser. No. 12/696,854, entitled “METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR CONTROLLING PLAY OF MEDIA STREAMS,” filed Jan. 29, 2010; and 2) U.S. patent application Ser. No. 12/705,638, entitled “METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR DELAYING PRESENTATION OF AN UPDATE TO A USER INTERFACE,” filed Feb. 15, 2010.”
U.S. patent application Ser. No. 12/705,638, entitled “METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR DELAYING PRESENTATION OF AN UPDATE TO A USER INTERFACE,” filed Feb. 15, 2010, incorporates by reference U.S. patent application Ser. No. 12/696,854, untitled “METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR CONTROLLING PLAY OF MEDIA STREAMS, ” filed Jan. 29, 2010; and U.S. patent application Ser. No. 12/691,042 filed on Jan. 21, 2010 entitled “METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR COORDINATING PLAYING OF MEDIA STREAMS. The following which are each incorporated herein by reference in their entirety for all purposes: U.S. patent application Ser. No. 12/696,854, entitled “METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR CONTROLLING PLAY OF MEDIA STREAMS,” filed Jan. 29, 2010; U.S. patent application Ser. No. 12/691,042 filed on Jan. 21, 2010 entitled “METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR COORDINATING PLAYING OF MEDIA STREAMS”; and U.S. patent application Ser. No. 12/705,638, entitled “METHODS, SYSTEMS, AND COMPUTER PROGRAM PRODUCTS FOR DELAYING PRESENTATION OF AN UPDATE TO A USER INTERFACE,” filed Feb. 15, 2010.
When applications attempt to play more than one media stream on current devices, some or all the applications are allowed access to the presentation devices of the device, for example a display device and/or an audio device. While some systems attempt to manage network bandwidth usage between and/or among media players that are operating at the same time. Access to a presentation device by applications playing media streams on the same device is not managed. The media streams played by corresponding applications are played on a presentation device regard for other media streams usage of the presentation device. Watching a video or listening to song with interference from other audio streams and video streams is a common experience.
When listening to a song and browsing the web, many web sites include audio in their web pages. The web page audio plays despite the fact that a song is already be played by a music player application. This often leads to an unpleasant listening experience. If a user locates multiple videos and accesses them in multiple browser windows and/or tabs the videos play as if the user is able to watch all of them at the same time. Videos in windows that are obscured by other windows or that are minimized continue to play as if there was someone watching. Some web pages do wait to detect that they are visible before beginning to play a stream, but these pages play their streams without regard for other media players playing and/or otherwise accessing a display or speakers to play one or more media streams.
For audio, a user can adjust the volume, and turn audio on and off for a device. Similarly, a user can turn a display off and/or adjust its brightness. Controlling multiple applications using a display and/or audio devices requires using application provided controls to control and coordinate use of a display and/or audio device, if an application provides a user interface controls for these functions. Web applications behave similarly.
Accordingly, there exists a need for methods, systems, and computer program products for controlling play of media streams.
The following presents a simplified summary of the disclosure in order to provide a basic understanding to the reader. This summary is not an extensive overview of the disclosure and it does not identify key/critical elements of the invention or delineate the scope of the invention. Its sole purpose is to present some concepts disclosed herein in a simplified form as a prelude to the more detailed description that is presented later.
A presentation device is provided comprising: a non-transitory memory storing instructions and a plurality of applications including a first media player application, a second media player application, and a third application; a touchscreen; and one or more processors in communication with the non-transitory memory and the touchscreen, wherein the one or more processors execute the instructions to: present, utilizing the touchscreen, a first media player application window associated with the first media player application; detect, utilizing the touchscreen, a hot key user input; in response to the detection of the hot key user input, present, utilizing the touchscreen, a control user interface adjacent and exterior to the first media player application window associated with the first media player application, the control user interface including selectable representations identifying a subset of the plurality of applications that are executed, the selectable representations including: a second media player application window representation associated with the second media player application and having a first z-order attribute, and a third application window representation associated with the third application and having a second z-order attribute; detect, utilizing the touchscreen, a selection of one of the selectable representations of the control user interface including the second media player application window representation associated with the second media player application; in response to the detection of the selection of the one of the selectable representations of the control user interface, indicate that the second media player application is allowed to play one or more media streams in addition to the first media player application being allowed to play one or more other media streams, where the first media player application window associated with the first media player application is simultaneously presented, utilizing the touchscreen, with a second media player application window associated with the second media player application, such that the first media player application window is presented with at least one first input control and the second media player application window is presented with at least one second input control, the at least one first input control and the second input control each including at least one of a play input control or a pause input control; detect, utilizing the touchscreen, a selection of the at least one first input control presented with the first media player application window; in response to the detection of the selection of the at least one first input control presented with the first media player application window, present, utilizing the touchscreen, a first media stream in the first media player application window; detect, utilizing the touchscreen and while the first media stream is being presented in the first media player application window, a selection of the at least one second input control presented with the second media player application window; and in response to the detection of the selection of the at least one second input control presented with the second media player application window while the first media stream is being presented in the first media player application window, pause the presentation of the first media stream in the first media player application window, and present, utilizing the touchscreen, a second media stream in the second media player application window.
Another presentation device is provided comprising: a non-transitory memory storing instructions and a plurality of applications including a first media player application, a second application, and a third media player application; a touchscreen; and one or more processors in communication with the non-transitory memory and the touchscreen, wherein the one or more processors execute the instructions to: present, utilizing the touchscreen, a first media player application window associated with the first media player application that is allowed to play one or more media streams, where the first media player application window is presented with at least one first input control including at least one of a play input control or a pause input control; detect, utilizing the touchscreen, a selection of a hot key; in response to the detection of the selection of the hot key, present, utilizing the touchscreen, a control user interface adjacent and exterior to the first media player application window associated with the first media player application, the control user interface including selectable representations identifying a subset of the plurality of applications that are executed, the selectable representations including: a second application window representation associated with the second application and having a first z-order attribute, and a third media player application window representation associated with the third media player application and having a second z-order attribute; detect, utilizing the touchscreen, a selection of one of the selectable representations of the control user interface including the second application window representation associated with the second application; in response to the detection of the selection of the one of the selectable representations of the control user interface including the second application window representation associated with the second application, present, utilizing the touchscreen, the second application window, where the second application window associated with the second application is simultaneously presented, utilizing the touchscreen, with the first media player application window associated with the first media player application; detect, utilizing the touchscreen, a selection of a visual element presented in connection with the first media player application window associated with the first media player application; and in response to the detection of the selection of the visual element presented in connection with the first media player application window associated with the first media player application, indicate that the third media player application is allowed to play at least one media stream, and present, utilizing the touchscreen, the at least one media stream in the third media player application window.
Yet another presentation device is provided comprising: a non-transitory memory storing instructions and a plurality of applications including a first media player application, a second media player application, and a third application; a touchscreen; and one or more processors in communication with the non-transitory memory and the touchscreen, wherein the one or more processors execute the instructions to: present, utilizing the touchscreen, a first media player application window associated with the first media player application; detect, utilizing the touchscreen, a user input in connection with a hot key; in response to the detection of the user input in connection with the hot key, present, utilizing the touchscreen, a control user interface adjacent and exterior to the first media player application window associated with the first media player application, the control user interface including selectable representations identifying a subset of the plurality of applications that are the subject of execution, the selectable representations including: a second media player application window representation associated with the second media player application and having a first z-order attribute, and a third application window representation associated with the third application and having a second z-order attribute; detect, utilizing the touchscreen, a selection of one of the selectable representations of the control user interface including the second media player application window representation associated with the second media player application; in response to the detection of the selection of the one of the selectable representations of the control user interface, indicate that the second media player application is allowed to play one or more media streams in addition to the first media player application being allowed to play one or more other media streams, where the first media player application window associated with the first media player application is simultaneously presented, utilizing the touchscreen, with a second media player application window associated with the second media player application, such that the first media player application window is presented with at least one first input control and the second media player application window is presented with at least one second input control, the at least one first input control and the second input control each including at least one of a play input control or a pause input control; detect, utilizing the touchscreen, a selection of the at least one first input control presented with the first media player application window; in response to the detection of the selection of the at least one first input control presented with the first media player application window, present, utilizing the touchscreen, a first media stream in the first media player application window; detect, utilizing the touchscreen, a selection of the at least one second input control presented with the second media player application window; in response to the detection of the selection of the at least one second input control presented with the second media player application window, present, utilizing the touchscreen, a second media stream in the second media player application window; determine whether at least one of the subset of the plurality of applications ceases operating; and in response to the determination that the at least one of the subset of the plurality of applications ceases operating, remove one of the selectable representations from the control user interface that corresponds with the at least one of the subset of the plurality of applications.
Other methods and systems are described for controlling play of media streams. In one aspect, the method includes presenting a media control user interface including selectable representations identifying a plurality of operating media players configured for accessing a first presentation device. The method further includes receiving a user selection identifying a selected portion of the plurality. The method still further includes indicating a media player, in the selected portion, is allowed access to the first presentation device to play a media stream.
Further, a system for controlling play of media streams is described. The system includes an execution environment including an instruction processing unit configured to process an instruction included in at least one of a media control user interface element handler component, a media selection component, and an access director component. The system includes the media control user interface element handler component configured for presenting a media control user interface including selectable representations identifying a plurality of operating media players configured for accessing a first presentation device. The system further includes the media selection component configured for receiving a user selection identifying a selected portion of the plurality. The system still further includes the access director component configured for indicating a media player, in the selected portion, is allowed access to the first presentation device to play a media stream.
Objects and advantages of the present invention will become apparent to those skilled in the art upon reading this description in conjunction with the accompanying drawings, in which like reference numerals have been used to designate like or analogous elements, and in which:
Prior to describing the subject matter in detail, an exemplary device included in an execution environment that may be configured according to the subject matter is described. An execution environment includes an arrangement of hardware and, optionally, software that may be further configured to include an arrangement of components for performing a method of the subject matter described herein.
Those of ordinary skill in the art will appreciate that the components illustrated in
With reference to
Bus 116 may comprise any type of bus architecture. Examples include a memory bus, a peripheral bus, a local bus, a switching fabric, etc. Processor 104 is an instruction execution machine, apparatus, or device and may comprise a microprocessor, a digital signal processor, a graphics processing unit, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc.
Processor 104 may be configured with one or more memory address spaces in addition to the physical memory address space. A memory address space includes addresses that identify corresponding locations in a processor memory. An identified location is accessible to a processor processing an address that is included in the address space. The address is stored in a register of the processor and/or identified in an operand of a machine code instruction executed by the processor.
Thus at various times, depending on the address space of an address processed by processor 104, the term processor memory may refer to physical processor memory 106 or a virtual processor memory as
Program instructions and data are stored in physical processor memory 106 during operation of execution environment 102. In various embodiments, physical processor memory 106 includes one or more of a variety of memory technologies such as static random access memory (SRAM) or dynamic RAM (DRAM), including variants such as dual data rate synchronous DRAM (DDR SDRAM), error correcting code synchronous DRAM (ECC SDRAM), or RAMBUS DRAM (RDRAM), for example.
Processor memory may also include nonvolatile memory technologies such as nonvolatile flash RAM (NVRAM), ROM, or disk storage. In some embodiments, it is contemplated that processor memory includes a combination of technologies such as the foregoing, as well as other technologies not specifically mentioned.
In various embodiments, secondary storage 108 includes one or more of a flash memory data storage device for reading from and writing to flash memory, a hard disk drive for reading from and writing to a hard disk, a magnetic disk drive for reading from or writing to a removable magnetic disk, and/or an optical disk drive for reading from or writing to a removable optical disk such as a CD ROM, DVD or other optical media. The drives and their associated computer-readable media provide volatile and/or nonvolatile storage of computer readable instructions, data structures, program components and other data for the execution environment 102. As described above, when processor memory 118 is a virtual processor memory, at least a portion of secondary storage 108 is addressable via addresses in a virtual address space of the processor 104.
A number of program components may be stored in secondary storage 108 and/or in processor memory 118, including operating system 120, one or more applications programs (applications) 122, program data 124, and other program code and/or data components as illustrated by program libraries 126.
Execution environment 102 may receive user-provided commands and information via input device 128 operatively coupled to a data entry component such as input device adapter 110. An input device adapter may include mechanisms such as an adapter for a keyboard, a touch screen, a pointing device, etc. An input device included in execution environment 102 may be included in device 100 as
Output devices included in an execution environment may be included in and/or external to and operatively coupled to a device hosting and/or otherwise included in the execution environment. For example, display 130 is illustrated connected to bus 116 via display adapter 112. Exemplary display devices include liquid crystal displays (LCDs), light emitting diode (LED) displays, and projectors. Display 130 presents output of execution environment 102 to one or more users. In some embodiments, a given device such as a touch screen functions as both an input device and an output device. An output device in execution environment 102 may be included in device 100 as
A device included in or otherwise providing an execution environment may operate in a networked environment using logical connections to one or more devices (not shown) via a communication interface. The terms communication interface and network interface are used interchangeably. Device 100 illustrates network interface card (NIC) 114 as a network interface included in execution environment 102 to operatively couple device 100 to a network. The terms network node and node in this document both refer to a device having a network interface operatively coupled to a network.
A network interface included in a suitable execution environment, such as NIC 114, may be coupled to a wireless network and/or a wired network. Examples of wireless networks include a BLUETOOTH network, a wireless personal area network (WPAN), a wireless 802.11 local area network (LAN), and/or a wireless telephony network (e.g., a cellular, PCS, or GSM network). Examples of wired networks include a LAN, a fiber optic network, a wired personal area network, a telephony network, and/or a wide area network (WAN). Such networking environments are commonplace in intranets, the Internet, offices, enterprise-wide computer networks and the like. In some embodiments, NIC 114 or a functionally analogous component includes logic to support direct memory access (DMA) transfers between processor memory 118 and other components.
In a networked environment, program components depicted relative to execution environment 102, or portions thereof, may be stored in a remote storage device, such as, on a server. It will be appreciated that other hardware and/or software to establish a communications link between the node illustrated by device 100 and other network nodes may be included.
A system for controlling play of media streams includes an execution environment, such as execution environment 102, including an instruction processing unit, such as processor 104, configured to process an instruction included in at least one of a media control user interface element handler component, a media selection component, and an access director component. The components illustrated in
With reference to
One or more output devices, such as display 130, and one or more input devices, such as input device 128, may be accessed in presenting and/or otherwise providing a media control user interface. An exemplary media control user interface is illustrated by media control sidebar 404 in browser window 402 in
The visual components of the user interface in
Other types of user interface components, also referred to as user interface elements, include audio output components referred to as audio interface elements, tactile output components referred to a tactile interface elements, and the like.
A visual interface (VI) element handler (VIEH) component, as the term is used in this document, includes a component configured to send information representing a program entity for presenting a visual representation of the program entity by a display. The visual representation is presented based on the sent information. The sent information is referred to herein as representation information.
Representation information includes data in one or more formats including image formats such as JPEG, video formats such as MP4, markup language data such as HTML and other XML-based markup, and/or instructions such as those defined by various script languages, byte code, and/or machine code. For example, a web page received by a browser from a remote application provider may include HTML ECMAScript, and/or byte code for presenting one or more user interface elements included in a user interface of the remote application.
Components configured to send information representing a program entity for presenting other types of output representations by other types of presentations devices include audio interface element handlers, tactile interface element handlers, and the like.
A program entity is an object included in and/or otherwise processed by an application or other program component. A representation of a program entity may be represented and/or otherwise maintained in a presentation space.
As used in this document the term presentation space refers to a storage region allocated and/or otherwise provided for storing an audio, visual, tactile, and/or other sensory data component for presentation on a presentation device. For example a buffer for storing a video frame is a presentation space. A presentation space may be contiguous or non-contiguous. A presentation space may have a virtual as well as a physical representation. A presentation space may include a storage location in processor memory, secondary storage, a memory of a presentation adapter device, and storage medium of the first presentation device. A screen of a display is another example of a presentation space.
A presentation device may be included in an execution environment hosting an adaptation of the arrangement of components in
A presentation device for presenting a media stream and/or for presenting some or all of a media control user interface may be a visual, audio, tactile, and other device for presenting a human detectable output. In addition to and/or instead of display devices, audio devices are commonly included in and/or operatively coupled to many devices and network nodes. Some devices include and/or are operatively coupled to presentation devices that provide tactile output and are configured to play streams of tactile data. A few devices currently exist that are configured to emit odors that users may smell. Odor data can be provided as a stream. Thus in various aspects a presentation device may include a visual, an audio, tactile, and/or odor producing presentation device. Correspondingly, exemplary media streams include a video or image data stream, an audio stream, and a stream of other presentable sensory data.
As used herein, the term media player refers to a component and/or an arrangement of components configured to present a media stream on a presentation device. A media player may include software and/or hardware components configured to access one or more types of presentation devices. Access may be direct and/or indirect. An audio player, video player, and/or or other media player type may process and play audio data, video data, and/or other media data, respectively, in a compressed and/or uncompressed format. A multimedia player includes and/or otherwise controls more than one media player for playing different types of media streams together and sometimes in a synchronized manner. A movie player is an example of a multimedia player.
Media streams may be included in a media container. Exemplary audio container formats include WAV, AIFF, and XMF. Exemplary container formats for video data include 3GP, ASF, MP4, and OGG. Containers for video formats often are defined to include audio and other type of data streams.
An operating media player is a media player that has received a request or has otherwise been instructed to access an identified media stream to play on a presentation device. An operating media player remains an operating media player in various states of processing the identified media stream. Exemplary processing states include an initialization state including preparation and/or initialization for playing the identified media stream; a play state for playing the media stream; and a suspended state including pausing and/or seeking prior to, during, and/or after a play state,
A selectable representation includes a user interface element that may be associated with a detected user input event for selecting a media player represented and/or otherwise identified by the selectable representation. Exemplary visual interface elements that may include and/or may be selectable representations include windows, dialog boxes, textboxes, various types of button controls including check boxes and radio buttons, list boxes, drop-down lists, spinners, list items, menus, menu items, toolbars, ribbons, combo boxes, tree views, and grid views. Those skilled in the art will understand that this list is not exhaustive.
The exemplary media control user interface, media control sidebar 404, includes media identifiers 406 as selectable representations identifying media streams of a number of operating media players presented in tabs 408. For example, tabA 408a includes page 410 visual interface element including a media player visual interface element 412a illustrating a user interface of a media player operating in and/or with the browser application.
Media player visual interface element 412a includes a presentation space, media presentation space 414a, for presenting a video stream played by the media player via display 130. Media identifier 406a identifies a movie playing and/or requested for playing in media presentation space 414a. Media identifier 406a identifies a movie multi-media player included in and/or otherwise interoperating with a web application provider of media page 410. The exemplary movie multi-media player includes a video media player for accessing display 130 and an audio media player for accessing audio presentation device (not shown).
Similarly, media identifier 406b is a selectable representation of an operating audio media player included in and/or otherwise interoperating with an application providing content for tabB 408b. The operating audio media player has been requested and/or otherwise instructed to access the audio presentation device to play the song identified by media identifier 406b. Media identifiers 406c are respective selectable representations of an operating video media player and an operating audio media player included in and/or otherwise interoperating with an application providing content for tabC 408c. The operating video media player associated with tabC 408c is configured to access display 130 device to play a video of a corporate presentation identified by media identifier 406c1. The operating audio media player identified by media identifier 406c2 and associated with tabC 408c is configured to access the audio presentation device to play the audio portion of a briefing associated with the presentation.
Returning to
For example, if a user input is received that results in closing tabB 408b, media identifier 406b is removed from media control sidebar 406. Presenting a media control user interface may include adding a selectable representation of an operating media player to and/or removing a selectable representation identifying a media player from the media control user interface.
Presenting a media control user interface may include opening, resizing, restoring from a minimized state, assigning input focus to, and changing a z-order attribute of a user interface element included in the media control user interface.
A selectable representation of an operating media player may identify an operating media player directly and/or indirectly. In
Media control sidebar 404 is presented so that a user may provide input corresponding to any of various user interface elements illustrated in
As described above, a selectable representation may be added to a media control user interface in response to detecting an operating media player. An operating media player may be detected based on an access for a presentation device for playing a media stream via the presentation device by the operating media player. A selectable representation may be removed in response to detecting and/or otherwise determining the represented operating media player is no longer operating. Thus, a media control user interface may be presented in response to a detected event. Presenting includes updating the selectable representations and/or opening, resizing, restoring from a minimized state, assigning input focus to, and changing a z-order attribute of a user interface element included in the media control user interface in response to a detected event.
A detected event may be associated with a media control user interface in a number of ways. A particular user input may be configured as a hot key for indicating a media control user interface is to be presented. For example, some or all of the content presented in tabC 408c may be retrieved while tabC 408 is behind another tab 408. The content may include an operating media player and/or otherwise cause a media player to become operational to play a media stream included in and/or otherwise accessible via the content. A script included in the content may automatically instruct the operating media player to begin playing the media stream. The user may be watching a movie played by an operating media player in media presentation space 414a in tabA 408a. User input for the hotkey may be received from the user to present media control sidebar 404 allowing the user to control which operating media players may play their corresponding streams.
An event associated with an operating media player may be detected by an operating media player; a component of a presentation subsystem, such as a graphics library; a presentation adapter, such a display adapter 112; a presentation device, such as display 130; one or more applications 122, such as the internet browser presenting browser window 402 in
An event may be detected by a component based on one or more interprocess communication mechanisms such as a hardware interrupt, a software interrupt, a pipe, and/or a message queue. An event may be detected base on a message received via a network such as request from a browser and/or a response from a server hosted application. An event may be detected based on a function and/or method call to an event detecting component and/or other process including execution of a machine code branch instruction.
In an aspect, an event associated with a media control user interface includes detecting an access to a presentation device. Detecting an event may include detecting access to a first presentation device by a first operating media player to play a media stream while another operating media player in the plurality is playing a media stream via the first presentation device. The event may be detected as and/or otherwise based on an access to a resource for playing the media stream by the first operating media player via the first presentation device.
Exemplary resources in various aspects that may be included in an operating media player access to a presentation device include one or more of a semaphore; a lock; a presentation space such as display and/or audio buffer; a component of a user interface subsystem and/or library; a component of a user interface element; a component of an audio subsystem and/or library; a display adapter and/or resource of a display adapter; a display device and/or resource of a display device; an audio adapter and/or resource of an audio adapter, an audio presentation device and/or resource of an audio presentation device; a tactile output subsystem and/or resource of a tactile output subsystem; a tactile output device and/or resource of a tactile output device; an access control component and/or resource of an access control component; a serialization component; and/or a resource of a serialization component; and/or a synchronization component and/or resource of a synchronization component.
In various aspects, an event associated with an access to a presentation device by an operating media player may be detected by access director component 356 and/or an analog. Access detector component 356 may be included in an operating media player application included in applications 122; program libraries 126; operating system 120; a communications component for sending and/or receiving a media stream and/or for sending and/or receiving a resource for accessing a presentation device; an input processing component configured to detect an input for accessing a presentation device; display adapter 112 and/or other presentation adapter(s); a presentation device driver; the presentation device accessed, an internet browser, a client of a network application operating in and/or or otherwise processed by the internet browser, the network application, and a proxy mediating communication between the network application and the browser.
An access to a presentation device by an operating media player may be detected via an access to any program addressable entity and/or resource included in accessing the presentation device. An access to a presentation device may be detected by any component included in the operation of accessing the presentation device.
For example, in
Those skilled in the art will see based on the descriptions included this document that access director component 356 may be included in and/or interoperate with any component configured to prepare for and/or access a presentation device, and/or configured to access a resource processed in accessing a presentation device. For example, in various aspects, access director component 356 and/or an analogs may be included in a media player application included in applications 122; program libraries 126; operating system 120; a communications component for sending and/or receiving a media stream and/or for sending and/or receiving a resource for accessing a presentation device; an input processing component configured to detect an input for accessing a presentation device; display adapter 112 and/or other presentation adapter(s); a presentation device driver; the presentation device accessed, an internet browser, a client of a network application operating in and/or or otherwise processed by the internet browser, the network application, and a proxy mediating communication between the network application and the browser.
In another aspect, access director component 356 and/or media control user interface element handler component 352 may be a configured to be informed of an access and/or access attempt rather than or in addition to being a component included in accessing a presentation device. For example, media control user interface element handler component 352 or an analog may be informed of an access to a presentation device by a component providing a resource and/or service for accessing the presentation device and/or a component configured to access the presentation device directly. Access director component 356 and/or media control user interface element handler component 352 may be a routine that is called prior to and/or during an access of a presentation device.
Returning to
A user selection of one or more selectable representations, such as one or more media identifiers 406 in
In an aspect, media selection component 354 and/or media control user interface element handler component 352 may limit the number of selectable representations identified in a user selection. For example, a user selection may be limited to a single selectable representation. A selectable representation may identify one or more operating media players. In
In an aspect, media selection component 354 and/or media control user interface element handler component 352 may limit a user selection to one or more selectable representations that together identify a single operating media player per presentation device. In another aspect, the number of operating media players that can be identified via a user selection may vary determined by media selection component 354 and/or media control user interface element handler component 352 based on the type of media stream. For example, a user selection may identify multiple video players but only a single audio player. What a user selection may contain may be configurable by a user.
In an aspect, a user selection may identify presentation media identifier 406c1 in response to a user input. The presentation media identifier identifies a video operating media player associated with content of tabC 408c. A user input for selecting song audio media identifier 406b may be detected identifying an audio operating media player for briefing audio media identifier 406c2 associated with content of tabB 408b. The user selection received via the user inputs identifies two operating media players with different media types that a user may consider compatible. That is, the user may view the video of presentation while listening to the song without perceiving the playing of the two media streams as interfering with one another.
If the user desired to listen to the audio portion of the presentation, the user may select the briefing media identifier 406c2 rather than the song media identifier 406, in order to identify an audio operating media player for the audio stream of a briefing that corresponds to the video of the presentation in which the briefing occurred and/or otherwise is associated with by tabC 408c.
A received user selection identifies one or more operating media players and media streams and may include all selectable representations. Selectable representation(s) not included in the user selection identify an unselected portion of operating media players. A user selection may identify selected operating media players and implicitly identify unselected operating media players or vice versa. A user selection may explicitly identify selected operating media players and unselected operating media players.
Alternatively or additionally, a selected operating media player may be identified in a user selection in response to a user input received via another application. For example, in
Alternatively, the user may select tabB 408b to make it visible, and then select a play user interface control presented in content of tabB 408b. In response to receiving the play input, media selection component 354 may receive a user selection identifying the operating media player represented by media identifier 406b.
In an aspect, a user input may be received for closing tabA 408a. As result the selectable representation illustrated by media identifier 406a may be removed from media control sidebar 404. In a further aspect, all selectable representations may remain unselected until a user input is received. In another aspect, one or more operating media players with user interfaces that become visible as a result of closing tabA 408a may be identified by a user selection in response to the user input received to close tabA 408a.
In an aspect, a selectable representation presented in a media control interface may be associated with a particular input whether the media control user interface has input focus for the corresponding input device or not. A user selection may be received identifying the selectable representation in response to detecting the particular input. For example, in
In another aspect, an input may be defined to allow a user to navigate through the selectable representations whether the media control user interface has input focus or not. For example, a combination key sequence, such as an <F10> key and a directional key such as an up or down arrow may be defined to navigate through selectable representations whether the media control user interface has input focus or not. A selectable representation may be automatically included in a user selection received by media selection component 354 during navigation or additional user input may be required to include the current selectable representation in a user selection.
Returning to
In
In an aspect, access director component 356 indicates access is allowed by calling and/or otherwise instructing an operating media player identified as selected by a user selection to change its mode of operation to play mode. Similarly, access director component 356 may instruct the operating media player to enter a mode other than play mode in indicating access is not allowed for playing a media stream.
In another aspect, access director component 356 may detect access by an operating media player to a first presentation device by being a component included in and/or otherwise intercepting data sent from the operating media player to the presentation device. Access director component 356 may process the data for presentation as configured, and/or pass it along unprocessed for presenting by the presentation device, thus indicating the operating media player is allowed to play the media stream via the accessed presentation device.
In yet another aspect, access director component 356 may include and/or otherwise make use of a serialization mechanism such as a semaphore or lock. Access director component 356 may indicate access is allowed by not blocking and/or by unblocking a thread of execution for presenting a media stream of a selected operating media player on a presentation device. Alternatively or additionally, access director component 356 may indicate access is allowed by being included in and/or otherwise interoperating with a thread/process scheduler to put one or more threads of a selected operating media player for playing a media stream in a run state. Indicating access is not allowed may analogously be performed and/or otherwise provided for by access director component 356 by causing one or more threads for playing the first media stream to be blocked from and/or queued for execution by processor 104.
Indicating access is allowed may further include sending and/or receiving a message via a network to and/or from, respectively, a remote node where either the node hosting access director component 356 or the remote node is operatively coupled to a presentation device for presenting a media stream. Access director component 356 may be adapted to operate in a client node, a server node, and/or an intermediary node such as a proxy server. Indicating an operating media player is not allowed access to presentation device to play a media stream may be performed similarly.
Access director component 356 may control access to one or more resources requested by an operating media player for accessing a presentation device. A resource may be required for playing the stream and/or required for permission to play the stream. In various aspects, access director component 356 may indicate access is allowed by allowing access to any resource and/or otherwise providing information giving permission to access a presentation device. Analogously, in various aspects access director component 356 may indicate access is not allowed by preventing access to any requested resource for playing a media stream on a presentation device and/or otherwise providing information denying permission to access the presentation device.
In another aspect, selected operating media players identified in a user selection may be ordered. Access director component 356 may provide indications allowing access to a presentation device to the identified operating media players according to the order. For example, access may be serialized or controlled by some other type of access policy.
A media control user interface may be presented until a user selection is received, until a close input is received, and/or until a timeout of a timer associated with the media control user interface is detected. In response to receiving a user selection and/or the detected timeout, a media control user interface may be closed, minimized, have input focus removed, resized, and/or have an associated z-order attribute and/or other visual attribute changed.
Coordination and control of media streaming as described herein may prevent incomprehensible and sometimes unpleasant user experiences resulting from media streams playing simultaneously in an uncoordinated manner. Further, coordination and control of play of multiple media streams according to the subject matter described herein may save resources. For example, battery life may be extended in battery powered devices and less energy may be used in devices connected to an electricity grid.
The components illustrated in
Component identifiers including letters in their identifiers in the figures are referred to collectively using the respective identifiers without the postfix including the letters and are, in some cases referred to generically across the figures in the same manner when the including description may apply to some or all adaptations of components.
Execution environment 502 as illustrated in
In
Web application client 506 may include a web page for presenting a user interface for web application 604. The web page may include and/or reference data represented in one or more formats including hypertext markup language (HTML) and/or markup language, ECMAScript or other scripting language, byte code, image data, audio data, and/or machine code.
In an example, in response to a request received from browser 504b, controller 612, in
While the example describes sending web application client 506, in response to a request, web application 604 additionally or alternatively may send some or all of web application client 506 to browser 504b via one or more asynchronous messages. An asynchronous message may be sent in response to a change detected by web application 606. A publish-subscribe protocol such as the presence protocol specified by XMPP-IM is an exemplary protocol for sending messages asynchronously in response to a detected change.
The one or more messages including information representing web application client 506 may be received by content manager 512 via one or more of the application protocol layers 510b and/or network stack 508b as described above.
User interface element handlers 516 are illustrated in presentation controller 518 in
Application windows 804 illustrate a number of user interface elements commonly found in media player user interfaces. Application windows 804 include respective command bars 806 with input controls for receiving user input to change the operational state of the respective operating media players represented. Application windows 804 also include respective user interface elements providing respective presentation spaces 808 for presenting video media streams. Second App Window 804b may be a browser window or tab presented by browser 504b in
The various user interface elements of applications 504 and web application 604 described above are presented by one or more user interface element handlers 516, 616. In an aspect illustrated in
Input may be received corresponding to a user interface element via input driver 524. For example, a user may move a mouse to move a pointer presented in display presentation space 802 over an operation identified in command bar 806. The user may provide an input detected by the mouse. The detected input may be received by GUI subsystem 520 via input driver 524 as an operation indicator based on the association of the shared location of the pointer and the operation identifier in display presentation space 802.
First app window 804a in
Access director component 556a may intercept, receive, and/or otherwise detect one or more communications between graphics subsystem 522a and display driver 526a detecting an event including and/or based on an access to display 130 for playing a video stream by first media player UIEH 532a1 of first application 504a1 in first media presentation space 808a. Access director component 556a may intercept, receive, and/or otherwise detect one or more communications between audio subsystem 528a and audio driver 530a detecting access to the audio presentation device for playing an audio stream by, for example, second media player UIEH 532a2 of second application 504a2. One or more of applications 504a may include a multimedia player accessing display driver 526a and audio driver 530a via media control user interface element handler component 552a.
In response to an event based on detecting an access to a presentation device, access director component 556a may invoke media control user interface element handler component 552a to present a media control user interface. The invocation may be direct or indirect via another component, such as media selection component 554a.
An exemplary media control user interface is illustrated in
For example, first app window 804a includes a media player visual interface element including command bar 806a and first media presentation space 808a for presenting a video stream played by an operating media player included in and/or interoperating with first application 504a. The operating media player in first application 504a1 includes first media player user interface handler 532a1 for controlling input and output, and media player controller 538a1 for receiving and processing a video stream for presenting via display 130. Media identifier 812a identifies the operating media player of first application 504a.
A selection representation may represent a media container including one or more media streams of one or more types. Thus a selection representation may represent more than one operating media player. Media container identifier 812b illustrates a selectable representation identifying a media container including a video stream for presenting in media presentation space 808b. Another media identifier 812c is also illustrated identifying a media stream and, thus, an operating media player for presenting a media stream associated with third app window 804c.
Returning to
In an aspect, an event associated with media control list 810 includes an access to display 130 by first application 504b1. The event may be detected by access director component 556a. Another operating media player included in second application 504a2 may be playing a media stream in presentation space 802 in
In response to detecting the access, access director component 556a may interoperate, directly and/or indirectly with media control user interface element handler component 552a to present media control list 810 including a selectable representation of the detected operating media player.
In an aspect, at least part of a media player UIEH 532b may be included in web application client 506 provided by a remote application, such as web application 604 in
In an aspect, media control sidebar 404 in
For example, a hotkey or a browser input control may be associated with media control sidebar 404. A corresponding user input may be received by input driver 524b and communicated to GUI subsystem 520b for identifying an application to process the input. GUI subsystem may identify browser 504b while browser window 402 and/or a visual component of browser window 402 has input focus. Media control user interface element handler component 552b may be invoked directly and/or indirectly by GUI subsystem 520b to present media control sidebar 404.
Additionally or alternatively, access director component 556b may mediate access between a media content handler 534 and a media player UIEH 532b in the various aspects to detect an event for presenting media control sidebar 404.
Access director component 556b may be included in presenting a media stream and/or otherwise may intercept, receive, or otherwise detect one or more communications between content handler 534 and media player UIEH 532b detecting access to a presentation device for playing a media stream by an operating media player, such as remote client application 506 and/or web application 604. In an aspect, remote client application 506 accesses media player UIEH 532b via access director component 556b to play a video stream in second media presentation space 414b (not visible) in tabB 408b in
In response to detecting, the access director component 556b may interoperate with media control user interface element handler component 552b to present media control sidebar 404.
Third app window 804c in
Access director component 556c may be included in presenting a media stream and/or otherwise may intercept, receive, or otherwise detect one or more communications between a media player application, such as first application 504c1, and a presentation subsystem component, such as GUI subsystem 520c and/or audio subsystem 528c. Access director component 556c may detect access to a presentation device for playing a media stream by an operating media player by intercepting and/or otherwise mediating communication between application 504c1 and one or more presentation subsystem components. In response to detecting the access, access director component 556c may interoperate with media control user interface element handler component 552c to present media control list 810.
Alternatively or additionally, a user may provide an input for presenting media control list 810 in
An event may include a change in a media player, such as change in a media player's operational state or mode. For example, a media player's operational state may change from play mode to pause mode halting access to a presentation device for presenting a media stream paused by the change in operational state. This may make the presentation device available for access by another operating media player among several operating media players. In response to the change in operational state, a media control interface may be presented to allow the user to select another media player from the several operational media players.
A user selection of one or more selectable representations, such as one or more media identifiers 812, in
In an aspect, when a new operating media player accessing a particular presentation device is detected, the new operating media player may be paused and/or otherwise prevented from further access to the presentation device. This prevents, for example, audio streams from overplaying one another causing the user to miss part of one or more audio streams. The user is allowed to select which media streams or streams to allow access to the presentation device. Thus, when a new operating media player is detect, for example it may be preparing to play a media stream by requesting needed resources, it may be excluded from a current user selected portion of operating media players. Media control list 810 may be presented in response including a selectable representation of the new operating media player. The media player may be prevented and/or otherwise not allowed to play a media stream on a corresponding presentation device until it is selected and included in a received user selection.
In a further aspect, in response to detecting a new operating media player accessing a particular presentation device, all operating media players accessing the particular presentation device may be prevented further access to the particular device to play their respective media streams. The user is allowed to select which media player(s) to allow access to the presentation device. A new operating media player may be detected, for example preparing to play a media stream by requesting a needed resource. In either aspect, media control list 810 may be presented with a selectable representation for the newly detected operating media player in response to detecting the new operating media player. The media player may be prevented and/or otherwise not allowed to play a media stream on a corresponding presentation device until it is selected and included in a received user selection.
In an aspect, a user input may be received, causing a change in an attribute of an operating media player. For example, a user may select a user interface element of an operating media player application to make it visible from a hidden state behind another user interface element. In response to the user input, a user selection may be received identifying one or more operating media players based on the detected event. Other exemplary events include a change in an input focus attribute, a z-order attribute, a type of operating media player and/or media stream, and a measure for a user's ability to sense an output such as visibility measure for a media presentation space.
In
In one aspect illustrated in
Alternatively or additionally, in
One or more media streamers 634 may be configured for streaming media data to a remote client. A media streamer 634 may stream data to a user node 702 for presenting in a presentation device, such as display 130. The media stream data sent may be presented in a presentation space, such a media presentation space 414a in a media player user interface. The media player user interface may be presented by web application client 506 operating in browser 504b based on representation information provided by media player user interface element handler 632.
A web application may include one or more media player UIEHs 632, just as it may include one or more media streamers 634. A media player UIEH 632 may access a presentation device via communication with browser 504b and/or web application client 506 via network 704.
Media control sidebar 404 in
For example, in
Access director component 656 may be a component included in presenting a media stream and/or otherwise may intercept, receive, or otherwise detect one or more communications between content streamer 634 and media player UIEH 632 detecting access to a presentation device for playing a media stream by an operating media player.
In response to detecting, the access director component 656 may interoperate with media control user interface element handler component 652 to present media control sidebar 404.
In another aspect, access director component 652 may be configured to process a message from user node 702 informing web application of a detected access to a presentation device for playing a media stream.
Access director component 656 may detect operating media player accesses for media streams provided by and/or otherwise identified by web application 604. Access director component 656 may detect operating media player accesses for media streams provided by and/or otherwise identified by network applications interoperating with network application platform 606 and/or otherwise operating in execution environment 602.
Access director component 656 may be configured to operate in and/or with network application platform 606, in an aspect. In yet another aspect, access director component 656 may receive access information for detecting operating media player accesses to one or more presentation devices of a remote client, such as user device 702, to detect operating media player accesses for applications 504 operating in user device 702 other than and/or in addition to browser 504b.
Second app window 804b in
A user selection of one or more selectable representations, such as one or more media identifiers 406a, in
Operation of various adaptations of media selection components is described above. Operation of media selection component is analogous with communication via a network included in some aspects.
For example, as described above, in an aspect, a user input may be received, causing a change in an attribute of an operating media player in user node 702. A user may select tabB 408b in
In
Alternatively or additionally, in
It is noted that the methods described herein, in an aspect, are embodied in executable instructions stored in a computer readable medium for use by or in connection with an instruction execution machine, apparatus, or device, such as a computer-based or processor-containing machine, apparatus, or device. It will be appreciated by those skilled in the art that for some embodiments, other types of computer readable media are included which may store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memory (RAM), read-only memory (ROM), and the like.
As used here, a “computer-readable medium” includes one or more of any suitable media for storing the executable instructions of a computer program such that the instruction execution machine, system, apparatus, or device may read (or fetch) the instructions from the computer readable medium and execute the instructions for carrying out the described methods. Suitable storage formats include in one or more of an electronic, magnetic, optical, and electromagnetic format. A non-exhaustive list of conventional exemplary computer readable medium includes: a portable computer diskette; a RAM; a ROM; an erasable programmable read only memory (EPROM or flash memory); optical storage devices, including a portable compact disc (CD), a portable digital video disc (DVD), a high definition DVD (HD-DVD™), a BLU-RAY disc; and the like.
It should be understood that the arrangement of components illustrated in the Figures described are exemplary and that other arrangements are possible. It should also be understood that the various system components (and means) defined by the claims, described below, and illustrated in the various block diagrams represent logical components in some systems configured according to the subject matter disclosed herein.
For example, one or more of these system components (and means) may be realized, in whole or in part, by at least some of the components illustrated in the arrangements illustrated in the described Figures. In addition, while at least one of these components are implemented at least partially as an electronic hardware component, and therefore constitutes a machine, the other components may be implemented in software that when included in an execution environment constitutes a machine, hardware, or a combination of software and hardware.
More particularly, at least one component defined by the claims is implemented at least partially as an electronic hardware component, such as an instruction execution machine (e.g., a processor-based or processor-containing machine) and/or as specialized circuits or circuitry (e.g., discreet logic gates interconnected to perform a specialized function). Other components may be implemented in software, hardware, or a combination of software and hardware. Moreover, some or all of these other components may be combined, some may be omitted altogether, and additional components may be added while still achieving the functionality described herein. Thus, the subject matter described herein may be embodied in many different variations, and all such variations are contemplated to be within the scope of what is claimed.
In the description above, the subject matter is described with reference to acts and symbolic representations of operations that are performed by one or more devices, unless indicated otherwise. As such, it will be understood that such acts and operations, which are at times referred to as being computer-executed, include the manipulation by the processor of data in a structured form. This manipulation transforms the data or maintains it at locations in the memory system of the computer, which reconfigures or otherwise alters the operation of the device in a manner well understood by those skilled in the art. The data is maintained at physical locations of the memory as data structures that have particular properties defined by the format of the data. However, while the subject matter is being described in the foregoing context, it is not meant to be limiting as those of skill in the art will appreciate that various of the acts and operation described hereinafter may also be implemented in hardware.
To facilitate an understanding of the subject matter described below, many aspects are described in terms of sequences of actions. At least one of these aspects defined by the claims is performed by an electronic hardware component. For example, it will be recognized that the various actions may be performed by specialized circuits or circuitry, by program instructions being executed by one or more processors, or by a combination of both. The description herein of any sequence of actions is not intended to imply that the specific order described for performing that sequence must be followed. All methods described herein may be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context
The use of the terms “a” and “an” and “the” and similar referents in the context of describing the subject matter (particularly in the context of the following claims) are to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. Recitation of ranges of values herein are merely intended to serve as a shorthand method of referring individually to each separate value falling within the range, unless otherwise indicated herein, and each separate value is incorporated into the specification as if it were individually recited herein. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation, as the scope of protection sought is defined by the claims as set forth hereinafter together with any equivalents thereof entitled to. The use of any and all examples, or exemplary language (e.g., “such as”) provided herein, is intended merely to better illustrate the subject matter and does not pose a limitation on the scope of the subject matter unless otherwise claimed. The use of the term “based on” and other like phrases indicating a condition for bringing about a result, both in the claims and in the written description, is not intended to foreclose any other conditions that bring about that result. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the invention as claimed.
The embodiments described herein included the best mode known to the inventor for carrying out the claimed subject matter. Of course, variations of those preferred embodiments will become apparent to those of ordinary skill in the art upon reading the foregoing description. The inventor expects skilled artisans to employ such variations as appropriate, and the inventor intends for the claimed subject matter to be practiced otherwise than as specifically described herein. Accordingly, this claimed subject matter includes all modifications and equivalents of the subject matter recited in the claims appended hereto as permitted by applicable law. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed unless otherwise indicated herein or otherwise clearly contradicted by context.
Prior to describing the subject matter in detail, an exemplary device included in an execution environment that may be configured according to the subject matter is described. An execution environment is an arrangement of hardware and, optionally, software that may be further configured to include an arrangement of components for performing a method of the subject matter described herein.
Those of ordinary skill in the art will appreciate that the components illustrated in
With reference to
Bus 2116 may comprise any type of bus architecture. Examples include a memory bus, a peripheral bus, a local bus, a switching fabric, etc. Processor 2104 is an instruction execution machine, apparatus, or device and may comprise a microprocessor, a digital signal processor, a graphics processing unit, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc.
Processor 2104 may be configured with one or more memory address spaces in addition to the physical memory address space. A memory address space includes addresses that identify corresponding locations in a processor memory. An identified location is accessible to a processor processing an address that is included in the address space. The address is stored in a register of the processor and/or identified in an operand of a machine code instruction executed by the processor.
Thus at various times, depending on the address space of an address processed by processor 2104, the term processor memory may refer to physical processor memory 2106 or a virtual processor memory as
Program instructions and data are stored in physical processor memory 2106 during operation of execution environment 2102. In various embodiments, physical processor memory 2106 includes one or more of a variety of memory technologies such as static random access memory (SRAM) or dynamic RAM (DRAM), including variants such as dual data rate synchronous DRAM (DDR SDRAM), error correcting code synchronous DRAM (ECC SDRAM), or RAMBUS DRAM (RDRAM), for example.
Processor memory may also include nonvolatile memory technologies such as nonvolatile flash RAM (NVRAM), ROM, or disk storage. In some embodiments, it is contemplated that processor memory includes a combination of technologies such as the foregoing, as well as other technologies not specifically mentioned.
In various embodiments, secondary storage 2108 includes one or more of a flash memory data storage device for reading from and writing to flash memory, a hard disk drive for reading from and writing to a hard disk, a magnetic disk drive for reading from or writing to a removable magnetic disk, and/or an optical disk drive for reading from or writing to a removable optical disk such as a CD ROM, DVD or other optical media. The drives and their associated computer-readable media provide volatile and/or nonvolatile storage of computer readable instructions, data structures, program components and other data for the execution environment 2102. As described above, when processor memory 2118 is a virtual processor memory, at least a portion of secondary storage 2108 is addressable via addresses in a virtual address space of the processor 2104.
A number of program components may be stored in secondary storage 2108 and/or in processor memory 2118, including operating system 2120, one or more applications programs (applications) 2122, program data 2124, and other program code and/or data components as illustrated by program libraries 2126.
Execution environment 2102 may receive user-provided commands and information via input device 2128 operatively coupled to a data entry component such as input device adapter 2110. An input device adapter may include mechanisms such as an adapter for a keyboard, a touch screen, a pointing device, etc. An input device included in execution environment 2102 may be included in device 2100 as
Output devices included in an execution environment may be included in and/or external to and operatively coupled to a device hosting and/or otherwise included in the execution environment. For example, display 2130 is illustrated connected to bus 2116 via display adapter 2112. Exemplary display devices include liquid crystal displays (LCDs), light emitting diode (LED) displays, and projectors. Display 2130 presents output of execution environment 2102 to one or more users. In some embodiments, a given device such as a touch screen functions as both an input device and an output device. An output device in execution environment 2102 may be included in device 2100 as
A device included in or otherwise providing an execution environment may operate in a networked environment using logical connections to one or more devices (not shown) via a communication interface. The terms communication interface and network interface are used interchangeably. Device 2100 illustrates network interface card (NIC) 2114 as a network interface included in execution environment 2102 to operatively couple execution environment 2102 to a network. The terms network node and node in this document both refer to a device having a network interface operatively coupled to a network.
A network interface included in a suitable execution environment, such as NIC 2114, may be coupled to a wireless network and/or a wired network. Examples of wireless networks include a BLUETOOTH network, a wireless personal area network (WPAN), a wireless 802.11 local area network (LAN), and/or a wireless telephony network (e.g., a cellular, PCS, or GSM network). Examples of wired networks include a LAN, a fiber optic network, a wired personal area network, a telephony network, and/or a wide area network (WAN). Such networking environments are commonplace in intranets, the Internet, offices, enterprise-wide computer networks and the like. In some embodiments, NIC 2114 or a functionally analogous component includes logic to support direct memory access (DMA) transfers between processor memory 2118 and other components.
In a networked environment, program components depicted relative to execution environment 2102, or portions thereof, may be stored in a remote storage device, such as, on a server. It will be appreciated that other hardware and/or software to establish a communications link between the node illustrated by device 2100 and other network nodes may be included.
A system for coordinating playing of media streams includes an execution environment, such as execution environment 2102, including an instruction processing unit, such as processor 2104, configured to process an instruction included in at least one of a presentation access component 2352, a focus state component 2354, and a focus director component 2356. The components illustrated in
With reference to
A device and/or node may include other types of presentation devices for playing corresponding types of media streams. Audio devices are commonly included in and/or operatively coupled to many devices and network nodes. Some devices include and/or are operatively coupled to presentation devices that provide tactile output and are configured to play streams of tactile data. A few devices currently exist that are configured to emit odors that users may smell. Odor data can be provided as a stream. Thus in various aspects a presentation device may include a visual, an audio, tactile, and/or odor producing presentation device. Correspondingly, exemplary media streams include a video or image data stream, an audio stream, and a stream of other presentable sensory data.
As used herein, the term media player refers to a component configured to present a media stream on a presentation device. A media player may include software and/or hardware components configured to access one or more types of presentation devices. An audio player, video player, and/or or other media player type may process and play audio data, video data, and/or other media data, respectively, in a compressed and/or uncompressed format. A media player may be a multimedia player configured to play multiple media streams concurrently, typically in a synchronized fashion. A movie player is an example of a multimedia player. Exemplary audio container formats include WAV, AIFF, and XMF. Exemplary container formats for video data include 3GP, ASF, MP4, and OGG. Containers for video formats often are defined to include audio and other types of data streams.
An access to a presentation device by a media player may be detected via an access to any program addressable entity and/or resource included in accessing the presentation device. An access to a presentation device may be detected by any component included in the operation of accessing the presentation device.
For example, in
Those skilled in the art will see based on the descriptions included in this document that presentation access component 2352 may be included in and/or interoperate with any component configured to prepare for and/or access a presentation device, and/or configured to access a resource processed in accessing a presentation device. For example, in various aspects presentation access component 2352 and its analogs may be included in a media player application included in applications 2122; program libraries 2126; operating system 2120; a communications component for sending and/or receiving a media stream and/or for sending and/or receiving a resource for accessing a presentation device; an input processing component configured to detect an input for accessing a presentation device; display adapter 2112 and/or other presentation adapter(s); a presentation device driver; the presentation device accessed; an internet browser; a client of a network application operating in and/or or otherwise processed by the internet browser; the network application; and a proxy mediating communication between the network application and the browser.
In another aspect, presentation access component 2352 and/or an analog may be a component that is informed of an access and/or access attempt rather than or in addition to being a component included in accessing a presentation device. For example, presentation access component 2352 or an analog may be informed of an access to a presentation device by a component providing a resource and/or service for accessing the presentation device and/or a component configured to access the presentation device directly. Presentation access component 2352 or an analog may be a routine that is called prior to and/or during an access of a presentation device.
Exemplary resources in various aspects that may be included in a media player access to a presentation device include one or more of a semaphore; a lock; a presentation space such as display and/or audio buffer; a component of a user interface subsystem and/or library; a component of a user interface element; a component of an audio subsystem and/or library; a display adapter and/or resource of a display adapter; a display device and/or resource of a display device; an audio adapter and/or resource of an audio adapter, an audio presentation device and/or resource of an audio presentation device; a tactile output subsystem and/or resource of a tactile output subsystem; a tactile output device and/or resource of a tactile output device; an access control component and/or resource of an access control component; a serialization component and/or a resource of a serialization component; and/or a synchronization component and/or resource of a synchronization component.
As used in this document the term presentation space refers to a storage region allocated and/or otherwise provided for storing an audio, visual, tactile, and/or other sensory data component for presentation on a presentation device. For example a buffer for storing a video frame is a presentation space. A presentation space may be contiguous or non-contiguous. A presentation space may have a virtual as well as a physical representation. A presentation space may include a storage location in processor memory, secondary storage, a memory of a presentation adapter device, and storage medium of the first presentation device. A screen of a display is another example of a presentation space.
A user interface element is an element or visual component of a graphical user interface (GUI). Exemplary user interface elements include windows, dialog boxes, textboxes, various types of button controls including check boxes and radio buttons, sliders, list boxes, drop-down lists, spinners, various types of menus, toolbars, ribbons, combo boxes, tree views, grid views, navigation tabs, scrollbars, labels, tooltips, text in various fonts, balloons, and dialog boxes. Those skilled in the art will know that this list is not exhaustive. The terms visual representation, visual component, and user interface element are used interchangeably in this document.
A user interface (UI) element handler (UIEH) component is a component configured to send information representing a program entity for presenting a visual representation of the program entity by a display. The visual representation is presented based on the sent information. The sent information is referred to herein as representation information. Representation information includes data in one or more formats including image formats such as JPEG, video formats such as MP4, markup language data such as HTML and other XML-based markup, and/or instructions such as those defined by various script languages, byte code, and/or machine code. For example, a web page received by a browser from a remote application provider may include HTML, ECMAScript, and/or byte code for presenting one or more user interface elements included in a user interface of the remote application.
A program entity is an object included in and/or otherwise processed by an application or other program component. A representation of a program entity may be represented and/or otherwise maintained in a presentation space.
A presentation device may be included in an execution environment hosting an adaptation of the arrangement of components in
An access may be detected by presentation access component 2352 and/or its analogs based on one or more interprocess communication mechanisms such as a hardware interrupt, a software interrupt, a pipe, and/or a message queue. An access may be detected base on a message received via a network such as request from a browser and/or a response from a server hosted application. An access may be detected based on a function and/or method call to presentation access component 2352 and/or other process including execution of a machine code branch instruction.
Returning to
Focus state component 2354 may maintain and/or otherwise access information, referred to as presentation focus information. Presentation focus information identifies and/or otherwise enables the identification of one or more media players and whether the media players have presentation focus.
Presentation focus information may be maintained by and/or for one or more media players, media streams, and/or presentation devices. In an aspect, presentation focus information may identify a single media stream for playing on a presentation device. In another aspect, presentation focus information may identify more than one media stream of one or more media players for playing on one or more presentation devices. That is, multiple presentation devices may play media streams at the same time and/or multiple media players may play corresponding media streams on a shared presentation device.
Presentation focus for a media player is determined based on presentation focus information accessed by focus state component 2354. Focus state component 2354 may access presentation focus information via any of the means described above with respect to presentation access component 2352. Focus state component 2354 may be included in and/or otherwise interoperate with one or more presentation devices, and/or one or more media players.
As used herein, the term presentation focus refers to an attribute associated with a media player, directly and/or indirectly, indicating whether the media player is allowed to access one or more presentation devices for playing one or more corresponding media streams on the presentation devices. A media player may play a media stream on a device while the media player has presentation focus. Focus state component 2354 is configured to access presentation focus information to determine whether a particular media player has presentation focus for a media stream for playing on a presentation device.
Presentation focus differs from input focus. A user interface element with input focus is an element to which input from one or more particular input devices is directed. For example, when a dialog box has input focus with respect to a keyboard, keyboard input is directed to an application handling the dialog box. Presentation focus relates to output. Presentation focus is an attribute for restricting and coordinating access to an output device by one or more applications.
Alternatively or additionally, focus state component 2354 may access presentation focus information and detect a change in presentation focus. In response to detecting the change, focus state component 2354 may interoperate with presentation access component 2352 to detect an access which may have occurred prior to the change and/or subsequent to the change.
In various aspects, presentation focus information may include and/or otherwise be based on input focus information, a position corresponding to a pointing device such as mouse and/or touch screen, a detected user input, a z-order of a user interface element including a presentation space for presenting a media stream, a measure of user visibility of a presentation space for presenting a media stream, an order of detected access, and/or a priority associated with a media stream and/or media player. Priority may be based on a content type of a media stream; a source of the stream, and/or a time a media stream and/or media player has been waiting for presentation focus. The list provided is exemplary and not exhaustive.
Returning to
Focus director component 2356 is configured to determine and/or otherwise detect whether a media player has presentation focus for playing a media stream on a presentation device. The determination is based on presentation focus information which may include information for one or more media players, one or more corresponding media streams, and/or one or more presentation devices, as well as other information. The determining may include matching and/or otherwise processing the value of a focus state data variable, evaluating a policy based on identified attribute information, evaluating a matching expression, and/or checking a threshold. The determining may include interoperation with one or more media players and/or another component included in and/or configured to interoperate with focus director component 2356 such as a graphics subsystem, display adapter 2112, and/or display device 2130.
The determining, in various aspects, may be performed by focus director component 2356 and/or its analogs based on one or more interprocess communication mechanisms such as a hardware interrupt, a software interrupt, a pipe, and/or a message queue. Determining presentation focus may be based a message received via a network such as request from browser and/or a response from a server hosted application. Determining presentation focus may be based on a function and/or method call to and/or by focus director component 2356 and/or other process including execution of a machine code branch instruction.
Focus director component 2356 may be included in and/or otherwise interoperate with one or more presentation devices and/or one or more media players. In an aspect, presentation focus may be associated with a single media stream for playing on a presentation device. In another aspect, presentation focus may be associated with more than one media stream of one or more media players to access one or more media presentation devices.
In another aspect, determining whether the first media player has presentation focus may include determining that the first media player does not have presentation focus. In response to determining that the first media player does not have presentation focus, focus director component 2356 may interoperate with presentation access component 2352 to provide a no-play indication indicating that the first media player is not allowed to play the first media stream on the first presentation device. Focus director component 2356 may determine that the first media player does not have presentation focus based on the accessed presentation focus information.
Subsequently, focus state component 2354 may access presentation focus information based on a detected change in the information and/or an indication of a change in the information. Based on the detected change, focus state component 2354 may provide updated presentation focus information to focus director component 2356. Focus director component 2356 determines whether the first media player has presentation focus based on the updated presentation focus information and determines that the first media player has presentation focus.
A change in presentation focus information and a corresponding change in presentation focus for a media player playing a media stream on a presentation device may be based on any number of changes detected within an execution environment hosting an adaptation of the arrangement of components in
For example, a second media player may release presentation focus by and/or otherwise in response to changing its mode of operation from play mode to stop, pause, rewind, and/or fast forward mode. A second media stream on the first media device and/or a second media device may be halted or played by a component other than the second stream's media player affecting presentation focus information and thus presentation focus for a first media player.
A user input for identifying a particular media stream and/or player to play may be detected resulting in a change to presentation focus information. Alternatively or additionally, a change in an attribute of a user interface may be detected. For example, a z-order of a user interface element for presenting the first media stream by the first media play may change corresponding to a change in the user interface element being an element hidden from a user to a visible element. A z-order change may be absolute depending on a particular z-order value and/or may be relative depending on a relationship between the z-orders of two or more UI elements.
Alternatively or additionally, a relationship between input focus and presentation focus may be configured. Focus director component 2356 may determine that the first media player has presentation focus when it also has input focus. For example, execution environment 2102 may include a remote control device including controls for controlling a media player. When a media player component has input focus corresponding to the remote control device, it may be configured to have presentation focus for a presentation device corresponding to the remote control device.
A change in an attribute of a presentation device may result in a change in presentation focus information and presentation focus for a media player. For example, resolution of a screen of display 2130 may change allowing more UI elements to be visible at a given time. The opposite may occur as well restricting the number of UI elements that may be visible. A position of a UI element may change a size of a visible area of a presentation space for the first media stream. For example, focus director component 2356 may access a policy specifying a proportion and/or an absolute size of the presentation space that must be visible to a user before the first media player may have presentation focus.
In an aspect, the media player may receive and/or otherwise access a multi-media container such as an MPEG-4 file or message stream received and/or to be sent via a network for presentation on more than one presentation device. The MPEG-4 container may include a video stream and an audio stream to be played in a synchronized manner. The MPEG-4 container may include other streams as well.
In addition to accessing the first media player, for example display 2130, presentation access component 2352 may detect first media player accessing an audio device (not shown) to play the audio stream along with the video stream. Focus state component 2354 may access second presentation focus information which may be stored with, included in, and/or along with the first presentation focus information. The second presentation focus information may be defined for determining whether the first media player has access to the second presentation device. Focus director component 356 may then determine whether first media player has second presentation focus to play the second media stream on the second presentation device.
Focus director component 2356 may determine that first media player does not have second presentation focus based on the second presentation focus information. In response, focus director component 2356 may determine, that first media player does not have first presentation focus to the first presentation device. With respect to the multiple media streams in the media container, first media player does not have presentation focus for accessing the needed presentation devices. Presentation access component 2352 may provide a no-play indication indicating that first media player is not allowed to play the first media stream on display 2130.
Subsequently, focus state component 2354 may access second presentation focus information based on a detected change in the second presentation focus information. Based on the detected change, focus state component 2354 may provide updated second presentation focus information to focus director component 2356. Focus director component 2356 determines whether the first media player has second presentation focus based on the updated second presentation focus information. In response to determining that the first media player has both first presentation focus and second presentation focus, focus director component 2356 may determine that the first media player has presentation focus for presenting both media streams included in the media container on both the first and second presentation devices.
In an aspect, focus director component 2356 may determine that the first media player has presentation focus for the first presentation device and presentation access component 2352 may provide an indication that the first media player may play the video stream on display 2130 indicating that the first media player is allowed to play the first media stream. Whether all presentation devices requested are required for focus director component 2356 to determine that a media player has presentation focus may be based on a configuration of machine code in the components and/or may be based on stored configuration data provided by, for example, a user of the media player or a system administrator. Alternatively or additionally, the determination may be based on information received from a user prior to and/or during the determining. Focus director component 2356 may present and/or provide for presenting a user interface prompting the user for needed information.
In yet another aspect, while the first media player has presentation focus for playing the first stream on the first presentation device, presentation access component 2352 may detect a second media player access to the first presentation device to play a second media stream. In the aspect, the arrangement of components in
Alternatively, the arrangement of components in
Determining that second media player has second presentation focus may be based on a condition such as a configured maximum number of media players allowed to concurrently access the first media presentation device.
Such a condition may be based on any number of factors including a count of media streams being played, a ranking of media streams being played, a size of the presentation space viewable by a user, a transparency level of a UI element, and/or an attribute of another UI element sharing a region of a display of a UI element including a presentation space for presenting at least some of the first media stream and/or the second media stream.
Returning to
In addition to detecting an access by a media player to play a media stream on a presentation device, presentation access component 2352 as illustrated in
In various aspects, a play and/or a no-play indication may be provided in different ways. In one aspect, presentation access component 2352 may call and/or otherwise instruct the first media player to change its mode of operation to play mode to provide a play indication. Similarly, presentation access component 2352 may instruct the first media player to enter a mode other than play mode in providing a no-play indication.
In another aspect, presentation access component 2352 may detect access by a first media player to the first presentation device by being included in and/or otherwise intercepting stream data sent from the first media player to the first presentation device. Presentation access component 2352 may process the data for presentation as configured, and/or pass it along unprocessed for processing by the first presentation device and/or another component included in the process of presenting the media stream, thus indicating the first media player is allowed to play the first media stream.
In yet another aspect, presentation access component 2352 may include and/or otherwise make use of a serialization mechanism such as a semaphore or lock. Presentation access component 2352 may provide a play indication by not blocking and/or by unblocking a thread of execution for presenting the first media stream on the first presentation device by the first media player. Alternatively or additionally, presentation access component 2352 may provide a play indication by being included in and/or otherwise interoperating with a thread/process scheduler to put one or more threads for playing the first media stream in a run state. Sending a no-play indicator may analogously be performed and/or otherwise provided for by presentation access component 2352 by causing one or more threads for playing the first media stream to be blocked from execution by processor 2104.
Providing a play indication may further include sending and/or receiving a message via a network to and/or from, respectively, a remote node where either the node hosting presentation access component 2352 or the remote node is operatively coupled to a presentation device for presenting a media stream. Presentation access component 2352 may be adapted to operate in a client node, a server node, and/or an intermediary node such as a proxy server. A no-play indicator may be provided similarly.
Coordination and control of media streams as described herein may prevent incomprehensible and sometimes unpleasant user experiences resulting from media streams playing simultaneously in an uncoordinated manner. Further, coordination and control of play of multiple media streams according to the subject matter described herein may save resources. For example, battery life may be extended in battery powered devices and less energy may be used in devices connected to an electricity grid.
The components illustrated in
Components identifiers including letters in their identifiers in the figures are referred to collectively using the respective identifiers without the postfix including the letters and are, in some cases referred to generically across the figures in the same manner when the including description may apply to all adaptations of components identified in this way. Interpretation of the identifiers will be clear in the context of the including descriptive text in this document.
Execution environment 2402 as illustrated in
In
Web application client 2406 may include a web page for presenting a user interface for web application 2504. The web page may include and/or reference data represented in one or more formats including hypertext markup language (HTML) and/or markup language, ECMAScript or other scripting language, byte code, image data, audio data, and/or machine code.
The data received by content manager 2412 may be received in response to a request sent in a message to web application 2504 and/or may be received asynchronously in a message with no corresponding request.
In an example, in response to a request received from browser 2404b, controller 2512, in
While the example describes sending web application client 2406 in response to a request, web application 2504 additionally or alternatively may send some or all of web application client 2406 to browser 2404b via one or more asynchronous messages. An asynchronous message may be sent in response to a change detected by web application 2506. A publish-subscribe protocol such as the presence protocol specified by XMPP-IM is an exemplary protocol for sending messages asynchronously in response to a detected change.
The one or more messages including information representing web application client 2406 may be received by content manager 2412 via one or more of the application protocol layers 2410b and/or network stack 2408b as described above.
User interface element handlers 2416 are illustrated in presentation controller 2418 in
Application windows 2704 illustrate a number of user interface elements typically found in media player user interfaces. Application windows 2704 include respective command bars 2706 with input controls for receiving user input to change the operational state of the respective media players represented. Application windows 2704 also include respective user interface elements providing a presentation space 2708 for presenting a video media stream. Second App Window 2704b may be a browser window or tab presented by browser 2404b in
The various user interface elements of applications 2404 and web application 2504 described above are presented by one or more user interface element handlers 2416, 2516. In an aspect illustrated in
Input may be received corresponding to a user interface element via input driver 2424. For example,
First app window 2704a in
In an aspect, at least part of a media player UI element handle 2432b may be included in web application client 2406 provided by a remote application, such as web application 2504, in
For example, second app window 2704b in
For example, third app window 2704c in
The operation of various adaptations and aspects of focus state component are described above.
In
For example, presentation access component 2452a may detect an access to display 2130 to present video stream data, but may not be enabled to identify a particular application and/or media stream. Focus state component 2454a may interoperate with GUI subsystem 2420a, graphics subsystem 2422a, audio subsystem 2428a, and/or other presentation components to identify a particular media player and/or media stream.
Presentation focus information may include a correlator provided by GUI subsystem 2420a, graphics subsystem 2422a, audio subsystem 2428a, and/or other presentation components correlating the data intercepted by presentation access component 2452a with a particular media player accessing one or more presentation subsystem components.
Alternatively or additionally, media player information may be passed from GUI subsystem 2420a, graphics subsystem 2422a, audio subsystem 2428a, and/or other presentation components to presentation access component 2452a. Presentation access component 2452a may include and/or reference this information in presentation focus information. Based on presentation focus information received in response to detected media player accesses by presentation access component 2452a, focus state component 2454a may interoperate with focus director component 2456a to maintain presentation focus data identifying one or more media players with presentation focus.
In another aspect, focus state component 2454a may access presentation focus information from GUI subsystem 2420a, graphics subsystem 2422a, audio subsystem 2428a, and/or other presentation components, in response to a request from focus director component 2454a. Presentation focus information may include attributes such as z-order, input focus, and/or other attributes discussed above used in determining presentation focus.
In
In
In an example, first app window 2704a in
In another aspect, presentation focus for display 2130 may be determined based on a specified percentage or a particular portion of a media presentation space that is visible to a user. In
The media player having first media presentation space 2708a for playing a first video stream may be determined to have presentation focus for display 2130 given one or more visibility attributes of first app windows 2704a and/or its visual components. The media player having second media presentation space 2708b for playing a second video stream may be determined to have presentation focus for display 2130 as well given one or more visibility attributes of second app windows 2704b and/or its visual components. The media player having third media presentation space 2708c (hidden) for playing a third video stream may be determined to not have presentation focus for display 2130 given one or more visibility attributes of first app windows 2704c and/or its visual components.
In a further aspect, if third app window 2704c is moved to also be visible, in one aspect its media player may be assigned presentation focus based on, for example, a specified percentage of the window which is visible. In another aspect its media player may not have focus, when focus director 2456c is configured to limit the number of playing media streams on display 2130 to a maximum of two. The media player for third app window 2704c may be queued to wait for presentation focus. In a further aspect, a user input may be detected to raise a rank and/or priority associated with the media player for third app window 2704c to a level allowing it to have presentation focus. Presentation focus may be taken away from one of the other two media players halting play of one of their media streams. Based on the priority and/or rank assigned to the media player for third app window 2704c presentation focus may be taken from all other media players accessing display 2130.
Although it may be desirable to allow media players to share access to a presentation device as illustrated in the description of media streams in first media presentation space 2708a and second media presentation space 2708b both having presentation focus and allowed to play on display 2130, it might not be desirable in certain contexts which may depend on the type of presentation device. In an aspect, one of the audio streams associated with the two playing video streams may be prevented from playing simultaneously on user device 2602 speakers (not shown). Presentation focus for audio may be determined according to different rules than presentation focus for display 2130. For example, audio presentation focus in one aspect may be given to a media player that is most visible by a specified measure of visibility. For example, the audio stream associated with the video stream playing in first media presentation space 2708a may be determined to have presentation focus for user device 2602 speakers while other media players with audio streams to play may receive indications and/or otherwise be prevented from playing their audio streams on user device 2602 speaker(s).
Based on the descriptions provided herein, those skilled in the art will see that there are many possible variations for determining presentation focus and that these variations may be fixed and/or user configurable for various execution environments, presentation devices, browsers, and/or network application providers.
In
Alternatively or additionally, in
In another aspect, presentation access component 2552 may be configured to process a message from user node 2602 informing web application of a detected access to a presentation device for playing a media stream.
Presentation access component 2552 may detect media player accesses for media streams provided by and/or otherwise identified by web application 2504. Presentation access component 2552 may detect media player accesses for media streams provided by and/or otherwise identified by network applications interoperating with network application platform 2506 and/or otherwise operating in execution environment 2502.
Presentation access component 2552 may be configured to operate in and/or with network application platform 2506, in an aspect. In yet another aspect, presentation access component 2552 may receive access information for detecting media player accesses to one or more presentation devices of a remote client, such as user device 2602, to detect media player accesses for applications 2404 operating in user device 2602 other than and/or in addition to browser 2404b.
In an aspect, at least part of a media player UI element handler 2432b may be included in web application client 2406 provided by web application 2504 in
Second app window 2704b in
In
Focus state component 2554 may interoperate with focus director component 2556 to maintain presentation focus data identifying one or more media players with presentation focus.
In another aspect, focus state component 2554 may access presentation focus information from session information maintained for a remote client, such as web application client 2406, in response to a request from focus director component 2554. Presentation focus information may include attributes obtained via web application client 2406, such as second app window's 2704b z-order, input focus, and/or other attributes discussed above with respect to determining presentation focus.
In
Alternatively or additionally, in
A system for coordinating playing of media streams includes an execution environment, such as execution environment 2102, including an instruction processing unit, such as processor 2104, configured to process an instruction included in at least one of a presentation access component and a focus director component. The components illustrated in
With reference to
Returning to
Returning to
The arrangement of components in
It is noted that the methods described herein, in an aspect, are embodied in executable instructions stored in a non-transitory computer readable storage medium for use by or in connection with an instruction execution machine, apparatus, or device, such as a computer-based or processor-containing machine, apparatus, or device. It will be appreciated by those skilled in the art that for some embodiments, other types of non-transitory computer readable storage media are included which may store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memory (RAM), read-only memory (ROM), and the like.
As used here, a “non-transitory computer readable storage medium” includes one or more of any suitable media for storing the executable instructions of a computer program such that the instruction execution machine, system, apparatus, or device may read (or fetch) the instructions from the computer readable medium and execute the instructions for carrying out the described methods. Suitable storage formats include in one or more of an electronic, magnetic, optical, and electromagnetic format. A non-exhaustive list of conventional exemplary computer readable medium includes: a portable computer diskette; a RAM; a ROM; an erasable programmable read only memory (EPROM or flash memory); optical storage devices, including a portable compact disc (CD), a portable digital video disc (DVD), a high definition DVD (HD-DVD™), a BLU-RAY disc; and the like.
It should be understood that the arrangement of components illustrated in the figures described are exemplary and that other arrangements are possible. It should also be understood that the various system components (and means) defined by the claims, described below, and illustrated in the various block diagrams represent logical components in some systems configured according to the subject matter disclosed herein.
For example, one or more of these system components (and means) may be realized, in whole or in part, by at least some of the components illustrated in the arrangements illustrated in the described Figures. In addition, while at least one of these components is implemented at least partially as an electronic hardware component, and therefore constitutes a machine, the other components may be implemented in software that when included in an execution environment constitutes a machine, hardware, or a combination of software and hardware.
More particularly, at least one component defined by the claims is implemented at least partially as an electronic hardware component, such as an instruction execution machine (e.g., a processor-based or processor-containing machine) and/or as specialized circuits or circuitry (e.g., discreet logic gates interconnected to perform a specialized function). Other components may be implemented in software, hardware, or a combination of software and hardware. Moreover, some or all of these other components may be combined, some may be omitted altogether, and additional components may be added while still achieving the functionality described herein. Thus, the subject matter described herein may be embodied in many different variations, and all such variations are contemplated to be within the scope of what is claimed.
In the description above, the subject matter is described with reference to acts and symbolic representations of operations that are performed by one or more devices, unless indicated otherwise. As such, it will be understood that such acts and operations, which are at times referred to as being computer-executed, include the manipulation by the processor of data in a structured form. This manipulation transforms the data or maintains it at locations in the memory system of the computer, which reconfigures or otherwise alters the operation of the device in a manner well understood by those skilled in the art. The data is maintained at physical locations of the memory as data structures that have particular properties defined by the format of the data. However, while the subject matter is being described in the foregoing context, it is not meant to be limiting as those of skill in the art will appreciate that various of the acts and operation described hereinafter may also be implemented in hardware.
To facilitate an understanding of the subject matter described below, many aspects are described in terms of sequences of actions. At least one of these aspects defined by the claims is performed by an electronic hardware component. For example, it will be recognized that the various actions may be performed by specialized circuits or circuitry, by program instructions being executed by one or more processors, or by a combination of both. The description herein of any sequence of actions is not intended to imply that the specific order described for performing that sequence must be followed. All methods described herein may be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context
The use of the terms “a” and “an” and “the” and similar referents in the context of describing the subject matter (particularly in the context of the following claims) are to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. Recitation of ranges of values herein are merely intended to serve as a shorthand method of referring individually to each separate value falling within the range, unless otherwise indicated herein, and each separate value is incorporated into the specification as if it were individually recited herein. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation, as the scope of protection sought is defined by the claims as set forth hereinafter together with any equivalents thereof entitled to. The use of any and all examples, or exemplary language (e.g., “such as”) provided herein, is intended merely to better illustrate the subject matter and does not pose a limitation on the scope of the subject matter unless otherwise claimed. The use of the term “based on” and other like phrases indicating a condition for bringing about a result, both in the claims and in the written description, is not intended to foreclose any other conditions that bring about that result. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the invention as claimed.
The embodiments described herein included the best mode known to the inventor for carrying out the claimed subject matter. Of course, variations of those preferred embodiments will become apparent to those of ordinary skill in the art upon reading the foregoing description. The inventor expects skilled artisans to employ such variations as appropriate, and the inventor intends for the claimed subject matter to be practiced otherwise than as specifically described herein. Accordingly, this claimed subject matter includes all modifications and equivalents of the subject matter recited in the claims appended hereto as permitted by applicable law. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed unless otherwise indicated herein or otherwise clearly contradicted by context.
Patent | Priority | Assignee | Title |
10750230, | Jan 29 2010 | AMERICAN INVENTOR TECH, LLC | Hot key systems and methods |
10838594, | Jul 03 2018 | CANON PRODUCTION PRINTING HOLDING B V | Method of controlling a user interface |
Patent | Priority | Assignee | Title |
1672613, | |||
4839853, | Sep 15 1988 | CONTENT ANALYST COMPANY LLC | Computer information retrieval using latent semantic structure |
5029013, | Nov 26 1987 | Sony Corporation | Apparatus for editing video tapes |
5062060, | Jan 05 1987 | Motorola Inc | Computer human interface comprising user-adjustable window for displaying or printing information |
5072412, | Mar 25 1987 | Technology Licensing Corporation | User interface with multiple workspaces for sharing display system objects |
5159334, | Feb 27 1990 | DaimlerChrysler AG | Remote-control system for locks |
5227771, | Jul 10 1991 | International Business Machines Corporation | Method and system for incrementally changing window size on a display |
5297039, | Jan 30 1991 | Mitsubishi Denki Kabushiki Kaisha | Text search system for locating on the basis of keyword matching and keyword relationship matching |
5311207, | Apr 19 1990 | Sony Corporation | Image drawing apparatus for displaying input image on display means |
5371847, | Sep 22 1992 | Microsoft Technology Licensing, LLC | Method and system for specifying the arrangement of windows on a display |
5487143, | Apr 06 1994 | ALTERA CORPORATION, A DELAWARE CORPORATION | Computer user interface having tiled and overlapped window areas |
5491795, | May 04 1993 | International Business Machines Corporation | Window management system with a hierarchical iconic array and miniature windows |
5530865, | Mar 03 1993 | Apple Inc | Method and apparatus for improved application program switching on a computer-controlled display system |
5540597, | Dec 15 1993 | LENOVO SINGAPORE PTE LTD | All flex PCMCIA-format cable |
5577187, | May 20 1994 | Microsoft Technology Licensing, LLC | Method and system for tiling windows based on previous position and size |
5602997, | Aug 27 1992 | Intellisync Corporation | Customizable program control interface for a computer system |
5642518, | Jun 18 1993 | Hitachi, Ltd. | Keyword assigning method and system therefor |
5671295, | Oct 20 1994 | Brother Kogyo Kabushiki Kaisha | Apparatus for converting image outline data into dot data representative of dots to be formed |
5696962, | Jun 24 1993 | Xerox Corporation | Method for computerized information retrieval using shallow linguistic analysis |
5699535, | Mar 29 1996 | International Business Machines Corporation | Method, memory and apparatus for automatically resizing a plurality of windows displayed on a computer display |
5712995, | Sep 20 1995 | COHN, ROBERT M | Non-overlapping tiling apparatus and method for multiple window displays |
5721829, | May 05 1995 | Microsoft Technology Licensing, LLC | System for automatic pause/resume of content delivered on a channel in response to switching to and from that channel and resuming so that a portion of the content is repeated |
5737560, | Dec 29 1995 | Open Invention Network, LLC | Graphical method and system for accessing information on a communications network |
5742285, | Mar 28 1995 | Fujitsu Limited | Virtual screen display system |
5745115, | Jan 13 1996 | International Business Machines Corporation | Graphical user interface having a shared menu bar for opened applications |
5757371, | Dec 13 1994 | Microsoft Technology Licensing, LLC | Taskbar with start menu |
5771042, | Jul 17 1996 | International Business Machines Corporation; IBM Corporation | Multi-size control for multiple adjacent workspaces |
5778256, | Mar 24 1993 | NISEL INVESTMENTS LIMITED LIABILITY COMPANY | PDA having a separate infrared generating device connected to its printer port for controlling home appliances |
5794233, | Apr 09 1996 | HANGER SOLUTIONS, LLC | Browse by prompted keyword phrases |
5805167, | Sep 22 1994 | Popup menus with directional gestures | |
5819055, | Dec 13 1994 | Microsoft Technology Licensing, LLC | Method and apparatus for docking re-sizeable interface boxes |
5819261, | Mar 28 1995 | Canon Kabushiki Kaisha | Method and apparatus for extracting a keyword from scheduling data using the keyword for searching the schedule data file |
5838318, | Nov 10 1995 | Intel Corporation | Method and apparatus for automatically and intelligently arranging windows on a display device |
5877765, | Sep 11 1995 | Microsoft Technology Licensing, LLC | Method and system for displaying internet shortcut icons on the desktop |
5877767, | Dec 29 1995 | Open Invention Network, LLC | Graphical method and system for accessing information on a communications network |
5880732, | Apr 29 1997 | CLUSTER, LLC; Optis Wireless Technology, LLC | Apparatus enabling usage of external display monitor with a mobile telephone |
5895465, | Sep 09 1997 | Meta Platforms, Inc | Heuristic co-identification of objects across heterogeneous information sources |
5910802, | Jun 11 1997 | Microsoft Technology Licensing, LLC | Operating system for handheld computing device having taskbar auto hide |
5913215, | Apr 09 1996 | HANGER SOLUTIONS, LLC | Browse by prompted keyword phrases with an improved method for obtaining an initial document set |
5917491, | Aug 29 1997 | Meta Platforms, Inc | Page proxy |
5918237, | Sep 30 1996 | AT&T Corp. | System and method for providing multimedia bookmarks for hypertext markup language files |
5929854, | Nov 30 1995 | VIXEL VIKING, LLC | Dialog box method and system for arranging document windows |
5950214, | Nov 19 1993 | DATACLOUD TECHNOLOGIES, LLC | System, method, and computer program product for accessing a note database having subnote information for the purpose of manipulating subnotes linked to portions of documents |
5974409, | Aug 23 1995 | Microsoft Technology Licensing, LLC | System and method for locating information in an on-line network |
5978817, | Aug 15 1995 | Microsoft Technology Licensing, LLC | Browser having automatic URL generation |
5991751, | Jun 02 1997 | DATACLOUD TECHNOLOGIES, LLC | System, method, and computer program product for patent-centric and group-oriented data processing |
5991780, | Nov 19 1993 | DATACLOUD TECHNOLOGIES, LLC | Computer based system, method, and computer program product for selectively displaying patent text and images |
5995103, | May 10 1996 | Apple Inc | Window grouping mechanism for creating, manipulating and displaying windows and window groups on a display screen of a computer system |
5999907, | Dec 06 1993 | CALLAHAN CELLULAR L L C | Intellectual property audit system |
6008809, | Sep 22 1997 | International Business Machines Corporation | Apparatus and method for viewing multiple windows within a dynamic window |
6012093, | Jun 13 1997 | International Business Machines Corporation | Method and apparatus for modification of network link histories |
6014663, | Jan 23 1996 | Rose Blush Software LLC | System, method, and computer program product for comparing text portions by reference to index information |
6018714, | Nov 08 1997 | IP Value, LLC | Method of protecting against a change in value of intellectual property, and product providing such protection |
6018749, | Nov 19 1993 | DATACLOUD TECHNOLOGIES, LLC | System, method, and computer program product for generating documents using pagination information |
6020863, | Feb 27 1996 | Cirrus Logic, Inc. | Multi-media processing system with wireless communication to a remote display and method using same |
6025841, | Jul 15 1997 | Microsoft Technology Licensing, LLC | Method for managing simultaneous display of multiple windows in a graphical user interface |
6025842, | Nov 04 1997 | GOOGLE LLC | System and method for window queues and white space activation for toggling windows |
6028602, | May 30 1997 | Telefonaktiebolaget LM Ericsson | Method for managing contents of a hierarchical data model |
6028604, | Aug 27 1997 | Microsoft Technology Licensing, LLC | User friendly remote system interface providing previews of applications |
6037934, | Nov 21 1997 | International Business Machines Corporation | Named bookmark sets |
6037981, | Sep 02 1998 | Intel Corporation | Method and apparatus for using digital televisions as remote personal computer displays |
6041360, | Nov 21 1997 | International Business Machines Corporation | Web browser support for dynamic update of bookmarks |
6072486, | Jan 13 1998 | Microsoft Technology Licensing, LLC | System and method for creating and customizing a deskbar |
6072491, | Dec 29 1995 | Open Invention Network, LLC | Method and computer program product for accessing a web site |
6081829, | Jan 31 1996 | Open Invention Network, LLC | General purpose web annotations without modifying browser |
6091956, | Jun 12 1997 | LBS INNOVATIONS, LLC | Situation information system |
6100890, | Nov 25 1997 | International Business Machines Corporation | Automatic bookmarks |
6108003, | Mar 18 1998 | International Business Machines Corporation | Maintaining visibility and status indication of docked applications and application bars |
6108651, | Sep 09 1997 | Meta Platforms, Inc | Heuristic co-identification of objects across heterogeneous information sources |
6111576, | Nov 06 1995 | International Business Machines Corporation | Method and apparatus for providing selected menu functions as an attachment menu bar on graphic user interface systems |
6154725, | Dec 06 1993 | EASTERN IX GROUP LLC | Intellectual property (IP) computer-implemented audit system optionally over network architecture, and computer program product for same |
6166736, | Aug 27 1997 | THEBRAIN TECHNOLOGIES, LP | Method and apparatus for simultaneously resizing and relocating windows within a graphical display |
6173251, | Aug 05 1997 | Mitsubishi Denki Kabushiki Kaisha | Keyword extraction apparatus, keyword extraction method, and computer readable recording medium storing keyword extraction program |
6189024, | Jan 06 1998 | Meta Platforms, Inc | Browsing session recording playback and editing system for generating user defined paths and allowing users to mark the importance of items in the paths |
6212541, | Oct 24 1994 | Microsoft Technology Licensing, LLC | System and method for switching between software applications in multi-window operating system |
6230171, | Aug 29 1998 | International Business Machines Corporation | Markup system for shared HTML documents |
6232971, | Sep 23 1998 | International Business Machines Corporation | Variable modality child windows |
6239798, | May 28 1998 | Oracle America, Inc | Methods and apparatus for a window access panel |
6243091, | Nov 21 1997 | International Business Machines Corporation | Global history view |
6252597, | Feb 14 1997 | Meta Platforms, Inc | Scalable user interface for graphically representing hierarchical data |
6263314, | Dec 06 1993 | EASTERN IX GROUP LLC | Method of performing intellectual property (IP) audit optionally over network architecture |
6266059, | Aug 27 1997 | Rovi Technologies Corporation | User interface for switching between application modes |
6275862, | Jan 06 1999 | International Business Machines Corporation | Automatic categorization of bookmarks in a web browser |
6310631, | Apr 26 1996 | International Business Machines Corporation | User interface control for creating split panes in a single window |
6314423, | May 15 1998 | UNILOC 2017 LLC | Searching and serving bookmark sets based on client specific information |
6339767, | Jun 02 1997 | DATACLOUD TECHNOLOGIES, LLC | Using hyperbolic trees to visualize data generated by patent-centric and group-oriented data processing |
6353827, | Sep 04 1997 | British Telecommunications public limited company | Methods and/or systems for selecting data sets |
6363204, | Sep 30 1997 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Viewing management for video sources |
6377996, | Feb 18 1999 | GOOGLE LLC | System for seamless streaming of data stored on a network of distributed primary and target servers using segmentation information exchanged among all servers during streaming |
6381651, | Dec 18 1996 | Sony Corporation | Information processing apparatus and method enabling users to easily acquire information that occurs on a network and suits their favorites |
6389434, | Nov 19 1993 | DATACLOUD TECHNOLOGIES, LLC | System, method, and computer program product for creating subnotes linked to portions of data objects after entering an annotation mode |
6434580, | Oct 24 1997 | NEC Corporation | System, method, and recording medium for drafting and preparing patent specifications |
6437527, | Jun 18 1999 | Garage door security device | |
6460058, | Dec 06 1996 | Microsoft Technology Licensing, LLC | Object-oriented framework for hyperlink navigation |
6473752, | Dec 04 1997 | Round Rock Research, LLC | Method and system for locating documents based on previously accessed documents |
6478001, | Dec 18 2001 | Delph Technologies, Inc.; Okay Industries, Inc.; Delphi Technologies, Inc; OKAY INDUSTRIES, INC | Cam follower with clamp |
6493702, | May 05 1999 | GOOGLE LLC | System and method for searching and recommending documents in a collection using share bookmarks |
6546393, | Oct 07 1999 | NVIDIA INC | System method and article of manufacture for dynamically user-generated internet search directory based on prioritized server-sided user bookmarks |
6564380, | Jan 26 1999 | S AQUA SEMICONDUCTOR, LLC | System and method for sending live video on the internet |
6571241, | Mar 03 1998 | MAZDA MOTOR CORPORATION A CORPORATION OF JAPAN | Multilingual patent information search system |
6571295, | Jan 31 1996 | Open Invention Network, LLC | Web page annotating and processing |
6578078, | Apr 02 1999 | Microsoft Technology Licensing, LLC | Method for preserving referential integrity within web sites |
6601173, | Jul 06 1999 | AVAYA Inc | Multi-user internet access and security system |
6630943, | Sep 21 1999 | Ostendo Technologies, Inc | Method and system for controlling a complementary user interface on a display surface |
6661436, | Dec 07 2000 | KING COM LTD | Method for providing window snap control for a split screen computer program GUI |
6664983, | Mar 28 1997 | Sun Microsystems, Inc. | Method and apparatus for configuring sliding panels |
6667751, | Jul 13 2000 | GOOGLE LLC | Linear web browser history viewer |
6694331, | Mar 21 2001 | EUGENE M LEE | Apparatus for and method of searching and organizing intellectual property information utilizing a classification system |
6697838, | May 03 2000 | CDN INNOVATIONS, LLC | Method and system for annotating information resources in connection with browsing, in both connected and disconnected states |
6724403, | Oct 29 1999 | SURFCAST, INC | System and method for simultaneous display of multiple information sources |
6754702, | Oct 02 1998 | RPX CLEARINGHOUSE LLC | Custom administrator views of management objects |
6781611, | Jun 28 2000 | International Business Machines Corporation | Method and system for navigating between applications, documents, and files |
6788315, | Nov 17 1997 | Fujitsu Limited | Platform independent computer network manager |
6798358, | Jul 03 2001 | Microsoft Technology Licensing, LLC | Location-based content delivery |
6883170, | Aug 30 2000 | ALVARIA, INC | Method and system to maintain a hierarchy of instantiated application objects and to enable recovery from an applications failure |
6915492, | Jul 21 1998 | AUTODESK, Inc | System for accessing a large number of menu items using a zoned menu bar |
6957395, | Jan 04 2000 | Apple Inc | Computer interface having a single window mode of operation |
6961731, | Nov 15 2000 | CALLAHAN CELLULAR L L C | Apparatus and method for organizing and/or presenting data |
6973456, | Aug 10 2000 | STORELAW, INC | Database system and method for organizing and sharing information |
6973616, | Jun 24 1999 | Microsoft Technology Licensing, LLC | Associating annotations with a content source |
6993722, | Feb 08 1999 | Cirrus Logic, INC | User interface system methods and computer program products for multi-function consumer entertainment appliances |
7006055, | Nov 29 2001 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Wireless multi-user multi-projector presentation system |
7010515, | Jul 12 2001 | Matsushita Electric Industrial Co., Ltd. | Text comparison apparatus |
7010755, | Apr 05 2002 | Microsoft Technology Licensing, LLC | Virtual desktop manager |
7028253, | Oct 10 2000 | Monument Peak Ventures, LLC | Agent for integrated annotation and retrieval of images |
7028264, | Oct 29 1999 | SURFCAST, INC | System and method for simultaneous display of multiple information sources |
7080088, | Jan 30 2002 | Oracle International Corporation | Automatic reconciliation of bindable objects |
7096271, | Sep 15 1998 | Microsoft Technology Licensing, LLC | Managing timeline modification and synchronization of multiple media streams in networked client/server systems |
7114129, | Mar 28 2002 | LinkedIn Corporation | Method and system for controlling an application displayed in an inactive window |
7117443, | Sep 24 2001 | Aloft Media, LLC | Network browser graphical user interface for managing web content |
7134094, | Jan 14 2005 | Microsoft Technology Licensing, LLC | Automatic assigning of shortcut keys |
7141115, | Sep 02 2004 | GLOBALFOUNDRIES Inc | Method of producing silicon-germanium-on-insulator material using unstrained Ge-containing source layers |
7194691, | Sep 24 2001 | Aloft Media, LLC | Network browser window with adjacent identifier selector interface for storing web content |
7237198, | May 22 2000 | Intel Corporation | System and method of providing for the control of a music player to a device driver |
7254784, | Sep 11 2002 | F POSZAT HU, L L C | User-driven menu generation system with multiple submenus |
7305625, | Sep 24 2001 | Aloft Media, LLC | Data networking system and method for interfacing a user |
7346850, | Jun 12 1998 | Cygnus Systems, Inc. | System and method for iconic software environment management |
7346855, | Dec 21 2001 | Microsoft Technology Licensing, LLC | Method and system for switching between multiple computer applications |
7370284, | Nov 18 2003 | Intel Corporation | User interface for displaying multiple applications |
7373592, | Jul 30 1999 | Microsoft Technology Licensing, LLC | Modeless child windows for application programs |
7386784, | Dec 21 2000 | Microsoft Technology Licensing, LLC | Universal media player |
7412661, | Mar 04 2005 | Microsoft Technology Licensing, LLC | Method and system for changing visual states of a toolbar |
7426697, | Jan 18 2005 | Microsoft Technology Licensing, LLC | Multi-application tabbing system |
7437678, | Oct 27 2005 | International Business Machines Corporation | Maximizing window display area using window flowing |
7454511, | May 29 2003 | Intel Corporation | Visibility of UPNP media renderers and initiating rendering via file system user interface |
7478326, | Jan 18 2005 | Microsoft Technology Licensing, LLC | Window information switching system |
7478339, | Apr 01 2005 | Microsoft Technology Licensing, LLC | Method and apparatus for application window grouping and management |
7480872, | Apr 06 2003 | Apple Inc | Method and apparatus for dynamically resizing windows |
7496277, | Jun 02 2003 | DISNEY ENTERPRISES, INC | System and method of programmatic window control for consumer video players |
7512880, | Dec 23 2005 | Scenera Technologies, LLC | Method and system for presenting published information in a browser |
7516188, | Jun 14 2004 | Scenera Technologies, LLC | System using selected controller for sharing and directing web content in real time among network devices |
7546602, | Jul 10 2001 | Microsoft Technology Licensing, LLC | Application program interface for network software platform |
7552397, | Jan 18 2005 | Microsoft Technology Licensing, LLC | Multiple window behavior system |
7581192, | Mar 31 2005 | Microsoft Technology Licensing, LLC | Method and apparatus for application window grouping and management |
7595810, | Mar 22 2006 | Apple Inc | Methods of manipulating a screen space of a display device |
7617510, | Sep 05 2003 | Microsoft Technology Licensing, LLC | Media network using set-top boxes as nodes |
7627425, | Nov 26 2004 | Microsoft Technology Licensing, LLC | Location aware mobile-device software development |
7646312, | Aug 11 2006 | RYAN, THOMAS P | Method and system for automated detection of mobile telephone usage by drivers of vehicles |
7661069, | Mar 31 2005 | Microsoft Technology Licensing, LLC | System and method for visually expressing user interface elements |
7665031, | Dec 08 2004 | Microsoft Technology Licensing, LLC | Method and system of taskbar button interfaces |
7665033, | Aug 31 2006 | Oracle America, Inc | Using a zooming effect to provide additional display space for managing applications |
7665115, | Feb 02 2001 | Microsoft Technology Licensing, LLC | Integration of media playback components with an independent timing specification |
7673255, | Apr 22 2005 | Microsoft Technology Licensing, LLC | Interface and system for manipulating thumbnails of live windows in a window manager |
7689929, | Jun 21 2000 | Microsoft Technology Licensing, LLC | Methods and systems of providing information to computer users |
7705833, | Dec 29 2006 | LG Electronics Inc. | Display device and method of mobile terminal |
7711570, | Oct 21 2001 | Microsoft Technology Licensing, LLC | Application abstraction with dialog purpose |
7730427, | Dec 29 2005 | SAP SE | Desktop management scheme |
7735018, | Sep 13 2005 | SPACETIME3D, INC | System and method for providing three-dimensional graphical user interface |
7739617, | Jun 20 2003 | Apple Inc | Computer interface having a virtual single-layer mode for viewing overlapping objects |
7769794, | Mar 24 2003 | Microsoft Technology Licensing, LLC | User interface for a file system shell |
7773075, | Mar 22 2006 | Panasonic Corporation | Display apparatus |
7783990, | May 05 2006 | Microsoft Technology Licensing, LLC | Association of display elements |
7796190, | Aug 15 2008 | AT&T Intellectual Property I, L P | System and method for adaptive content rendition |
7818677, | Jun 21 2000 | Microsoft Technology Licensing, LLC | Single window navigation methods and systems |
7818691, | May 11 2000 | ZEROCLICK, LLC | Zeroclick |
7839419, | Oct 23 2003 | Microsoft Technology Licensing, LLC | Compositing desktop window manager |
7844917, | Apr 20 2006 | LinkedIn Corporation | Optimal display of multiple windows within a computer display |
7881315, | Jun 27 2006 | Microsoft Technology Licensing, LLC | Local peer-to-peer digital content distribution |
7882448, | Dec 29 2005 | SAP SE | Taskbar configuration tool for computer systems |
7899915, | May 10 2002 | Convergent Media Solutions LLC | Method and apparatus for browsing using multiple coordinated device sets |
7920932, | Sep 07 2006 | Rateze Remote Mgmt LLC | Audio control using a wireless home entertainment hub |
7933632, | Sep 16 2005 | Microsoft Technology Licensing, LLC | Tile space user interface for mobile devices |
8005236, | Sep 07 2006 | Rateze Remote Mgmt LLC | Control of data presentation using a wireless home entertainment hub |
8010900, | Jun 08 2007 | Apple Inc | User interface for electronic backup |
8019883, | May 05 2005 | III Holdings 1, LLC | WiFi peripheral mode display system |
8056016, | Apr 09 2007 | HUAWEI TECHNOLOGIES CO , LTD | Method and mobile communication terminal for changing the mode of the terminal |
8059137, | Oct 23 2003 | Microsoft Technology Licensing, LLC | Compositing desktop window manager |
8060631, | Dec 10 2007 | Deluxe 3D LLC; DELUXE CREATIVE SERVICES INC ; DELUXE DIGITAL DISTRIBUTION INC ; DELUXE DIGITAL STUDIOS, INC ; DELUXE ENTERTAINMENT SERVICES INC AS SUCCESSOR BY MERGER TO DELUXE ENTERTAINMENT SERVICES GROUP INC ; Deluxe Laboratories LLC; DELUXE MEDIA INC ; DELUXE ONE LLC; SOFTITLER NET, INC AS SUCCESSOR BY MERGER TO SFERA LABS, LLC | Method and system for use in coordinating multimedia devices |
8060837, | Jul 24 2007 | NTT DOCOMO, INC. | Information processing device and program |
8117225, | Jan 18 2008 | International Business Machines Corporation | Drill-down system, method, and computer program product for focusing a search |
8132217, | Nov 22 2007 | LENOVO INNOVATIONS LIMITED HONG KONG | Control device, reproduction system, and program |
8146132, | Sep 07 2006 | Rateze Remote Mgmt LLC | Device registration using a wireless home entertainment hub |
8166411, | Dec 25 2008 | Gold Charm Limited | Data transferring system and method, and electronic device having the same |
8171429, | May 30 2008 | R2 SOLUTIONS LLC | Application navigation |
8191003, | Feb 14 2007 | KYNDRYL, INC | Managing transparent windows |
8204649, | Oct 09 2008 | University of Utah Research Foundation | Integrated systems and method for preventing mobile computing device use while driving |
8249627, | Dec 21 2009 | “I am driving/busy” automatic response system for mobile phones | |
8266541, | Mar 15 2006 | Ricoh Company, Ltd. | Message window display control apparatus, method, and program product |
8291324, | Jul 18 1996 | CA, INC | Network management system using virtual reality techniques to display and simulate navigation to network components |
8302026, | Nov 28 2008 | Microsoft Technology Licensing, LLC | Multi-panel user interface |
8307388, | Sep 07 2006 | Rateze Remote Mgmt LLC | Automatic adjustment of devices in a home entertainment system |
8315617, | Oct 31 2009 | Hyundai Motor Company | Controlling mobile device functions |
8320026, | Jan 22 2008 | Kyocera Document Solutions Inc | Image reading apparatus and image forming apparatus with a control device for adjusting a white reference member to a set position according to shading correction or image reading operation |
8321038, | Sep 07 2006 | Rateze Remote Mgmt LLC | Presentation of still image data on display devices using a wireless home entertainment hub |
8326486, | Oct 15 2009 | Airbiquity Inc. | Centralized management of motor vehicle software applications and services |
8335502, | Sep 21 2010 | General Motors LLC | Method for controlling mobile communications |
8340730, | May 11 2010 | System and method for safely blocking mobile communications usages | |
8341541, | Jan 18 2005 | Microsoft Technology Licensing, LLC | System and method for visually browsing of open windows |
8355751, | Feb 18 2009 | Malikie Innovations Limited | Automatic activation of speed measurement in mobile device based on available motion indicia |
8356258, | Feb 01 2008 | Microsoft Technology Licensing, LLC | Arranging display areas utilizing enhanced window states |
8379058, | Jun 06 2008 | Apple Inc. | Methods and apparatuses to arbitrarily transform windows |
8380176, | Aug 08 2008 | WEBSAFETY, INC | Method of inhibiting functions of a mobile communications device |
8380864, | Dec 27 2006 | Microsoft Technology Licensing, LLC | Media stream slicing and processing load allocation for multi-user media systems |
8381127, | Feb 02 2006 | Scenera Technologies, LLC | Methods, systems, and computer program products for displaying windows on a graphical user interface based on relative priorities associated with the windows |
8385982, | Dec 21 2009 | AT&T Intellectual Property I, L.P. | Controlling use of a communications device in accordance with motion of the device |
8422858, | Jan 21 2010 | Cypress Lake Software, Inc | Methods, systems, and computer program products for coordinating playing of media streams |
8457692, | Oct 07 2010 | Malikie Innovations Limited | Method and system for preventing device operation when driving |
8464177, | Jul 26 2006 | Verizon Patent and Licensing Inc | Window resizing in a graphical user interface |
8468227, | Dec 31 2002 | MOTOROLA SOLUTIONS, INC | System and method for rendering content on multiple devices |
8479117, | Jun 04 2010 | LENOVO PC INTERNATIONAL LIMITED; Lenovo PC International | Intelligent window sizing for graphical user interfaces |
8490019, | Jan 29 2008 | Microsoft Technology Licensing, LLC | Displaying thumbnail copies of each running item from one or more applications |
8504937, | Jan 04 2000 | Apple Inc | Computer interface having a single window mode of operation |
8510682, | Dec 20 2002 | SAP SE | Unifying navigation model |
8527013, | May 08 2009 | Western Alliance Bank | Systems, methods, and devices for policy-based control and monitoring of use of mobile devices by vehicle operators |
8549429, | Jan 25 2007 | Sharp Kabushiki Kaisha | Multi-window management apparatus and program, storage medium and information processing apparatus |
8555163, | Jun 09 2010 | Microsoft Technology Licensing, LLC | Smooth streaming client component |
8555185, | Jun 08 2009 | Apple Inc | User interface for multiple display regions |
8560959, | Dec 23 2010 | Microsoft Technology Licensing, LLC | Presenting an application change through a tile |
8560960, | Nov 23 2010 | Apple Inc. | Browsing and interacting with open windows |
8572257, | Jan 27 2006 | SYNDEFENSE | Method and system to share media content between devices via near field communication (NFC) and wireless communication |
8589823, | Jan 05 2006 | Apple Inc. | Application user interface with navigation bar showing current and prior application contexts |
8600446, | Sep 26 2008 | HTC Corporation | Mobile device interface with dual windows |
8619038, | Sep 04 2007 | Apple Inc | Editing interface |
8627217, | May 06 2004 | Window display system, window display method, program development support device, and server device | |
8633900, | Feb 22 2007 | Samsung Electronics Co., Ltd. | Screen display method for mobile terminal |
8635649, | Dec 19 1996 | Gemstar Development Corporation | System and method for modifying advertisement responsive to EPG information |
8661361, | Aug 26 2010 | Cypress Lake Software, Inc | Methods, systems, and computer program products for navigating between visual components |
8667415, | Aug 06 2007 | Apple Inc.; Apple Inc | Web widgets |
8687023, | Aug 02 2011 | Microsoft Technology Licensing, LLC | Cross-slide gesture to select and rearrange |
8706349, | Dec 07 2009 | Hyundai Motor Company; Kia Corporation | Devices, systems and methods for controlling permitted settings on a vehicle |
8769428, | Dec 09 2009 | Citrix Systems, Inc | Methods and systems for generating a combined display of taskbar button group entries generated on a local machine and on a remote machine |
8780130, | Nov 30 2010 | Cypress Lake Software, Inc | Methods, systems, and computer program products for binding attributes between visual components |
8781299, | Jan 21 2010 | Cypress Lake Software, Inc | Methods, systems, and computer program products for coordinating playing of media streams |
8781491, | Mar 02 2007 | AEGIS MOBILITY, INC | Management of mobile device communication sessions to reduce user distraction |
8787731, | Jan 21 2010 | Cypress Lake Software, Inc | Methods, systems, and computer program products for coordinating playing of media streams |
8799495, | Dec 17 2008 | AT&T LABS, INC ; FUTUREWEI TECHNOLOGIES, INC | Multiple devices multimedia control |
8799496, | Jul 21 2009 | Concert Technology Corporation | System and method for video display transfer between video playback devices |
8819571, | Sep 30 2010 | Apple Inc.; Apple Inc | Manipulating preview panels in a user interface |
8830270, | Sep 10 2011 | Microsoft Technology Licensing, LLC | Progressively indicating new content in an application-selectable user interface |
8850052, | Sep 30 2008 | Apple Inc.; Apple Inc | System and method for simplified resource sharing |
8850351, | Sep 25 2007 | ATI Technologies ULC | Method and tool for virtual desktop management |
8850354, | May 21 2010 | GOOGLE LLC | Multi-window web-based application structure |
8869027, | Aug 04 2006 | Apple Inc | Management and generation of dashboards |
8874491, | Jun 30 2008 | Nokia Technologies Oy | Task history user interface using a clustering algorithm |
8893033, | May 27 2011 | Microsoft Technology Licensing, LLC | Application notifications |
8922575, | Sep 09 2011 | Microsoft Technology Licensing, LLC | Tile cache |
8935631, | Sep 01 2011 | Microsoft Technology Licensing, LLC | Arranging tiles |
8952800, | Jan 11 2011 | Quartz Auto Technologies LLC | Prevention of texting while operating a motor vehicle |
8954871, | Jul 18 2007 | Apple Inc. | User-centric widgets and dashboards |
8972860, | Sep 30 2009 | Adobe Inc | Player instance management |
8983264, | Jan 21 2010 | Cypress Lake Software, Inc | Methods, systems, and computer program products for coordinating playing of media streams |
8990733, | Dec 20 2010 | Microsoft Technology Licensing, LLC | Application-launching interface for multiple modes |
8992323, | Nov 02 2007 | LNW GAMING, INC | Gesture enhanced input device |
9021365, | May 11 2009 | AT&T Intellectual Property I, LP | Apparatus and method for distributing media content |
9032318, | Oct 27 2005 | Apple Inc. | Widget security |
9043712, | Oct 29 1999 | SURFCAST, INC | System and method for simultaneous display of multiple information sources |
9066199, | Jun 28 2007 | Apple Inc | Location-aware mobile device |
9086785, | Jun 08 2007 | Apple Inc; Apple Computer, Inc | Visualization object receptacle |
9104294, | Apr 12 2006 | Apple Inc | Linked widgets |
9141262, | Jan 06 2012 | Microsoft Technology Licensing, LLC | Edge-based hooking gestures for invoking user interfaces |
9152299, | Oct 08 2009 | Red Hat, Inc.; Red Hat, Inc | Activity management tool |
9195321, | Mar 17 2011 | Intellitact LLC | Input device user interface enhancements |
9294526, | Dec 28 2009 | Microsoft Technology Licensing, LLC | Managing multiple dynamic media streams |
9342208, | Jul 27 2010 | R2 SOLUTIONS LLC | System and method for optimizing window display |
9344554, | May 07 2009 | Samsung Electronics Co., Ltd.; SAMSUNG ELECTRONICS CO , LTD | Method for activating user functions by types of input signals and portable terminal adapted to the method |
9423923, | Aug 26 2010 | Cypress Lake Software, Inc | Navigation methods, systems, and computer program products |
9423938, | Aug 26 2010 | Cypress Lake Software, Inc | Methods, systems, and computer program products for navigating between visual components |
9423954, | Nov 30 2010 | Cypress Lake Software, Inc | Graphical user interface methods, systems, and computer program products |
9471217, | May 19 2009 | Samsung Electronics Co., Ltd. | Display management method and system of mobile terminal |
9529517, | Oct 13 2009 | GOOGLE LLC | Movable information panels |
9684428, | Jun 07 2013 | Insyde Software Corp.; INSYDE SOFTWARE CORP | Method of starting applications installed on a mobile operating system in a multi-window mode and device using the same |
9715332, | Aug 26 2010 | Cypress Lake Software, Inc | Methods, systems, and computer program products for navigating between visual components |
9785341, | Dec 31 2009 | Verizon Patent and Licensing Inc. | Inter-application navigation apparatuses, systems, and methods |
9817558, | Jan 21 2010 | Cypress Lake Software, Inc. | Methods, systems, and computer program products for coordinating playing of media streams |
9823838, | Nov 30 2010 | Cypress Lake Software, Inc | Methods, systems, and computer program products for binding attributes between visual components |
9841878, | Feb 05 2014 | Cypress Lake Software, Inc. | Methods, systems, and computer program products for navigating between visual components |
9870145, | Nov 30 2010 | Cypress Lake Software, Inc | Multiple-application mobile device methods, systems, and computer program products |
20010047404, | |||
20020007373, | |||
20020019837, | |||
20020032659, | |||
20020035499, | |||
20020042841, | |||
20020059076, | |||
20020070963, | |||
20020077835, | |||
20020082778, | |||
20020091762, | |||
20020093528, | |||
20020111953, | |||
20020147742, | |||
20020169743, | |||
20020184095, | |||
20020191028, | |||
20020196272, | |||
20030003892, | |||
20030016241, | |||
20030018609, | |||
20030025676, | |||
20030033295, | |||
20030036945, | |||
20030046307, | |||
20030046557, | |||
20030076352, | |||
20030096593, | |||
20030135820, | |||
20030172020, | |||
20040017379, | |||
20040066414, | |||
20040078382, | |||
20040085328, | |||
20040085367, | |||
20040181427, | |||
20040193697, | |||
20040205537, | |||
20040243938, | |||
20040255029, | |||
20050010876, | |||
20050010932, | |||
20050022135, | |||
20050059076, | |||
20050081155, | |||
20050149879, | |||
20050166136, | |||
20050192025, | |||
20050193330, | |||
20050195173, | |||
20050198584, | |||
20050202852, | |||
20050210416, | |||
20050240873, | |||
20050250458, | |||
20050262254, | |||
20050268279, | |||
20050286546, | |||
20060002681, | |||
20060010395, | |||
20060015246, | |||
20060033840, | |||
20060074550, | |||
20060079214, | |||
20060085753, | |||
20060110136, | |||
20060168528, | |||
20060203758, | |||
20060212795, | |||
20060224992, | |||
20060236255, | |||
20060248404, | |||
20060248471, | |||
20060271853, | |||
20060294130, | |||
20060294470, | |||
20070005783, | |||
20070021117, | |||
20070075131, | |||
20070086431, | |||
20070136778, | |||
20070186180, | |||
20070192726, | |||
20070234221, | |||
20070250788, | |||
20070265745, | |||
20070271525, | |||
20070288715, | |||
20080005692, | |||
20080008439, | |||
20080034317, | |||
20080053233, | |||
20080070588, | |||
20080082784, | |||
20080109753, | |||
20080109867, | |||
20080115073, | |||
20080115081, | |||
20080129528, | |||
20080148149, | |||
20080155437, | |||
20080158189, | |||
20080163104, | |||
20080186282, | |||
20080201751, | |||
20080231546, | |||
20080234488, | |||
20080235580, | |||
20080235588, | |||
20080250319, | |||
20080297483, | |||
20090005983, | |||
20090013282, | |||
20090031243, | |||
20090031247, | |||
20090044138, | |||
20090046545, | |||
20090063178, | |||
20090070339, | |||
20090094317, | |||
20090102744, | |||
20090106104, | |||
20090106357, | |||
20090138819, | |||
20090144661, | |||
20090164641, | |||
20090164936, | |||
20090177966, | |||
20090182889, | |||
20090188288, | |||
20090193351, | |||
20090193358, | |||
20090199128, | |||
20090219441, | |||
20090228157, | |||
20090228824, | |||
20090228897, | |||
20090249222, | |||
20090249235, | |||
20090254610, | |||
20090259711, | |||
20090295788, | |||
20090295905, | |||
20090300552, | |||
20090303242, | |||
20100011285, | |||
20100037154, | |||
20100066698, | |||
20100077346, | |||
20100077347, | |||
20100081385, | |||
20100081475, | |||
20100082784, | |||
20100088635, | |||
20100097357, | |||
20100138780, | |||
20100148920, | |||
20100161813, | |||
20100169813, | |||
20100169814, | |||
20100229090, | |||
20100241989, | |||
20100248788, | |||
20100257090, | |||
20100262931, | |||
20100267332, | |||
20100269039, | |||
20100281372, | |||
20100297930, | |||
20100299597, | |||
20100302172, | |||
20100306657, | |||
20100313225, | |||
20110012930, | |||
20110029915, | |||
20110074794, | |||
20110078733, | |||
20110113363, | |||
20110138313, | |||
20110143769, | |||
20110161485, | |||
20110161868, | |||
20110173556, | |||
20110208336, | |||
20110219330, | |||
20110231878, | |||
20110246904, | |||
20110252356, | |||
20110302528, | |||
20120011437, | |||
20120023453, | |||
20120032783, | |||
20120036443, | |||
20120042275, | |||
20120072867, | |||
20120081302, | |||
20120084711, | |||
20120084713, | |||
20120096397, | |||
20120154424, | |||
20120167011, | |||
20120226817, | |||
20120304114, | |||
20130047117, | |||
20130063442, | |||
20130063490, | |||
20130159857, | |||
20130198692, | |||
20130326401, | |||
20130346564, | |||
20140136979, | |||
20140229891, | |||
20140245142, | |||
20150020101, | |||
20150040057, | |||
20150128059, | |||
20150227283, | |||
20150331571, | |||
20150378518, | |||
20160110076, | |||
D665405, | Jan 21 2011 | Microsoft Corporation | Display screen with graphical user interface |
DE102009018682, | |||
DE4301160, | |||
EP1030247, | |||
EP1213874, | |||
EP1437571, | |||
EP1672613, | |||
GB2339374, | |||
JP2001224067, | |||
JP2002366797, | |||
JP2003054323, | |||
JP2004276782, | |||
JP2004333319, | |||
JP3489237, | |||
KR101592033, | |||
WO1997017662, | |||
WO1998055945, | |||
WO1999010799, | |||
WO2000011575, | |||
WO2000052618, | |||
WO2000057281, | |||
WO2000060495, | |||
WO2000060496, | |||
WO2000075851, | |||
WO2001035277, | |||
WO2001054031, | |||
WO2001073657, | |||
WO2001084423, | |||
WO2001084424, | |||
WO2001084425, | |||
WO2001084426, | |||
WO2002005150, | |||
WO2002015076, | |||
WO2002059147, | |||
WO2002086744, | |||
WO2003044718, | |||
WO2004022388, | |||
WO2004098164, | |||
WO2005109369, | |||
WO2007070505, | |||
WO2008136528, | |||
WO2009011690, | |||
WO2009014703, | |||
WO2009112271, | |||
WO2009143076, | |||
WO2010035162, | |||
WO2010129939, | |||
WO2013184555, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Sep 27 2013 | MORRIS, ROBERT PAUL | Sitting Man, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 053143 | /0678 | |
Sep 01 2017 | Sitting Man, LLC | (assignment on the face of the patent) | / | |||
Mar 04 2020 | Sitting Man, LLC | AMERICAN INVENTOR TECH, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 053143 | /0719 |
Date | Maintenance Fee Events |
Sep 01 2017 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Sep 12 2017 | SMAL: Entity status set to Small. |
Apr 19 2023 | REM: Maintenance Fee Reminder Mailed. |
Aug 07 2023 | M2551: Payment of Maintenance Fee, 4th Yr, Small Entity. |
Aug 07 2023 | M2554: Surcharge for late Payment, Small Entity. |
Date | Maintenance Schedule |
Aug 27 2022 | 4 years fee payment window open |
Feb 27 2023 | 6 months grace period start (w surcharge) |
Aug 27 2023 | patent expiry (for year 4) |
Aug 27 2025 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 27 2026 | 8 years fee payment window open |
Feb 27 2027 | 6 months grace period start (w surcharge) |
Aug 27 2027 | patent expiry (for year 8) |
Aug 27 2029 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 27 2030 | 12 years fee payment window open |
Feb 27 2031 | 6 months grace period start (w surcharge) |
Aug 27 2031 | patent expiry (for year 12) |
Aug 27 2033 | 2 years to revive unintentionally abandoned end. (for year 12) |