`
`
`
`43
`
`US 200701
`
`as) United States
`a2) Patent Application Publication io) Pub. No.: US 2007/0136446 Al
`(43) Pub. Date:
`Jun. 14, 2007
`Rezvaniet al.
`
`(54) WIRELESS MEDIA SERVER SYSTEM AND
`METHOD
`
`Related U.S. Application Data
`
`(76)
`
`Inventors: Behrooz Rezvani, San Ramon, CA
`(US); Andrea Goldsmith, Menlo Park,
`CA (US)
`
`Correspondence Address:
`PERKINS COTE LLP
`P.O. BOX 2168
`MENLO PARK, CA 94026 (US)
`
`(21) Appl. No.:
`
`11/607,815
`
`(22)
`
`Filed:
`
`Dec. 1, 2006
`
`(60) Provisional application No. 60/741,672, filed on Dec.
`1, 2005.
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`(2006.01)
`15/16
`GOOF
`(52) US. CM. cessscssssssssesestnsnsssnesertnsntessce 709/219
`
`ABSTRACT
`(57)
`Portable media devices allow a user to access music or other
`
`media stored on the device, and two portable media devices
`equipped with wireless technology can exchangestoredfiles
`over the air.
`
`100 —»
`
`
`
`
` 14
`
`
`
`Wireless Content Server
`102
`
`
`
`Content Database
`118
`
`DatabaseInterface
`116
`
`Content Provisioning Engine
`
`Wireless interface
`122
`
`NetworkInterface (Optional)
`120
`
`
`
`
`
`130) Content
`
`
`Wireless Network
`Provider
`106
`
`108
`
`
`
`
`
`Wired Network
`410
`
`
`
`
`Wireless Device
`Wireless Device
`
`Wireless Device
`4104-1
`104-2
`104-N
`
`
`
`
`
`
`1
`
`APPLE 1097
`APPLE 1097
`
`1
`
`
`
`Patent Application Publication Jun. 14,2007 Sheet 1 of 7
`
`US 2007/0136446 Al
`
`100
`
`Wireless Content Server
`102
`
`414
`
`Content Database
`118
`
`DatabaseInterface
`116
`
`Content Provisioning Engine
`
`Wireless Network
`
`126
`
`
`130] Content
`Provider
`
`
`108
`
`Wired Network
`4110
`
`106
`104-N
`
`Wireless Device
`104-1
`
`Wireless Device
`{04-2
`
`Wireless Device
`
`2
`
`
`
`Patent Application Publication Jun. 14,2007 Sheet 2 of 7
`
`US 2007/0136446 Al
`
`SSO}OsIAA
`
`éOld
` Elpey\—._.OOOO
`s}senbey/UOHeNiUy_)
`
`
`
`aoepajuleseqeyeq
`
`Soe
`
`ON
`
`joyyuoD
`
`ple
`
`
`
`UoIIUBODaYaDI0A,
`
`
`
`(JeuoydO)eurbuy
`
`oe
`
`
`
`Aieiqiqeipe;w
`
`Pee
`
`Zhe
`
`JANISWdM
`
`c0e
`
`SOPLO]U]
`
`O/lSSE[OIIMA
`
`saolaeq
`
`B02
`
`JUSHDWidM
`
`L-PO0d
`
`WaldWdM
`
`N-v0¢e
`
`ate
`
`
`
`
`
`WUN[OU0DSWdM
`
`Ole
`
`BOEHAIU)O/|P21
`
`O/|POdIAA
`902|saclAeg
`
`*—002
`
`3
`
`
`
`
`
`
`
`
`
`
`
`
`
`Patent Application Publication Jun. 14,2007 Sheet 3 of 7
`
`US 2007/0136446 Al
`
`300 ~~
`
`Establish wirelesslink between
`WPM server and WPM client
`
`
`
`
`
`
`
`
`Yes
`
`Change search criteria?
`g
`-
`
`316
`
`No
`
`Receive response(or no response)
`from WPM client
`
`
`
`Send search result from WPM
`server to WPM client
`
`.
`.
`Terminate search
`
`
`
`
`
`
`Receive request from WPMclientat
`WPMserveroverthe wirelesslink
`
`Determine search criteria
`
`Attemptto identify contentfiles
`matching searchcriteria
`
`One or more matches?
`
`310
`
`N
`
`More than one match?
`
`No
`
`Serve content to WPM client over
`.
`.
`wirelesslink for playback by user
`
`End
`
`Terminate wireless link between
`WPMserver and WPM client
`
`FIG. 3
`
`4
`
`
`
`Patent Application Publication Jun. 14,2007 Sheet 4 of 7
`
`US 2007/0136446 Al
`
`400
`
`402
`
`WPM Server
`
` Headset 404
`
`FIG. 4
`
`
`202
`
`WPMServer
`
`5
`
`
`
`Patent Application Publication Jun. 14,2007 Sheet 5 of 7
`
`US 2007/0136446 Al
`
`600 ~»
`
`A first user establishes a wireless
`connection to a WPMS via a headset
`
`604
`
`Thefirst user makes a search requestto
`identify a music file for sharing
`
`606
`
`Thefirst user requests that the musicfile
`be shared with a second user
`
`608
`
`The WPMS establishes a connection with
`the second user
`
`
`
`Second user consents?
`
`610
`
`N
`
`Yes
`
`612
`
`WPMSsendsthe musicfile simultaneously
`to the first user and the second user
`
`614
`
`Execute additional commands,if any
`
`
`
` 602
`
`
`
`
`
`
`
`
`
` 616
`seranoe?
`
`FIG. 6
`
`6
`
`
`
`Patent Application Publication Jun. 14,2007 Sheet 6 of 7
`
`US 2007/0136446 Al
`
`700 —~»«,
`
`_Headset 104-1
`702
`
`
`WPM Server
`
`Handset 704-2
`
`7
`
`
`
`Patent Application Publication Jun. 14,2007 Sheet 7 of 7
`
`US 2007/0136446 Al
`
`J8M9SWdM
`cosOY
`——_—_—_—_—_—}
`
`eIpayy
`
`uonellu)/sjsanbay
`
`V—008
`
`ele
`
`
`
`JayeedsO/luonluBooayeslo0/,
`
`
`jouesJe.4UOD(jeuondg)eulbuy
`wunvisO18
`
`BOBLO}U)O/!POI
`
`ors
`
`O/IPOs
`
`SedlAaq
`
`908
`
`
`
`BOBPO}U]SSOJOIIAA
`
`cle
`
`
`
`O/|SSB1B4IAA
`
`808|seo1aaqg
`
`8Sls
`
`708
`
`
`
`
`
`Wwayskssayeadsajqeyod
`
`8
`
`
`
`
`
`
`
`
`
`
`
`US 2007/0136446 Al
`
`Jun. 14, 2007
`
`WIRELESS MEDIA SERVER SYSTEM AND
`METHOD
`
`BACKGROUND
`
`[0001] Point-to-multipoint communication systems pro-
`vide communications between a central device and multiple
`remote devices. Communications may be directed at a
`specific remote device or to all/some devices simulta-
`neously. Wireless music centers store audio files and stream
`them wirelessly to multiple independentstations, but these
`devices are not portable.
`
`[0002] The foregoing examples of the related art and
`limitations related therewith are intended to beillustrative
`and not exclusive. Other limitations of the related art will
`
`becomeapparent to those of skill in the art upon a reading
`of the specification and a studyof the drawings.
`
`SUMMARY
`
`[0003] The following embodiments and aspects thereof
`are described and illustrated in conjunction with systems,
`tools, and methods that are meant to be exemplary and
`illustrative, not limiting in scope. In various embodiments,
`one or more of the above-described problems have been
`reducedor eliminated, while other embodimentsare directed
`to other improvements.
`
`[0004] A technique for providing content to wireless por-
`table media (WPM)clients involves creating a wireless link
`between the WPM clients and a WPM server. The WPM
`
`server mayreceive content from a content provider over a
`wireless or wired link. Once the content is uploaded to the
`WPM server,
`the WPMserver can provide the content
`wirelessly to the WPM clients. Advantageously, since the
`WPM server and the WPM client are both mobile,
`the
`system can be used in a variety of locations, such as, by way
`of example but not limitation, in a car, or at an impromptu
`party where media is shared between the WPMclients.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`[0005] Embodiments of the inventionsare illustrated in
`he figures. However,
`the embodiments and figures are
`illustrative rather than limiting; they provide examplesof the
`invention.
`
`FIG. 1 depicts an exampleof a systemthat includes
`[0006]
`a wireless content server.
`
`FIG. 2 depicts an example of a system including a
`[0007]
`WPMserver and a plurality of WPM clients.
`
`FIG. 3 depicts a flowchart of an example of a
`[0008]
`nethod for providing content from a WPMserver to aWPM
`client.
`
`FIG. 4 depicts an example of a system for provid-
`[0009]
`ing music from a WPMserverto a single WPM client.
`
`FIG. 5 depicts an example of a system for provid-
`[0010]
`ing music from a WPMserver to multiple WPMclients.
`
`FIG. 6 depicts a flowchart of an example of a
`[0011]
`nethod for music sharing in a WPMenvironment.
`
`FIG. 7 depicts an example ofa systemthat includes
`[0012]
`various WPMclients in a WPM environment.
`
`FIG. 8 depicts an example of a portable speaker
`[0013]
`system in a WPM environment.
`
`
`
`DETAILED DESCRIPTION
`
`
`Inthe following description, several specific details
`[0014]
`are presented to provide a thorough understanding of
`embodimentsof the invention. Oneskilled in the relevantart
`
`will recognize, however, that the invention can bepracticed
`withoutone or moreofthe specific details, or in combination
`with other components, etc. In other instances, well-known
`implementationsor operations are not shownor described in
`detail to avoid obscuring aspects of various embodiments of
`the invention.
`
`FIG. 1 depicts an example of a system 100 that
`[0015]
`includes a wireless contentserver. In the example of FIG.1,
`the system 100 includes a wireless content server 102,
`wireless devices 104-1 to 104-N (referred to collectivelyas
`wireless devices 104), a wireless network 106, a content
`provider 108, and a wired network 110.
`
`[0016] The wireless content server 102 may be imple-
`mented on any of many possible computer systems having
`different architectures. For example, personal computers
`based onan Intel microprocessor often have multiple buses,
`one of which can be an I/O busfor peripherals and one that
`directly connects processor and memory(often referred to as
`a memory bus). The buses are connected together through
`bridge components that perform any necessary translation
`due to differing bus protocols. Network computers are
`another type of computer system that can be used. Network
`computers do not usually include a hard disk or other mass
`storage, and the executable programs are loaded from a
`network connection into memory. A Web TV system, which
`is knownin the art,
`is also considered to be a computer
`system, but it may lack some of the features typical with
`personal computers, such as certain input or output devices.
`
`[0017] An apparatus for performing techniques described
`herein may be specially constructed for the required pur-
`poses, or it may comprise a general purpose computer
`selectively activated or reconfigured by a computer program
`stored in the computer. Such a computer program may be
`stored in a computer readable storage medium, such as, by
`way of example but not
`limitation, read-only memories
`
`(ROMs), RAMs, EPROMs, EEPROMs, magnetic oroptical
`cards, any type of disk including floppy disks, optical disks,
`CD-ROMs, DVDs, and magnetic-optical disks, or any
`known or convenient type of media suitable for storing
`electronic instructions.
`
`server 102 includes an
`[0018] The wireless content
`optional physical
`interface 112, a content provisioning
`engine 114, a database interface 116, a content database 118,
`an optional network interface 120, a wireless interface 122,
`and a content server engine 124. The optional physical
`interface 112 may include any port to which a device maybe
`directly connected to the wireless content server 102 (such
`as, by way of example butnotlimitation, a USBport, though
`any applicable known or convenient
`interface could be
`used).
`
`[0019] The content provisioning engine 114 includes a
`processor(such as, by wayof example butnot limitation, a
`microprocessor, though any applicable known or convenient
`processor could be used), whether dedicated or shared, and
`
`9
`
`
`
`US 2007/0136446 Al
`
`Jun. 14, 2007
`
`stored
`a computer-readable medium having programs
`hereon. The computer-readable medium may include
`nemory, which may be referred to as primary memory
`including, by way of example but not limitation, dynamic
`random access memory (DRAM) or static RAM (SRAM),
`hough any applicable known or convenient memory could
`be used) or secondary memory (including, by way of
`example but not
`limitation, a magnetic hard disk or an
`optical disk, though any applicable known or convenient
`nemory could be used). Data stored in secondary memory
`is typically written to primary memory during execution of
`he programs embodied in the computer-readable medium.
`The computer-readable medium encompassesa carrier wave
`hat encodes a data signal.
`
`[0020] The wireless content server 102 may be controlled
`by an operating system (OS). An OSis a software pro-
`gram—used on most, but not all, computer systems—that
`nanages the hardware and software resources of a computer.
`Typically, the OS performs basic tasks such as controlling
`and allocating memory, prioritizing system requests, con-
`rolling input and output devices, facilitating networking,
`and managing files. Examples of operating systems for
`personal computers include Microsoft Windows®, Linux,
`Mac OS®, orARM®(thelatter being popular in embedded
`systems). Delineating between the OS and application soft-
`ware is sometimesrather difficult. Fortunately, delineation is
`ot necessary to understand the techniques described herein,
`since any reasonable delineation should suflice.
`
`
`
`
`
`
`
`in typical
`[0021] The wireless content server 102 will,
`implementations, include I/O devices (such as, by way of
`example but not limitation, a keyboard, a disk drive, a
`printer, a scanner, a mouse, or buttons, switches, wheels, or
`dials). A display controller may control,
`in a known or
`convenient manner, a display (such as, by way of example
`but not limitation, a cathode ray tube (CRT)orliquid crystal
`display (LCD)). The display controller and/or other I/O
`controllers may include device drivers. A device driver is a
`specific type of computer software developed to allow
`interaction with hardware devices. Typically this constitutes
`an interface for communicating with the device, through a
`bus or communications subsystem that
`the hardware is
`connected to, providing commandsto and/or receiving data
`from the device, and on the other end, the requisite interfaces
`o the OS and software applications.
`
`
`
`[0022] The wireless devices 104 may include any device
`capable of receiving and using content from the wireless
`content server 102. Such devices may include wireless
`eadsets, handsets (such as, by way of example but not
`limitation, PDAs, cell phones, and the like), speakers, pro-
`jectors, etc.
`
`[0023] The wireless network 106 mayinclude one or more
`wireless access points that are capable ofreceiving wireless
`signals from the wireless content server 102 andthe wireless
`devices 104 and transmitting the wireless signals to the
`wireless content server 102 and the wireless devices 104. In
`this way, the wireless content server 102 and the wireless
`devices 104 are wirelessly connected to one another. In an
`embodiment, the wireless content server 102 could include
`an access point to which the wireless devices 104 connect
`(thereby obviating the need for a separate wireless network
`106). However, primarily for illustrative simplicity,
`it
`is
`assumed that a wireless network actually exists as distinct
`
`from the wireless content server 102, as shown in the
`example of FIG. 1. It should be noted that one or more ofthe
`wireless devices 104 could incorporate an access point, in a
`manner similar to that just described with respect to the
`wireless content server 102. The wireless network 106 may
`or may not be connected to a wired network.
`
`[0024] The content provider 108 may be any known or
`convenient device that is capable of providing content to the
`wireless content server 102. In an embodiment, the content
`provider 108 could include one or more of the wireless
`devices 104. There are many ways through which the
`content provider 108 provides content to the wireless con-
`tent server 102, a few of which are described later where the
`system 100 is described “in operation.” There are also many
`paths through which the content provider 108 could provide
`content to the wireless content server, which are generalized
`to the paths 126, 128, and 130 in the example of FIG. 1, each
`of which is described later where the system 100 is described
`“Gn operation.”
`
`[0025] The means by which the content provider 108 is
`stimulated to provide content is not critical. Some examples
`include a request by the wireless content server 102, a
`request by one of the wireless devices 104 (possibly indi-
`rectly through the wireless content server 102), a request
`received through email, instant messaging, or some other
`messaging protocol from a device (not shown), in accor-
`dance with a schedule at
`the content provider 108, as
`designated by an administrator (whether humanorartificial),
`or some other convenient means. The number of waysthat
`the content provider 108 could be stimulated to provide
`content is nearly innumerable so no attempt is made to
`provideall cases.
`
`[0026] Although the wired network 110 is not a critical
`component of the system 100, it will exist in any embodi-
`ment, even if not used, because the wired network 110 is
`intended to include the Internet. However,
`in a particular
`embodiment, the wired network 110 could include a WAN.
`LAN,or someother public, semi-public, private, ad hoc, or
`stand-alone (e.g., uncoupled to the Internet) network. The
`wired network 110 may include one or more wireless
`networks that are connected at some point
`to a wired
`backbone.
`
`In operation, (according to a first content provi-
`[0027]
`sioning embodiment) the content provider 108 sends content
`to the wireless content server 102 via the path 126 to the
`physical
`interface 112. The physical
`interface 112 is
`intended to include any applicable knownor convenientport
`through which a device can be directly coupled to the
`wireless content server. The connection of the device to the
`
`physical interface 112 is intended to include indirect con-
`nections, so long as the device is relatively local, and is wire
`connected (since if the device is wirelessly connected, the
`device would be connected via the wireless interface 122).
`
`[0028] The content provisioning engine 114 controls how
`content recetved on the physical
`interface 112 is to be
`handled. In a simple case, the content provisioning engine
`114 transmits, forwards, or allows through content to the
`database interface 116, which stores the content
`in the
`content database 118. Content may include audiofiles,
`multimediafiles, software applications, or any other content
`that is capable of playback at one or more of the wireless
`devices 104.
`
`10
`
`10
`
`
`
`US 2007/0136446 Al
`
`Jun. 14, 2007
`
`the network interface 120,
`alternative. Upon receipt at
`contentis treated similarly to that described with respect to
`the first content provisionig embodiment.
`
`it may be
`If the content database 118 is full,
`[0029]
`required for the content provisioning engine 114 to decide
`what to do. For example, the content provisioning engine
`114 mayreplace the oldest content with the content received
`on the physical
`interface 112. Alternatively,
`the content
`provisioning engine 114 may replace content that has been
`accessed least recently with the content received on the
`physical interface 112. Alternatively, the content provision-
`ing engine 114 mayreplace random content with the content
`received on the physical interface 112. In another embodi-
`ment, a portion of the content database 118 may be a shared
`library, while another portion may be allocated between
`users.
`
`[0030] Content could also havea priority value assigned to
`it uponreceipt, and the content provisioning engine 114 may
`replace lowerpriority content with higher priority content.
`In such an alternative, it may be possible that new content
`would not even be written to the content database 118,if it
`is lowerpriority than all of the content that currentlyfills up
`he content database 118.
`
`[0031] Avuser associated with content may also effect the
`determination by the content provisioning engine 114
`regarding whetherto replace older content with new content.
`For example, the content database 118 may be segmented to
`allow storage of content by users associated with one or
`nore of the wireless devices 104. Ifa first user associated
`
`with the wireless device 104-1 fills up the content database
`118 through requests to the content provider 108, a second
`ser associated with the wireless device 104-2 may request
`ew content that overwrites contentofthefirst user. Thefirst
`ser would not then be able to overwrite the second user’s
`requested content with a later request, even if the second
`ser’s requested contentis older. This may bereferredto as
`dynamicallocation of storage by user, since users can have
`nore than their share of contentif other users do not utilize
`
`heir full share. Alternatively, the content database 118 could
`be statically apportioned byuser such thata first user cannot
`fill up more than an allocated portion ofthe content database
`118, even if a second user does not use up his or herallocated
`portion.
`
`In operation, (according to a third content provi-
`[0034]
`sioning embodiment) the content provider 108 sends content
`to the wireless content server 102 via the path 130 to the
`wireless
`interface 122. The wireless
`interface 122 is
`intended to include any applicable knownor convenientport
`through which a device can be coupled to the wireless
`content server through a wireless network. For example, the
`wireless interface 122 may be associated with any known or
`convenient wireless protocol (such as, by way of example
`
`
`but not limitation, IEEE 802.11a/b/g/n, IEEE 802.15 (Blue-
`tooth/UWB/Zigbee), or a proprietary wireless protocol).
`
`in this content provi-
`[0035] The content provider 108,
`sioning embodiment, sends content through the wireless
`network 106 via the path 130. (The path 130 is represented
`as a dotted line because it is an alternative to the path 126,
`described previously).
`It may be noted that the path 126 (and
`the physical interface 112) and the path 130 (andthe wireless
`interface 122) may be implemented together or in the
`alternative. Upon receipt at
`the wireless interface 122,
`contentis treated similarly to that described with respect to
`the first content provisioning embodiment.
`
`
`
`
`
`
`It should be noted that in an embodimentin which
`[0036]
`the content provider 108 uses path 130, the content provider
`108 mayactually be included in the devices 104. However,
`for illustrative purposes, the content provider 108 is treated
`as distinct from the wireless devices 104 when describing
`instances where contentis provided to the wireless interface
`122 (concordantly, the wireless devices 104 are treated as
`distinct from the content provider 108 when content
`is
`received from the wireless interface 122). Thus, where
`content is transceived (e.g., the wireless devices 104 are
`capable of both sending and receiving content) the content
`provider 108 may not be needed as a distinct component
`(though it still could exist, in certain implementations, as a
`device that does not play content, but can provideit).
`
`In operation, regardless of the content provisioning
`[0037]
`embodiment used, the wireless devices 104 receive content
`from the wireless content server 102. The wireless devices
`104 may request content (or the request may be generated
`internally at the content server engine 124, or the request
`may be received from some other device (not shown)). A
`request for content from the wireless devices 104 is received
`at the wireless interface 122, and the content server engine
`124 determines how to respond. The content server engine
`124 will access the content database 118 through the data-
`base interface 116 to obtain the requested content, and
`transmit, forward, or pass through the content to the wireless
`interface 122 for transmission to the appropriate wireless
`device(s) 104. The content server engine 124 mayrequest
`additional information (e.g., narrow the search, provide an
`intendedlist of recipients, etc.) in the course of determining
`the appropriate content to serve.
`
`[0038] As used herein, algorithmic descriptions within a
`computer memory are believed to most effectively convey
`the techniques to others skilled in the art. An algorithm is
`here, and generally, conceived to be a self-consistent
`sequence of operations leading to a desired result. The
`operations are those requiring physical manipulations of
`physical quantities. Usually, though not necessarily, these
`
`11
`
`
`
`
`
`In operation, (according to a second content pro-
`[0032]
`Visioning embodiment) the content provider 108 sends con-
`ent to the wireless content server 102 via the path 128 to the
`etwork interface 120. The network interface 120 is
`
`intendedto include anyapplicable knownor convenientport
`hrough which a device can be coupled to the wireless
`content server through a wired network. For example, the
`etwork interface 120 maybe coupled to a modem (suchas,
`by wayof example but not limitation, an analog modem, an
`ISDN modem, or a cable modem). The network interface
`120 mayalso include a token ring interface,satellite trans-
`nission interface(e.g., “direct PC”), AM/FM/XMreceiver,
`or some other known or convenient interface for coupling
`one computer system to other computer systems accessible
`hrough a wired network.
`
`in this content provi-
`[0033] The content provider 108,
`sioning embodiment, sends content through the wired net-
`work 110 via the path 128. (The path 128 is represented as
`a dotted line because it is an alternative to the path 126,
`described previously). It maybe noted that the path 126 (and
`the physical interface 112) andthe path 128 (and the network
`interface 120) may be implemented together or in the
`
`11
`
`
`
`US 2007/0136446 Al
`
`Jun. 14, 2007
`
`quantities take the form ofelectrical or magnetic signals
`capable of being stored, transferred, combined, compared,
`and otherwise manipulated. It has proven convenient at
`imes, principally for reasons of commonusage,to refer to
`hese signals as bits, values, elements, symbols, characters,
`erms, numbers, or the like.
`
`It should be borne in mind, however, that all of
`[0039]
`hese and similar terms are to be associated with the appro-
`priate physical quantities and are merely convenientlabels
`applied to these quantities. Unless specifically stated other-
`wise as apparent from the following discussion,it is appre-
`ciated that throughout the description, discussions utilizing
`ermssuch as “processing”or “computing”or “calculating”
`or “determining” or “displaying” or the like, refer to the
`action and processes of a computer that manipulates and
`ransforms data represented as physical (electronic) quanti-
`ies within the computer system’s registers and memories
`into other data similarly represented as physical quantities
`within the computer system memoriesor registers or other
`such information storage, transmission or display devices.
`
`wireless I/O devices. However, the WPMclients 204 maybe
`distinguishable in that
`they are recipients of media for
`playback. The WPM clients 204 may be further distinguish-
`able from the wireless I/O devices 208 if they use, for
`example, a different protocol and/or a different wireless
`interface at the WPM server 202.
`
`In the example of FIG. 2, in operation, the WPM
`[0044]
`server 202 receives input on the wired I/O interface 210
`and/or the wireless interface 212. The input may include
`commandsthat are used by the WPMScontrol unit 218 to
`change parameters, effect media storage, or accomplish
`someother task. The input is received at the I/O control 214
`and converted (if necessary) to a format usable by the
`WPMScontrol unit 218. For example, if the input is in the
`form of voice, the I/O control 214 may makeuse of the voice
`recognition engine 216 to convert the voice commands to an
`appropriate format. The I/O control 214 provides the com-
`mands and/ordata associated with the input to the WPMS
`control unit 218.
`
`[0045] The input may be usedto change characteristics of
`the WPMScontrol unit 218, search parameters or other
`characteristics of the library search engine 220, or to store
`media in the media library 224 (via the database interface
`222). For example, the input mayinclude a commandto
`dynamically or statically apportion the media library 224
`such that storage resources are split between users associ-
`ated with one or more of the WPM clients 204. As another
`
`example, the data could include media thatis to be stored in
`the media library 224.
`
`
`
`
`[0040] The algorithms and displays presented herein are
`ot inherently related to any particular computer architec-
`ture. The techniques may be implemented using any known
`or convenient programming language, whether high level
`e.g., C/C++) or lowlevel (e.g., assembly language), and
`whetherinterpreted (e.g., Perl), compiled (e.g., C/C++), or
`Just-In-Time (JIT) compiled from bytecode (e.g., Java). Any
`known or convenient computer, regardless of architecture,
`should be capable of executing machine code compiled or
`otherwise assembled from any language into machine code
`hat is compatible with the computer’s architecture, includ-
`ing that of embedded systems,if applicable.
`
`In the example of FIG. 2, in operation, the WPM
`[0046]
`clients 204 attempt to wirelessly connect (initiation) to the
`WPMserver 202. The wireless connection may be formed in
`FIG. 2 depicts an example of a system 200 includ-
`[0041]
`any applicable known or convenient manner.
`ing a wireless portable media (WPM)server andaplurality
`[0047] Once a wireless connection is established,
`the
`of WPM clients. In the example of FIG. 2, the system 200
`WPMclients 204 make requests for media from the WPM
`includes a WPM server 202, WPM clients 204-1 to 204-N
`server 202. The requests are received at the wireless inter-
`referred to collectively as the WPMclients 204), wired I/O
`face 212 (which may or may not be a different wireless
`devices 206, and wireless I/O devices 208. In the example of
`interface from that on which input from the wireless I/O
`FIG. 2, the WPMserver 202 includes a wired I/O. interface
`devices 208 are received). The I/O control 214 provides the
`210, a wireless interface 212, /O control 214, an optional
`input to the WPMScontrol unit 218. The input mayinclude
`voice recognition engine 216, a WPM Server (WPMS)
`a request for media content,
`in which case the WPMS
`control unit 218, a library search engine 220, a database
`control unit 218 usesthe library search engine 220 to find the
`interface 222, and a media library 224. Advantageously, the
`media in the medialibrary 224. The input mayincludealist
`WPMserver 202 can be mountedpractically anywhere, such
`of intended recipients for media (which may be included in
`as in an automobile, on a worn article, or some other mobile
`a single request or sent separately).
`or small thing.
`
`[0042] The WPMclients 204 are anyportable devices that
`are capable of wirelessly receiving media from the WPM
`server 202 for playback. For audio media,this will typically
`include some type of speaker system (e.g., headphones or
`portable speakers). For video, this will typically include
`some type of display (e.g. an LCD or a projector). For
`multi-media, of course, this will typically include both a
`speaker system and a display.
`
`[0043] The wired I/O devices 206 mayinclude any appli-
`cable known or convenient I/O device (such as, by way of
`example but not limitation, buttons, keyboard, or micro-
`phone). The wireless I/O devices 208 may include many of
`the same types of devices that can be wire connected (e.g.,
`wireless keyboards or microphones), but further include
`remote controls, which are by definition wireless. It may be
`noted that the WPM clients 204 may be thought of as
`
`Inresponseto a request, the WPM control unit 218
`[0048]
`transmits, forwards, or allows through to the appropriate
`WPMclient(s) 204 media found in the media library 224 in
`accordance with searchcriteria provided in the input to the
`library search engine 220. Search criteria may be found in
`inputs from the WPM clients 204, generated in the WPMS
`control unit, and/or generated in the library search engine
`220 using instructions provided by the WPMScontrol unit.
`Searchcriteria may include, in an example where the media
`is music, song title, album name, artist name, keywords,
`lyrics, a hummed tune (input, for example, via a micro-
`phone), popularity, similarity to other music, genre, etc.
`
`[0049] The storage capacity for the media library 224 will
`depend on the memory capabilities of the WPM server 202.
`For example, a typical flash memory maystore 10-20 songs,
`depending on the music compression technique. The media
`
`12
`
`12
`
`
`
`US 2007/0136446 Al
`
`Jun. 14, 2007
`
`
`
`library 224 mayalso store media files for a single content
`request (e.g., a song) of different sizes based on different
`compression schemes. When a mediafile is requested, the
`nedia file’s size to transmit to the requesting device may be
`selected based on the available bandwidth in the system for
`hat transmission, which will depend on the propagation
`environment, the number of other users accessing the sys-
`em, and the amount of interference in the wireless signal
`bandwidth. The media library 224 may be created by one or
`nore users, and may be partitioned such that each user has
`heir own individual library (which can be made accessible
`o all/some other users) and/or there is a shared library
`accessible byall users.
`
`FIG. 3 depicts a flowchart 300 of an exampleof a
`[0050]
`nethod for providing content from a WPMserver to aWPM
`client. This method and other methods are depicted as
`serially arranged modules. However, modules of the meth-
`ods may be reordered, or arranged for parallel execution as
`appropriate. In the example of FIG. 3, the flowchart 300
`begins at module 302 where a wireless link is established
`between a WPMserver and a WPMclient. In the example
`of FIG.3, the flowchart 300 continues to module 304 where
`a request is received from the WPM client at the WPM
`server overthe wireless link.
`
`In the example of FIG. 3, the flowchart 300 con-
`[0051]
`tinues to module 306 where search criteria are determined.
`The search criteria may be found in the request from the
`WPMclient, or may be generated using someof the data in
`the request. In the example of FIG. 3, the flowchart 300
`continues to module 308 where an attempt
`is made to
`identify content files matching searchcriteria.
`
`In the example of FIG. 3, the flowchart 300 con-
`[0052]
`tinues to decision point 310 where it is determined whether
`one or more matches are found. Matches occur when the
`search criteria identify one or more contentfiles i