Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CONFIGURING OVER-THE-TOP DEVICES WITH SOUND WAVES
Document Type and Number:
WIPO Patent Application WO/2015/192309
Kind Code:
A1
Abstract:
A control device such as a mobile phone, etc., determines device configuration information for an electronic device (510) such as a plug-in device to a TV, etc. The control device generates a modulated electronic signal based on the device configuration information and an electronic carrier signal (520). The control device drives a transducer with the modulated electronic signal to produce a sound wave signal (530). The sound wave signal comprises sound waves encoded with the device configuration information for the electronic device. Upon detecting a sound wave signal from a control device (410), the electronic device decodes the device configuration information from the sound wave signal (420) and configures the electronic device based on the device configuration information decoded from the sound waves (430).

Inventors:
JIANG LU (CN)
YING JIAN (CN)
Application Number:
PCT/CN2014/080047
Publication Date:
December 23, 2015
Filing Date:
June 17, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
21 VIANET GROUP INC (CN)
International Classes:
G10L19/00; H04K1/00
Foreign References:
CN103244445A2013-08-14
CN103239219A2013-08-14
CN102460572A2012-05-16
CN102722812A2012-10-10
US20040001553A12004-01-01
KR20010110589A2001-12-13
Attorney, Agent or Firm:
BOSS & YOUNG PATENT AND TRADEMARK LAW OFFICE (Tower A Bldg. No. 1, GT International Center,,Jia 3 Yongandongli, Jianguomenwai Avenue, Chaoyang District, Beijing 2, CN)
Download PDF:
Claims:
s claimed is:

A method for configuring computing devices with sound waves, comprising:

detecting a sound wave signal comprising sound waves generated by one or more audio speakers of a control device, wherein the sound waves are encoded with device configuration information for performing an initial configuration of an electronic device, wherein the sound waves produce one or more of speech segments in a human natural language, or music segments with music notes, and wherein the device configuration information is contained between a start signal and an end signal both of which are carried in the sound wave signal;

decoding the device configuration information from an electronic signal generated by one or more transducers of the electronic device based on the sound waves of the sound wave signal;

configuring the electronic device based at least in part on the device configuration information decoded from the electronic signal generated by the one or more transducers of the electronic device based on the sound waves of the sound wave signal.

The method of Claim 1 , wherein the sound wave signal from the control device is received by the electronic device before any connection is established between the electronic device and the control device.

The method of Claim 1, further comprising establish one or more computer connections between the electronic device and one or more of display devices, network access devices, computing devices collocated with the electronic devices, or remote devices based on one or more operational parameters in the device configuration information.

The method of Claim 1, wherein the electronic device is a plug-in device that has been plugged into a host device, and wherein the electronic device receives the sound wave signal before the electronic device is operational with the host device.

The method of Claim 1 , wherein the electronic device operates in a device configuration mode when detecting the sound wave signal.

The method of Claim 1, wherein the device configuration information is decoded in response to the electronic device detecting a specific start signal in the sound wave signal. The method of Claim 1, wherein the device configuration information is decoded in response to the electronic device detecting that a loudness level of the sound waves is above a particular loudness threshold.

The method of Claim 1, wherein the sound waves constitute an audible message perceptible to a human auditory system, and wherein the audible message is in one of a variety of human natural languages.

9. The method of Claim 1, wherein the electronic device is a plug-in device to a host system; further comprising retrieving media content from a content server over one or more computer networks based at least in part on the device configuration information, converting the media content into a format supported by the host system, causing the media content to be rendered by the host system.

10. The method of Claim 9, wherein the media content from the media content server represents non-HDMI encoded content, and where the format supported by the media rendering system is an HDMI-based media content format.

11. The method of Claim 1 , wherein the electronic device establishes an end-to-end network path with the control device based at least in part on the device configuration information; further comprising receiving one or more commands from the control device over the network path.

12. The method of Claim 11, wherein at least one of the one or more commands from the control device comprises a request to access media content from an internet server.

13. The method of Claim 1 1, wherein at least one of the one or more commands from the control device comprises a trick play command.

14. A method for configuring computing devices with sound waves, comprising:

determining device configuration information for an initial configuration of an electronic device;

generating a modulated electronic signal by modulating the device configuration information onto an electronic carrier signal;

driving a transducer with the modulated electronic signal to produce a sound wave signal, wherein the sound wave signal comprises sound waves encoded with the device configuration information for the initial configuration of the electronic device.

15. The method of Claim 14, wherein the sound wave signal comprises a specific start signal.

16. The method of Claim 14, comprising:

determining second device configuration information for a second electronic device; generating a second modulated electronic signal based on the second device configuration information and a second electronic carrier signal;

driving the transducer with the second modulated electronic signal to produce a second sound wave signal, wherein the second sound wave signal comprises second sound waves encoded with the second device configuration information for the second electronic device.

17. The method of Claim 16, wherein the device configuration information and the second device configuration information share one or more common parameter values for both the electronic device and the second electronic device.

18. The method of Claim 16, wherein the device configuration information comprises one or more device-specific parameter values for the electronic device only, and wherein the second device configuration information does not comprise the one or more device-specific parameter values for the electronic device.

19. The method of Claim 1, wherein the control device is a mobile device, and wherein the method is performed at least in part by a mobile application downloaded to the mobile device.

20. The method of Claim 1, wherein the device configuration information is dynamically obtained by a control device from a data repository on the control device in response to the control device receiving user input requesting configuring the electronic device.

21. The method of Claim 1, wherein the device configuration information is dynamically obtained by a control device from an external data source external to the control device in response to the control device receiving user input requesting configuring the electronic device.

22. A system performing any of the methods as recited in Claims 1-21.

23. A non-transitory computer readable storage medium, storing software instructions, which when executed by one or more processors cause performance of the method recited in any of Claims 1-21.

24. A computing device comprising one or more processors and one or more storage media, storing a set of instructions, which when executed by one or more processors cause performance of the method recited in any of Claims 1-21.

AMENDED CLAIMS

received by the International Bureau on 30 September 2015 (30.09.2015)

1. A method for configuring computing devices with sound waves, comprising:

detecting a sound wave signal comprising sound waves generated by one or more audio speakers of a mobile phone device, wherein the sound waves are encoded with device configuration information for configuring an electronic device to access media content from one or more media content sources over one or more network connections that include a local wireless network connection;

decoding the device configuration information from an electronic signal generated by one or more transducers of the electronic device based on the sound waves of the sound wave signal;

connecting the electronic device to a network access device over the local wireless network connection, based at least in part on the device configuration information decoded from the electronic signal generated by the one or more transducers of the electronic device based on the sound waves of the sound wave signal.

2. The method of Claim 1 , wherein the sound wave signal from the mobile phone device is received by the electronic device before any connection is established between the electronic device and the mobile phone device.

3. The method of Claim 1, further comprising establish one or more computer connections between the electronic device and one or more of display devices, network access devices, computing devices collocated with the electronic devices, or remote devices based on one or more operational parameters in the device configuration information.

4. The method of Claim 1, wherein the electronic device is a plug-in device that has been plugged into a host device, and wherein the electronic device receives the sound wave signal before the electronic device is operational with the host device.

AMENDED SHEET (ARTICLE 19)

5. The method of Claim 1, wherein the electronic device operates in a device configuration mode when detecting the sound wave signal.

6. The method of Claim 1, wherein the device configuration information is decoded in response to the electronic device detecting a specific start signal in the sound wave signal

7. The method of Claim 1, wherein the device configuration information is decoded in response to the electronic device detecting that a loudness level of the sound waves is above a particular loudness threshold.

8. The method of Claim 1, wherein the sound waves constitute an audible message perceptible to a human auditory system, and wherein the audible message is in one of a variety of human natural languages.

9. The method of Claim I , wherein the electronic device is a plug-in device to a host system; further comprising retrieving media content from a content server over one or more computer networks based at least in part on the device configuration information, converting the media content into a format supported by the host system, causing the media content to be rendered by the host system.

10. The method of Claim 9, wherein the media content from the media content server represents non-HDMI encoded content, and where the format supported by the media rendering system is an HDMI-based media content format.

11. The method of Claim 1, wherein the electronic device establishes an end-to-end network path with the mobile phone device based at least in part on the device configuration information; further comprising receiving one or more commands from the mobile phone

AMENDED SHEET (ARTICLE 19) device over the network path.

12. The method of Claim 11, wherein at least one of the one or more commands from the mobile phone device comprises a request to access media content from an internet server.

13. The method of Claim 11, wherein at least one of the one or more commands from the mobile phone device comprises a trick play command.

14. A method for configuring computing devices with sound waves, comprising:

connecting a mobile phone device to a network access device over a first local wireless network connection, based at least in part on first device configuration information of the mobile phone device;

including at least a portion of the first device configuration information of the mobile phone device in second device configuration information for configuring an electronic device to access media content from one or more media content sources over one or more network connections that include a second local wireless network connection from the electronic device to the network access device; generating, by the mobile phone device, a modulated electronic signal by modulating the device configuration information onto an electronic carrier signal; driving, by the mobile phone device, a transducer with the modulated' electronic signal to produce a sound wave signal, wherein the sound wave signal comprises sound waves encoded with the device configuration information for the initial configuration of the electronic device.

15. The method of Claim 14, wherein the sound wave signal comprises a specific start signal.

16. The method of Claim 14, comprising:

AMENDED SHEET (ARTICLE 19) determining second device configuration information for a second electronic device; generating a second modulated electronic signal based on the second device configuration information and a second electronic carrier signal;

driving the transducer with the second modulated electronic signal to produce a second sound wave signal, wherein the second sound wave signal comprises second sound waves encoded with the second device configuration information for the second electronic device.

17. The method of Claim 16, wherein the device configuration information and the second device configuration information share one or more common parameter values for both the electronic device and the second electronic device.

IS. The method of Claim 16, wherein the device configuration information comprises one or more device-specific parameter values for the electronic device only, and wherein the second device configuration information does not comprise the one or more device-specific parameter values for the electronic device.

19. The method of Claim 1, wherein the method is performed at least in part by a mobile application downloaded to the mobile device.

20. The method of Claim 1, wherein the device configuration information is dynamically obtained by a mobile phone device from a data repository on the mobile phone device in response to the mobile phone device receiving user input requesting configuring the electronic device.

21. The method of Claim 1, wherein the device configuration information is dynamically obtained by a mobile phone device from an external data source external to the mobile

AMENDED SHEET (ARTICLE 19) phone device in response to the mobile phone device receiving user input requesting configuring the electronic device.

A system performing any of the methods as recited in Claims 1-21.

A non-transitory computer readable storage medium, storing software instructions, which when executed by one or more processors cause performance of the method recited in any of Claims 1-21.

A computing device comprising one or more processors and one or more storage media, storing a set of instructions, which when executed by one or more processors cause performance of the method recited in any of Claims 1-21.

AMENDED SHEET (ARTICLE 19)

Description:
CONFIGURING OVER-THE-TOP DEVICES WITH SOUND WAVES

TECHNOLOGY

[0001] The present invention relates generally to configuring devices, and in particular, to configuring devices with sound waves.

BACKGROUND

[0002] After electronic devices are released from device providers to end users, many such devices need to be properly configured first in order to be fully functional. Device configuration operations vary greatly depending on types of electronic devices to be configured and functions to be performed by individual devices. For example, most if not all of device configuration operations for a laptop computer can be performed with graphic user interface displays and user input devices such as keyboard, mouse, touchpad, touch screen, etc., that are integrated with the laptop computer.

[0003] However, for a small footprint electronic device such as a plug-in device, etc., which may not have sufficient integrated display or input capabilities on its own to interact with a user, either the device has to directly operate with possibly suboptimal default settings from the factory, or else the user has to tether the device through different types of cablings to other devices for the purpose of configuring the device. In some instances, cables and connectors to be used in the cablings can be comparable to, and even more expensive than, the costs of the small footprint devices and may be difficult to find, especially when the devices newly hit the consumer market.

[0004] The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section. Similarly, issues identified with respect to one or more approaches should not assume to have been recognized in any prior art on the basis of this section, unless otherwise indicated.

BRIEF DESCRIPTION OF DRAWINGS

[0005] The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:

[0006] FIG. 1A and FIG. IB illustrate example system configurations;

[0007] FIG. 2 illustrates an example control device;

[0008] FIG. 3 illustrates an example electronic device;

[0009] FIG. 4 and FIG. 5 illustrate example process flows; and

[0010] FIG. 6 illustrates an example hardware platform on which a computer or a computing device as described herein may be implemented. DESCRIPTION OF EXAMPLE EMBODIMENTS

[0011] Example embodiments, which relate to configuring devices with sound waves, are described herein. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are not described in exhaustive detail, in order to avoid unnecessarily occluding, obscuring, or obfuscating the present invention.

[0012] Example embodiments are described herein according to the following outline:

1. GENERAL OVERVIEW

2. STRUCTURE OVERVIEW

3. CONTROL DEVICES

4. ELECTRONIC DEVICES

5. EXAMPLE PROCESS FLOW

6. IMPLEMENTATION MECHANISMS - HARDWARE OVERVIEW

7. EQUIVALENTS, EXTENSIONS, ALTERNATIVES AND

MISCELLANEOUS

1. GENERAL OVERVIEW

[0013] This overview presents a basic description of some aspects of an example embodiment of the present invention. It should be noted that this overview is not an extensive or exhaustive summary of aspects of the example embodiment. Moreover, it should be noted that this overview is not intended to be understood as identifying any particularly significant aspects or elements of the example embodiment, nor as delineating any scope of the example embodiment in particular, nor the invention in general. This overview merely presents some concepts that relate to the example embodiment in a condensed and simplified format, and should be understood as merely a conceptual prelude to a more detailed description of example embodiments that follows below.

[0014] Small footprint electronic devices are ubiquitous in modern societies. These devices increasingly provide a myriad of highly complex, highly useful, functionality despite their small sizes. For example, an electronic device can be an over-the-top (OTT) device enclosed in a housing of a small form factor and plugged into an HDMI port of a consumer electronic device such as an HDMI display. The OTT device can wirelessly connect to a network access device, which in turn allows the OTT device to access resources in one or more remote or local computer networks (e.g., the internet, etc.) through the network access device, to be controlled by a control device, etc. As a result, a variety of media content (not necessarily in an HDMI format) from different media content sources can be accessed by the OTT device and transferred to the HDMI display for rendering after the OTT device adapts the media content into the HDMI format supported by the HDMI display.

[0015] To be operational with its designated functionality, an electronic device may have to be properly configured. Some operational parameters can be set at the factory for the electronic device before shipping to end users. However, values for many operational parameters are not available before the electronic device reaches an end user. Examples of operational parameters that may not have known values include, without limitation, access network name, access network password, a media content source name, etc. Additionally, optionally, or alternatively, the electronic device can be moved to operate with a different set of devices, in a different environment, for accessing different media content services, etc.; as a result, different operational parameters need to be used to re-configure the electronic device in the different environment.

[0016] Techniques as described herein can be used to configure an electronic device without any tethered connection to the electronic device for device configuration purposes. As used herein, a tethered connection refers to a connection that requires cabling with (e.g., a port of, a physical interface of, etc.) the electronic device.

[0017] The techniques as described herein enable a control device such as a mobile phone, etc., to configure an electronic device such as an OTT device, etc., using sound waves. For example, to configure the OTT device for the first time, an end user can use the mobile phone to emit, to the OTT device, a greeting message modulated/embedded with device configuration information for the OTT device. The greeting message can be a voice message, a speech segment, music segments (with music notes), song segments, a combination of two or more of the foregoing, etc., perceptible/audible to a user so that the user is aware that the OTT device is being configured by the mobile phone. The device configuration information (e.g., a network address, etc.) embedded in the greeting message is an inaudible signal, and is not audible or perceptible to the user. The device configuration information may comprise operational parameters such as access network name, access network password, etc., to be used by the OTT device to make itself fully functional (e.g., access a network access device, obtain IP address, access media content in computer networks, etc.). The OTT device can be configured with software and/or hardware to recognize the greeting message, decode/demodulate the device configuration information from the greeting message, and configure itself based on the device configuration information accordingly.

[0018] Thus, techniques as described herein can be used to provide easy-to-use out-of-box experiences (OOBEs) for users of various technical sophistication levels relative to other approaches that do not implement these techniques.

[0019] The techniques as described herein can also be used to modify or update device configuration of electronic devices. For example, an electronic device can be moved to a different location, or operate with different network access devices and/or different media content sources and/or different sets of functions supported by the electronic device. Under techniques as described herein, the electronic device can process new sound waves that meet certain criteria (e.g., above a certain signal strength, having a special start code, with a specific audible message, etc.) and configure itself with new device configuration information decoded from the new sound waves.

[0020] Techniques as described herein can be used to configure electronic devices of relatively small footprints such as plug-in devices with a limited number of physical interfaces for wire-based connections (e.g., a plug-in device that only has one physical interface for wired-based connection to a host device to which the plug-in device is plugged in, etc.), as well as electronic devices of relatively large footprints that support device configuration operations through wire-based connections. As for the latter devices, the techniques as described herein still provide the benefits of freeing users from having to find correct cables and connectors and set up the cablings (wire-based connection) with the to-be-configured electronic devices for device configuration operations.

[0021] Under techniques as described herein, device configuration information for an electronic device can be determined by a control device in one or more of a variety of ways. In an example, the control device can include a portion of its own device configuration information (e.g., some or all of access point name, access point passcode/passphrase, network access protocol, DHCP related information, DNS related information, etc.) in the device configuration information for the electronic device. In other examples, the control device can access a device configuration data store maintained internally by the control device, or alternatively access an external device configuration data source external to the control device and retrieve one or more operational parameter values to be included in the device configuration information for the electronic device. Additionally, optionally, or alternatively, the control device can interact with a user and receive user input that specifies one or more operational parameter values to be included in the device configuration information for the electronic device, etc.

[0022] In some example embodiments, mechanisms as described herein form a part of an information processing system, including but not limited to any of: a handheld device, game machine, television, laptop computer, netbook computer, tablet computer, cellular radiotelephone, electronic book reader, point of sale terminal, desktop computer, computer workstation, computer kiosk, plug-in devices, media accessing devices, or various other kinds of terminals and media processing units.

[0023] Various modifications to the preferred embodiments and the generic principles and features described herein will be readily apparent to those skilled in the art. Thus, the disclosure is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features described herein.

2. STRUCTURE OVERVIEW

[0024] FIG. 1A depicts an example configuration 100 comprising an electronic device 102, a network access device 104, a control device 106, one or more (e.g., cloud-based, on premise, etc.) internet servers 110, etc.

[0025] As illustrated in FIG. 1A, some or all of the control device 106, the network access device (104), the one or more internet servers (110), etc., can be communicatively and/or operatively linked with one another through the one or more computer networks (108). In some embodiments, some or all of the control device 106, the network access device (104), the one or more internet servers (110), etc., can be connected to the one or more computer networks (108) via a variety of ways such as wireless local area networks, telecom networks, wire-based connections, etc. In some embodiments, after device configuration operations as described herein have been performed with the electronic device (102), the electronic device (102) also become connected with some or all of the control device 106, the network access device (104), the one or more internet servers (110), etc., for example, through the one or more computer networks (108) and/or other devices.

[0026] The computer networks (108) may include, but are not limited to only, any of: the Internet, intranets, local area networks, wide area networks, wired network links, wireless network links, etc.

[0027] As used herein, an electronic device (e.g., 102, etc.) refers to a computing device that is to be configured by sound waves emitted by a control device (e.g., 106, etc.). In an example, after the electronic device (102) is received as an out-of-box device from a device provider, the electronic device (102) is to be configured for the first time so the electronic device can be put in intended use (e.g., casting media content to a display device, etc.).

[0028] In some embodiments, the electronic device (102) has been preset to operate in a device configuration mode after being turned on for the first time out of the box. In some embodiments, the electronic device (102) may remain in the device configuration mode until after device configuration operations for the electronic device (102) have been successfully completed. In this operational mode, the electronic device (102) can perform its (e.g., initial, out-of-the-box, etc.) device configuration operations based at least in part on information extracted from a specific sound wave signal emitted by the control device (106), without involving (or establishing) any wire based connection between the electronic device (102) and the control device (106).

[0029] As used herein, a control device (e.g., 106, etc.) refers to a computing device specifically configured to formulate (or generate) a sound wave signal which can be received by an electronic device (e.g., 102, etc.) for the electronic device (102) to perform device configuration. In some embodiments, the control device (106) can be, but is not limited to only, a mobile device, etc.

[0030] In some embodiments, the control device (106) can download a device configuration application such as a mobile app that enables the control device (106) to formulate (or generate) a sound wave signal as described herein. For example, the control device (106) can be operatively linked to the computer networks (108) and download such a mobile app over the computer networks (108) from a mobile app source (not shown).

[0031] In some embodiments, the control device (106) may have been pre-installed, pre-configured, pre-upgraded, etc., with a device configuring application that enables the control device (106) (e.g., software, hardware, a combination of software and hardware thereon, etc.) to formulate (or generate) a sound wave signal as described herein.

[0032] In some embodiments, a device configuration application that enables the control device (106) to formulate (or generate) a sound wave signal as described herein as described herein may not even need to be installed on a control device; for example, an application server (e.g., a cloud-based application server, etc.) maybe accessed by the control device (106) to launch an instance of the device configuration application on the control device (106) on demand. [0033] As used herein, a network access device (e.g., 104, etc.) refers to a computing device that another computing device such as the electronic device (102), the control device (106), etc., can establish a network connection to the computer networks (108). The network access device (104) may be configured to support wireless connections (e.g., WLAN, IEEE 802.1 1, etc.), wire-based connections (e.g., Ethernet connections, etc.), etc., with other computing devices such as the control device (106), the electronic device (102), etc. Some of all the network connections between the network access device (104) and other devices can, but are not limited to, be on-demand.

[0034] In some embodiments, while the electronic device (102) is waiting for and processing a sound wave signal comprising sound waves generated by the control device (106), the electronic device (102) has yet to establish a network connection with the network access device (106). In some embodiments, the sound waves are modulated with device configuration information including but not necessarily limited to a set of network configuration parameters. In the preset device configuration mode, the electronic device (102) can automatically extract the set of network configuration parameters from the sound waves and automatically configure the electronic device (102) to establish, based on the set of network configuration parameters, a network connection with the network access device (104).

[0035] The device configuration information that can be decoded from sound waves or spatial pressure waves generated by (e.g., one or more audio speakers of, etc.) the control device (106) may include, but is not limited to only, the above-mentioned set of network configuration parameters. In some embodiments, the device configuration information may comprise other types of operational parameters in addition to the set of network configuration parameters used to establish connection with the network access device (104). For example, those other types of operational parameters may include those to be used internally by the electronic device (102), or those to be used to establish end-to-end network paths to other devices/systems such as DHCP servers, DNS servers, internet servers, web servers, database servers, application servers, servers to register the electronic device (102), report problems/bugs/issues, or receive updates, bug fixes, etc.

[0036] In an example, after the device configuration information is decoded from sound waves by the electronic device (102), the electronic device (102) can use an end-to-end network path established based on the device configuration information over the computer networks (108) to access an internet server (e.g., one of the internet servers 110, etc.) to download media content, convert the media content into an HDMI signal, transmit the HDMI signal to a display device for rendering; etc.

[0037] In another example, after the device configuration information is decoded from sound waves by the electronic device (102), the electronic device (102) can use an end-to-end network path established based on the device configuration information over the computer networks (108) to access an internet server (e.g., one of the internet servers 110, etc.) to play games on the electronic device (102); etc. [0038] Other applications such as e-books, internet shopping, etc., can also be supported after the electronic device (102) is configured based on the device configuration information decoded from the sound waves emitted by the control device (106).

[0039] FIG. IB depicts another example configuration 100-1 comprising electronic devices 102-1 and 102-2, host devices 112-1 and 112-2, a network access device 104, a control device 106, a plurality of (e.g., cloud-based, on premise, etc.) internet servers 110-1 and 110-2, etc.

[0040] As illustrated in FIG. IB, some or all of the control device 106, the network access device (104), the one or more internet servers (110-1 and 110-2), etc., can be communicatively and/or operatively linked with one another through the one or more computer networks (108). These devices or servers can access or connect to the one or more computer network (108) via one or more of wireless local area networks, telecom networks, wire-based connections, etc. In some embodiments, after device configuration operations as described herein have been performed with the electronic devices (102-1 and 102-2), the electronic devices (102-1 and 102-2) also become enabled to access or connect with some or all of the control device 106, the network access device (104), the one or more internet servers (110-1 and 110-2), etc., for example, through the one or more computer networks (108) and/or other devices.

[0041] Device configuration operations for one electronic device such as the electronic device (102-1), etc., can be performed before, after, or at the same time as device configuration operations for another electronic device such as the electronic device (102-2), etc., are performed.

[0042] In some embodiments, one or both of the electronic devices (102-1 and 102-2) are plug-in devices for the host devices (112-1 and 112-2). Electronic devices (102-1 and 102-2) can be the same type of devices in some embodiments, or alternatively different types of devices in some other embodiments. Similarly, the host devices (112-1 and 112-2) can be the same type of host devices, or alternatively different types of host devices. In some embodiments, both of the electronic devices (102-1 and 102-2) can be plugged-in devices that a user can serially or concurrently plug into a common host device (e.g., one of the host devices 112-1 and 112-2, etc.).

[0043] For the purpose of illustration only, the electronic devices ( 102- 1 and 102-2) are media accessing devices (e.g., from the same manufacturer, from different manufacturer, of the same model, of different models, etc.) each of which can be used to access media content from cloud-based media content sources such as the internet servers (110-1 and 110-2), etc., and convert the accessed media content into certain content formats supported by the host devices (112-2 and 112-2).

[0044] In some embodiments, at least one of the electronic devices (102-1 and 102-2) is enclosed in a small footprint (e.g., a credit card size, etc.) nearly hermetic housing having a single physical interface (e.g., for wire-based connection, etc.) configured to be plugged into a host device (e.g., 112-1, 112-2, etc.). In some embodiments, at least one of the electronic devices (102-1 and 102-2) has one or more additional physical interfaces (e.g., for wire-based connections, etc.) in addition to the physical interface configured to be plugged into a host device (e.g., 112-1, 112-2, etc.). [0045] For the purpose of illustration only, the host devices (112-1 and 112-2) are media rendering devices (e.g., from the same manufacturer, from different manufacturer, of the same model, of different models, etc.) each of which can be used to host the electronic devices (102-1 and 102-2), receive the converted media content from the electronic devices (102-1 and 102-2) for rendering, etc.

[0046] In some embodiments, at least one of the host devices (112-1 and 112-2) is a display device configured to support rendering media content in a content format such as an HDMI-compliant format as received from a plug-in device (e.g., 102-1, 102-2, etc.).

[0047] For the purpose of illustration only, the control device (106) is a mobile device that connects to one or more networks wirelessly (e.g., a telecommunication network from a service provider, a wireless LAN, etc.).

[0048] In some embodiments, a device configuration application that enables the control device (106) to generate sound wave signals as described herein for device configuration has been downloaded (e.g., as a mobile app, etc.) onto the control device (106). In some other embodiments the device configuration application has been preloaded (e.g., by a vendor, in a factory, etc.), dynamically loaded (e.g., by an end user, etc.), etc., onto the control device (106). In various embodiments, the configuration application can be specifically designed to configure a specific type of devices, specifically designed to configure different devices from the same device maker, designed to configure different devices from different device makers, etc.

[0049] In an example scenario, an end user has just received a shipping package comprising the electronic device (102-1) from a device provider (e.g., a department store, an electronic specialty store, a vendor, a supplier, an online shopping site, etc.). The user retrieves the electronic device (102-1) from the shipping package and plugs the device into an HDMI port of the host device (112-1), which may be an HDMI TV display. On the other hand, the electronic device (102-2) may have been previously configured to operate with different device configuration information (e.g., by the same end user, by a different end user, in a different location, in a different room of the same home, accessing a different media content source, etc.).

[0050] In some embodiments, an electronic device (e.g., 102-1, 102-2, etc.) has been preconfigured to recognize a specific carrier signal (e.g., corresponding to sound waves constituting a specific audible message, etc.) being carried by an electronic signal generated (via transduction) based on a sound wave signal; in response to recognizing the specific carrier signal, the electronic device (e.g., 102-1, 102-2, etc.) can extract/decode device configuration information from the electronic signal transduced from the sound wave signal.

[0051] In some embodiments, an electronic device (e.g., 102-1, 102-2, etc.) has been preconfigured to recognize one or more specific sound wave based signals/tokens (e.g., a specific sound wave form representing a start signal, etc.) in a sound wave signal; in response to recognizing the specific signals/tokens, the electronic device (e.g., 102-1, 102-2, etc.) can convert the sound wave signal into an electronic signal and extract/decode device configuration information from the electronic signal transduced from the sound wave signal. [0052] In some embodiments, an electronic device (e.g., 102-1, 102-2, etc.) has been preconfigured to recognize different carrier signals (e.g., corresponding to different sets of sound waves constituting different audible messages, a carrier signal for performing initial out-of-box device configurations, a different carrier signal for performing subsequent device configuration operations after previous successful completions of device configuration, etc.) being carried by different electronic signals generated (via transduction) based on different sound wave signals.

[0053] In some embodiments, an electronic device (e.g., 102-1, 102-2, etc.) has been preconfigured to recognize different sound wave based signals/tokens (e.g., a start signal for performing initial out-of-box device configurations, a different start signal for performing subsequent device configuration operations after previous successful completions of device configuration, etc.) in sound wave signals.

[0054] In some embodiments, an electronic device (e.g., 102-1, 102-2, etc.) can be set to operate in a device configuration mode (e.g., in the factory, by a press of a reset button, etc.). In some embodiments, only when the electronic device operates in this mode, the electronic device can perform device configuration operations.

[0055] In some embodiments, to prevent malicious device configuration, device configuration information encoded in a sound wave signal can be encrypted by the control device (106). The encryption of device configuration information as described herein may be specific to an individual electronic device. The control device (106) may be configured with encryption algorithms based at least in part on the serial number or other (e.g., unique, etc.) device identifier as inputted by the user for the electronic device. The control device (106) may also be configured to communicate with an external entity such as a device maker (e.g., a device registration server, etc.), etc., for the purpose of encrypting device configuration information in the sound wave signal; such communications can also be based at least in part on the serial number or other (e.g., unique, etc.) device identifier as inputted by the user for the electronic device. The encrypted device configuration information can be decrypted by an electronic device as described herein, for example, based on one or more keys stored at the electronic device, one or more decryption algorithms implemented by the electronic device, etc.

[0056] The user can launch the device configuration application and provide user input to the control device (106) to cause the control device (106) to generate a sound wave signal encoded with device configuration information for the electronic device (102-1). The sound wave signal may comprise sound waves constituting or producing a human audible message. In some embodiments, the control device (106) may be connected with the network access device (104) via a WLAN connection. The control device (106) may include its own WLAN connection operational parameter values (e.g., access point name, passcode, password, security protocol, etc.) as a part of the device configuration information for the electronic device (102-1), thereby enabling both the electronic device (102-1) and the control device (106) to connect to the same network access device (104).

[0057] As a part of the device configuration information, the control device (106) may also provide its own address information to the electronic device (102-1), thereby enabling the electronic device (102-1) and the control device (106) to establish a network connection.

[0058] The control device (106), or the device configuration application therein, can provide other information as a part of the device configuration information that enables the electronic device (102-1) to be fully operational with its designated functions (e.g., accessing media content, convert media content, output converted media content to a host device, etc.). The other information can be obtained from a device configuration data store locally accessible to the device configuration application of the control device (106), or externally from the device provider, a device maker, media content sources, etc.

[0059] Similarly, the user can use the device configuration application and provide user input to the control device (106) to cause the control device (106) to generate another sound wave signal encoded with device configuration information for the electronic device (102-2). The other sound wave signal may comprise sound waves constituting the same or a different human audible message. The control device (106) may include its own WLAN connection operational parameter values (e.g., access point name, passcode, password, security protocol, etc.) as a part of the device configuration information for the electronic device (102-2), thereby enabling both the electronic device (102-2) and the control device (106) to connect to the same network access device (104).

[0060] In some embodiments, trick play functions such pause, fast forward, etc., can be supported by an electronic device (e.g., 102 of FIG. 1A, 102-1 of FIG. IB, 102-2 of FIG. IB, etc.) while it provides converted media content to a host device. A user interface can be provided on the control device (106) based at least in part on a control path established between the electronic device and the control device (106) to allow the user to play, pause, fast forward, etc., while a media program (or converted media content) is being rendered on a display device (e.g., the host device 112-1, the host device 112-2, etc.). The user's trick play commands can be transmitted to the electronic device via the control path and executed by the electronic device.

3. CONTROL DEVICES

[0061] FIG. 2 illustrates an example control device (e.g., 106 of FIG. 1A, etc.) comprising a device controller 202, a modulator 204, a transducer 206, a device configuration data store 208, etc. In some embodiments, at least some of these components represent or comprise a specific mobile app, downloaded by the control device (106) from an external source such as an internet-based server, etc., for configuring electronic devices such as the electronic device (102) of FIG. 1A, etc.

[0062] In some embodiments, the device controller (202) comprises software, hardware, a combination of software and hardware, etc., configured to interact with a user (e.g., via a graphic user interface as provided by the device controller, etc.); receive user input that requests sending a specific sound wave signal for device configuration to an electronic device (e.g., 102 of FIG. 1A); in response to receiving the user input, perform and coordinate operations of various software and/or hardware components of the control device (106) to send the requested specific sound wave signal to the electronic device (102); etc. [0063] As a part of coordinating the operations in the control device (106), the device controller (202) can direct the modulator (204) to determine device configuration information to be used for the electronic device (102). The device controller (202) can further direct the modulator (204) use a specific electronic carrier signal (e.g., a base signal, etc.) onto which the device configuration information is to be modulated.

[0064] An electronic carrier signal as described herein can, but is not limited to, be an electronic signal configured to drive a transducer and produce sound waves with a constant frequency, pitch, wavelength, etc. The electronic carrier signal can, but is not limited to, be an electronic signal configured to drive a transducer and produce sound waves audible to human, non-audible to human, etc. In some embodiments, the electronic carrier signal is configured to drive a transducer and produce a complex set (e.g., in the frequency domain, etc.) of sound waves that represent a human perceptible voice message such as "welcome to the world," "device wake up call," etc., in a particular natural language such as one of Chinese, Arabic, English, Spanish, French, German, Russian, Japanese, Korean, other natural languages, etc.

[0065] In some embodiments, the modulator (204) comprises software, hardware, a combination of software and hardware, etc., configured to, at least in part under the direction of the device controller (202), perform a number of operations aimed at producing a modulated electronic signal to drive a transducer (e.g., 206, etc.) to generate a sound wave signal for configuring an electronic device (e.g., 102).

[0066] Examples of operations performed by the modulator (204) include, but are not limited to only, any of: retrieving the device configuration information for the electronic device (102); retrieving data for generating the specific electronic carrier; generating the specific electronic carrier; modulating the specific electronic carrier signal with the device configuration information for the electronic device (102) into a modulated electronic signal; using the modulated electronic signal to drive the transducer (206); etc. Examples of modulation of a carrier signal with device configuration information as described herein can be based on amplitude, phase, frequency, etc.

[0067] In some embodiments, some or all of data used in the operations in the control device (106) such as data for generating the electronic carrier signal, the device configuration information for the electronic device (102), etc., can be retrieved internally, for example, from the device configuration data store (208). In some embodiments, some or all of the data used in the operations in the control device (106) can be retrieved externally, for example, from an external device configuration data store (210).

[0068] For example, a user can input a unique identifier (e.g., a serial number, a MAC address, a device identifier, etc.) for the electronic device (102) into the control device (106). Based on the unique identifier, the control device (106) can retrieve some or all of device configuration information for the electronic device (102) internally and/or externally.

[0069] In some embodiments, the control device (106) can select, based on one or more selection criteria (e.g., a specific type of an electronic device to be configured, a specific device identifier for an electronic device to be configured, etc.), the specific electronic carrier signal from among a plurality of candidate electronic carrier signals accessible to the control device (106) internally and/or internally. Some of these candidate electronic carrier signals may produce different human perceptible messages that are either generic or specific to electronic devices to be configured. For example, to configure a first type of electronic devices, a first electronic carrier signal (e.g., which generates a "welcome to the world" voice message, etc.) can be selected by the control device (106). On the other hand, to configure a second different type of electronic devices, a second electronic carrier signal (e.g., which generates a "wake up to a new world" voice message, etc.) can be selected by the control device (106).

[0070] In some embodiments, an electronic carrier signal and a modulated electronic signal generated from modulating the electronic carrier signal with device configuration information produce human perceptible differences in respective sound waves generated from the electronic carrier signal and the modulated electronic signal. In some embodiments, an electronic carrier signal and a modulated electronic signal generated from modulating the electronic carrier signal with device configuration information produce no human perceptible differences in respective sound waves generated from the electronic carrier signal and the modulated electronic signal.

[0071] In some embodiments, the transducer (206) that generates sound waves based on electronic signals comprises software, hardware, a combination of software and hardware, etc., configured to receive a modulated electronic signal from the modulator (204), uses the received signal to generate the sound wave signal for configuring the electronic device (102). In some embodiments, the transducer (206) embeds one or more control signals or tokens in the sound wave signals. For example, the control signals or tokens can be used to indicate to a recipient device to recognize a starting point and an end point between which the device configuration information can be decoded. The sound wave signal comprises sound waves (or spatial pressure waves) that can be propagated and received by other devices or users. These control signals or tokens can be combined with the modulated electronic signal through prepending, appending, embedding, etc., as different parts of an overall sound wave signal.

4. ELECTRONIC DEVICES

[0072] FIG. 3 illustrates an example electronic device (e.g., 102 of FIG. 1A, etc.) comprising an electronic device controller 302, a demodulator 304, a transducer 306 (e.g., a microphone, etc.), a device configurator 308, etc. In some embodiments, the electronic device (102) is preset in the factory to operate in a specific device configuration mode until the electronic device (102) completes (e.g., initial, etc.) device configuration, for example, based on a sound wave signal as described herein.

[0073] In some embodiments, the electronic device controller (302) comprises software, hardware, a combination of software and hardware, etc., configured to perform and coordinate operations of various software and/or hardware components of the electronic device (102) to operate in the specific device configuration mode.

[0074] As a part of coordinating the operations in the electronic device (102), the electronic device controller (302) can direct the demodulator (304) to extract the device configuration information from a modulated electronic signal derived from a sound wave signal. The electronic device controller (302) can further direct the device configurator (308) to perform device configuration operations based on the extracted device configuration information.

[0075] In some embodiments, the transducer (306) comprises software, hardware, a combination of software and hardware, etc., configured to receive sound waves and convert spatial pressures of the sound waves into electronic signals. In some embodiments, the transducer (306) can be configured to detect a control signal or token (e.g., a start signal, etc.) in the received sound waves; in response to the control signal or token, operate to convert the received sound waves into a modulated electronic signal which contains the device configuration information for the electronic device (102); send the modulated electronic signal to the demodulator (304); etc.

[0076] In some embodiments, the demodulator (304) comprises software, hardware, a combination of software and hardware, etc., configured to, at least in part under the direction of the electronic device controller (302), perform a number of operations aimed at extracting the device configuration information for the electronic device (102) from the modulated electronic signal from the transducer (306).

[0077] Examples of operations performed by the demodulator (304) include, but are not limited to only, any of: receiving the modulated electronic signal from the transducer (306); demodulating the modulated electronic signal with respect to a specific electronic carrier signal to derive device configuration information for the electronic device (102); sending the device configuration information to the device configurator (308); etc. In some embodiments, the electronic device (102) is configured with demodulating capabilities for demodulating a modulated electronic signal as described herein with respect to the specific electronic carrier signal. The specific electronic carrier signal onto which the device configuration information is modulates may represent an electronic signal used to drive a transducer to produce sound waves that constitute an audible message such as "welcome to the world," etc.

[0078] In some embodiments, the device configurator (308) comprises software, hardware, a combination of software and hardware, etc., configured to, at least in part under the direction of the electronic device controller (302), perform device configuration operations. For example, the device configurator (308) can be configured to use the device configuration information to configure the electronic device (102) so that the electronic device (102) can operate in normal operational modes to connect to the network access device (104), access media content from the internet servers (110), etc.

5. EXAMPLE PROCESS FLOWS

[0079] FIG. 4 illustrates an example process flow according to an example embodiment of the present invention. In some example embodiments, one or more computing devices or components may perform this process flow. In block 410, an electronic device (e.g., 102 of FIG. 1 A or FIG. 3, 102-1 or 102-2 of FIG. IB, etc.) detects a sound wave signal from a control device.

[0080] In an embodiment, the sound wave signal is a one-way signal from the control device to the electronic device. The sound wave signal comprises sound waves encoded with device configuration information for an electronic device. In some embodiments, the electronic device is an out-of-box device that is not operational or is not fully operational with its designated functions, apart from being capable of operating in a specific device configuration mode for initial configuration. In an embodiment, the sound wave signal from the control device is received by the electronic device before any connection is established between the electronic device and the control device. In an embodiment, the electronic device receives the sound wave signal before any connection is established between the electronic device and any other device.

[0081] In block 420, the electronic device decodes the device configuration information from the sound wave signal. In an embodiment, the device configuration information is decoded in response to the electronic device detecting a specific start signal in the sound wave signal. In an embodiment, the device configuration information is decoded in response to the electronic device detecting that a loudness level of the sound waves is above a particular loudness threshold.

[0082] In block 430, the electronic device configures the electronic device based at least in part on the device configuration information decoded from the sound waves.

[0083] In an embodiment, one or more operational parameters in the device configuration information are used to establish a network connection between the electronic device and the control device. In an embodiment, one or more operational parameters in the device configuration information are used to establish one or more computer connections between the electronic device and one or more of display devices, network access devices, computing devices collocated with the electronic devices, or remote devices.

[0084] In an embodiment, the electronic device is enclosed in a directly pluggable housing to be directly plugged into a port of another computing device. In an embodiment, the electronic device is a plug-in device that has been plugged into a host device; the electronic device receives the sound wave signal before the electronic device is operational with the host device.

[0085] In an embodiment, a method as described herein is performed to configure the electronic device for the first time after factory.

[0086] In an embodiment, a method as described herein is performed by the electronic device while the electronic device operates in a device configuration mode. In an embodiment, the electronic device has been successfully configured in the device configuration mode at least once before.

[0087] In an embodiment, the sound waves constitute an audible message perceptible to a human auditory system. In an embodiment, the audible message comprises a speech segment in one of a variety of human natural languages. In an embodiment, the audible message comprises a specific music segment. In an embodiment, the device configuration information embedded in the sound waves is an inaudible signal that is not audible/perceptible to a user through hearing.

[0088] In an embodiment, the electronic device is a plug-in device to a media rendering system; the electronic device is further configured to perform: retrieving media content from a media content server over one or more computer networks based at least in part on the device configuration information, converting the media content into a format supported by the media rendering system, causing the media content to be rendered by the media rendering system. In an embodiment, the media content from the media content server represents non-HDMI encoded content, and where the format supported by the media rendering system is an HDMI-based media content format.

[0089] In an embodiment, the electronic device establishes an end-to-end network path with the control device based at least in part on the device configuration information; further comprising receiving one or more commands from the control device over the network path. In an embodiment, at least one of the one or more commands from the control device comprises a request to access media content from an internet server. In an embodiment, at least one of the one or more commands from the control device comprises a trick play command. . In an embodiment, the network path between the electronic device and the control device comprises at least one wireless network link.

[0090] FIG. 5 illustrates an example process flow according to an example embodiment of the present invention. In some example embodiments, one or more computing devices or components may perform this process flow. In block 510, a control device (e.g., 106 of FIG. 1A, FIG. IB or FIG. 2, etc.) determines device configuration information for an electronic device.

[0091] In block 520, the control device generates a modulated electronic signal based on the device configuration information and an electronic carrier signal.

[0092] In block 530, the control device drives a transducer with the modulated electronic signal to produce a sound wave signal. The sound wave signal comprises sound waves encoded with the device configuration information for the electronic device.

[0093] In an embodiment, the control device is a separate device from the electronic device. In an embodiment, the sound wave signal is a one-way signal from the control device to the electronic device. In an embodiment, the electronic device receives the sound wave signal before any connection is established between the electronic device and any other device. In an embodiment, the sound wave signal is emitted from the control device before any connection is established between the electronic device and the control device; there may or may not be a connection already established between the electronic device and a device other than the control device at that point.

[0094] In an embodiment, the electronic device is a plug-in device that has been plugged into a host device; the control device emits the sound wave signal before the electronic device is operational with the host device.

[0095] In an embodiment, the device configuration information comprises one or more configuration parameters to be used by the electronic device to establish a network connection between the electronic device and the control device.

[0096] In an embodiment, the device configuration information comprises one or more configuration parameters to be used by the electronic device to establish one or more computer connections between the electronic device and one or more of display devices, network access devices, computing devices collocated with the electronic devices, or remote devices. [0097] In an embodiment, the sound wave signal comprises a specific start signal. In an embodiment, the sound waves constitute an audible message perceptible to a human auditory system. In an embodiment, the audible message is in one of a variety of human natural languages.

[0098] In an embodiment, the electronic device is a plug-in device to a media rendering system; the device configuration information enables the electronic device to retrieve media content from a media content server over one or more computer networks based at least in part on the device configuration information, convert the media content into a format supported by the media rendering system, cause the media content to be rendered by the media rendering system.

[0099] In an embodiment, the device configuration information enables the electronic device to establish an end-to-end network path with the control device; the control device is further configured to send one or more commands to the electronic device over the network path. In an embodiment, the network path between the electronic device and the control device comprises at least one wireless network link. In an embodiment, at least one of the one or more commands to the electronic device comprises a request for the electronic device to access media content from an internet server. In an embodiment, at least one of the one or more commands to the electronic device comprises a trick play command.

[0100] In an embodiment, the control device is further configured to perform: determining second device configuration information for a second electronic device; generating a second modulated electronic signal based on the second device configuration information and a second electronic carrier signal; driving the transducer with the second modulated electronic signal to produce a second sound wave signal, where the second sound wave signal comprises second sound waves encoded with the second device configuration information for the second electronic device; etc.

[0101] In an embodiment, the device configuration information and the second device configuration information share one or more common parameter values for both the electronic device and the second electronic device. In an embodiment, the device configuration information comprises one or more device-specific parameter values for the electronic device only; the second device configuration information does not comprise the one or more device-specific parameter values for the electronic device.

[0102] In an embodiment, the control device is a mobile device (e.g., mobile phone, personal digital assistant, tablet computer, etc.); a method as described herein is performed at least in part by a mobile application downloaded to the mobile device.

[0103] In an embodiment, the device configuration information is dynamically obtained by a control device from a data repository on the control device in response to the control device receiving user input requesting configuring the electronic device. In an alternative embodiment, the device configuration information is dynamically obtained by a control device from an external data source external to the control device in response to the control device receiving user input requesting configuring the electronic device.

[0104] In various example embodiments, a system, an apparatus, or one or more other computing devices performs any or a part of the foregoing methods as described.

[0105] In an embodiment, a non-transitory computer readable storage medium, storing software instructions, which when executed by one or more processors cause performance of any of the foregoing methods.

[0106] In an embodiment, a computing device comprising one or more processors and one or more storage media storing a set of instructions which, when executed by the one or more processors, cause performance of any of the foregoing methods. Note that, although separate embodiments are discussed herein, any combination of embodiments and/or partial embodiments discussed herein may be combined to form further embodiments.

6. IMPLEMENTATION MECHANISMS - HARDWARE OVERVIEW

[0107] According to one embodiment, the techniques described herein are implemented by one or more special-purpose computing devices. The special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques. The special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.

[0108] For example, FIG. 6 is a block diagram that illustrates a computer system 600 upon which an example embodiment of the invention may be implemented. Computer system 600 includes a bus 602 or other communication mechanism for communicating information, and a hardware processor 604 coupled with bus 602 for processing information. Hardware processor 604 may be, for example, a general purpose microprocessor.

[0109] Computer system 600 also includes a main memory 606, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 602 for storing information and instructions to be executed by processor 604. Main memory 606 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 604. Such instructions, when stored in non-transitory storage media accessible to processor 604, render computer system 600 into a special-purpose machine that is customized to perform the operations specified in the instructions.

[0110] Computer system 600 further includes a read only memory (ROM) 608 or other static storage device coupled to bus 602 for storing static information and instructions for processor 604. A storage device 610, such as a magnetic disk or optical disk, is provided and coupled to bus 602 for storing information and instructions.

[0111] Computer system 600 may be coupled via bus 602 to a display 612, such as a liquid crystal display, for displaying information to a computer user. An input device 614, including alphanumeric and other keys, is coupled to bus 602 for communicating information and command selections to processor 604. Another type of user input device is cursor control 616, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 604 and for controlling cursor movement on display 612. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.

[0112] Computer system 600 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 600 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 600 in response to processor 604 executing one or more sequences of one or more instructions contained in main memory 606. Such instructions may be read into main memory 606 from another storage medium, such as storage device 610. Execution of the sequences of instructions contained in main memory 606 causes processor 604 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.

[0113] The term "storage media" as used herein refers to any non-transitory media that store data and/or instructions that cause a machine to operation in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 610. Volatile media includes dynamic memory, such as main memory 606. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.

[0114] Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 602. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.

[0115] Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 604 for execution. For example, the instructions may initially be carried on a magnetic disk or solid state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 600 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 602. Bus 602 carries the data to main memory 606, from which processor 604 retrieves and executes the instructions. The instructions received by main memory 606 may optionally be stored on storage device 610 either before or after execution by processor 604.

[0116] Computer system 600 also includes a communication interface 618 coupled to bus 602. Communication interface 618 provides a two-way data communication coupling to a network link 620 that is connected to a local network 622. For example, communication interface 618 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 618 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 618 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.

[0117] Network link 620 typically provides data communication through one or more networks to other data devices. For example, network link 620 may provide a connection through local network 622 to a host computer 624 or to data equipment operated by an Internet Service Provider (ISP) 626. ISP 626 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the "Internet" 628. Local network 622 and Internet 628 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 620 and through communication interface 618, which carry the digital data to and from computer system 600, are example forms of transmission media.

[0118] Computer system 600 can send messages and receive data, including program code, through the network(s), network link 620 and communication interface 618. In the Internet example, a server 630 might transmit a requested code for an application program through Internet 628, ISP 626, local network 622 and communication interface 618.

[0119] The received code may be executed by processor 604 as it is received, and/or stored in storage device 610, or other non- volatile storage for later execution.

7. EQUIVALENTS, EXTENSIONS, ALTERNATIVES AND MISCELLANEOUS

[0120] In the foregoing specification, example embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indicator of what is the invention, and is intended by the applicants to be the invention, is the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Hence, no limitation, element, property, feature, advantage or attribute that is not expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.