The Background is intended to provide the basic context of this patent application and is not intended to describe a specific problem to be solved.
Digital media players are in common use among a broad base of users. Presently, streaming digital media is available over both wireless and wired networks and may be displayed on cellular telephones and other portable media devices.
Media players may send and receive content over a variety of data networks including cell-based and isochronous networks. The IEEE 802 standard family describes various local and wide-area networks (LAN or WAN, respectively) that carry variable-sized packets encoding digital media. The 802 standard encompasses protocols for both wired (e.g., 802.3, or Ethernet) and wireless (e.g., 802.11, or “WiFi”) networks. The 802.11 standard describes the protocols used to transfer data when a device is connected to a wireless network.
The station is the most basic component of the wireless network and is any device that contains the functionality of the 802.11 standard and a connection to the wireless device. Typically the 802.11 functions are implemented in the hardware and software of a network interface card (NIC). A station could be a media player, a laptop PC, handheld device, or an Access Point. Stations may be mobile, portable, or stationary and all stations support the 802.11 services of authentication, de-authentication, privacy, and data delivery. A collection of any number of stations is called a Basic Service Set (BSS). Generally, stations communicate by connection to other stations in an independent BSS, an ad-hoc network, or by connection to a central access point in an infrastructure BSS.
In some network connections, presence technology allows network stations to publish their availability for network interaction. In general, presence information indicates a particular user's ability and willingness to communicate with other network users. Presence information, or presence state, is communicated over the network to a presence service or directly to a presence-enabled device. Either directly or via the presence service, the information is distributed to other network users to convey the user's availability for present network communication or interaction.
A media player or other computing device that is connected to a network may stream media content to other connected devices. While receiving streaming media content, connected devices may also publish presence state information. Further, users may choose to override their presence state by, for example, selecting a “busy” state while they are “online” and able to receive streamed content. However, merely being able to choose a presence state may broadly limit a user's ability to receive content while still allowing other users to see that, while a “busy” device may not be available for communication, it is still within range and connected to the network. If a large number of devices are within range, sifting through all connected devices to find a device with which a user wishes to communicate may become unmanageable. Likewise, merely publishing presence state information, without more, may not provide either sending or receiving stations with adequate information to attempt a connection with an available device.
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 to limit the scope of the claimed subject matter.
A media player may be adapted to manage presence information distribution and access to facilitate media communication between compatible devices. In one embodiment, devices connecting in an ad-hoc or other network topology include a plurality of presence settings that determine how or if the device appears to be available for communication to other devices over the network. Additionally, the presence settings identify other, specific devices or groups of devices that may communicate with a device. By comparing the presence settings of a sending device with the settings of a receiving device, the receiving device may determine a presence state for all devices within communication range. Further communication between the deices may then be made within the parameters established by the presence settings.
The media device may be a handheld device, a virtual player on a computer, a set-top box, a cellular telephone, or other device capable of supporting media objects, a user interface, and in many cases, external communication.
The media device 100 may also include additional storage 108 (removable and/or non-removable) including, but not limited to, magnetic or optical disks or tape or any other memory that can be easily rewritten, may keep data for long periods of time when power is removed, and may allow quick and efficient access to data. Such additional storage is illustrated in
The processing unit 102 may be any processing unit 102 capable of executing computer code to decode media data from a compressed format into a useable form fast enough such that music and video may be played continuously without skips or jumps. When in a portable media device, it may also be useful if the processor 102 efficiently uses power to increase the life of the power source. The processing unit 102 may also be used to execute code to support a user interface and external communications.
The user interface may include one or more displays 114 for both displaying control information and displaying viewable media. The display 114 may be a color LCD screen that fits inside the device 100. While any mode of input device would work with the concepts of the present invention, user input(s) may include either manual buttons, soft buttons, or a combination of both. Soft buttons may be used when the display 114 includes a touch screen capability. Manual buttons may include re-definable keys with programmable legends.
A security module 122 may be coupled to the processor. The security module 122 may be used to store cryptographic keys used in digital rights management (DRM). The security module 122 may also have specialized hardware or processors for performing cryptographic calculations, such as stream decryption, without burdening the processor 102. Lastly, the security module 122 may include secure memory for storing record data associated with limited use rights for received media objects. The security module 122 may also include a tamper resistant clock for determining expiration periods on licenses. Management of limited use rights for media objects is discussed in more detailed below.
The media device 100 may also contain communications port of connection(s) 125 that allow the device 100 to communicate with external entities 124, such as network endpoints, other media devices, network access points, or a computer used for synchronization. Communications connection(s) 125 is an example of communication media. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. The term computer readable media as used herein includes both storage media and communication media.
The power source may be a battery that may be rechargeable. The power source may also be a standard battery or an input from a power converter or any other source of power.
A variety of functions, implemented in logic or software, may be used to support tracking and organizing nearby media devices 100, 124. Such functions may include a communication module 130, a nearby device tracking management module 135, and a nearby device tracking user interface that may facilitate user interaction related to tracking and organizing nearby devices. Such functions may include a communication module 130, a nearby device tracking management module 135, a presence module 140, and a presence and nearby device tracking user interface 145, that may facilitate user interaction related to tracking and organizing nearby devices as well as managing presence information.
In operation, a user may connect to external entities 124 through a variety of network types to include local and wide area networks using any number of communication protocols, standards, and topologies. For example, a media device may connect to a network implementing any of the Ethernet, ARCNet, FDDI, IEEE 1394, and Token Ring, or TCP/IP standards. Media devices may connect to each other through a central access point or in an ad hoc fashion. Once connected, the devices may share and transfer data files including media content that is stored in the device 100, 124 storage 108.
A user may receive a media object, including, for example, music or video content, or virtually any computer based file or collection of files, over the communication port 125. In one embodiment, the media object is communicated over an ad-hoc wireless network from an external device 124. To illustrate, the media object may have been purchased for use on the external device 124 and the user of the external device 124 may be entitled to full and unlimited access to that media object using that device. The user of the external device 124 may wish to share the media object with a user of the media device 100 and may forward or stream the media object to the media device 100.
While connected, the device 100 may not only transfer files or media content, but may also stream data for immediate, one-time consumption. Streaming data in this fashion, especially streaming audio or video content may be referred to as a disk jockey (DJ) session. A streaming session may be one-to-one, or may be a multicast, that is, one-to-many. Both inbound and outbound DJ sessions may be supported, that is, media content may be sourced from an external media device 124 and streamed to a receiving media device 100 or may be received from another source device.
In general, to establish a connection to an external device 124 or to broadcast to a number of external devices 124, a sending device 100 may send an announcement message 200 to nearby devices 124. Upon receipt of the announcement message 200, the external device 124 may return an acknowledgement message 300 to the sending device 100. The interaction of the announcement 200 and acknowledgement 300 messages may determine parameters associated with any communication session between the device 100 and the external device 124 as well as the management of presence information. Many other methods of connecting media devices 100, 124 are also possible.
The announcement 200 may be generally broadcast to any external device 124 within communication range of the device 100. Alternatively, the device 100 may transmit the announcement 200 to a specific external device 124. The announcement 200 may be any message that may organize and synchronize communication between the devices 100, 124 as well as provide detailed information about the sending device 100 to a nearby, external device 124. In one embodiment, the announcement 200 is transmitted as a modified beacon management frame. In another embodiment, the announcement is sent to a specific external device 124 as a probe request management frame. In still another embodiment, the announcement is sent as part of the authentication process employed by devices attempting to connect using the 802.11 standard. The announcement 200 may include administrative data 205 such as a time stamp from the secure clock 123 of the device security module 122, frequency-hopping spread spectrum (FHSS) and direct sequence spread spectrum (DSSS) parameters, an identification or name of the network (SSID), a traffic indication map (TIM), and supported data transmission rates.
In another embodiment, the announcement 200 includes a sending device 100 profile 210. For example, the sending device profile 210 may include data related to the device 100 and may include a network interface card (NIC) address, a unique device identifier, a firmware or software version number, a device type, a total storage capacity, a remaining storage capacity, an activation date, a manufacturing date, or any other data related to the sending device 100. The unique device identifier may be a Globally Unique Identifier (GUID). The GUID may be based on the device's NIC address and time stamp or may be generated in any other suitable manner.
Media characteristics 215 may also be included in the announcement 200. In one embodiment, media characteristics 215 may be related to media objects 400 stored in a media library 108, as described below, or being processed by the device 124. For example, the media characteristics 215 may include, without limitation, metadata 410 describing any portion or all of the media objects 400 stored in the device 100 media library 108. As explained below in relation to
Other announcement 200 information may include user profile 220 data. For example, the user profile 220 may include a unique sender identifier, demographic data associated with the device 100 user, profile data associated with users of different external devices 124 that the sending device 100 user has identified as “trusted” or has otherwise classified, or other users connected to the sending device 100. The user profile 220 may also include a name that may be set by the user to personally identify him or herself to other connected devices. Of course, sender profile data could include a variety of additional information.
The announcement 200 may also include device 100 presence data or presence state 225. For example, the presence state 225 may be any combination of sleeping (in power saving mode), busy (currently engaged in sending or receiving a file or listening to a media stream), blocked, Music—listening to [artist name][song title], Radio—listening to radio station [frequency][artist name][song name], Video—watching [video title], Print Media—reading [title][author], Game—playing [game title], Message—listening to or reading message from [other device user], or Photos—viewing [photo title][image data]. In one embodiment, the presence state 225 is combined with any other announcement 200 data to provide more information to an external device 124. For example, the presence state 225 may be combined with the traffic indication map of the administrative data 205 to provide data to identify other devices 124 with a presence state of “sleeping” or “busy” that have data frames in an access point or external device 124 buffer.
Also, the presence state 225 related to a media object 400 (i.e. Music, Video, Print Media, Game, etc.) may be combined with the media characteristics 225 to provide detailed information about a currently playing media object 300 or a media object 400 stored on the device 100. In one embodiment, presence data 225 includes preferences that are set by the sender. For example, the presence preferences 225 may define characteristics of nearby devices 124 that may ‘see’ or have permission to be notified of the existence of the sending device 100. In a further embodiment, presence preferences 225 may block specific nearby devices 124 or nearby devices 124 meeting one or more characteristics. Blocking may include, without limitation, preventing a receiving device 124 user from viewing the device's 100 presence data or media characteristics 215, or participating in a DJ session. In an alternative embodiment, the presence preferences 225 is stored and modified at the device 100.
Further, the announcement may include a welcome message that may be customized by a device 100 user. The message may be customized by the user at the time the announcement 200 is sent or may be set in advance. For example, a business welcome message may be useful for business meetings where formal information such as titles, business telephone numbers, business fax numbers and other business information may be logically exchanged. In another example, a social welcome message may include less formal information such as the nickname of the owner, a favorite comic strip, an astrological sign, a list of humorous likes and dislikes, etc. The message may be sent to other devices 124 as part of an announcement 200, alone, or as part of other communications.
The announcement 200 may also include privacy settings 235. For example, the privacy settings 235 may restrict, without limitation, the presence state 225 that is visible to other devices 124 or the amount of data that is included in the announcement 200 before it is sent to other devices 124. In another embodiment, the privacy settings 235 may restrict the amount of data that a receiving device 124 user may view from the announcement 200. For example, the privacy settings 235 may restrict what announcement 200 data a user may view from an external device 124 appearing in a “Nearby Devices” interface. Additionally, the the privacy settings 235 may allow or restrict sending or viewing the device's 100 media characteristics 215 including information related to a media object 400 that is currently playing, stored, or being sent to the external device 124. As filtered through the privacy settings 235, the announcement 200 may include information that the sending user is listening to a particular song or video by incorporating the title and artist name, the source of the media object 400, or other data associated with the media object 400 currently played or processed on the device 100. Privacy settings 235 may also limit sending or viewing the user's activity related to a radio station, photos on his device, or may provide information indicating that the device 100 is not currently engaged in any activity. Of course, many embodiments of the announcement 200 are possible.
With reference to
One element of the acknowledgement message 300 may include administrative data 305. The administrative data 305 may include virtual any information to assist communication. For example, the administrative data 305 may include a time stamp from the secure clock 123 of the device security module 122, communication parameters, an identification or name of the network (SSID), a traffic indication map (TIM), and supported data transmission rates. In one embodiment, the acknowledgement 300 includes an external, receiving device 124 profile 310 including network interface card (NIC) address, a unique device identifier, a firmware or software version number, a device type, a total storage capacity, a remaining storage capacity, an activation date, a manufacturing date, or any other data related to the external device 124. The unique device identifier may be a Globally Unique Identifier (GUID).
As with the announcement message 200, the acknowledgement 300 may include media characteristics 315. In one embodiment, media characteristics 315 may be related to media objects 400 stored in a media library 108, as described below, or being processed by the device 124. For example, the media characteristics 315 may include, without limitation, metadata 410 describing any portion or all of the media objects 400 stored in the device 124 media library 108.
Other acknowledgement 300 information may include user profile 320 data. For example, the user profile 320 may include a unique user identifier, demographic data associated with the device 124 user, profile data associated with users of different external devices 124 that the receiving device 124 user has identified as “trusted” or has otherwise classified, or other users connected to the external device 124. The user profile 320 may also include a name that may be set by the user to personally identify him or herself to other connected devices.
The acknowledgement 300 may also include device 124 presence data or presence state 325. The presence state 325 may be combined with any other acknowledgement 300 data to provide more information to the sending device 100, for example, with the media characteristics 325 to provide detailed information about a currently playing or stored media object 400. In one embodiment, presence data 325 includes preferences that may be set by the sender. For example, the presence preferences 325 may define characteristics of nearby devices 100 that may ‘see’ or be notified of the existence, of the device 124. In a further embodiment, presence preferences 325 may block specific nearby devices 124 or nearby devices 124 meeting one or more characteristics from viewing the device's presence data or participating in a DJ session. In an alternative embodiment, the presence preferences 325 may be stored and modified at the device 124. The acknowledgement may also include a response message that may be customized by a receiving device 124 user.
The acknowledgement 300 may also include privacy settings 335. For example, the privacy settings 335 may restrict the amount of data that is included in the acknowledgement 300 before it is sent to the initiating device 100. In some embodiments, the privacy settings 335 restrict the amount of data that a sending device 100 user may view from the acknowledgement 300. As filtered through the privacy settings 335, the acknowledgement 300 may include information that the receiving user is listening to a particular song or video by incorporating the title and artist name, the source of the media object 400, or other data associated with the media object 400 currently played or processed on the device 100. Privacy settings 335 may also limit sending or viewing the user's activity related to a radio station, photos on his device, or may provide information indicating that the sending device 100 is not currently engaged in any activity. Of course, many embodiments of the acknowledgement 300 are possible.
Referring to
If the metadata 410 is associated with a media object, the metadata 410 may also include media information. Without limitation, metadata 410 associated with an audio object may include a song name, an artist name, an album name, a music genre, and a release date. Also, without limitation, metadata associated with a video object may include a title, a television video type, a movie video type, video credits, a family rating, a release date, a duration release date, and a duration. Still further, without limitation, metadata associated with a photo object may include a folder name and a thumbnail version of the photo. Further metadata items for audio, video and other objects may include a media type, artist or creator descriptors, object running time, object size, playlist membership, a rating, and artwork data. As illustrated by the above example, the metadata 410 may contain virtually any information.
The content may include a number of elements as well including, without limitation, playable content 415, label art 420, and a promo cut 425. Playable content 405 may be any form of data that may be interpreted by the media device 100 into an audio or video signal. For example, playable content may be a song, a movie, a photo, a text, or any other type of content that may be fixed to a tangible medium and that may, as with a song or movie, include a temporal element. Label art 420 may be any image associated with the playable content 405. Label art 420 may include an album cover, an advertisement, or a movie poster. Label art 420 may also include more than a single still image, such as a series of images or even video content. A promo cut 425 may be a shorter version of the playable content 405. For example, the promo cut 425 may include an edited version of the playable content 405, or may simply contain one or more references to temporal points within the playable content 405 so that, when accessed, only a portion of the playable content 405 may be heard or viewed. The media object 400 may also contain personalized information such as an audio or video message that may be sent with the media object 400. The device 100 may store and render personalized data separately from the media objects 400 as herein described.
Further, individual DRM rules or limited use licenses may be attached to each of the media object's component elements 400. The DRM role may be any rule or set of rules that limits the use of protected works to allow content owners to determine and control who and how users can view, use, and share digital media objects. For example, a DRM rule may limit the number of times an object may be played within a specific time period. As shown, playable content 405 has license 430, while metadata 410 has license 435, label art 420 has license 440, and the promo cut 425 has license 445. Each element may not be present in every media object 400. For example, a media object may only have playable content 405. In one embodiment, when an element or media object license is not present, rules in the receiving media device 124 security module 122 are activated to apply a default license to the received media object 400, or any predetermined element.
A media device 100, 124 may store a plurality of media objects 400 in storage 108. When containing any number of media files, the storage 108 may also be referred to a media library 108. When sending, receiving, storing, or performing any action that includes media objects 400, the device 100, 124 may use the media library 108 as both a source and a repository of media objects 400. Of course, the device 100, 124 may also access media objects 400 from other internal or external data storage areas, for example, without limitation, external hard disks, flash drives, memory cards, or PCMCIA memory cards.
With primary reference to
At block 505, the media device 100 and external device 124 may be initialized. For example, users may turn on the device 100, 124 or the users may enable a communication capability within the communication module 130 of the devices 100, 124. Upon enabling a device's communication capability, the device 100, 124 may search for signals from other devices. With reference to
At block 510, the device 100 may transmit an announcement 200. The announcement may be generally broadcast to any external device 124 within communication range of the device 100. Alternatively, the device 100 may transmit the announcement 200 to a specific device 124. With reference to
The transmission of the announcement 200 may be restricted by the announcement 200 presence preferences 225. In one embodiment, a user may restrict the ability of nearby devices 124 matching the set preferences 225 to ‘see’ or otherwise identify the potential sending device 100 or characteristics of the sending device user. In another embodiment, limiting the visibility of the sending device 100 to other external devices 124 may limit the ability of the external devices to communicate or otherwise interact with the device 100. For example, the sending device 100 user may desire to broadcast only to external devices meeting the preferences 325.
The device 100 presence preferences 225 may shape the visibility of the device 100 to the external device 124 according to any of the information at the external device 124. For example, without limitation, the presence preferences 225 may limit presence visibility to external devices 124 having a particular user name, a specific music or video title, artist, or album, that are currently engaged in a DJ session, that are processing a particular media object or genre of media objects, that meet certain user profile characteristics, or any other preference that may be found in data associated with the external device 124.
At block 515, the external device 124 may receive the announcement 200 from the device 100. In one embodiment, once initialized, the external device 124 passively “listens” for announcements 200 on a number of channels on the communication port 125. The announcements 200 may originate from any source and the device 124 may listen for a fixed or variable amount of time at each channel. In another embodiment, the external device 124 may actively scan for a specific sending device 100. When actively scanning, the external device 124 may also send an announcement 200 identifying a specific network the device user wishes to join.
In a further embodiment, in addition to the presence preferences 225, the announcement 200 data permits only compatible devices 100, 124 to connect or respond to the message. For example, the announcement 200 may contain an SSID of a desired network. An external device 124 may only respond to or recognize an announcement 200 that includes the desired network SSID. The method may then only permit external devices 124 servicing that SSID to respond or may permit all compatible devices within range of the device 100 that also include the desired SSID to respond. In a further embodiment, the GUID or other unique identifier of the device 100 permits only specific device types to be recognized by other compatible devices 124. For example, only devices produced by a specific manufacturer or that are compatible with the device 100 may be recognized.
At block 520, the receiving external device 124 may perform a number of actions within a nearby device tracking management module 135 and a presence management module 140 using the announcement 200 data. In one embodiment, the external device 124 determines the device 100 status or may store the announcement 200 for reference or processing. For example, the external device 124 may examine data included with the announcement 200 such as the SSID, the sending device profile 210, media characteristics 215, user profile 220, presence data and preferences 225, privacy settings 235, or any other announcement 200 data to determine the sending device 100 status.
By examining the received presence preferences 225, the external device 124 may determine that the sending device 100 status is “blocked.” In one embodiment, the external device 124 compares the preferences 225 to a “blocked” list. The blocked list may include groups, classifications, or individual users or devices with which the receiving, external device 124 may not communicate or with which communication is restricted. For example, presence preferences 225 may block communication with any other device 100, 124 including a specific media characteristic 215. In one embodiment, the preferences 225 block communication with any other device 100, 124 including a specific song title and/or artist in the announcement message 200. In another embodiment, the preferences block communication with any device including a specified media genre. Other media characteristics 215, and any other announcement data 200 may also be used in combination with the presence preferences 225 to block or restrict communication with matching devices. The blocked list may be user-generated or may be stored at the device 100, 124 by a manufacturer or sent to the device as part of a network security or other network maintenance measure. Additional methods of creating the blocked list are also possible.
Additionally, the external device 124 may check the announcement message 200 against a “friends” or “trusted list” of devices 100. In one embodiment, an external device 124 provides differing levels of access or acceptance to specifically identified devices or classes of devices. For example, upon downloading a new release from a favorite band, a device user may send a copy of the song to a previously-identified group of friends. In another embodiment, a group and its preferences 225 are stored on one or all of the members' devices 100, 124. In a still further embodiment, the group preferences 225 are published along with other characteristics in the “Nearby Devices” screen as described below. A user that is not a member of the group may then request to join the group and, upon approval from a group administrator, a majority of the group members, or all of the group members, the user may be invited to join. Further, groups or group members may send unsolicited invitations to other devices 100, 124 to join groups. Additional methods of creating the friends, groups or trusted lists are also possible.
Devices may be identified in a group, a trusted list, a blocked list, or a friends list by a GUID or other unique characteristics included in the announcement 300 or other communication. In one embodiment, the external device 124 performs a security check on the announcement 200 data. For example, the external device 124 may determine if the sending device 100 has a secure clock 123 as part of the security module 122. If a device 124 detects a device clock 123 that is not secure, a message may be sent to the sending device 100 that the external device 124 may not accept the announcement.
If, at block 525, the external device 124 determined that communication in general, or a specific communication from the sending device 100 status is blocked, the receiving device 124 may, at block 530, send an acknowledgement message 300 to the device 100 indicating the status. With reference to
With further reference to
In addition to the connection message 910, the method 500 may present several processing options to the external device 124 user. For example, the method 500 may allow the user to accept 915, decline 920, respond 925, or block 930 the attempt by the device 100 to connect to the external device 124. In one embodiment, selecting any of the processing options sends an acknowledgement message 300 to the sending device 100. For example, declining 920 the announcement 200 may send an acknowledgement message 300 indicating that the user of the external device 124 may temporarily desire not to connect to the device 100 without placing the device 100 on a blocked list. Responding 925 to the announcement 300 may permit the user of the device 100 to send an acknowledgement message 300 including audio, video, or text communication to the device 100. For example, by selecting “respond” 925, the user may send a customizable message 330 to the device 100. The user may store a number of pre-defined messages 330 to be seen as an acknowledgement 300, or may, at the time of responding, create a suitable response message 330. After sending the message 300, the user of the device 100 may optionally or automatically connect to the device 100. Blocking 930 the announcement 200 may permit the user of the device 124 to place the sending device 100 on a blocked list as previously described.
In another embodiment, after determining that the sending device 100 is not blocked, the method 500 may omit interrupting the external device 124 activity and proceed to block 545. In a further embodiment, if a period of time elapses without the receiving device 124 user responding with a processing option, for example, any of 915, 920, 925, 930, the method 500 sends an acknowledgement message 300 to the device 100 indicating that the intended recipient device 124 has “times out” or otherwise indicate that a connection between the device 100 and the external device 124 is not possible.
If, at block 540, the external device 124 user chooses any of decline 920, respond 925, or block 930, the method 500 may send 530 an acknowledgement message 300 indicating that the device 124 will not process the announcement 200 as previously described. The external device 124 may continue to monitor for messages from a sending device 100 and the ending device may continue to send communications to other devices 124 or to another, specific external device 124.
If, at block 540, the external device 124 user chooses accept 915, the method 500 may send an acknowledgement message 300 to the sending device 100. Upon receipt of the acknowledgement 300, the device 100 may display a message indicating that a connection attempt was successful. In one embodiment, if a period of time elapses without the device 100 receiving an acknowledgement 300, the method 500 sends a message to the external device 124 indicating that the sending device 100 has “timed out” or otherwise indicate that a connection between the device 100 and the external device 124 is not possible.
At block 550, both the device 100 and the external device 124 may determine device characteristics. In one embodiment, the device 100, 124 characteristic are determined by the previously sent announcement 200 and the acknowledgement 300 messages. For example, characteristics of the sending device 100 may be determined by the external device 124 from any element or combination of elements of the announcement message 200. Further, characteristics of the external device 124 may be determined by the sending device 100 from the acknowledgement message 300. In a further embodiment, with reference to
Additionally, at block 550, the method 500 may determine each device's 100, 124 status. In one embodiment, a presence management module 140 organizes and displays external device 124 presence state and other information on a presence/nearby device user interface 145 of both devices 100, 124. For example, a “busy” presence status may be determined by the presence module 140 when a device 100, 124 is processing a media object 400 or a data stream send by a different device. An “online” status may indicate that the sending device 124 is not currently engaged in any activity. Also, a “show blocked” option 1020 may be included on either the device 100 or the external device 124 blocked list. Upon displaying locked nearby devices, the user may also be presented with an “unblock” option for those previously blocked devices. Many additional embodiments of determining device characteristics are also possible.
At block 555, the devices 100, 124 may display data associated with connected devices. With further reference to
In a still further embodiment, the device 100 user optionally requests 1110 the media object that is currently playing as shown in the nearby device interface 145. For example, selecting the request 1110 button may initiate an exchange of the currently playing media object to the external device 100. The exchange may be a direct stream from the external device 124 as the media object 400 is currently playing, or may transfer a copy of the complete media object 400 to the device 100. In another embodiment, playback of the transferred media object 400 initiated by the request 1110 is subject to one or more media object 400 licenses 430, 435, 440, 445, 450, or a default license.
In a still further embodiment, a device 100, 124 user sorts and organizes the nearby devices in the nearby devices user interface. For example, the user may set nearby device preferences that may sort devices in the user interface 140 by a desired media object 400 genre, a time of connection, a strength of friendship ranking, a friend group, or any other characteristic that may be determined in association with block 550 as previously described.
Also, privacy settings 235, 335 may also restrict the date displayed at block 555. Privacy settings may be customized by the user for all connected devices, or may be tailored to individual users or groups of users. In one embodiment, privacy settings only permit the device status of “busy,” “online,” or “blocked” associated with a particular connected device 100, 124 to be displayed. In a further embodiment, the privacy settings 235, 335 allow viewing limited or full details of the connected devices 100, 124.
After completing the method 500, the devices 100, 124 may continue to transfer management frames or other communications to establish a complete connection and transfer data as desired.
Much of the inventive functionality and many of the inventive principles are best implemented with or in software programs or instructions and integrated circuits (ICs) such as application specific ICs. It is expected that one of ordinary skill, notwithstanding possible significant effort and many design choices motivated by, for example, available time, current technology, and economic considerations, when guided by the concepts and principles disclosed herein will be readily capable of generating such software instructions and programs and ICs with minimum experimentation. Therefore, in the interest of brevity and minimization of any risk of obscuring the principles and concepts in accordance to the present invention, further discussion of such software and ICs, if any, will be limited to the essentials with respect to the principles and concepts of the preferred embodiments.
Although the forgoing text sets forth a detailed description of numerous different embodiments of the invention, it should be understood that the scope of the invention is defined by the words of the claims set forth at the end of this patent. The detailed description is to be construed as exemplary only and does not describe every possible embodiment of the invention because describing every possible embodiment would be impractical, if not impossible. Numerous alternative embodiments could be implemented, using either current technology or technology developed after the filing date of this patent, which would still fall within the scope of the claims defining the invention.
Number | Name | Date | Kind |
---|---|---|---|
5054019 | Mathis et al. | Oct 1991 | A |
5611050 | Theimer et al. | Mar 1997 | A |
6795846 | Merriam | Sep 2004 | B1 |
6862737 | Iwamura et al. | Mar 2005 | B1 |
7474888 | Davis et al. | Jan 2009 | B1 |
7552175 | Luo et al. | Jun 2009 | B2 |
20030079003 | Burr | Apr 2003 | A1 |
20040015403 | Moskowitz et al. | Jan 2004 | A1 |
20050007967 | Keskar et al. | Jan 2005 | A1 |
20050088980 | Olkkonen et al. | Apr 2005 | A1 |
20050213563 | Shaffer et al. | Sep 2005 | A1 |
20060055958 | Kim et al. | Mar 2006 | A1 |
20060101266 | Klassen et al. | May 2006 | A1 |
20060148477 | Reilly | Jul 2006 | A1 |
20060172770 | Fyke et al. | Aug 2006 | A1 |
20060235994 | Wu | Oct 2006 | A1 |
20070141989 | Flinchem | Jun 2007 | A1 |
20070274271 | Jones et al. | Nov 2007 | A1 |
20080072292 | Narjala | Mar 2008 | A1 |
20090325609 | Rosen et al. | Dec 2009 | A1 |
Number | Date | Country | |
---|---|---|---|
20080195621 A1 | Aug 2008 | US |