| /* | 
 |  * Copyright (c) 2008 NVIDIA, Corporation | 
 |  * | 
 |  * Permission is hereby granted, free of charge, to any person obtaining a copy | 
 |  * of this software and associated documentation files (the "Software"), to deal | 
 |  * in the Software without restriction, including without limitation the rights | 
 |  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | 
 |  * copies of the Software, and to permit persons to whom the Software is | 
 |  * furnished to do so, subject to the following conditions: | 
 |  * | 
 |  * The above copyright notice and this permission notice (including the next | 
 |  * paragraph) shall be included in all copies or substantial portions of the | 
 |  * Software. | 
 |  * | 
 |  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | 
 |  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | 
 |  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE | 
 |  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | 
 |  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | 
 |  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | 
 |  * SOFTWARE. | 
 |  */ | 
 |  | 
 | #ifndef __NVCTRLLIB_H | 
 | #define __NVCTRLLIB_H | 
 |  | 
 | #include "NVCtrl.h" | 
 |  | 
 | #if defined __cplusplus | 
 | extern "C" { | 
 | #endif  | 
 |  | 
 | /* | 
 |  *  XNVCTRLQueryExtension - | 
 |  * | 
 |  *  Returns True if the extension exists, returns False otherwise. | 
 |  *  event_basep and error_basep are the extension event and error | 
 |  *  bases.  Currently, no extension specific errors or events are | 
 |  *  defined. | 
 |  */ | 
 |  | 
 | Bool XNVCTRLQueryExtension ( | 
 |     Display *dpy, | 
 |     int *event_basep, | 
 |     int *error_basep | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  *  XNVCTRLQueryVersion - | 
 |  * | 
 |  *  Returns True if the extension exists, returns False otherwise. | 
 |  *  major and minor are the extension's major and minor version | 
 |  *  numbers. | 
 |  */ | 
 |  | 
 | Bool XNVCTRLQueryVersion ( | 
 |     Display *dpy, | 
 |     int *major, | 
 |     int *minor | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  *  XNVCTRLIsNvScreen | 
 |  * | 
 |  *  Returns True is the specified screen is controlled by the NVIDIA | 
 |  *  driver.  Returns False otherwise. | 
 |  */ | 
 |  | 
 | Bool XNVCTRLIsNvScreen ( | 
 |     Display *dpy, | 
 |     int screen | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  *  XNVCTRLQueryTargetCount - | 
 |  * | 
 |  *  Returns True if the target type exists.  Returns False otherwise. | 
 |  *  If XNVCTRLQueryTargetCount returns True, value will contain the | 
 |  *  count of existing targets on the server of the specified target | 
 |  *  type. | 
 |  * | 
 |  *  Please see "Attribute Targets" in NVCtrl.h for the list of valid | 
 |  *  target types. | 
 |  * | 
 |  *  Possible errors: | 
 |  *     BadValue - The target doesn't exist. | 
 |  */ | 
 |  | 
 | Bool XNVCTRLQueryTargetCount ( | 
 |     Display *dpy, | 
 |     int target_type, | 
 |     int *value | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  *  XNVCTRLSetAttribute - | 
 |  * | 
 |  *  Sets the attribute to the given value.  The attributes and their | 
 |  *  possible values are listed in NVCtrl.h. | 
 |  * | 
 |  *  Not all attributes require the display_mask parameter; see | 
 |  *  NVCtrl.h for details. | 
 |  * | 
 |  *  Calling this function is equivalent to calling XNVCTRLSetTargetAttribute() | 
 |  *  with the target_type set to NV_CTRL_TARGET_TYPE_X_SCREEN and | 
 |  *  target_id set to 'screen'. | 
 |  * | 
 |  *  Possible errors: | 
 |  *     BadValue - The screen or attribute doesn't exist. | 
 |  *     BadMatch - The NVIDIA driver is not present on that screen. | 
 |  */ | 
 |  | 
 | void XNVCTRLSetAttribute ( | 
 |     Display *dpy, | 
 |     int screen, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute, | 
 |     int value | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  *  XNVCTRLSetTargetAttribute - | 
 |  * | 
 |  *  Sets the attribute to the given value.  The attributes and their | 
 |  *  possible values are listed in NVCtrl.h. | 
 |  * | 
 |  *  Not all attributes require the display_mask parameter; see | 
 |  *  NVCtrl.h for details. | 
 |  * | 
 |  *  Possible errors: | 
 |  *     BadValue - The target or attribute doesn't exist. | 
 |  *     BadMatch - The NVIDIA driver is not present on that target. | 
 |  */ | 
 |  | 
 | void XNVCTRLSetTargetAttribute ( | 
 |     Display *dpy, | 
 |     int target_type, | 
 |     int target_id, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute, | 
 |     int value | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  *  XNVCTRLSetAttributeAndGetStatus - | 
 |  * | 
 |  * Same as XNVCTRLSetAttribute(). | 
 |  * In addition, XNVCTRLSetAttributeAndGetStatus() returns  | 
 |  * True if the operation succeeds, False otherwise. | 
 |  * | 
 |  */ | 
 |  | 
 | Bool XNVCTRLSetAttributeAndGetStatus ( | 
 |     Display *dpy, | 
 |     int screen, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute, | 
 |     int value | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  *  XNVCTRLSetTargetAttributeAndGetStatus - | 
 |  * | 
 |  * Same as XNVCTRLSetTargetAttribute(). | 
 |  * In addition, XNVCTRLSetTargetAttributeAndGetStatus() returns  | 
 |  * True if the operation succeeds, False otherwise. | 
 |  * | 
 |  */ | 
 |  | 
 | Bool XNVCTRLSetTargetAttributeAndGetStatus ( | 
 |     Display *dpy, | 
 |     int target_type, | 
 |     int target_id, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute, | 
 |     int value | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  *  XNVCTRLQueryAttribute - | 
 |  * | 
 |  *  Returns True if the attribute exists.  Returns False otherwise. | 
 |  *  If XNVCTRLQueryAttribute returns True, value will contain the | 
 |  *  value of the specified attribute. | 
 |  * | 
 |  *  Not all attributes require the display_mask parameter; see | 
 |  *  NVCtrl.h for details. | 
 |  * | 
 |  *  Calling this function is equivalent to calling | 
 |  *  XNVCTRLQueryTargetAttribute() with the target_type set to | 
 |  *  NV_CTRL_TARGET_TYPE_X_SCREEN and target_id set to 'screen'. | 
 |  * | 
 |  *  Possible errors: | 
 |  *     BadValue - The screen doesn't exist. | 
 |  *     BadMatch - The NVIDIA driver is not present on that screen. | 
 |  */ | 
 |  | 
 | Bool XNVCTRLQueryAttribute ( | 
 |     Display *dpy, | 
 |     int screen, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute, | 
 |     int *value | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCTRLQueryTargetAttribute - | 
 |  * | 
 |  *  Returns True if the attribute exists.  Returns False otherwise. | 
 |  *  If XNVCTRLQueryTargetAttribute returns True, value will contain the | 
 |  *  value of the specified attribute. | 
 |  * | 
 |  *  Not all attributes require the display_mask parameter; see | 
 |  *  NVCtrl.h for details. | 
 |  * | 
 |  *  Possible errors: | 
 |  *     BadValue - The target doesn't exist. | 
 |  *     BadMatch - The NVIDIA driver does not control the target. | 
 |  */ | 
 |  | 
 | Bool XNVCTRLQueryTargetAttribute ( | 
 |     Display *dpy, | 
 |     int target_Type, | 
 |     int target_id, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute, | 
 |     int *value | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCTRLQueryTargetAttribute64 - | 
 |  * | 
 |  *  Returns True if the attribute exists.  Returns False otherwise. | 
 |  *  If XNVCTRLQueryTargetAttribute returns True, value will contain the | 
 |  *  value of the specified attribute. | 
 |  * | 
 |  *  Not all attributes require the display_mask parameter; see | 
 |  *  NVCtrl.h for details. | 
 |  * | 
 |  *  Note: this function behaves like XNVCTRLQueryTargetAttribute(), | 
 |  *  but supports 64-bit integer attributes. | 
 |  * | 
 |  *  Possible errors: | 
 |  *     BadValue - The target doesn't exist. | 
 |  *     BadMatch - The NVIDIA driver does not control the target. | 
 |  */ | 
 |  | 
 | Bool XNVCTRLQueryTargetAttribute64 ( | 
 |     Display *dpy, | 
 |     int target_Type, | 
 |     int target_id, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute, | 
 |     int64_t *value | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  *  XNVCTRLQueryStringAttribute - | 
 |  * | 
 |  *  Returns True if the attribute exists.  Returns False otherwise. | 
 |  *  If XNVCTRLQueryStringAttribute returns True, *ptr will point to an | 
 |  *  allocated string containing the string attribute requested.  It is | 
 |  *  the caller's responsibility to free the string when done. | 
 |  * | 
 |  *  Calling this function is equivalent to calling | 
 |  *  XNVCTRLQueryTargetStringAttribute() with the target_type set to | 
 |  *  NV_CTRL_TARGET_TYPE_X_SCREEN and target_id set to 'screen'. | 
 |  * | 
 |  *  Possible errors: | 
 |  *     BadValue - The screen doesn't exist. | 
 |  *     BadMatch - The NVIDIA driver is not present on that screen. | 
 |  *     BadAlloc - Insufficient resources to fulfill the request. | 
 |  */ | 
 |  | 
 | Bool XNVCTRLQueryStringAttribute ( | 
 |     Display *dpy, | 
 |     int screen, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute, | 
 |     char **ptr | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  *  XNVCTRLQueryTargetStringAttribute - | 
 |  * | 
 |  *  Returns True if the attribute exists.  Returns False otherwise. | 
 |  *  If XNVCTRLQueryTargetStringAttribute returns True, *ptr will point | 
 |  *  to an allocated string containing the string attribute requested. | 
 |  *  It is the caller's responsibility to free the string when done. | 
 |  * | 
 |  *  Possible errors: | 
 |  *     BadValue - The target doesn't exist. | 
 |  *     BadMatch - The NVIDIA driver does not control the target. | 
 |  *     BadAlloc - Insufficient resources to fulfill the request. | 
 |  */ | 
 |  | 
 | Bool XNVCTRLQueryTargetStringAttribute ( | 
 |     Display *dpy, | 
 |     int target_type, | 
 |     int target_id, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute, | 
 |     char **ptr | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  *  XNVCTRLSetStringAttribute - | 
 |  * | 
 |  *  Returns True if the operation succeded.  Returns False otherwise. | 
 |  * | 
 |  *  Possible X errors: | 
 |  *     BadValue - The screen doesn't exist. | 
 |  *     BadMatch - The NVIDIA driver is not present on that screen. | 
 |  *     BadAlloc - Insufficient resources to fulfill the request. | 
 |  */ | 
 |   | 
 | Bool XNVCTRLSetStringAttribute ( | 
 |     Display *dpy, | 
 |     int screen, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute, | 
 |     char *ptr | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  *  XNVCTRLSetTargetStringAttribute - | 
 |  * | 
 |  *  Returns True if the operation succeded.  Returns False otherwise. | 
 |  * | 
 |  *  Possible X errors: | 
 |  *     BadValue - The screen doesn't exist. | 
 |  *     BadMatch - The NVIDIA driver is not present on that screen. | 
 |  *     BadAlloc - Insufficient resources to fulfill the request. | 
 |  */ | 
 |   | 
 | Bool XNVCTRLSetTargetStringAttribute ( | 
 |     Display *dpy, | 
 |     int target_type, | 
 |     int target_id, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute, | 
 |     char *ptr | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCTRLQueryValidAttributeValues - | 
 |  * | 
 |  * Returns True if the attribute exists.  Returns False otherwise.  If | 
 |  * XNVCTRLQueryValidAttributeValues returns True, values will indicate | 
 |  * the valid values for the specified attribute; see the description | 
 |  * of NVCTRLAttributeValidValues in NVCtrl.h. | 
 |  * | 
 |  *  Calling this function is equivalent to calling | 
 |  *  XNVCTRLQueryValidTargetAttributeValues() with the target_type set to | 
 |  *  NV_CTRL_TARGET_TYPE_X_SCREEN and target_id set to 'screen'. | 
 |  */ | 
 |  | 
 | Bool XNVCTRLQueryValidAttributeValues ( | 
 |     Display *dpy, | 
 |     int screen, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute,                                  | 
 |     NVCTRLAttributeValidValuesRec *values | 
 | ); | 
 |  | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCTRLQueryValidTargetAttributeValues - | 
 |  * | 
 |  * Returns True if the attribute exists.  Returns False otherwise.  If | 
 |  * XNVCTRLQueryValidTargetAttributeValues returns True, values will indicate | 
 |  * the valid values for the specified attribute. | 
 |  */ | 
 |  | 
 | Bool XNVCTRLQueryValidTargetAttributeValues ( | 
 |     Display *dpy, | 
 |     int target_type, | 
 |     int target_id, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute,                                  | 
 |     NVCTRLAttributeValidValuesRec *values | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCTRLQueryValidTargetStringAttributeValues - | 
 |  * | 
 |  * Returns True if the attribute exists.  Returns False otherwise.  If | 
 |  * XNVCTRLQueryValidTargetStringAttributeValues returns True, values will | 
 |  * indicate the valid values for the specified attribute. | 
 |  */ | 
 |  | 
 |  Bool XNVCTRLQueryValidTargetStringAttributeValues ( | 
 |     Display *dpy, | 
 |     int target_type, | 
 |     int target_id, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute, | 
 |     NVCTRLAttributeValidValuesRec *values | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCTRLQueryAttributePermissions - | 
 |  * | 
 |  * Returns True if the attribute exists.  Returns False otherwise.  If | 
 |  * XNVCTRLQueryAttributePermissions returns True, permissions will | 
 |  * indicate the permission flags for the attribute. | 
 |  */ | 
 |  | 
 | Bool XNVCTRLQueryAttributePermissions ( | 
 |     Display *dpy, | 
 |     unsigned int attribute, | 
 |     NVCTRLAttributePermissionsRec *permissions | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCTRLQueryStringAttributePermissions - | 
 |  * | 
 |  * Returns True if the attribute exists.  Returns False otherwise.  If | 
 |  * XNVCTRLQueryStringAttributePermissions returns True, permissions will | 
 |  * indicate the permission flags for the attribute. | 
 |  */ | 
 |  | 
 |  Bool XNVCTRLQueryStringAttributePermissions ( | 
 |     Display *dpy, | 
 |     unsigned int attribute, | 
 |     NVCTRLAttributePermissionsRec *permissions | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCTRLQueryBinaryDataAttributePermissions - | 
 |  * | 
 |  * Returns True if the attribute exists.  Returns False otherwise.  If | 
 |  * XNVCTRLQueryBinaryDataAttributePermissions returns True, permissions | 
 |  * will indicate the permission flags for the attribute. | 
 |  */ | 
 |  | 
 |  Bool XNVCTRLQueryBinaryDataAttributePermissions ( | 
 |     Display *dpy, | 
 |     unsigned int attribute, | 
 |     NVCTRLAttributePermissionsRec *permissions | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCTRLQueryStringOperationAttributePermissions - | 
 |  * | 
 |  * Returns True if the attribute exists.  Returns False otherwise.  If | 
 |  * XNVCTRLQueryStringOperationAttributePermissions returns True, | 
 |  * permissions will indicate the permission flags for the attribute. | 
 |  */ | 
 |  | 
 |  Bool XNVCTRLQueryStringOperationAttributePermissions ( | 
 |     Display *dpy, | 
 |     unsigned int attribute, | 
 |     NVCTRLAttributePermissionsRec *permissions | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  *  XNVCTRLSetGvoColorConversion - | 
 |  * | 
 |  *  Sets the color conversion matrix, offset, and scale that should be | 
 |  *  used for GVO (Graphic to Video Out). | 
 |  * | 
 |  *  The Color Space Conversion data is ordered like this: | 
 |  * | 
 |  *   colorMatrix[0][0] // r.Y | 
 |  *   colorMatrix[0][1] // g.Y | 
 |  *   colorMatrix[0][2] // b.Y | 
 |  * | 
 |  *   colorMatrix[1][0] // r.Cr | 
 |  *   colorMatrix[1][1] // g.Cr | 
 |  *   colorMatrix[1][2] // b.Cr | 
 |  * | 
 |  *   colorMatrix[2][0] // r.Cb | 
 |  *   colorMatrix[2][1] // g.Cb | 
 |  *   colorMatrix[2][2] // b.Cb | 
 |  * | 
 |  *   colorOffset[0]    // Y | 
 |  *   colorOffset[1]    // Cr | 
 |  *   colorOffset[2]    // Cb | 
 |  * | 
 |  *   colorScale[0]     // Y | 
 |  *   colorScale[1]     // Cr | 
 |  *   colorScale[2]     // Cb | 
 |  * | 
 |  *  where the data is used according to the following formulae: | 
 |  * | 
 |  *   Y  =  colorOffset[0] + colorScale[0] * | 
 |  *           (R * colorMatrix[0][0] + | 
 |  *            G * colorMatrix[0][1] + | 
 |  *            B * colorMatrix[0][2]); | 
 |  * | 
 |  *   Cr =  colorOffset[1] + colorScale[1] * | 
 |  *           (R * colorMatrix[1][0] + | 
 |  *            G * colorMatrix[1][1] + | 
 |  *            B * colorMatrix[1][2]); | 
 |  * | 
 |  *   Cb =  colorOffset[2] + colorScale[2] * | 
 |  *           (R * colorMatrix[2][0] + | 
 |  *            G * colorMatrix[2][1] + | 
 |  *            B * colorMatrix[2][2]); | 
 |  * | 
 |  *  Possible errors: | 
 |  *     BadMatch - The NVIDIA driver is not present on that screen. | 
 |  *     BadImplementation - GVO is not available on that screen. | 
 |  */ | 
 |  | 
 | void XNVCTRLSetGvoColorConversion ( | 
 |     Display *dpy, | 
 |     int screen, | 
 |     float colorMatrix[3][3], | 
 |     float colorOffset[3], | 
 |     float colorScale[3] | 
 | ); | 
 |  | 
 |  | 
 |  | 
 | /* | 
 |  *  XNVCTRLQueryGvoColorConversion - | 
 |  * | 
 |  *  Retrieves the color conversion matrix and color offset | 
 |  *  that are currently being used for GVO (Graphic to Video Out). | 
 |  * | 
 |  *  The values are ordered within the arrays according to the comments | 
 |  *  for XNVCTRLSetGvoColorConversion(). | 
 |  * | 
 |  *  Possible errors: | 
 |  *     BadMatch - The NVIDIA driver is not present on that screen. | 
 |  *     BadImplementation - GVO is not available on that screen. | 
 |  */ | 
 |  | 
 | Bool XNVCTRLQueryGvoColorConversion ( | 
 |     Display *dpy, | 
 |     int screen, | 
 |     float colorMatrix[3][3], | 
 |     float colorOffset[3], | 
 |     float colorScale[3] | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  *  XNVCTRLQueryBinaryData - | 
 |  * | 
 |  *  Returns True if the attribute exists.  Returns False otherwise. | 
 |  *  If XNVCTRLQueryBinaryData returns True, *ptr will point to an | 
 |  *  allocated block of memory containing the binary data attribute | 
 |  *  requested.  It is the caller's responsibility to free the data | 
 |  *  when done.  len will list the length of the binary data. | 
 |  * | 
 |  *  Calling this function is equivalent to calling | 
 |  *  XNVCTRLQueryTargetBinaryData() with the target_type set to | 
 |  *  NV_CTRL_TARGET_TYPE_X_SCREEN and target_id set to 'screen'. | 
 |  * | 
 |  *  Possible errors: | 
 |  *     BadValue - The screen doesn't exist. | 
 |  *     BadMatch - The NVIDIA driver is not present on that screen. | 
 |  *     BadAlloc - Insufficient resources to fulfill the request. | 
 |  */ | 
 |  | 
 | Bool XNVCTRLQueryBinaryData ( | 
 |     Display *dpy, | 
 |     int screen, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute, | 
 |     unsigned char **ptr, | 
 |     int *len | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCTRLQueryTargetBinaryData - | 
 |  * | 
 |  *  Returns True if the attribute exists.  Returns False otherwise. | 
 |  *  If XNVCTRLQueryTargetBinaryData returns True, *ptr will point to an | 
 |  *  allocated block of memory containing the binary data attribute | 
 |  *  requested.  It is the caller's responsibility to free the data | 
 |  *  when done.  len will list the length of the binary data. | 
 |  * | 
 |  *  Possible errors: | 
 |  *     BadValue - The target doesn't exist. | 
 |  *     BadMatch - The NVIDIA driver does not control the target. | 
 |  *     BadAlloc - Insufficient resources to fulfill the request. | 
 |  */ | 
 |  | 
 | Bool XNVCTRLQueryTargetBinaryData ( | 
 |     Display *dpy, | 
 |     int target_type, | 
 |     int target_id, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute, | 
 |     unsigned char **ptr, | 
 |     int *len | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCTRLStringOperation - | 
 |  * | 
 |  * Takes a string as input and returns a Xmalloc'ed string as output. | 
 |  * Returns True on success and False on failure. | 
 |  */ | 
 |  | 
 | Bool XNVCTRLStringOperation ( | 
 |     Display *dpy, | 
 |     int target_type, | 
 |     int target_id, | 
 |     unsigned int display_mask, | 
 |     unsigned int attribute, | 
 |     char *pIn, | 
 |     char **ppOut | 
 | ); | 
 |  | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCtrlSelectNotify - | 
 |  * | 
 |  * This enables/disables receiving of NV-CONTROL events.  The type | 
 |  * specifies the type of event to enable (currently, the only | 
 |  * type that can be requested per-screen with XNVCtrlSelectNotify() | 
 |  * is ATTRIBUTE_CHANGED_EVENT); onoff controls whether receiving this | 
 |  * type of event should be enabled (True) or disabled (False). | 
 |  * | 
 |  * Returns True if successful, or False if the screen is not | 
 |  * controlled by the NVIDIA driver. | 
 |  */ | 
 |  | 
 | Bool XNVCtrlSelectNotify ( | 
 |     Display *dpy, | 
 |     int screen, | 
 |     int type, | 
 |     Bool onoff | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCtrlSelectTargetNotify - | 
 |  * | 
 |  * This enables/disables receiving of NV-CONTROL events that happen on | 
 |  * the specified target.  The notify_type specifies the type of event to | 
 |  * enable (currently, the only type that can be requested per-target with | 
 |  * XNVCtrlSelectTargetNotify() is TARGET_ATTRIBUTE_CHANGED_EVENT); onoff | 
 |  * controls whether receiving this type of event should be enabled (True) | 
 |  * or disabled (False). | 
 |  * | 
 |  * Returns True if successful, or False if the target is not | 
 |  * controlled by the NVIDIA driver. | 
 |  */ | 
 |  | 
 | Bool XNVCtrlSelectTargetNotify ( | 
 |     Display *dpy, | 
 |     int target_type, | 
 |     int target_id, | 
 |     int notify_type, | 
 |     Bool onoff | 
 | ); | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCtrlEvent structure | 
 |  */ | 
 |  | 
 | typedef struct { | 
 |     int type; | 
 |     unsigned long serial; | 
 |     Bool send_event;  /* always FALSE, we don't allow send_events */ | 
 |     Display *display; | 
 |     Time time; | 
 |     int screen; | 
 |     unsigned int display_mask; | 
 |     unsigned int attribute; | 
 |     int value; | 
 | } XNVCtrlAttributeChangedEvent; | 
 |  | 
 | typedef union { | 
 |     int type; | 
 |     XNVCtrlAttributeChangedEvent attribute_changed; | 
 |     long pad[24]; | 
 | } XNVCtrlEvent; | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCtrlEventTarget structure | 
 |  */ | 
 |  | 
 | typedef struct { | 
 |     int type; | 
 |     unsigned long serial; | 
 |     Bool send_event;  /* always FALSE, we don't allow send_events */ | 
 |     Display *display; | 
 |     Time time; | 
 |     int target_type; | 
 |     int target_id; | 
 |     unsigned int display_mask; | 
 |     unsigned int attribute; | 
 |     int value; | 
 | } XNVCtrlAttributeChangedEventTarget; | 
 |  | 
 | typedef union { | 
 |     int type; | 
 |     XNVCtrlAttributeChangedEventTarget attribute_changed; | 
 |     long pad[24]; | 
 | } XNVCtrlEventTarget; | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCtrlEventTargetAvailability structure | 
 |  */ | 
 |  | 
 | typedef struct { | 
 |     int type; | 
 |     unsigned long serial; | 
 |     Bool send_event;  /* always FALSE, we don't allow send_events */ | 
 |     Display *display; | 
 |     Time time; | 
 |     int target_type; | 
 |     int target_id; | 
 |     unsigned int display_mask; | 
 |     unsigned int attribute; | 
 |     int value; | 
 |     Bool availability; | 
 | } XNVCtrlAttributeChangedEventTargetAvailability; | 
 |  | 
 | typedef union { | 
 |     int type; | 
 |     XNVCtrlAttributeChangedEventTargetAvailability attribute_changed; | 
 |     long pad[24]; | 
 | } XNVCtrlEventTargetAvailability; | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCtrlStringEventTarget structure | 
 |  */ | 
 |  | 
 | typedef struct { | 
 |     int type; | 
 |     unsigned long serial; | 
 |     Bool send_event;  /* always FALSE, we don't allow send_events */ | 
 |     Display *display; | 
 |     Time time; | 
 |     int target_type; | 
 |     int target_id; | 
 |     unsigned int display_mask; | 
 |     unsigned int attribute; | 
 | } XNVCtrlStringAttributeChangedEventTarget; | 
 |  | 
 | typedef union { | 
 |     int type; | 
 |     XNVCtrlStringAttributeChangedEventTarget attribute_changed; | 
 |     long pad[24]; | 
 | } XNVCtrlStringEventTarget; | 
 |  | 
 |  | 
 |  | 
 | /* | 
 |  * XNVCtrlBinaryEventTarget structure | 
 |  */ | 
 |  | 
 | typedef struct { | 
 |     int type; | 
 |     unsigned long serial; | 
 |     Bool send_event;  /* always FALSE, we don't allow send_events */ | 
 |     Display *display; | 
 |     Time time; | 
 |     int target_type; | 
 |     int target_id; | 
 |     unsigned int display_mask; | 
 |     unsigned int attribute; | 
 | } XNVCtrlBinaryAttributeChangedEventTarget; | 
 |  | 
 | typedef union { | 
 |     int type; | 
 |     XNVCtrlBinaryAttributeChangedEventTarget attribute_changed; | 
 |     long pad[24]; | 
 | } XNVCtrlBinaryEventTarget; | 
 |  | 
 | #if defined __cplusplus | 
 | } /* extern "C" */ | 
 | #endif  | 
 |  | 
 | #endif /* __NVCTRLLIB_H */ |