1. Field
The disclosure is related to the sharing and display of information on a large screen device among multiple users of small screen devices.
2. Description of the Related Technology
There exist a number of large screen devices that are designed to be viewed by multiple people at the same time, including large screen televisions and projection screens. Many of these devices are operable by a single user to convey information from the single user to multiple people. There is currently a need for systems which allow multiple users to share information on a single screen.
The systems and methods of the development each have several aspects, no single one of which is solely responsible for its desirable attributes. Without limiting the scope of this disclosure as expressed by the claims which follow, its more prominent features will now be discussed briefly. After considering this discussion, and particularly after reading the section entitled “Detailed Description of Certain Inventive Embodiments” one will understand how the sample features of this development provide advantages that include allowing multiple users to share information on a single screen.
One aspect of the development is a method of displaying a list, the method comprising receiving a first list of items from a first user device, generating a sorted list based on at least the first list and a second list, and displaying the sorted list. In one embodiment, the second list is received from a second user device. In another embodiment, generating the sorted list comprises compiling at least the first list and a second list into a compiled list and sorting the compiled list into the sorted list.
Another aspect of the development is a system for displaying a list, the system comprising a receiver configured to receive a first list of items from a first user device, a processor configured to generate a sorted list based on at least the first list and a second list, and a screen configured to display the sorted list. In one embodiment, the screen is designed to be viewed by multiple people at the same time. In another embodiment, the screen is larger than the screen of the first user device.
Another aspect of the development is a system for displaying a list, the system comprising means for receiving a first list of items from a first user device, means for generating a sorted list based on at least the first list and a second list, and means for displaying the sorted list.
Yet another aspect of the development is a computer-readable storage medium having instructions encoded thereon which, when executed by one or more processors, performs a method of displaying a list, the instructions including instructions for receiving a first list of items from a first user device, instructions for generating a sorted list based on at least the first list and a second list, and instructions for displaying the sorted list.
The following detailed description is directed to certain specific aspects of the development. However, the development can be embodied in a multitude of different ways, for example, as defined and covered by the claims. It should be apparent that the aspects herein may be embodied in a wide variety of forms and that any specific structure, function, or both being disclosed herein is merely representative. Based on the teachings herein one skilled in the art should appreciate that an aspect disclosed herein may be implemented independently of any other aspects and that two or more of these aspects may be combined in various ways. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects set forth herein. In addition, such an apparatus may be implemented or such a method may be practiced using other structure, functionality, or structure and functionality in addition to or other than one or more of the aspects set forth herein. Similarly, methods disclosed herein may performed by one or more computer processors configured to execute instructions retrieved from a computer-readable storage medium. A computer-readable storage medium stores information, such as data or instructions, for some interval of time, such that the information can be read by a computer during that interval of time. Examples of computer-readable storage media are memory, such as random access memory (RAM), and storage, such as hard drives, optical discs, flash memory, floppy disks, magnetic tape, paper tape, punch cards, and Zip drives.
The first screen device 110 can include a computer processor, memory and/or storage, one or more input devices, one or more output devices, and a network controller. The processor can be a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any suitable combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor such as an ARM, Pentium®, Pentium II®, Pentium III®, Pentium IV®, Pentium® Pro, an 8051, a MIPS®, a Power PC®, an ALPHA®, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The processor can be coupled, via one or more buses, to read information from or write information to memory and/or storage. The processor may additionally, or in the alternative, contain memory, such as processor registers. The memory can include processor cache, including a multi-level hierarchical cache in which different levels have different capacities and access speeds. The memory can also include random access memory (RAM), other volatile storage devices, or non-volatile storage devices. The storage can include hard drives, optical discs, such as compact discs (CDs) or digital video discs (DVDs), flash memory, floppy discs, magnetic tape, and Zip drives.
The first screen device 110 can also include one or more input devices and one or more output devices for, respectively, receiving input from and providing output to, users 10 of the system 100. Suitable input devices include, but are not limited to, a keyboard, buttons, keys, switches, a pointing device, a mouse, a joystick, a remote control, an infrared detector, a video camera (possibly coupled with video processing software to, e.g., detect hand gestures or facial gestures), a motion detector, or a microphone (possibly coupled to audio processing software to, e.g., detect voice commands). Suitable output devices include, but are not limited to, visual output devices, including displays and printers, audio output devices, including speakers, headphones, earphones, and alarms, and haptic output devices, including force-feedback game controllers and vibrating devices.
In one embodiment, the first screen device 110 includes, or is operatively connected to, a large display screen designed to be viewed by more than one user simultaneously. For example, the size of the large display screen, measured diagonally as known to those skilled in the art, may be 34 inches or greater, 42 inches or greater, 50 inches or greater, 62 inches or greater, or 70 inches or greater. Various display technologies are useful for generating large images, including LCD display technology, plasma display technology, and projection display technology. The second screen devices 130 may also include a display which is smaller than the display screen of the first screen device 110. In particular, the large display screen may have at least twice the area of a screen on the second screen devices 130, at least three times the area of a screen on the second screen devices 130, at least five times the area of a screen on the second screen devices 130, or at least ten times the area of a screen on the second screen devices 130.
The first screen device 110 can also receive and transmit information over the various communication links 120 via a network controller, or network card. The network card can be an Ethernet card with a unique 48-bit serial number called a MAC address stored in ROM (read-only memory) carried on the card. The network card can be an expansion card which plugs into a network bus or it can be a network interface built into a motherboard of the system unit. The communication links 120 can be either wired or wireless links. Examples of wired links include wires and optical fibres. The communications links 120 can be established using a USB protocol or a FireWire protocol. Examples of wireless links include electromagnetic waves, such as radio waves or infrared waves, and acoustic waves. The communication links 120 can be established using an Ethernet protocol, a Wi-Fi protocol, or a Bluetooth protocol. Both Wi-Fi and Bluetooth technologies operate at least in the 2.4 GHz ISM frequency band. In order to establish a wireless electromagnetic link, the first screen device 110 or second screen devices 130 may employ one or more antennas. In order to establish a wireless acoustic link, the first screen device 110 or second screen devices 130 may employ a speaker and a microphone. The communication links 120 allow for two-way communication between the first screen device 110 and second screen devices 130. In another embodiment, the communication links 120 are one-way communication links from the second screen devices 130 to the first screen device 110.
As disclosed above, the first screen device 110 of the system 100 is connected, via a number of communication links 120, to a number of second screen devices 130. Alternatively, the first screen device 110 and the second screen devices 130 can be interconnected via a public access network, such as the Internet, or a private network. The network can communicate using a number of protocols known to those skilled in the art, including IPv4 or IPv6.
The second screen devices 130, like the first screen device 110, can include a processor, memory and/or storage, input and output devices, and a network interface. Embodiments of the various components are described in detail above. The second screen devices 130 can include consumer electronic devices, such as a cell phone or smart phone, a personal digital assistant (PDA), a portable music player, a tablet PC, or a laptop computer.
The second screen devices 130 can be configured to create and manage a list of favorites. Although the term, “favorite” often connotes a ranking of desirability or preference, the term has taken, at least, the additional meaning of internet bookmark due to its use in this way by popular web browsers. As used herein, a favorite is a data item, or representation thereof, indicated by a user as being a favorite. Thus, a list of favorites is a list of data items compiled, at least in part, by a user. A list of favorites can include, without limitation, a list of television channels, a list of television programs, a list of stocks, a list of internet videos, a list of web pages or websites, a list of songs, a list of photographs or image files, a list of widgets, or a list of apps or applications. The lists can be stored in the memory or storage of the second screen devices 130.
As discussed above, users 10 of the second screen devices 130 can share lists of favorites over the connection links 120 for display by the first screen device 110. In practice, the various lists received from the second screen devices 130 are compiled in a manner explained below to produce a composite or combined list for display to the users.
The received list can also include a user code identifying the user sharing the list. The user code can also be generated by the first screen device 110 upon receiving the list. For example, the user code can be based on the MAC address or IP address of the second screen device 130. The user code can be generated sequentially as lists are received. The received list may also include a submission time and/or a share time indicating, respectively, when the list was submitted and when the user indicated intent to share the list. Similar data fields can additionally or alternatively be generated by the first screen device 110 to include a reception time and/or a share time indicating, respectively, when the list was received and when the indication of intent to share was received.
Next, in block 220, the received list is combined with other lists. In one embodiment, a shared list is stored as an array type data structure stored at the first screen device 110 of
Upon receiving a list and an indication of intent to share the list, the first screen device 110 adds to the shared list any items of the received list which are not already present in the shared list. This addition can also include generating data for the user code field and time field as described above. For any items of the received list which are already present in the shared list, the first screen device 110 edits the items in the shared list to indicate that an additional user has expressed intent to share those items. This editing can include altering the user code field by adding an additional user code, or adding one to the number of users which have shared the item. The editing may also include altering the time field, particularly if it is based on the latest time in which a user indicated intent to share the item or when the indication of intent to share the item was received.
As mentioned above, the first screen device 110 can receive the list separately from the indication of intent to share. In one embodiment, the first screen device 110 stores the received list separately until the indication of intent to share is received, at which point it combines the list with the shared list as disclosed above. In another embodiment, the first screen device 110 stores a master list as an array type data structure. Each item in the master list may be associated with an index and include a number of fields. The fields can include a fundamental field, such as channel number, stock symbol, URL, etc., a user code submission field indicating which user (or users) submitted the item, a user code share field indicating which users submitted an indication of intent to share the item, a submit time indicating when the item was submitted or received, and share time indicating when the indication of intent to share was submitted or received. The times can be based on the earliest or latest time in which a user submitted the item or intent to share or the earliest or latest time in which the item or intent to share was received. When an indication of intent to share is received from a particular user, the first screen device 110 can edit the user code share field of items of the master list which have a user code submission field indicating that they were submitted by the particular user to indicate that an indication of intent to share has been submitted by the particular user.
A shared list can be created from the master list at any time be generating a list having only the items with a user code in the user code share field.
The process 200 continues, in block 230, with a sort of the compiled list. In one embodiment, the first screen device 110 sorts the shared list to generate a sorted list. Although a different term is used (i.e. “sorted list” and “shared list”), it will be appreciated by those of ordinary skill in the art that the sorted list and shared list can be the same data structure, with the different terminology expressing the results after different operations of the process 200. However, in one embodiment, the sorted list and shared list are different data structures which are stored separately. The shared list can be sorted by any of a number of sorting methods known to those skilled in the art according to any of number of criteria. In particular, sorting algorithms which may be employed by a processor of the first device include, but are not limited to, bubble sort, comb sort, gnome sort, selection sort, insertion sort, and merge sort. A particular non-limiting sorting methodology is described below with respect to
The process 200 finishes, in block 240, with the display of the sorted list. The display can be performed by the first screen device 110 via a large display screen. In another embodiment, the display is performed by the first screen device 110 transmitting display data to the second screen devices 130 for display on the second screen devices 130. The display of the list can also include the display of data related to items of the list. For example, if the list is a list of stock symbols, the display may also include the display of stock quotes associated with the stock symbols. If the list is a list of television broadcast channels, the display may also include an indication of an event currently being broadcast on the channel. The display may additionally or alternatively include an option for interacting with the items of the list. For example, if the list is a list of stock quotes, there may be displayed an option for updating the displayed stock quotes. If the list is a list of television broadcast channels, the display there may be displayed an option to display the event being broadcast on the channel. If the list is a list of URLs, there may be displayed an option to being web browsing at that URL. If the list is a list of videos, there may be displayed an option to view the video.
As mentioned above, the list and indication of intent to share can be submitted or received separately. An indication of a rescission of intent to share can also be submitted or received. This allows users to alternatively share and cease sharing a list of favorites.
The process 300 begins, in block 310, with the reception of an indication of rescission of intent to share a list. In one embodiment, the first screen device 110 receives the indication from a second screen device 130. A user code can also be received with the indication or generated by the first screen device 110 as described above.
Next, in block 320, a list is amended. In one embodiment, the first screen device 110 amends a shared list as described above. The amendment can include removing the user code received or generated in block 310 from the user code field having the user code in the user code field. Amending the shared list can also include removing items for which there are no user codes in the user code field.
In another embodiment, the first screen device 110 amends a master list as described above. The amendment can include removing the user code received or generated in block 310 from the user code share field of items having the user code in the user code share field. In this embodiment, amending the master list need not include removing items for which there are not user codes in the user code share field, as the shared list is generated only from items for which there is a user code in the user code share field. This separation of submission and intent to share allows the user to resubmit an indication of intent to share without having to resubmit the user's list. After receiving an indication of intent to share, the master list is amended as described in
The process 300 continues, in block 330, with a sort of the amended list. As described above with respect to
The process 300 finishes, in block 340, with the display of the sorted list. As described above with respect to
A sort is performed in block 230 of
The method 400 begins, at block 410, by sorting the list by a fundamental field. As described above with respect to
Next, in block 410, the list is sorted by time. As described above with respect to
The process 400 finishes in block 430 in which the list is sorted by the number of user codes in the user code field or user code share field. As the stable sorting algorithm preserves the original order of items with equivalent sort keys, items with the same number of user codes remain sorted by time and fundamental field.
The process 400 generally sorts the items by relevancy, where those items shared by the most people are at the top of the list, and items are sorted by timeliness, and underlying fundamental field. Additional or different sort criteria could be used without departing from the scope of this disclosure, including the performance of a sort by the submission time rather than sort by a share time described with respect to block 420, the performance a sort by the number of users who submitted a favorite in between the sorts described with respect to blocks 420 and 430, or the performance of an additional sort by the extra information displayed. For example, if the items are stock symbols, the items may be sorted, after performing the sort described with respect to block 430, by an updated stock quote or a percentage change in stock price over a particular period.
Sorting can also be based on a profile or account associated with the user of the user device or information stored in the profile. For example, the profile can store a name associated with the user, an age associated with the user, or a role associated with the user. Sorting may be such that the favorites are listed alphabetically by name, or numerically by age. A role or type associated with the user may be selected by the user and include a ranking. For example parents and children may have different roles stored in the profile. The role may be selected from group including moderator, player, and observer.
In the example of
While the above description has pointed out novel features of the invention as applied to various embodiments, the skilled person will understand that various omissions, substitutions, and changes in the form and details of the device or process illustrated may be made without departing from the scope of the invention. Therefore, the scope of the invention is defined by the appended claims rather than by the foregoing description. All variations coming within the meaning and range of equivalency of the claims are embraced within their scope.
In particular, processes 200 and 300 are described as being performable by the first screen device 110 of