People often gather together to share the experience of watching a television program such as a sporting event or other video content. With the proliferation of hand-held computing devices such as laptops, tablets and smartphones, this group entertainment experience has become more immersive, with users accessing and sharing additional information on the video content via their hand-held devices. In some examples, the video content may itself be web content presented by a gaming console, media center or other primary computing device. In such examples, the primary and hand-held computing devices may be networked together and interact with each other to further enhance the group entertainment experience. It would be advantageous in such a group entertainment environment to be able to intelligently and selectively send electronic notifications to some members of the group, or the group as a whole, via the primary and/or hand-held computing devices.
A system is provided for enhancing a group entertainment experience by generating and selectively sending electronic notifications to members of the assembled group. The group may be gathered together to watch video content such as a sporting event presented by a primary computing device on a main screen. The group experience may be further enhanced by members of the group having secondary computing devices for receiving supplemental content relating to the main screen video content or otherwise.
During the group entertainment experience, electronic notifications may be generated and sent to members of the group, based on relevance of the notification to individual group members. Where an electronic notification is determined to be of relevance to a group majority or group as a whole, the present system displays the notification on the main screen for all to see. On the other hand, where an electronic notification is determined to be of relevance to a select minority of members of the group, the present system displays the notification to those select members via their secondary computing devices.
In one example, the present technology relates to a method for routing electronic notifications in a group environment having a main display viewed by the group and a plurality of secondary displays viewed by respective members of the group, comprising: (a) generating an electronic notification for at least one member of the group, based on the electronic notification being related to at least one of stored preferences for the at least one member of the group and contextual conditions relating to the at least on member of the group; (b) transmitting the electronic notification for display on the main display where it is determined that the electronic notification relates to at least a predefined number or percentage of members of the group; and (c) transmitting the electronic notification for display on one or more of the secondary displays where it is determined that the electronic notification relates to less than the predefined number or percentage of members of the group.
In another example, the present technology relates to a system for routing electronic notifications to a group environment, comprising: a main display; a primary computing device associated with the main display, the primary computing device receiving content for presentation on the main display; and a plurality of secondary computing devices including secondary displays; wherein the primary computing device receives an electronic notification, the primary computing device causing: i) the electronic notification to display on the main display over the content, or ii) the primary computing device transmitting the electronic notification to one or more of the secondary computing device for display on one or more of the secondary displays, based on whether or not the electronic notification is relevant to at least a predefined number or percentage of members in the group.
In a further example, the present technology relates to a computer-readable media for programming a processor to perform a method of routing electronic notifications in a group environment having a main display viewed by the group and a plurality of secondary displays viewed by respective members of the group, comprising: (a) identifying content that is determined to be of interest to one or members in the group; (b) generating an electronic notification for at least one member of the group upon said step (a) of identifying content that is determined to be of interest to the one or members in the group; (c) determining whether the electronic notification relates to a predefined threshold number or percentage of members of the group; (d) transmitting the electronic notification for display on the main display where it is determined in said step (c) that the electronic notification relates to at least the predefined threshold number or percentage of members of the group; and (e) transmitting the electronic notification for display on one or more of the secondary displays where it is determined in said step (c) that the electronic notification relates to less than the predefined threshold number or percentage of members of the group, the one or more of the secondary displays receiving the transmission in said step (e) being the one or more secondary displays of members for whom the electronic notification was deemed related.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
A system is disclosed for enhancing a group entertainment experience by intelligently and selectively sending electronic notifications to members of the group. The system includes a primary computing device having an associated monitor with the main display. The system further includes group member computing devices, referred to herein as secondary computing devices. After members are admitted to the group and while viewing content on the main display, electronic notifications may periodically be generated and displayed based on a determined relevance to one or more group members. Where the electronic notification is determined to be relevant to some predefined group majority or the group as a whole, the notification may be displayed on the main display. Where the electronic notification is determined to be relevant to specific group members less than the predefined majority, the notification may be displayed on the secondary computing devices of the specific members. Displays for the secondary computing devices may be referred to herein as secondary displays.
Embodiments of the technology described below are presented in the context of sports-related entertainment, enhanced with electronic notifications relating to additional sports-related web content. However, it is understood that the present technology may be used to present a television experience and/or notifications that are unrelated to sports. Such television experiences and notifications may relate in whole or in part to news and current events, entertainment, shopping, music videos, and other subject matter.
Referring to
The network 130 distributes a video feed including a linear broadcast 132 and an electronic program guide (EPG) 134. The linear broadcast feed may be any traditional broadcast television content. The EPG includes a breakdown of programming information by channel as to what linear broadcast content is presented and the times of such broadcasts. The EPG data may be customized by geographic location, and further typically includes metadata related to the linear broadcast, including for example a title of the linear broadcasts, the type of video broadcast (sports, entertainment, news, etc.), who is to appear in the linear broadcasts, and a numeric identifier for each linear broadcast.
The linear broadcast 132 and EPG 134 may be received within a set-top box 112 for presentation on a display 118 of a television or other A/V device 116. Display 118 is also referred to herein as the main display, as it may be viewed by the group as a whole. The set-top box 112 and A/V device 116 may be collocated within a location 140 such as for example a home, office, bar, etc. (indicated by the dashed line in
Details of an implementation of computing device 110 are provided below with respect to
The computing device 110 may be connected to the A/V device 116, which may for example be a monitor, a high-definition television (HDTV), or the like that may provide a video feed, game or application visuals and/or audio. For example, the computing device 110 may include a video adapter such as a graphics card and/or an audio adapter such as a sound card that may provide audio/visual signals associated with recorded or downloaded linear broadcasts and web content. In one embodiment, the audio/visual device 116 may be connected to the computing device 110 via, for example, an S-Video cable, a coaxial cable, an HDMI cable, a DVI cable, a VGA cable, a component video cable, or the like. In further embodiments, the display 118 may not be a separate A/V device 116, but may instead be incorporated as part of computing device 110.
The networked topology 100 may further include a central service 122 for providing content to the primary computing device 110 and/or secondary computing devices 120 (explained below). The central service may further generate and send electronic notifications for display by the primary computing device 110 or one or more secondary computing devices 120. The central service 122 may include one or more servers 124 for aggregating content feeds from one or more third-party content providers 142. Aggregated content 144 may be stored in a central storage location 128 within or associated with the central service 122. In embodiments, one or more of the third-party content providers 142 may be owned, associated with or partnered with the central service 122. In further embodiments, the third-party content provider(s) 142 may be independent of the central service 122.
The central storage 128 of service 122 may further include a user records store 146. Such records include stored profiles and user preferences for one or more users. In the context of one embodiment of the present technology, user records may store sports preference information for a number of users, such as for example their favorite teams and players, their sports fantasy teams for fantasy sports leagues they participate in, sporting events they would like to watch and sports content they would like to receive, etc. This information may additionally or alternatively include a wide variety of other non-sports related information. A user may store this information with the central service 122 over time. It is further contemplated that the user records store 146 may be stored locally on computing device 110 instead of or in addition to the store 146 on the central service 122. The central service 122 may further include a notification service 148 for providing electronic notifications to users as explained below.
In embodiments, the central service 122 and third-party content provider(s) 142 may be network connected to the remote computing device 121 via a network connection such as the Internet 150 and a communications interface 114 within the computing device 110.
In an example mentioned above, the content displayed on the main display 118 to the group may be linear video content from a television distribution network 130. This content may be played back in real time (i.e., at the time it is transmitted from the television distribution network), or stored on primary computing device 110 or an associated DVR (not shown) for later playback. In further examples, the content displayed on the main display 118 may be IPTV web videos and/or other content from the central service 122 or directly from a third-party content provider 142.
In further embodiments, the content displayed on the main display 118 may be a video game executing on the primary computing device 110 and/or central service 122 (via a browser running on the primary computing device 110). The content being viewed on the main display 118 may further be still images, graphics and/or photographs, such as for example in a slide show. In still further embodiments, the content displayed on the main display 118 may be remote participants in a video web conference.
The topology 100 may further include a plurality secondary computing devices 1201, 1202, . . . , 120n (collectively or individually referred to herein as secondary computing devices 120) at the location 140. Each user in the group may have an associated secondary computing device 120 for receiving electronic notifications and, possibly, for interacting with or supplementing the content displayed on the main display 118. The secondary computing devices 120 may be portable computers such as laptops, tablets, smartphones or other hand-held digital assistants. One or more of the secondary computing devices 120 may be desktop computers in further embodiments. Details of an implementation of a secondary computing device 120 are described below with respect to
In embodiments, the primary computing device 110 and secondary computing devices 120 may communicate with each other via a distributed computing environment. In such embodiments, devices 110 and 120 may be linked through a communications network implemented for example by communications interfaces 114 in the computing devices 110 and 120. One such distributed computing environment may be accomplished using the Smartglass™ software application from Microsoft Corporation which allows a first computing device to act as a display, controller and/or other peripheral to a second computing device.
It is also contemplated that one or more secondary computing device 120 may not have a direct network connection to the primary computing device 110. In that situation, the secondary computing device(s) may communicate with the primary computing device 110 via the Internet 150. In embodiments, users in the group and their secondary computing devices 120 are collocated with the primary computing device 110 at location 140 so that the users can view the main display 118. However, in an alternative embodiment, it is possible that one or more users in the group are remote from the location 140, such as the user associated with remote secondary computing device 121. As explained below, such a remote user would not be able to view the main display 118, but may still be able to receive electronic notifications intended for the group as a whole and for specific members including the user of the remote secondary computing device 121.
It is understood that the functions of computing devices 110 and/or 120 may be performed by numerous other general purpose or special purpose computing system environments or configurations. Examples of other well-known computing systems, environments, and/or configurations that may be suitable for use with the system include, but are not limited to, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputers, distributed computing environments that include any of the above systems or devices, and the like.
In order to participate in the group and targeted notifications according to the present technology, users may register as part of the group. A flow for such registration will now be explained with reference to the flowchart of
In step 202, the secondary computing device 120 may attempt a direct connection with the primary computing device 110 (such as for example by a Bluetooth® communications network or other local area network). If such a direct link is made, in step 206, the primary computing device 110 may attempt to authenticate secondary computing device 120. In particular, the primary computing device 110 may contact the central service 122 with an identification of the requesting secondary computing device, or associated user, to see if computing device is registered and/or if the user has existing user records in the record store 128. If the central service 122 is able to authenticate the user, the secondary computing device is admitted to the group in step 212. Otherwise, the secondary computing device is denied admittance to the group in step 216.
In step 202, it may happen that the hardware or software components of a secondary computing device do not enable a direct link to the primary computing device. In such a case, the secondary computing device may attempt a direct link to the central service in step 220 via the Internet 150. If the secondary computing device has such an Internet connection to the central service 122, the central service may attempt to authenticate the user and/or secondary computing device in step 224 as described above.
As noted, secondary computing devices seeking admittance to the group may typically be collocated with the primary computing device 110. However, it is contemplated that a remote secondary computing device 121 (
The central service 122 and/or primary computing device 110 may keep track of the users and secondary computing devices within a group formed as described above. Groups may be dynamic in that users may be added to a group over time, or removed from a group over time (for example when a user leaves the location 140). Groups may also be temporary, and may completely disband after a period of time (for example when all users leave the location 140).
As indicated above, electronic notifications may be generated by the central service 122. These notifications may relate to information that is determined to be of interest to one or more users in a group. For example, a user may specify that he/she would like to receive notifications relating to specific topics, such as favorite sports teams and players, their sports fantasy teams for fantasy sports leagues they participate in, sporting events they would like to watch and sports content they would like to receive, etc. As indicated, notifications may relate to non-sports subject matter as well.
In accordance with the present technology, these electronic notifications may be displayed to the group as a whole on the main display 118 by the primary computing device 110, or targeted for display on one or more secondary computing devices 120.
In step 230, the central service determines whether there are notifications for one or more group members. Further details of step 230 are now explained with reference to the flowchart of
In further embodiments, instead of or in addition to generating notifications based on user preferences, notifications may be generated based on some contextual condition. In an embodiment, where identified web content relates to two or more members of the group, an electronic notification may be generated for sending to at least those two members even where those members have not expressed an interest in the web content in their preferences. As an example, it may happen that two users in a group are playing each other in a fantasy football matchup, or their favorite teams are playing each other. It may further be that neither of these users has specified a user preference for material relating to their fantasy football team/favorite football team. However, the central service 122 may store information relating to the fantasy football league, and determine that these two players are playing each other. Thus, while neither user stored a preference to see fantasy/real team football notifications, the context that these two users are together at location 140 at the same time, and that they/their teams are playing each other, may be a condition used by the central service 122 to generate notifications to those two users regarding these events.
Another contextual condition may relate to the reason the group has assembled and/or the underlying content 152 being displayed on the main display 118. Even though the users in the group may not have stored preferences relating to the underlying content 152, the central service 122 may recognize the content being displayed and generate electronic notifications to the group contextually based on that content. The central service knows what web content is being displayed on the main display 118 by the primary computing device 110. Additionally, linear broadcast content from television distribution network 130 may be recognized by the central service 122 and/or primary computing device 110 based on data from the EPG 134. Notifications may be generated based on other contextual conditions in further embodiments.
If information is identified that is determined to likely be of interest to one or more users from a group, the notification service 148 generates an electronic notification to be sent to the group member(s) in step 268. The notification service selects the text of the electronic notification, for example based on the summary metadata. The notification service may alternatively or additionally include images and other graphics as part of an electronic notification.
Where two or more users are receiving the electronic notification, the text may be selected so as to be balanced as to receiving users. For example, where a notification is being sent to two users who are opponents in a game, informing one of a victory and the other of the loss, the notification may indicate the outcome but not celebrate the victory or lament at the loss. Conversely, if the group recipients are rooting for a win in a given game, the electronic notification can celebrate the win. Similarly, if recipients are rooting for a loss in a given game, the electronic notification can celebrate that loss.
Referring again to the flowchart of
In step 270, a threshold number of users is determined for a group notification. That is, when the number of group users to whom the electronic notification is being sent meets or exceeds some threshold, the electronic notification is treated as a group notification and shown on the main display 118 to all group users. By contrast, when the number of group users to whom the electronic notification is being sent is below the threshold, the electronic notification is treated as a targeted notification and shown to specific users on their secondary computing devices 120.
The threshold number may vary depending on the number of users in the group. For example, for groups of four or more, the threshold may be 75%. For groups of three or less, the threshold may be 100%. It is understood that these group sizes and indicated percentages are by way of example only and may vary in further embodiments. The central service may store the number of users in a group at any given time, and the threshold may change as the number of users in the group changes.
In step 272, the notification service 148 may determine whether the number of group users to receive a particular notification meets the threshold for that group size. If yes, the notification is set as a group notification in step 274. If not, the notification is set as a targeted notification and the recipients are noted in step 276. In further embodiments, the step 272 of determining whether a notification is a group notification may be performed by the primary computing device 110.
Referring again to the flowchart of
Even though a group notification is displayed on the main display 118, each user in the group may want an individual record of the group notification on their secondary computing device 120. Therefore, in embodiments, a group notification may be forwarded to secondary computing devices 120 in the group in step 238. The respective secondary computing devices 120 may not display the notification, but they may store it in memory in step 240 so that they may view it at a later time when a user is reviewing a history of notifications received. The primary computing device 110 may forward group notifications to any secondary computing devices not having a direct connection to the primary computing device 110 via the Internet 150.
If step 232 determines an electronic notification is a targeted notification for specified users, the notification service 148 directs that notification to be sent to the secondary computing devices 120 of the specified users. Thus, these targeted users see the notification and other users in the group do not. In step 244, the central service may determine whether targeted recipients have a direct connection to the primary computing device 110. If so, the electronic notifications are sent to these secondary computing devices 120 through the primary computing device 110 in step 246. The targeted notification is displayed on the receiving secondary computing devices 120 in step 250.
An example of a targeted notification 162 is illustrated in
On the other hand, if it is determined in step 244 that one or more of the targeted recipients do not have a direct connection to the primary computing device 110, the targeted notifications 162 may be sent to these targeted secondary computing devices 120 via the Internet 150. In further embodiments, the primary computing device 110 may perform the step 244 of determining whether there are secondary computing devices 120 not having a direct connection to the primary computing device.
After targeted secondary computing devices receive and display a targeted notification in steps 250 or 260, these targeted secondary computing devices may store the notification in memory in step 256 so that it may be seen at a later time when a user is reviewing a history of notifications received.
As mentioned respect to
A graphics processing unit (GPU) 508 and a video encoder/video codec (coder/decoder) 514 form a video processing pipeline for high speed and high resolution graphics processing. Data is carried from the graphics processing unit 508 to the video encoder/video codec 514 via a bus. The video processing pipeline outputs data to an A/V (audio/video) port 540 for transmission to a television or other display. A memory controller 510 is connected to the GPU 508 to facilitate processor access to various types of memory 512, such as, but not limited to, a RAM.
The multimedia console 500 includes an I/O controller 520, a system management controller 522, an audio processing unit 523, a network (or communication) interface 524, a first USB host controller 526, a second USB controller 528 and a front panel I/O subassembly 530 that are preferably implemented on a module 518. The USB controllers 526 and 528 serve as hosts for peripheral controllers 542(1)-542(2), a wireless adapter 548 (another example of a communication interface), and an external memory device 546 (e.g., flash memory, external CD/DVD ROM drive, removable media, etc. any of which may be non-volatile storage). The network interface 524 and/or wireless adapter 548 provide access to a network (e.g., the Internet, home network, etc.) and may be any of a wide variety of various wired or wireless adapter components including an Ethernet card, a modem, a Bluetooth module, a cable modem, and the like.
System memory 543 is provided to store application data that is loaded during the boot process. A media drive 544 is provided and may comprise a DVD/CD drive, Blu-Ray drive, hard disk drive, or other removable media drive, etc. (any of which may be non-volatile storage). The media drive 544 may be internal or external to the multimedia console 500. Application data may be accessed via the media drive 544 for execution, playback, etc. by the multimedia console 500. The media drive 544 is connected to the I/O controller 520 via a bus, such as a Serial ATA bus or other high speed connection (e.g., IEEE 1394).
The multimedia console 500 may include a variety of computer readable media. Computer readable media can be any available tangible media that can be accessed by computer 441 and includes both volatile and nonvolatile media, removable and non-removable media. Computer readable media does not include transitory, transmitted or other modulated data signals that are not contained in a tangible media.
The system management controller 522 provides a variety of service functions related to assuring availability of the multimedia console 500. The audio processing unit 523 and an audio codec 532 form a corresponding audio processing pipeline with high fidelity and stereo processing. Audio data is carried between the audio processing unit 523 and the audio codec 532 via a communication link. The audio processing pipeline outputs data to the A/V port 540 for reproduction by an external audio user or device having audio capabilities.
The front panel I/O subassembly 530 supports the functionality of the power button 550 and the eject button 552, as well as any LEDs (light emitting diodes) or other indicators exposed on the outer surface of the multimedia console 500. A system power supply module 536 provides power to the components of the multimedia console 500. A fan 538 cools the circuitry within the multimedia console 500.
The CPU 501, GPU 508, memory controller 510, and various other components within the multimedia console 500 are interconnected via one or more buses, including serial and parallel buses, a memory bus, a peripheral bus, and a processor or local bus using any of a variety of bus architectures. By way of example, such architectures can include a Peripheral Component Interconnects (PCI) bus, PCI-Express bus, etc.
When the multimedia console 500 is powered on, application data may be loaded from the system memory 543 into memory 512 and/or caches 502, 504 and executed on the CPU 501. The application may present a graphical user interface that provides a consistent user experience when navigating to different media types available on the multimedia console 500. In operation, applications and/or other media contained within the media drive 544 may be launched or played from the media drive 544 to provide additional functionalities to the multimedia console 500.
The multimedia console 500 may be operated as a standalone system by simply connecting the system to a television or other display. In this standalone mode, the multimedia console 500 allows one or more users to interact with the system, watch movies, or listen to music. However, with the integration of broadband connectivity made available through the network interface 524 or the wireless adapter 548, the multimedia console 500 may further be operated as a participant in a larger network community. Additionally, multimedia console 500 can communicate with processing unit 4 via wireless adaptor 548.
When the multimedia console 500 is powered ON, a set amount of hardware resources are reserved for system use by the multimedia console operating system. These resources may include a reservation of memory, CPU and GPU cycle, networking bandwidth, etc. Because these resources are reserved at system boot time, the reserved resources do not exist from the application's view. In particular, the memory reservation preferably is large enough to contain the launch kernel, concurrent system applications and drivers. The CPU reservation is preferably constant such that if the reserved CPU usage is not used by the system applications, an idle thread will consume any unused cycles.
With regard to the GPU reservation, lightweight messages generated by the system applications (e.g., pop ups) are displayed by using a GPU interrupt to schedule code to render popup into an overlay. The amount of memory used for an overlay depends on the overlay area size and the overlay preferably scales with screen resolution. Where a full user interface is used by the concurrent system application, it is preferable to use a resolution independent of application resolution. A scaler may be used to set this resolution such that the need to change frequency and cause a TV resync is eliminated.
After multimedia console 500 boots and system resources are reserved, concurrent system applications execute to provide system functionalities. The system functionalities are encapsulated in a set of system applications that execute within the reserved system resources described above. The operating system kernel identifies threads that are system application threads versus gaming application threads. The system applications are preferably scheduled to run on the CPU 501 at predetermined times and intervals in order to provide a consistent system resource view to the application. The scheduling is to minimize cache disruption for the gaming application running on the console.
When a concurrent system application uses audio, audio processing is scheduled asynchronously to the gaming application due to time sensitivity. A multimedia console application manager (described below) controls the gaming application audio level (e.g., mute, attenuate) when system applications are active.
Optional input devices (e.g., controllers 542(1) and 542(2)) are shared by gaming applications and system applications. The input devices are not reserved resources, but are to be switched between system applications and the gaming application such that each will have a focus of the device. The application manager preferably controls the switching of input stream, without knowing the gaming application's knowledge and a driver maintains state information regarding focus switches. Capture device 320 may define additional input devices for the console 500 via USB controller 526 or other interface. In other embodiments, computing system 312 can be implemented using other hardware architectures. No one hardware architecture is required.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. It is intended that the scope of the invention be defined by the claims appended hereto.