Techniques for better information sharing and control switching in a graphical user interface (GUI) are described. In an example, a computer system determines a user context indicating a likely user interest in applications. Upon a user request for a menu, windows are added to a dynamic area of the menu based on the user context and correspond to the applications. The menu is presented in the GUI and each window be shown in a glanced state to provide quick information about the corresponding application. When the user focus shifts to a window, that window is presented in a focused state to also provide a selectable action that can be performed. Upon a user selection of the window, the window is presented in a selected state to further provide additional performable actions. The window can be pinned to the GUI and user control can automatically switch to another application.
|
1. A method implemented by a computer system, the method comprising:
presenting, on a display communicatively coupled with the computer system, video game content of a video game application to a user;
receiving, from an input device communicatively coupled with the computer system, user input requesting a menu;
presenting, on the display and based on an execution of a menu application, the menu in a layer over at least a portion of the video game content, the menu comprising a plurality of windows, wherein:
the plurality of windows are presented in a glanced state while the execution of the video game application and the presentation of the video game content continue, an application window of the plurality of windows corresponds to an underlying application on the computer system other than the video game application, and the menu application instantiates an application module corresponding to the underlying application;
receiving, from the input device, a user interaction with the application window;
presenting, in the layer, the application window in a focused state based on the user interaction;
receiving, from the input device, a user selection of the application window while the application window is in the focused state;
transitioning and presenting, at a first location in the menu of the layer, the application window in a selected state based on the user selection of the application window;
presenting during the transition and in the selected state, at the first location, an overlay window of the same size as the application window in the selected state, the overlay window completely overlapping the application window and being supported by the application module;
presenting, in the layer and while the application window is in the selected state, one or more options to perform one or more actions on the overlay window;
receiving, from the input device, a user selection of an option of the one or more options on the overlay window to perform a corresponding action; and
ending the transition and closing the application window such that the overlay window becomes the user interface to the underlying application.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
passing state information from the application window to the application module.
10. The method of
11. The method of
|
This application claims the benefit of U.S. Provisional Patent Application No. 62/826,868, filed Mar. 29, 2019, which is hereby incorporated by reference in its entirety for all purposes.
Graphical user interfaces (GUIs) are the predominant type of interfaces available to users for interacting with computer systems. A GUI includes selectable icons to launch applications. Typically, upon a launch of a first application, the first application is presented in a first window. Upon a launch of a second application, a second window is used and the user control shifts from the first window to the second one. In addition, dynamic content (e.g., interactive media content) presented in the first window may be paused. If the user desires to interact with the first application, additional user input is needed to shift the control from the second window back to the first one.
To illustrate, consider an example of a GUI of a video game system hosting a video game application and a music streaming application. The GUI presents a home page that includes a video game icon and a music streaming icon. From this home page, a video game player selects the video game icon to launch the video game application. Video game content is then presented in the GUI. To stream music, the video game player may need to pause the execution of the video game application, switch back to the home page, and select the music streaming icon. Upon this selection, the music streaming application is launched and music can be played over speakers of the video game system. To resume the video game, the video game player may need to minimize the window of the music streaming application, switch back to the home page, expand the window of the video game application, and un-pause the video game content.
Hence, although a GUI can be an effective user interface, switching between applications may not be seamless and the presentation of information may be limited to an active window. There is a need for an improved GUI that allows better information sharing and control switching.
Embodiments of the present disclosure relate to techniques for better information sharing and control switching in a graphical user interface (GUI). In an example, a computer system presents, on a display communicatively coupled with the computer system, video game content of a video game application. The computer system also receives, from an input device communicatively coupled with the computer system, user input of a video game player. The user input requests a menu. The computer system also presents, on the display and based on an execution of a menu application, the menu in a layer over at least a portion of the video game content, the menu comprising a plurality of windows. The plurality of windows are presented in a glanced state while the execution of the video game application and the presentation of the video game content continue. The plurality of windows include an application window and a game window. The application window corresponds to an application on the computer system other than the menu application and the video game application. The game window corresponds to the video game application. The computer system also receives, from the input device, a user interaction with the application window. The computer system also presents, in the layer, the application window in a focused state based on the user interaction. The computer system also receives, from the input device, a user selection of the application window while the application window is in the focused state. The computer system presents, in the layer, the application window in a selected state based on the user selection of the application window. The computer system also presents, in the layer and while the application window being in the selected state, one or more options to perform one or more actions on at least one of the application window or content of the application window. The computer system also receives, from the input device, a user selection of the option. The computer system also performs, based on a user selection of an option corresponding to an action from one or more of the actions, the action on the application window while the execution of the video game application and the presentation of the video game content continue.
Generally, systems and methods for better information sharing and control switching in a graphical user interface (GUI) are described. In an example, a computer system presents a GUI on a display. Upon an execution of a first application, first content of the first application is presented in the GUI. Upon user input requesting a menu, the menu is presented in a layer over at least a portion of the first content based on an execution of a menu application. The menu includes a dynamic area that presents a plurality of windows and a static area that presents icons. Each of the windows corresponds to a different application and can be included in the dynamic menu area based on a context of a user of the computer system and/or a context of the first application that is being executed. Each of the icons can be preset and can correspond to system function of the computer system or to a window of an application. The dynamic menu area shows the windows in a first state, where each window presents content in this state. Upon user interactions with the dynamic menu area, the presentation of the windows can change to a second state, where a window in the second state and its content are resized and where an action performable on the content can be selected. Upon a user selection of the window in the second state, the presentation of the window changes to a third state, where the windows and its content are resized again and where an action performable on the window can be further selected. Upon a user selection of the window action or the content action, the selected action is performed and user control is automatically switched back to the first application.
To illustrate, consider an example of a video game system. The video game system can host a menu application, a video game application, a music streaming application, a video streaming application, a social media application, a chat application, and multiple other applications. A video game player can login to the video game system and a home user interface is presented thereto on a display. From this interface, the video game player can launch the video game application and video game content can be presented on the display. Upon a user button push on a video game controller, a menu can be presented in a layer at the bottom of the display based on an execution of the menu application. The menu includes a game window that corresponds to the video game application and that presents content based on a context of a game play (e.g., presents an invitation to a car race tournament when the video game player is playing a car race game and is about to finish a current care race). The menu also includes a music window that corresponds to the music streaming application and that presents a music album from a music library of the video game player. The layer can present the menu in the foreground, while the execution of the video game application and the presentation of the video game content continue (e.g., the video game content can be continuously updated in the background showing the progress in the current car race). The windows within the dynamic area of the menu are shown in a glanced state, providing sufficient information to the video game player about the applications (e.g., to perceive the car race invitation and to see a cover of the music album). Upon a user key push on a video game controller, a scroll through the presented windows is performed, where only one of the windows is shown in a focused state at a time and remaining windows are shown in the glanced state. For instance, upon the user focus (e.g., the user scroll) being on the music window, that window is expanded to show a partial list of music files and to present a play key. If the play key is selected, the music stream starts, the music is played in the background, and the user control automatically switches back to the video game content such that the user can continue their game play (e.g., steer the car in the current car race). If the user selects the music window rather than the play key, the music window is further expanded to show the full list of the music files and to further present an option to pin the music window to the side of the video game content. Upon a selection of this option, the music window is shown adjacent to the video game content (e.g., in a small area on the left side of the display, while the video game content is shown on the remaining display area to the right). Here also, the user control automatically switches back to the video game content upon the pinning of the music window.
Embodiments of the present disclosure provide several advantages over existing computer systems and their underlying GUIs. For example, by selecting windows for presentation in a dynamic menu area, relevant application information can be surfaced to a user. By presenting these windows in different states (e.g., glanced, focused, and selected states) based on the user focus, the interactivity of the windows can be affined to the user focus (e.g., glance, focus, selection). In addition, the execution of any underlying application and the presentation of content of this application may not be interrupted and the user control can be automatically switched back to the application. Hence, the overall GUI allows seamless switching while improving the information sharing.
In the interest of clarity of explanation, the embodiments may be described in connection with a video game system. However, the embodiments are not limited as such and similarly apply to any other type of a computer system. Generally, a computer system presents a GUI on a display. The GUI may include a home user interface from which different applications of the computer system can be launched. Upon a launch of an application, a window that corresponds to the application can be presented in the GUI. Upon a user request for a menu, a context-based menu that includes a dynamic area and a static area can be displayed over the application's window. Applications of interest can be glanced at, focused, and/or selected from the menu, in addition to the selection of system controls. The menu can be dismissed and the user control can be automatically switched back to the application.
In an example, the menu 120 can occlude the portion of the video content 110 behind it or can have some degree of transparency. Additionally or alternatively, the texturing and/or brightness of the menu 120 and the video game content 110 can be set such that the menu 120 appears in the foreground and the video game content 110 appears in the background.
As illustrated, the menu 120 includes a dynamic menu area 130 and a static menu area 140. The dynamic menu area 130 presents a plurality of windows 132A, 132B, . . . , 132K, each of which corresponds to an application of the computer system. The static menu area 140 presents icons 142A, 142B, . . . , 142L, each of which corresponds to a system function (e.g., power on, volume control, etc.) or an application of the computer system. For brevity, each of the windows 132A, 132B, . . . , 132K is referred to herein as a window 132 and each of the icons 142A, 142B, . . . , 142L is referred to as an icon 142. By containing the two areas 130 and 140, the menu 120 represents a dashboard that shows contextually relevant features and relevant system functions without necessitating the user to exit their game play.
Generally, a window 132 is added to the dynamic menu area 130 based on a context of a user of the computer system (e.g., a video game player) and/or a context of an application being executed on the computer system. A context of the user (user context) generally includes any of information about the user, an account of the user, active background applications and/or services, and/or applications and/or services available to the user from the computer system or from other network environment (e.g., from a social media platform). A context of the application (application context) generally includes any of information about the application, specific content shown by the application, and/or a specific state of the application. For instance, the context of a video game player can include video game applications, music streaming applications, video streaming applications, social media feeds that the video game player has subscribed to and similar contexts of friends of the video game player. The context of a video game application includes the game title, the game level, a current game frame, an available level, an available game tournament, an available new version of the video game application, and/or a sequel of the video game application.
Based on a context, an interest of the user in an application can be determined. Accordingly, a window for that application can be added to the dynamic area 130 of the menu 120. As the context changes over time, the interest of the user can also change, whereby a different application can be identified and added to the dynamic area 130 in lieu of or in addition to a previously added application. In this way, the dynamic area 130 can be dynamically updated over time to reflect the most likely interests of the user.
In comparison, the static menu area 140 may not offer the dynamicity of the dynamic menu area 130. Instead, the icons 142 can be preset in the static menu area 140 based on system settings and/or user settings. Upon a selection of an icon 142, a corresponding window (e.g., for a system control or for a particular background application) can be presented. The menu 120 can be dismissed while the window is presented, or alternatively, the presentation of the menu 120 persists.
The content, interactivity, and states of the windows 132 are further described in connection with the next figures. Generally, upon the presentation of the menu 120, the execution of the video game application and the presentation of the video game content 110 continue. Meanwhile, user input from an input device (e.g., from a video game controller) can be received and used to interact with the menu 120 in the dynamic area 130 and/or the static area 140. The dynamic area interactions allow the user to view windows 132 in different states, and select and perform actions on the content of the windows 132 or the windows 132 themselves. The static area interactions allow the user to select any of the icons 142 to update the system functions (e.g., change the volume) or launch a preset window for a specific application (e.g., launch a window for a music streaming application). Once the interactions end, the menu 120 is dismissed and the user control automatically switches to the video game application (e.g., without input of the user explicitly and/or solely requesting the switch). Alternatively, the switch may not be automatic and may necessitate the relevant user input to change the user control back to the video game application. In both cases, user input received from the input device can be used to interact with the video game content 110 and/or the video game application.
In an illustration, a user request is received to present the menu 120 and the menu 120 is presented accordingly over the video game content 110. Based on the context of the user, an interest of the user in the music streaming application is determined. Further, based on the context of the video game application, an interest of the user in a game tournament is determined. Accordingly, the dynamic area 130 includes a music window (e.g., the first window 132A) corresponding to the music streaming application and a game window (e.g., the second window 132B) corresponding to the video game application. The music window may show, in a glanced state, a cover of a music album owned by the user. The game window may show, in the glanced state, an invitation to the game tournament. Upon a user scroll, the user focus on the windows 132 is updated. In particular, when the user scroll is over the music window, that window is presented in a focused state, while the remaining windows are presented in the glanced stated. In the focused state, the size of the music window and the cover are enlarged and an option is presented to play the music album. If a user selection to play the music album is received, the music streaming starts, the menu 120 is dismissed, and the user control switches back to the video game application. If a user selection of the music window is received instead, an option to pin the music window to the display can be presented. Upon performing the pinning, the music window is presented on the display, the menu 120 is dismissed, and the user control switches back to the video game application. If the user scroll continues, the music window is presented again in the glanced state. Similar interactivity with the video game application can occur. Here, if the user accepts the invitation to the game tournament, the video game application is updated to change the game play to the video game tournament and the video game content 110 would show that the video game player is joining the tournament.
Although
The video game console 210 includes a processor and a memory (e.g., a non-transitory computer-readable storage medium) storing computer-readable instructions that can be executed by the processor and that, upon execution by the processor, cause the video game console 210 to perform operations relates to various applications. In particular, the computer-readable instructions can correspond to the various applications of the video game console 210 including a video game application 240, a music application 242, a video application 244, a social media application 246, a chat application 248, a menu application 250, among other applications of the video game console 210 (e.g., a home user interface (UI) application that presents a home page on the display 230).
The video game controller 220 is an example of an input device. Other types of the input device are possible including, a keyboard, a touchscreen, a touchpad, a mouse, an optical system, or other user devices suitable for receiving input of a user.
In an example, the menu 212 is a context-based menu similar to the menu 130 of
Upon the presentation of the menu 212, the user control changes from the video game application 240 to the menu application 250. Upon a receiving user input from the video game controller 220 requesting interactions with the menu 212, the menu application 250 supports such interactions by updating the menu 212 and launching any relevant application in the background or foreground. The video game player 222 can exit the menu 212 or automatically dismiss the menu 212 upon the launching of an application in the background or foreground. Upon the exiting of the menu 212 or the dismissal based on a background application launch, the user control changes from the menu application 250 to the video game application 240. If a foreground ground application is launched, the user control changes from the menu application 250 to this application instead. In both cases, further user input that is received from the video game controller 220 is used for controlling the relevant application and/or for requesting the menu 212 again.
Although
In an example, the user context 320 may be received over an application programming interface (API) of a context service, where this context service may collect contexts of users from different applications of a computer system or a network environment. The application context 330 may be received over an API from an application associated with the application context 330 (e.g., a video game context can be received from a corresponding video game application). The user setting 350 may be received from a user account or from a configuration file.
The menu application 310 may include a recommendation engine that recommends the windows 340 based on the user context 320 and the application context 330. The recommendation engine can maintain a list of applications (e.g., running in the background and/or foreground, and/or inactive but available to the user) and can rank the applications in potential levels of interest to the user given the user context 320 and the application context 330. The top ranked applications (e.g., the top twenty or some other number) can be recommended and windows 340 corresponding to these applications may be presented in the menu.
Although the menu application 310 is described as including the recommendation engine, these two components can be separate. For instance, whereas the menu application 310 is hosted on a video game console, the recommendation engine can be hosted as a separate application on the video game console or on backend server and an API may exist between the two components.
As illustrated in
Another state can be a focused state 420, where the action provides relevant information to the user and one or more options for one or more actions to be performed (e.g., for one or selectable actions on content of the application or the action card itself). In other words, the action card can surface quick actions for the user to select in response to the user's focus being on the action card. For example, in the focused state 420, the action card has a second size (which can be larger than the first size), resizes the presentation of the content 412 and the title 414 based on the second size, and presents one or more selectable content actions 422 (e.g., play content, skip content, etc.) and one or more selectable card actions (e.g., move the action card to a position on the display, resize the action card, pin the action card, present the action card as a picture-in-picture, etc.). Referring back to the music action card illustration, in the focused state 420, the music cover and album title are enlarged and a play button to play music files of the music album is further presented.
Yet another state can be a selected state 430, where the action continues to provide relevant information to the user in a further enlarged presentation format, and provides one or more options for one or more actions to be performed on the content and/or the action card itself (e.g., for one or selectable actions on content of the application or the action card itself). In other words, the action card becomes the primary modality for interacting with the MicroUX and displays the relevant visual interface. For example, in the selected state 430, the action card has a third size (which can be larger than the second size), resizes the presentation of the content 412 and the title 414 based on the third size, continues the presentation of the content action 422, presents additional content 432 of the application, and presents one or more options 434 for one or more content actions and for one or more card actions 436 that can be performed on the action card. Upon a user selection of the option 434, the card actions 436 are presented and can be selected. Referring back to the music action card illustration, in the selected state 430, the music cover and album title are further enlarged and the presentation of the play button continues. Additional music files of the music album are also identified. The option 434 provides the choice of pinning the action card to the side of other content that is being presented on the display (e.g., video game content), presenting the action card as a picture in picture within the other content, or to run the music application (e.g., play the music album) in the background.
In the above states, the content 412, title 414, content action 422, and additional content 432 can be identified from metadata received from the application. Upon performing a card action 436 (e.g., pinning the action card), the action card becomes the user interface to the application and content can be received from the application and presented at the user interface (e.g., if a music video clip is to be presented, this clip may be played in the pinned action card).
As illustrated in
To illustrate, consider an example of an action card for a video game application. The action card may present a score, a cred, and earned achievements of a video game player. At one point in time, the application context would indicate a particular score (e.g., fifty points) a particular cred (e.g., novice), and a particular achievement (e.g., completed training). Subsequently and as the user progresses through the video game, the application context would indicate an updated score (e.g., ninety points), an updated cred (e.g., a profession), and an updated achievement (e.g., completed levels one through five). Accordingly, the presentation of the action card at that time would show the updated score, the updated cred, and the updated achievement.
In another illustration, an action card corresponds to a social media application and presents social media posts of friends of the video game player. At one point in time, the user context indicates that two friends have posted comments on the corresponding social media platforms. Accordingly, the action card presents their comments. Subsequently, the updated user context indicates a new post from a third friend. Accordingly, the content of the action card is updated to include the new post.
The actual content of an action card can depend on the metadata provided from the underlying application. For a video game application, the content can include scores, progress, achievements, statistics of the video game players, statistics of other video game players, group statistics, available game options (e.g., cars in a car race game), activity of the video game player within the video game (e.g., “you have completed level one and are in level two, about to approach your target” informing the user about their progress over a period of time) and other relevant game information and options. For a social media application, the content can include posts, responses (including likes), trends, invitations, and other relevant social media information and options. For a music application, the content can include a music title, a music album, artist information, band information, purchase options, and other relevant music information. For a video application, the content can include a video title, a video frame, an animation of the video, a video trailer, information about actors, information about the director, purchase options, and other relevant video information.
A computer system, such as a video game system, may host multiple applications including a video game application, a music application, a video application, a social media application, a chat application, and many other applications. Based on a user context and an application context, a determination is made that the video game application, music application, video application, social media application, and chat application are of most interest to the user among the different applications of the computer system. Accordingly, a menu application of the computer system can include action cards corresponding to the applications of interest in the dynamic menu area, illustrated as a video game action card 610, a music action card 620, a video action card 630, a social media action card 640, and a chat action card 650.
In an example, the action cards 610-650 are organized in a sequence, where their order in the sequence depends on the level of interest in the corresponding application. This sequence can be presented in a carousel-like format, with only a predetermined number of action cards being visible in the dynamic menu area 600 at a time, and with remaining action cards being scrollable into the dynamic menu area 600.
As illustrated, the video game action card 610 is likely of most interest to the user, followed by the music action card 620, which is followed by the video action card 630, which is followed by the social media card 640, which is followed by the chat action card 650. The dynamic area 600 is configured to present only three of these cards at a time. Hence, the video game action card 610, music action card 620, and video action card 630 are visible and the social media card 640 and chat action card 650 are not visible (shown with the dotted lines). Upon a user scroll to the right (or some other interaction, such as a mouse click or a touchscreen gesture), the video game action card 610 may no longer be visible, the music action card 620 and the video action card 630 may shift to the left, and the social media action card 640 may become visible as the action card on the right of the dynamic menu area 600.
Although
When the menu is invoked and the dynamic menu area 700 is presented on a display, this menu area 700 shows the video game action card 610, the music action card 620, and the video action card 630. Only one of these cards can be shown in the focused state, while the remaining action cards are shown in the glanced state because the user focus is assumed to be possible on only one action card at a time. At the start of the presentation of the dynamic menu area 700, the video game action card 610 is shown in the focused state because of the likely highest user interest in this card. Upon a user scroll 710 (or some other user interaction received from an input device) indicating a change to the user focus from the video game action card 610 to another action card, the presentation of the video game action card 610 changes to the glanced state and the presentation of the other in-focus action card is updated to the focused state. For instance, upon the user scroll 710 being with the music action card 620 (or any other user interaction with this card 620), the presentation of the music action card 620 shifts from the glanced state to the focused state. When the user scroll 710 (or any other user interaction) reaches the video action card 630, the presentation of this card 630 similarly shifts from the glanced state to the focused state and the presentation of the music action card 620 reverts to the glanced state. Of course, the user scroll can be in the opposite direction (e.g., from right to left) or can bring additional action cards into the dynamic menu area 700.
In this illustration, the music action card 620 is in the focused state, while the video game action card 610 and the video action card 630 are in a glanced state. Upon a user selection 810 of the music action card (e.g., by pressing a specific button or key on the input device), the dynamic menu area 800 is updated to present the music action card 620 in the selected state. In the selected state, the presentation of the music action card 620 includes an option 820 selectable for performing an action on the music action card 620.
Upon a user selection 830 of the option 820 (e.g., by pressing a specific button or key on the input device), the dynamic menu area 800 is updated to present selectable actions 840 that can be performed on the music action card 620. These actions include, for instance, pinning the music action card to the side, presenting the music card 620 as a picture-in-picture, and launching the application in the background, among other possible actions (e.g., removing the music action card 620 from the dynamic menu area 800).
In this example, a GUI 980 presents video game content 990. Upon a user selection of the picture-in-picture action 910, a music action card 920 is pinned within the video game content 990 and appears as an overlay window that presents picture-in-picture content of the music application. For instance, the music action card 920 shows the title of a music file, a progress bar, and controls for pausing, resuming, skipping, and restarting the music file as a picture in picture. The music action card 920 can be the music action card 620 of
In also this example, a upon a user selection of the pin-to-side action 950, a music action card 960 is presented as a pinned window (e.g., a pinned action card) to the side of the video game content 990. In this case, the video game content 990 may be resized to allow enough adjacent space for the pinning. Here also, the music action card 960 shows the title of the music file, the progress bar, and the controls. The music action card 960 can be the music action card 620 of
As illustrated, a GUI 1010 presents video game content 1020. At a point in time, the dynamic menu area 800 is presented over the video game content 1020, with the music action card 620 being in the selected state. User input 1030 is received from the input device to dismiss the menu. The GUI 1010 is updated to present the video game content 1020 only. Additional user input 1040 is received, where this input 1040 requests the menu again. In response, the GUI 1010 is updated to present a dynamic menu area 1060. This dynamic menu area 1060 is the similar to the dynamic menu area 800 except that it shows the music action card 620 in a focused state.
In an example, the menu application tracks and stores the presentation states of the different action cards. In this way, upon a subsequent presentation of the menu and if the most current user and application contexts indicate that the same action cards should be presented again in the menu, the menu application can look up the presentation states and present one of the action cards in the focused state and the remaining ones in the glanced states.
In an example, when action cards are presented again in a menu, one or more factors can be used to determine the presentation state of each of these action cards. These factors include an update to a user context, an updated to an application context, an update to content, and an update to a ranking of the action cards relative to the interest of a user. To illustrate, consider the example of the three action cads illustrated in
In an example, the flow includes an operation 1102, where the computer system presents video content of a video game application (e.g., first content of a first application) on a display. The video game application can be executed on the computer system and the video game content can be presented based on the game play of a user of the computer system (e.g., a video game player).
In an example, the flow includes an operation 1104, where the computer system receives user input requesting a menu. For instance, the user input is received from an input device (e.g., a video game controller) and corresponds to a user push of a key or button on the input device (e.g., a particular video game controller button) or any other type of input (e.g., a mouse click). An event may be generated from the user input indicating a command. The command can be for the presentation of the menu. Otherwise, the command can be for other controls (e.g., the display of a home user interface, an exit from the video game application, etc.) depending on the type of the user input.
In an example, the flow includes an operation 1106, where the computer system presents the menu, where this menu is a context-based menu that includes a plurality of windows (e.g., action cards) displayed in a dynamic area of the menu and a plurality of icons displayed in a static area of the menu. For instance, the menu is presented in response to the command for the menu presentation. In addition, a user context and an application context can be determined and used to select particular application or remote computing services that are likely of interest to the user. Each window within the dynamic menu area corresponds to one of these applications. The windows can also be presented in a first state (e.g., a glanced state).
In an example, the flow includes an operation 1108, where the computer system receives a user scroll through the windows within the dynamic menu area (or any other types of interactions within the dynamic menu area indicating a focus of the user). The user scroll can be received based on user input from the input device and a relevant event can be generated based on this input.
In an example, the flow includes an operation 1110, where the computer system presents a window (e.g., an application window corresponding to one of the applications where the user focus is currently on) in another state (e.g. a second state such as a focused state). For instance, if the user scroll is over the window, that window is presented in the focused state, while the presentation of the remaining windows is in the glanced state.
In an example, the flow includes an operation 1112, where the computer system presents an option to perform an action (e.g., a selectable action) on content of the window (e.g., to play the content). For instance, the option is presented when the window is in the focused state.
In an example, the flow includes an operation 1114, where the computer system receives a user selection of the option. The user selection can be received based on user input from the input device and a relevant event can be generated based on this input.
In an example, the flow includes an operation 1116, where the computer system performs the action. For instance, the content of the application can be played in the background. In another illustration, if the window corresponds to the video game application (e.g., is a game window), the video game content can be updated.
In an example, the flow includes an operation 1118, where the computer system changes user control from the menu to the video game content. For instance, the presentation of the menu is dismissed, while the presentation of the content continues in the background and/or the video game content is updated. User input received subsequently can be used to control the video game application or to request the menu again.
In an example, the flow includes an operation 1202, where the computer system presents video content of a video game application (e.g., first content of a first application) on a display. The video game application can be executed on the computer system and the video game content can be presented based on the game play of a user of the computer system (e.g., a video game player).
In an example, the flow includes an operation 1204, where the computer system receives user input requesting a menu. For instance, the user input is received from an input device (e.g., a video game controller) and corresponds to a user push of a key or button on the input device (e.g., a particular video game controller button) or any other type of input (e.g., a mouse click). An event may be generated from the user input indicating a command. The command can be for the presentation of the menu. Otherwise, the command can be for other controls (e.g., the display of a home user interface, an exit from the video game application, etc.) depending on the type of the user input.
In an example, the flow includes an operation 1206, where the computer system presents the menu, where this menu is a context-based menu that includes a plurality of windows (e.g., action cards) displayed in a dynamic area of the menu and a plurality of icons displayed in a static area of the menu. For instance, the menu is presented in response to the command for the menu presentation. In addition, a user context and an application context can be determined and used to select particular application or remote computing services that are likely of interest to the user. Each window within the dynamic menu area corresponds to one of these applications. The windows can also be presented in a glanced state. In one illustration, the window of most likely interest to the user given the user context and application context can be shown in another state (e.g., the focused state). In another illustration, if one of the windows was selected or was in a focused state upon the most previous dismissal of the menu, that window can be presented in the focused state.
In an example, the flow includes an operation 1208, where the computer system receives a user scroll through the windows within the dynamic menu area (or any other types of interactions within the dynamic menu area indicating a focus of the user). The user scroll can be received based on user input from the input device and a relevant event can be generated based on this input.
In an example, the flow includes an operation 1210, where the computer system presents a window (e.g., an application window corresponding to one of the applications where the user focus is currently on) in the other state (e.g. the focused state). For instance, if the user scroll is over the window, that window is presented in the focused state, while the presentation of the remaining windows is in the glanced state.
In an example, the flow includes an operation 1212, where the computer system receives a user selection of the window. The user selection can be received based on user input from the input device and while the window is presented in the focused state. A relevant event can be generated based on this input.
In an example, the flow includes an operation 1214, where the computer system presents the window in a different state (e.g. a selected state). For instance, the window's size is changed from the focused state to the selected state, while the presentation of the remaining windows remains in the glanced state.
In an example, the flow includes an operation 1216, where the computer system presents an option to perform an action (e.g., a selectable action) on the window (e.g., to pin to side or to show as a picture in picture). For instance, the option is presented as an icon within the window when the window is in the selected state.
In an example, the flow includes an operation 1218, where the computer system receives a user selection of the option. The user selection can be received based on user input from the input device and a relevant event can be generated based on this input.
In an example, the flow includes an operation 1220, where the computer system performs the action. For instance, a pin-to-side operation or a picture-in-picture operation are performed on the window or on a corresponding overlay window. If an overlay window is used, the window may be dismissed.
In an example, the flow includes an operation 1222, where the computer system changes user control from the menu to the video game content. For instance, the presentation of the menu is dismissed, while the presentation of the content continues in the pinned window or the picture-in-picture window. User input received subsequently can be used to control the video game application or to request the menu again. In an illustration, a subset of the buttons, keys, or gestures on the input device are mapped to and usable for controlling the video game application, while another subset of the buttons, keys, or gestures are mapped to and usable for controlling the pinned window or picture-in-picture window. In this way, the user can have simultaneous control over both the video game application and the other application (that interfaces with the user through the pinned window or picture-in-picture window) depending on the buttons on the input device.
In an example, the flow includes an operation 1302, where the computer system receives a user login. For instance, user credentials are received from the input device and are used to login the user to the computer system.
In an example, the flow includes an operation 1304, where the computer system presents a home user interface. The home interface may present different options for selecting and launching applications of the computer system.
In an example, the flow includes an operation 1306, where the computer system presents video game content of a video game application (e.g., a first content of a first application). For instance, user input may be received from the input device. The user input may select the video game application. Accordingly, the computer system launches the video game application and presents the video game content.
In an example, the flow includes an operation 1308, where the computer system presents a menu that includes a plurality of windows in a dynamic area of the window. For instance, user input may be received from the input device requesting the menu. In response, the computer system presents the menu over the video game content based on an execution of a menu application.
In an example, the flow includes an operation 1310, where the computer system enters a standby mode. For instance, user input may be received from the input device requesting a logout or a power standby mode. In response, the computer system may store the game play and the configuration of the menu including the states of the different windows, and may enter the standby mode. The stored information may be saved under a user profile of the user.
In an example, the flow includes an operation 1312, where the computer system receives another user login. For instance, user credentials are received from the input device and are used for another login to the computer system.
In an example, the flow includes an operation 1314, where the computer system determines whether the user logging in is the same user that logged out. For instance, the user name from the received credentials can be compared to the user profile from the previous login session. If a match exists, the computer system determines that it is the same user and operation 1316 follows operation 1314. Otherwise, the computer system determines that it is not the same user and the computer system loops back to operation 1304 to present a home user interface.
In an example, the flow includes an operation 1316, where the computer system determines whether to present the video game content. For instance, if the last logout occurred while the video game application was executed in the foreground, the computer system determines to present the video game content and operation 1318 follows operation 1316. Otherwise, the computer system determines that the video game content need not be presented and loops back to operation 1304 to present the home user interface.
In an example, the flow includes an operation 1318, where the computer system presents the menu based on an updated context. Here, the video game content is presented on the display again. At the last logout, the menu was also presented. Accordingly, the computer system also presents the menu over the video game content. However, because the menu is context-based and the user context and/or application context may have changed between the logout and the new login, an update to the menu may be performed. In particular, given the most up-to-date user context and application context, the content of the windows of the menu can be changed, the order of the windows in the sequence can be changed, and/or some of the windows may be removed and new windows may be added to the menu.
As illustrated, a menu application 1410 supports the presentation of a window 1420 in a glanced state 1422, a focused state 1424, and a selected state 1426 depending on user input from an input device as explained herein above. The window 1420 corresponds to an application (referred to herein as an “underlying application” in the interest of clarity). Metadata of the underlying application may be received by the menu application to populate, by the menu application 1410, the content and selectable actions on the content in the window 1420 as relevant to each state (the content and selectable actions are shown as “action card component 1412”).
In an example, when the window 1420 is added (along with other windows corresponding to different underlying applications) to the menu, the menu application 1410 also instantiates an application module 1430. The application module 1430 can be a logical container for coordinated objects related to a task (e.g., to present an interfacing window) with optional programming window. The application module 1430 can have parameters common to the different underlying applications (e.g., common objects), whereby it represents a shell from which any of these applications can be quickly launched. When the window 1410 is in the glanced state 1422 or the focused state 1424, the menu application 1410 does not pass content or application-related information to the application module 1430 (this is illustrated in
When the window 1420 starts transitioning from the focused state 1424 to the selected state 1426 in response to a user selection of the window 1420, the size, content, and selectable actions of the window 1420 start changing. The menu application passes information about this change along with parameters specific of the underlying application (that corresponds to the window 1420) to the application module 1430 (e.g., state information, programming logic, etc.). Accordingly, the application module 1430 would have the same action card component 1432 as the action card component 1412 presented in the window 1420 during the transition to and in the selected state 1426. In addition, the application module 1430 corresponds to an instantiation of the underlying application given the specific parameters of this application.
During the transition and in the selected state 1426, the application module 1430 supports an overlay window 1440 that has the same size and includes the same content and actions as the window 1420. A rendering process presents the overlay window 1440 over the window 1420, such that both windows completely overlap during the transition and in the selected state 1426. Hence, from a user perspective, the user would only perceive one window (e.g., the overlay window 1440), while in fact two windows are presented on top of each other.
Upon the end of the transition or upon user input requesting action, the window 1420 may be dismissed (e.g., closed) and the overlay window 1440 may be used instead. For instance, a picture-in-picture action 1434 (and similarly, a pin-to-side action or other actions) can be selected from the overlay window 1440 and performed on the overlay window 1440. From that point, the overlay window 1440 becomes the interface to the underlying application and the menu application 1410 can be terminated (or run in the background).
In an example, the flow includes an operation 1502, where the computer system presents video content of a video game application (e.g., first content of a first application) on a display. The video game application can be executed on the computer system and the video game content can be presented based on the game play of a user of the computer system (e.g., a video game player).
In an example, the flow includes an operation 1504, where the computer system receives user input requesting a menu. For instance, the user input is received from an input device (e.g., a video game controller) and corresponds to a user push of a key or button on the input device (e.g., a particular video game controller button) or any other type of input (e.g., a mouse click). An event may be generated from the user input indicating a command. The command can be for the presentation of the menu. Otherwise, the command can be for other controls (e.g., the display of a home user interface, an exit from the video game application, etc.) depending on the type of the user input.
In an example, the flow includes an operation 1506, where the computer system presents the menu, where this menu is a context-based menu that includes a plurality of windows (e.g., action cards) displayed in a dynamic area of the menu and a plurality of icons displayed in a static area of the menu. For instance, the menu is presented in response to the command for the presentation of the menu. In addition, a user context and an application context can be determined and used to select particular application or remote computing services that are likely of interest to the user. Each window within the dynamic menu area corresponds to one of these applications. The windows can also be presented in a glanced state. In one illustration, the window of likely most interest to the user given the user context and application context can be shown in another state (e.g., the focused state). In another illustration, if one of the windows was selected or was in a focused state upon the most previous dismissal of the menu, that window can be presented in the focused state.
In an example, the flow includes an operation 1508, where the computer system instantiates an application module. The application module can have parameters common to the different applications that correspond to the windows of the menu.
In an example, the flow includes an operation 1510, where the computer system receives a user scroll through the windows within the dynamic menu area (or any other types of interactions within the dynamic menu area indicating a focus of the user). The user scroll can be received based on user input from the input device and a relevant event can be generated based on this input.
In an example, the flow includes an operation 1512, where the computer system presents a window (e.g., an application window corresponding to one of the applications where the user focus is currently on) in the other state (e.g. the focused state). For instance, if the user scroll is over the window, that window is presented in the focused state, while the presentation of the remaining windows is in the glanced state.
In an example, the flow includes an operation 1514, where the computer system receives a user selection of the window. The user selection can be received based on user input from the input device and while the window is presented in the focused state. A relevant event can be generated based on this input.
In an example, the flow includes an operation 1516, where the computer system presents the window in a different state (e.g. a selected state). For instance, the window's size is changed from the focused state to the selected state, while the presentation of the remaining windows remains in the glanced state.
In an example, the flow includes an operation 1518, where the computer system updates the application module to include parameters specific to the corresponding application of the selected window and to present an overlay window. For instance, the size, content, and actions of the window and the state information and programming logic of the application are passed to the application window, thereby launching an instance of the application from the application module, where this instance can use the information about the size, content, and actions of the window for the presentation of the overlay window.
In an example, the flow includes an operation 1520, where the computer system presents the overlay window. For instance, as the window transitions from the focused state to the selected state or once in the selected state, a rendering process also presents the overlay window over the window.
In an example, the flow includes an operation 1522, where the computer system dismisses the presentation of the window. For instance, upon the presentation of the overlay window or upon the transition to the selected state, the window is closed. In addition, the menu application can be terminated or can be moved to the background.
In an example, the flow includes an operation 1524, where the computer system presents an option to perform an action (e.g., a selectable action) on the overlay window (e.g., to pin to side or to show as a picture in picture). For instance, the option is presented as an icon within the overlay window upon the transition to the selected state.
In an example, the flow includes an operation 1526, where the computer system receives a user selection of the option. The user selection can be received based on user input from the input device and a relevant event can be generated based on this input.
In an example, the flow includes an operation 1528, where the computer system performs the action. For instance, a pin-to-side operation or a picture-in-picture operation are performed on the overlay window, resulting in a pinned window or a picture-in-picture window.
In an example, the flow includes an operation 1530, where the computer system changes user control from the menu to the video game content. For instance, the presentation of the menu is dismissed, while the presentation of the content continues in the pinned window or the picture-in-picture window. User input received subsequently can be used to control the video game application or to request the menu again. In an illustration, a subset of the buttons, keys, or gestures on the input device are mapped to and usable for controlling the video game application, while another subset of the buttons, keys, or gestures are mapped to and usable for controlling the pinned window or picture-in-picture window. In this way, the user can have simultaneous control over both the video game application and the other application (that interfaces with the user through the pinned window or picture-in-picture window) depending on the buttons on the input device.
A graphics subsystem 1630 is further connected with the data bus 1660 and the components of the computer system 1600. The graphics subsystem 1630 includes a graphics processing unit (GPU) 1635 and graphics memory 1640. The graphics memory 1640 includes a display memory (e.g., a frame buffer) used for storing pixel data for each pixel of an output image. The graphics memory 1640 can be integrated in the same device as the GPU 1635, connected as a separate device with the GPU 1635, and/or implemented within the memory 1610. Pixel data can be provided to the graphics memory 1640 directly from the CPU 1605. Alternatively, the CPU 1605 provides the GPU 1635 with data and/or instructions defining the desired output images, from which the GPU 1635 generates the pixel data of one or more output images. The data and/or instructions defining the desired output images can be stored in the memory 1610 and/or graphics memory 1640. In an embodiment, the GPU 1635 includes 3D rendering capabilities for generating pixel data for output images from instructions and data defining the geometry, lighting, shading, texturing, motion, and/or camera parameters for a scene. The GPU 1635 can further include one or more programmable execution units capable of executing shader programs.
The graphics subsystem 1630 periodically outputs pixel data for an image from the graphics memory 1640 to be displayed on the display device 1650. The display device 1650 can be any device capable of displaying visual information in response to a signal from the computer system 1600, including CRT, LCD, plasma, and OLED displays. The computer system 1600 can provide the display device 1650 with an analog or digital signal.
In accordance with various embodiments, the CPU 1605 is one or more general-purpose microprocessors having one or more processing cores. Further embodiments can be implemented using one or more CPUs 1605 with microprocessor architectures specifically adapted for highly parallel and computationally intensive applications, such as media and interactive entertainment applications.
The components of a system may be connected via a network, which may be any combination of the following: the Internet, an IP network, an intranet, a wide-area network (“WAN”), a local-area network (“LAN”), a virtual private network (“VPN”), the Public Switched Telephone Network (“PSTN”), or any other type of network supporting data communication between devices described herein, in different embodiments. A network may include both wired and wireless connections, including optical links. Many other examples are possible and apparent to those skilled in the art in light of this disclosure. In the discussion herein, a network may or may not be noted specifically.
In the foregoing specification, the invention is described with reference to specific embodiments thereof, but those skilled in the art will recognize that the invention is not limited thereto. Various features and aspects of the above-described invention may be used individually or jointly. Further, the invention can be utilized in any number of environments and applications beyond those described herein without departing from the broader spirit and scope of the specification. The specification and drawings are, accordingly, to be regarded as illustrative rather than restrictive.
It should be noted that the methods, systems, and devices discussed above are intended merely to be examples. It must be stressed that various embodiments may omit, substitute, or add various procedures or components as appropriate. For instance, it should be appreciated that, in alternative embodiments, the methods may be performed in an order different from that described, and that various steps may be added, omitted, or combined. Also, features described with respect to certain embodiments may be combined in various other embodiments. Different aspects and elements of the embodiments may be combined in a similar manner. Also, it should be emphasized that technology evolves and, thus, many of the elements are examples and should not be interpreted to limit the scope of the invention.
Specific details are given in the description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques have been shown without unnecessary detail in order to avoid obscuring the embodiments.
Also, it is noted that the embodiments may be described as a process which is depicted as a flow diagram or block diagram. Although each may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be rearranged. A process may have additional steps not included in the figure.
Moreover, as disclosed herein, the term “memory” or “memory unit” may represent one or more devices for storing data, including read-only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices, or other computer-readable mediums for storing information. The term “computer-readable medium” includes, but is not limited to, portable or fixed storage devices, optical storage devices, wireless channels, a sim card, other smart cards, and various other mediums capable of storing, containing, or carrying instructions or data.
Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments to perform the necessary tasks may be stored in a computer-readable medium such as a storage medium. Processors may perform the necessary tasks.
Unless otherwise stated, all measurements, values, ratings, positions, magnitudes, sizes, and other specifications that are set forth in this specification, including in the claims that follow, are approximate, not exact. They are intended to have a reasonable range that is consistent with the functions to which they relate and with what is customary in the art to which they pertain. “About” includes within a tolerance of ±0.01%, ±0.1%, ±1%, ±2%, ±3%, ±4%, ±5%, ±8%, ±10%, ±15%, ±20%, ±25%, or as otherwise known in the art. “Substantially” refers to more than 76%, 165%, 90%, 100%, 105%, 109%, 109.9% or, depending on the context within which the term substantially appears, value otherwise as known in the art.
Having described several embodiments, it will be recognized by those of skill in the art that various modifications, alternative constructions, and equivalents may be used without departing from the spirit of the invention. For example, the above elements may merely be a component of a larger system, wherein other rules may take precedence over or otherwise modify the application of the invention. Also, a number of steps may be undertaken before, during, or after the above elements are considered. Accordingly, the above description should not be taken as limiting the scope of the invention.
Aoki, Kohichi, Yamamoto, Toru, Hyodo, Katsuya, Brown, Robert E.
Patent | Priority | Assignee | Title |
11385765, | Sep 16 2014 | Amazon Technologies, Inc. | Contextual launch interfaces |
11762533, | Mar 29 2019 | SONY INTERACTIVE ENTERTAINMENT INC. | User interface menu transitions with selectable actions |
Patent | Priority | Assignee | Title |
10675544, | Mar 31 2017 | Sony Interactive Entertainment LLC | Personalized user interface based on in-application behavior |
7194701, | Nov 19 2002 | HEWLETT-PACKARD DEVELOPMENT COMPANY L P | Video thumbnail |
20050245314, | |||
20060248471, | |||
20100058224, | |||
20100281374, | |||
20110202872, | |||
20110244924, | |||
20140007013, | |||
20140298253, | |||
20150128042, | |||
20150234545, | |||
20160062552, | |||
20160191980, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Mar 19 2020 | YAMAMOTO, TORU | SONY INTERACTIVE ENTERTAINMENT INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 052182 | /0284 | |
Mar 19 2020 | HYODO, KATSUYA | SONY INTERACTIVE ENTERTAINMENT INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 052182 | /0284 | |
Mar 19 2020 | AOKI, KOHICHI | SONY INTERACTIVE ENTERTAINMENT INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 052182 | /0284 | |
Mar 19 2020 | BROWN, ROBERT E | SONY INTERACTIVE ENTERTAINMENT INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 052182 | /0284 | |
Mar 20 2020 | SONY INTERACTIVE ENTERTAINMENT INC. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Mar 20 2020 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Date | Maintenance Schedule |
Mar 08 2025 | 4 years fee payment window open |
Sep 08 2025 | 6 months grace period start (w surcharge) |
Mar 08 2026 | patent expiry (for year 4) |
Mar 08 2028 | 2 years to revive unintentionally abandoned end. (for year 4) |
Mar 08 2029 | 8 years fee payment window open |
Sep 08 2029 | 6 months grace period start (w surcharge) |
Mar 08 2030 | patent expiry (for year 8) |
Mar 08 2032 | 2 years to revive unintentionally abandoned end. (for year 8) |
Mar 08 2033 | 12 years fee payment window open |
Sep 08 2033 | 6 months grace period start (w surcharge) |
Mar 08 2034 | patent expiry (for year 12) |
Mar 08 2036 | 2 years to revive unintentionally abandoned end. (for year 12) |