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
OG exemplary drawing
 
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.