USING A DISPLAY ABSTRACTION TO CONTROL A DISPLAY
The disclosed embodiments relate to a system for controlling a display. This system includes a generic display-control interface which facilitates controlling the display, and a pluggable display-control module including code that implements a standardized set of display-control commands. The system also includes a plug-in framework that houses the pluggable display-control module and enables the generic display-control interface to communicate with the pluggable display-control module. In some embodiments, the system also includes a generic transport interface which facilitates communicating with the display, and a pluggable transport module including code that implements a standardized transport protocol. In these embodiments, the plug-in framework houses the pluggable transport module and enables the pluggable display-control module to communicate with the pluggable transport module.
Latest Apple Patents:
- Conditional Instructions Prediction
- TECHNIQUES FOR ESTABLISHING COMMUNICATIONS WITH THIRD-PARTY ACCESSORIES
- SYSTEM INFORMATION SCHEDULING WITH MULTI-SLOTS PDCCH MONITORING OPERATION IN WIRELESS COMMUNICATION
- TECHNOLOGIES FOR OPERATING TIMERS RELATED TO UPLINK TRANSMISSIONS
- USER EQUIPMENT CAPABILITY INFORMATION FOR CARRIER GROUPING IN DUAL CONNECTIVITY
This application claims priority under 35 U.S.C. §119 to U.S. Provisional Patent Application No. 61/368,164 filed 27 Jul. 2010, entitled “Using a Display Abstraction to Control a Display” by the same inventors as the instant (Attorney Docket No. APL-P9058USP1).
BACKGROUND1. Field
The disclosed embodiments generally relate to techniques for controlling displays in computer systems. More specifically, the disclosed embodiments relate to a system that provides a display-control abstraction to control a display in a computer system.
2. Related Art
A number of technical standards have been developed to control and communicate with computer displays. For example, the recently developed Monitor Control Command Set (MCCS) standard defines a protocol comprising a universal set of commands to control screen settings for displays. There also exist standardized transport protocols, such as the GPU SMBus protocol and the DisplayPort Configuration Data (DPCD) protocol, which define mechanisms to communicate with displays. However, when architecting a computer system, it is undesirable to expose client code to such protocols because the protocols evolve over time and are frequently replaced with different protocols. This means that client code that directly interacts with the protocols needs to be updated every time a protocol changes. Hence, what is needed is a system that enables such display-related protocols to be changed without affecting client code.
SUMMARYThe disclosed embodiments relate to a system for controlling a display. This system includes a generic display-control interface which facilitates controlling the display, and a pluggable display-control module including code that implements a standardized set of display-control commands. The system also includes a plug-in framework that houses the pluggable display-control module and enables the generic display-control interface to communicate with the pluggable display-control module.
In some embodiments, the system also includes a generic transport interface which facilitates communicating with the display, and a pluggable transport module including code that implements a standardized transport protocol. In these embodiments, the plug-in framework houses the pluggable transport module and enables the pluggable display-control module to communicate with the pluggable transport module.
In some embodiments, the standardized transport protocol can include, but is not limited to, one or more of the following: the I2C protocol; the GPU SMBus protocol; the DisplayPort Configuration Data (DPCD) protocol; and the Server Management Controller (SMC) interface.
In some embodiments, the generic display-control interface is implemented using a display object, which resides in a system registry.
In some embodiments, the pluggable display-control module is configured to: determine what display properties are supported by the display; and publish the supported display properties through the generic display-control interface.
In some embodiments, publishing a supported display property involves publishing: a minimum value for the display property; a maximum value for the display property; and a current value for the display property.
In some embodiments, the display properties can include, but are not limited to, one or more of the following: a display brightness; a display contrast; a display hue; a display saturation; an audio volume for an audio-output device associated with the display; and an audio balance between channels for the audio-output device.
In some embodiments, the pluggable display-control module implements the monitor control command set (MCCS) standard.
In some embodiments, the pluggable display-control module is configured to receive an interrupt from the display when an associated display property changes and the change was not triggered by the pluggable display-control module.
In some embodiments, the display is one of: an external display which is external to a computer system which contains the system; and an internal display which is internal to the computer system.
In some embodiments, the generic display-control interface is configured to be accessed by system code or application code.
The following description is presented to enable any person skilled in the art to make and use the disclosed embodiments, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the disclosed embodiments. Thus, the disclosed embodiments are not limited to the embodiments shown, but are to be accorded the widest scope consistent with the principles and features disclosed herein.
The data structures and code described in this detailed description are typically stored on a non-transitory computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. The non-transitory computer-readable storage medium includes, but is not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media capable of storing code and/or data now known or later developed.
The methods and processes described in the detailed description section can be embodied as code and/or data, which can be stored in a non-transitory computer-readable storage medium as described above. When a computer system reads and executes the code and/or data stored on the non-transitory computer-readable storage medium, the computer system performs the methods and processes embodied as data structures and code and stored within the non-transitory computer-readable storage medium. Furthermore, the methods and processes described below can be included in hardware modules. For example, the hardware modules can include, but are not limited to, application-specific integrated circuit (ASIC) chips, field-programmable gate arrays (FPGAs), and other programmable-logic devices now known or later developed. When the hardware modules are activated, the hardware modules perform the methods and processes included within the hardware modules.
Computer SystemAs illustrated in
Display 100 can generally include any type of output device for outputting visual (and possibly audio) information for a computer system. Display 100 can be an external display, which can be selectively attached to computer system 120 through an interface, or alternatively an internal display, which is integrated into computer system 120. Display 100 includes an interface circuit 102, which is coupled to computer system 120 through both a display port interface 132 and a USB interface 127. Interface circuit 102 directs a video signal 107 containing video data to display 105, and additionally directs an audio signal 108 containing audio data to audio output device (speaker) 106. Interface circuit 102 also communicates with a micro-controller 101, which communicates with and controls various components within display 100. More specifically, micro-controller 101 receives signals from an Ambient Light Sensor (ALS) 103, which is integrated into the display. Micro-controller 101 can also communicate with a Back-Light Controller (BLC) 104, which controls the intensity of a backlight for display 105. Note that micro-controller 101 can adjust the intensity of the backlighting for display 105 based on an ambient light level measured through ALS 103. This control process, along with other operations performed by the various components within display 100, are described in more detail below.
Software ArchitectureThe pluggable display-control modules can communicate with display 100 by making calls (invocations) through a transport abstraction 220 that exposes a generic transport interface 221. Transport abstraction 220 translates calls to generic display-control interface 211 into calls to a pluggable transport module, such as a GPU SMBus module 222, a DisplayPort Configuration Data (DPCD) protocol module 223, or XYZ transport module 224 as is illustrated in
During operation, the system first receives a command to control the display through a generic display-control interface (step 302). Next, the system translates the command into a corresponding translated command for a pluggable display-control module including code that implements a standardized set of display-control commands (step 304). Finally, the system communicates the translated command through a plug-in framework to the pluggable display-control module (step 306), wherein the plug-in framework houses the pluggable display-control module and enables the generic display-control interface to communicate with the pluggable display-control module.
Referring back the flowchart in
After sending the interrupt to the host system, the system receives a request from the host system to obtain values for one or more display settings including the changed display setting (step 406). In response to this request, the system sends updated values for the one or more display settings to the host system (step 408).
The foregoing descriptions of embodiments have been presented for purposes of illustration and description only. They are not intended to be exhaustive or to limit the present description to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present description. The scope of the present description is defined by the appended claims.
Claims
1. A system for controlling a display, comprising:
- a generic display-control interface which facilitates controlling the display;
- a pluggable display-control module including code that implements a standardized set of display-control commands; and
- a plug-in framework that houses the pluggable display-control module and enables the generic display-control interface to communicate with the pluggable display-control module.
2. The system of claim 1, further comprising:
- a generic transport interface which facilitates communicating with the display; and
- a pluggable transport module including code that implements a standardized transport protocol;
- wherein the plug-in framework houses the pluggable transport module and enables the pluggable display-control module to communicate with the pluggable transport module.
3. The system of claim 2, wherein the standardized transport protocol can include, but is not limited to, one or more of the following:
- the I2C protocol;
- the GPU SMBus protocol;
- the DisplayPort Configuration Data (DPCD) protocol; and
- the Server Management Controller (SMC) interface.
4. The system of claim 1, wherein the generic display-control interface is implemented using a display object, which resides in a system registry.
5. The system of claim 1, wherein the pluggable display-control module is configured to:
- determine what display properties are supported by the display; and
- publish the supported display properties through the generic display-control interface.
6. The system of claim 5, wherein publishing a supported display property involves publishing:
- a minimum value for a setting for the display property;
- a maximum value for the setting for the display property; and
- a current value for the setting for the display property.
7. The system of claim 6, wherein the display properties can include, but are not limited to, one or more of the following:
- a display brightness;
- a display contrast;
- a display hue;
- a display saturation;
- an audio volume for an audio-output device associated with the display; and
- an audio balance between channels for the audio-output device.
8. The system of claim 1, wherein the pluggable display-control module implements the monitor control command set (MCCS) standard.
9. The system of claim 1, wherein the pluggable display-control module is configured to receive an interrupt from the display when an associated display property changes and the change was not triggered by the pluggable display-control module.
10. The system of claim 1, wherein the display is one of:
- an external display which is external to a computer system which contains the system; and
- an internal display which is internal to the computer system.
11. The system of claim 1, wherein the generic display-control interface is configured to be accessed by one or more of:
- system code; and
- application code.
12. A method for controlling a display, comprising:
- receiving a command through a generic display-control interface which facilitates controlling the display;
- translating the command into a corresponding translated command for a pluggable display-control module including code that implements a standardized set of display-control commands; and
- communicating the translated command through a plug-in framework to the pluggable display-control module, wherein the plug-in framework houses the pluggable display-control module and enables the generic display-control interface to communicate with the pluggable display-control module.
13. The method of claim 12, further comprising:
- receiving a command from the pluggable display-control module through a generic transport interface which facilitates communicating with the display;
- translating the command into a corresponding translated command for a pluggable transport module including code that implements a standardized transport protocol; and
- communicating the translated command through the plug-in framework to the pluggable transport module, wherein the plug-in framework houses the pluggable transport module and enables the pluggable display-control module to communicate with the pluggable transport module.
14. The method of claim 12, wherein the pluggable display-control module is configured to:
- determine what display properties are supported by the display; and
- publish the supported display properties through the generic display-control interface.
15. The method of claim 14, wherein the display properties can include, but are not limited to, one or more of the following:
- a display brightness;
- a display contrast;
- a display hue;
- a display saturation;
- an audio volume for an audio-output device associated with the display; and
- an audio balance between channels for the audio-output device.
16. The method of claim 12, wherein the pluggable display-control module implements the monitor control command set (MCCS) standard.
17. The method of claim 12, wherein the pluggable display-control module is configured to receive an interrupt from the display when an associated display property changes and the change was not triggered by the pluggable display-control module.
18. The method of claim 12, wherein the command is received from system code or application code.
19. A non-transitory computer-readable storage medium storing code that implements:
- a generic display-control interface which facilitates controlling the display;
- a pluggable display-control module including code that implements a standardized set of display-control commands; and
- a plug-in framework that houses the pluggable display-control module and enables the generic display-control interface to communicate with the pluggable display-control module.
20. The computer-readable storage medium of claim 9, wherein the code also implements:
- a generic transport interface which facilitates communicating with the display; and
- a pluggable transport module including code that implements a standardized transport protocol;
- wherein the plug-in framework houses the pluggable transport module and enables the pluggable display-control module to communicate with the pluggable transport module.
21. The computer-readable storage medium of claim 19, wherein the generic display-control interface is implemented using a display object, which resides in a system registry.
22. A computer system, comprising:
- at least one processor;
- a memory;
- a display;
- a generic display-control interface which facilitates controlling the display;
- a pluggable display-control module including code that implements a standardized set of display-control commands; and
- a plug-in framework that houses the pluggable display-control module and enables the generic display-control interface to communicate with the pluggable display-control module.
23. The computer system of claim 22, further comprising:
- a generic transport interface which facilitates communicating with the display; and
- a pluggable transport module including code that implements a standardized transport protocol;
- wherein the plug-in framework houses the pluggable transport module and enables the pluggable display-control module to communicate with the pluggable transport module.
24. The computer system of claim 22, wherein the generic display-control interface is implemented using a display object, which resides in a system registry.
25. The computer system of claim 22 wherein the pluggable display-control module is configured to:
- determine what display properties are supported by the display; and
- publish the supported display properties through the generic display-control interface.
26. The computer system of claim 22, wherein the pluggable display-control module is configured to receive an interrupt from the display when an associated display property changes and the change was not triggered by the pluggable display-control module.
27. The computer system of claim 22, wherein the display is one of:
- an external display which is external to the computer system; and
- an internal display which is internal to the computer system.
Type: Application
Filed: Aug 4, 2010
Publication Date: Feb 2, 2012
Applicant: APPLE INC. (Cupertino, CA)
Inventors: Maciej Maciesowicz (Gilroy, CA), David A. Curran (Newark, CA)
Application Number: 12/850,123
International Classification: G09G 5/00 (20060101);