| US 7,552,450 B1 | ||
| Systems and methods for enabling applications via an application programming interface (API) to interface with and configure digital media components | ||
| Glenn F. Evans, Kirkland, Wash. (US); William R. Messmer, Woodinville, Wash. (US); and Matthijs A. Gates, Wellesley, Mass. (US) | ||
| Assigned to Microsoft Corporation, Redmond, Wash. (US) | ||
| Filed on Sep. 30, 2003, as Appl. No. 10/676,722. | ||
| Int. Cl. G06F 3/00 (2006.01); H04N 7/00 (2006.01); G06F 17/30 (2006.01); H04N 7/16 (2006.01) | ||
| U.S. Cl. 719—328 [386/98; 707/3; 725/145] | 32 Claims |

| 1. A method of selecting at least one digital media component to construct a device that accomplishes one or more tasks identified
in an extensible profile, comprising:
retrieving, from the extensible profile, at least one required capability for performing the selected task as requested by
an application, wherein the extensible profile is a fixed list of configuration settings that accomplish the selected task;
selecting, from a component register, one or more component entries with capability lists that include the required capability,
wherein the capability lists comprise a listing of capabilities of the each digital media component available for use by the
application; and
instantiating one or more components corresponding to the selected entries, wherein instantiating occurs via an Application
Programming Interface (API),
wherein the application uses the extensible profile to determine which of the one or more components are needed for the selected
task,
wherein the extensible profile may be updated or modified without modifying the application,
wherein control identifiers used by the API for controlling one or more devices correspond to the fixed list of configuration
settings which have a defined dependency ordering that can be expressed as a directed acyclic dependency graph,
wherein the fixed list of configuration settings are structured such that changing a parameter causes a component to reconfigure
one or more dependent settings, and high-level configuration settings can be modified independent of a low-level configuration
setting, and
wherein at least one capability is stored as a registry subkey, that is implemented as a ratio quantity or a numerical pair
that represent pairs of values.
|