Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

NVCtrl.h

Go to the documentation of this file.
00001 #ifndef __NVCTRL_H
00002 #define __NVCTRL_H
00003 
00004 
00005 /**************************************************************************/
00006 
00019 #define NV_CTRL_TARGET_TYPE_X_SCREEN   0   
00020 #define NV_CTRL_TARGET_TYPE_GPU        1   
00021 #define NV_CTRL_TARGET_TYPE_FRAMELOCK  2   
00022 
00023 
00024 /**************************************************************************/
00025 
00066 /**************************************************************************/
00067 
00099 #define NV_CTRL_FLATPANEL_SCALING                               2  
00100 #define NV_CTRL_FLATPANEL_SCALING_DEFAULT                       0  
00101 #define NV_CTRL_FLATPANEL_SCALING_NATIVE                        1  
00102 #define NV_CTRL_FLATPANEL_SCALING_SCALED                        2  
00103 #define NV_CTRL_FLATPANEL_SCALING_CENTERED                      3  
00104 #define NV_CTRL_FLATPANEL_SCALING_ASPECT_SCALED                 4  
00105 
00118 #define NV_CTRL_FLATPANEL_DITHERING                             3  
00119 #define NV_CTRL_FLATPANEL_DITHERING_DEFAULT                     0  
00120 #define NV_CTRL_FLATPANEL_DITHERING_ENABLED                     1  
00121 #define NV_CTRL_FLATPANEL_DITHERING_DISABLED                    2  
00122 
00123 
00125 /*
00126  * NV_CTRL_DIGITAL_VIBRANCE - sets the digital vibrance level for the
00127  * specified display device.
00128  */
00129 
00130 #define NV_CTRL_DIGITAL_VIBRANCE                                4  /* RWD */
00131 
00132 
00142 #define NV_CTRL_BUS_TYPE                                        5  
00143 
00144 #define NV_CTRL_BUS_TYPE_AGP                                    0  
00145 #define NV_CTRL_BUS_TYPE_PCI                                    1  
00146 #define NV_CTRL_BUS_TYPE_PCI_EXPRESS                            2  
00147 #define NV_CTRL_BUS_TYPE_INTEGRATED                             3  
00148 
00156 #define NV_CTRL_VIDEO_RAM                                       6  /* R-- */
00157 
00158 
00165 #define NV_CTRL_IRQ                                             7  /* R-- */
00166 
00167 
00168 /*
00169  * NV_CTRL_OPERATING_SYSTEM - returns the operating system on which
00170  * the X server is running.
00171  */
00172 
00173 #define NV_CTRL_OPERATING_SYSTEM                                8  /* R-- */
00174 #define NV_CTRL_OPERATING_SYSTEM_LINUX                          0
00175 #define NV_CTRL_OPERATING_SYSTEM_FREEBSD                        1
00176 #define NV_CTRL_OPERATING_SYSTEM_SUNOS                          2
00177 
00178 
00179 /*
00180  * NV_CTRL_SYNC_TO_VBLANK - enables sync to vblank for OpenGL clients.
00181  * This setting is only applied to OpenGL clients that are started
00182  * after this setting is applied.
00183  */
00184 
00185 #define NV_CTRL_SYNC_TO_VBLANK                                  9  /* RW- */
00186 #define NV_CTRL_SYNC_TO_VBLANK_OFF                              0
00187 #define NV_CTRL_SYNC_TO_VBLANK_ON                               1
00188 
00189 
00190 /*
00191  * NV_CTRL_LOG_ANISO - enables anisotropic filtering for OpenGL
00192  * clients; on some NVIDIA hardware, this can only be enabled or
00193  * disabled; on other hardware different levels of anisotropic
00194  * filtering can be specified.  This setting is only applied to OpenGL
00195  * clients that are started after this setting is applied.
00196  */
00197 
00198 #define NV_CTRL_LOG_ANISO                                       10 /* RW- */
00199 
00200 
00222 #define NV_CTRL_FSAA_MODE                                       11 /* RW- */
00223 #define NV_CTRL_FSAA_MODE_NONE                                  0   
00224 #define NV_CTRL_FSAA_MODE_2x                                    1   
00225 #define NV_CTRL_FSAA_MODE_2x_5t                                 2   
00226 #define NV_CTRL_FSAA_MODE_15x15                                 3   
00227 #define NV_CTRL_FSAA_MODE_2x2                                   4   
00228 #define NV_CTRL_FSAA_MODE_4x                                    5   
00229 #define NV_CTRL_FSAA_MODE_4x_9t                                 6   
00230 #define NV_CTRL_FSAA_MODE_8x                                    7   
00231 #define NV_CTRL_FSAA_MODE_16x                                   8   
00232 #define NV_CTRL_FSAA_MODE_8xS                                   9   
00233 #define NV_CTRL_FSAA_MODE_MAX NV_CTRL_FSAA_MODE_8xS                 
00234 
00235 
00237 /*
00238  * NV_CTRL_TEXTURE_SHARPEN - enables texture sharpening for OpenGL
00239  * clients.  This setting is only applied to OpenGL clients that are
00240  * started after this setting is applied.
00241  */
00242 
00243 #define NV_CTRL_TEXTURE_SHARPEN                                 12 /* RW- */
00244 #define NV_CTRL_TEXTURE_SHARPEN_OFF                             0
00245 #define NV_CTRL_TEXTURE_SHARPEN_ON                              1
00246 
00247 
00248 /*
00249  * NV_CTRL_UBB - returns whether UBB is enabled for the specified X
00250  * screen.
00251  */
00252 
00253 #define NV_CTRL_UBB                                             13 /* R-- */
00254 #define NV_CTRL_UBB_OFF                                         0
00255 #define NV_CTRL_UBB_ON                                          1
00256 
00257 
00258 /*
00259  * NV_CTRL_OVERLAY - returns whether the RGB overlay is enabled for
00260  * the specified X screen.
00261  */
00262 
00263 #define NV_CTRL_OVERLAY                                         14 /* R-- */
00264 #define NV_CTRL_OVERLAY_OFF                                     0
00265 #define NV_CTRL_OVERLAY_ON                                      1
00266 
00267 
00268 /*
00269  * NV_CTRL_STEREO - returns whether stereo (and what type) is enabled
00270  * for the specified X screen.
00271  */
00272 
00273 #define NV_CTRL_STEREO                                          16 /* R-- */
00274 #define NV_CTRL_STEREO_OFF                                      0
00275 #define NV_CTRL_STEREO_DDC                                      1
00276 #define NV_CTRL_STEREO_BLUELINE                                 2
00277 #define NV_CTRL_STEREO_DIN                                      3
00278 #define NV_CTRL_STEREO_TWINVIEW                                 4
00279 
00280 
00281 /*
00282  * NV_CTRL_EMULATE - controls OpenGL software emulation of future
00283  * NVIDIA GPUs.
00284  */
00285 
00286 #define NV_CTRL_EMULATE                                         17 /* RW- */
00287 #define NV_CTRL_EMULATE_NONE                                    0
00288 
00289 
00290 /*
00291  * NV_CTRL_TWINVIEW - returns whether TwinView is enabled for the
00292  * specified X screen.
00293  */
00294 
00295 #define NV_CTRL_TWINVIEW                                        18 /* R-- */
00296 #define NV_CTRL_TWINVIEW_NOT_ENABLED                            0
00297 #define NV_CTRL_TWINVIEW_ENABLED                                1
00298 
00299 
00300 /*
00301  * NV_CTRL_CONNECTED_DISPLAYS - returns a display mask indicating the last
00302  * cached state of the display devices connected to the GPU or GPU driving
00303  * the specified X screen.
00304  *
00305  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
00306  * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
00307  */
00308 
00309 #define NV_CTRL_CONNECTED_DISPLAYS                              19 /* R--G */
00310 
00311 
00312 /*
00313  * NV_CTRL_ENABLED_DISPLAYS - returns a display mask indicating what
00314  * display devices are enabled for use on the specified X screen or
00315  * GPU.
00316  *
00317  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
00318  * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
00319  */
00320 
00321 #define NV_CTRL_ENABLED_DISPLAYS                                20 /* R--G */
00322 
00323 /**************************************************************************/
00324 /*
00325  * Integer attributes specific to configuring Frame Lock on boards that
00326  * support it.
00327  */
00328 
00329 
00330 /*
00331  * NV_CTRL_FRAMELOCK - returns whether the underlying GPU supports
00332  * Frame Lock.  All of the other frame lock attributes are only
00333  * applicable if NV_CTRL_FRAMELOCK is _SUPPORTED.
00334  *
00335  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
00336  * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
00337  */
00338 
00339 #define NV_CTRL_FRAMELOCK                                       21 /* R--G */
00340 #define NV_CTRL_FRAMELOCK_NOT_SUPPORTED                         0
00341 #define NV_CTRL_FRAMELOCK_SUPPORTED                             1
00342 
00343 
00344 /*
00345  * NV_CTRL_FRAMELOCK_MASTER - get/set which display device to use
00346  * as the frame lock master for the entire sync group.  Note that only
00347  * one node in the sync group should be configured as the master.
00348  *
00349  * This attribute can only be queried through XNVCTRLQueryTargetAttribute()
00350  * using a NV_CTRL_TARGET_TYPE_GPU target.  This attribute cannot be
00351  * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
00352  */
00353 
00354 #define NV_CTRL_FRAMELOCK_MASTER                                22 /* RW-G */
00355 
00356 /* These are deprecated.  NV_CTRL_FRAMELOCK_MASTER now takes and
00357    returns a display mask as value. */
00358 #define NV_CTRL_FRAMELOCK_MASTER_FALSE                          0
00359 #define NV_CTRL_FRAMELOCK_MASTER_TRUE                           1
00360 
00361 
00362 /*
00363  * NV_CTRL_FRAMELOCK_POLARITY - sync either to the rising edge of the
00364  * frame lock pulse, the falling edge of the frame lock pulse or both.
00365  *
00366  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
00367  * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
00368  * target.
00369  */
00370 
00371 #define NV_CTRL_FRAMELOCK_POLARITY                              23 /* RW-F */
00372 #define NV_CTRL_FRAMELOCK_POLARITY_RISING_EDGE                  0x1
00373 #define NV_CTRL_FRAMELOCK_POLARITY_FALLING_EDGE                 0x2
00374 #define NV_CTRL_FRAMELOCK_POLARITY_BOTH_EDGES                   0x3
00375 
00376 
00377 /*
00378  * NV_CTRL_FRAMELOCK_SYNC_DELAY - delay between the frame lock pulse
00379  * and the GPU sync.  This is an 11 bit value which is multipled by
00380  * 7.81 to determine the sync delay in microseconds.
00381  *
00382  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
00383  * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
00384  * target.
00385  */
00386 
00387 #define NV_CTRL_FRAMELOCK_SYNC_DELAY                            24 /* RW-F */
00388 #define NV_CTRL_FRAMELOCK_SYNC_DELAY_MAX                        2047
00389 #define NV_CTRL_FRAMELOCK_SYNC_DELAY_FACTOR                     7.81
00390 
00391 
00392 /*
00393  * NV_CTRL_FRAMELOCK_SYNC_INTERVAL - how many house sync pulses
00394  * between the frame lock sync generation (0 == sync every house sync);
00395  * this only applies to the master when receiving house sync.
00396  *
00397  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
00398  * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
00399  * target.
00400  */
00401 
00402 #define NV_CTRL_FRAMELOCK_SYNC_INTERVAL                         25 /* RW-F */
00403 
00404 
00405 /*
00406  * NV_CTRL_FRAMELOCK_PORT0_STATUS - status of the rj45 port0.
00407  *
00408  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
00409  * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
00410  * target.
00411  */
00412 
00413 #define NV_CTRL_FRAMELOCK_PORT0_STATUS                          26 /* R--F */
00414 #define NV_CTRL_FRAMELOCK_PORT0_STATUS_INPUT                    0
00415 #define NV_CTRL_FRAMELOCK_PORT0_STATUS_OUTPUT                   1
00416 
00417 
00418 /*
00419  * NV_CTRL_FRAMELOCK_PORT1_STATUS - status of the rj45 port1.
00420  *
00421  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
00422  * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
00423  * target.
00424  */
00425 
00426 #define NV_CTRL_FRAMELOCK_PORT1_STATUS                          27 /* R--F */
00427 #define NV_CTRL_FRAMELOCK_PORT1_STATUS_INPUT                    0
00428 #define NV_CTRL_FRAMELOCK_PORT1_STATUS_OUTPUT                   1
00429 
00430 
00431 /*
00432  * NV_CTRL_FRAMELOCK_HOUSE_STATUS - returns whether or not the house
00433  * sync signal was detected on the BNC connector of the frame lock
00434  * board.
00435  *
00436  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
00437  * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
00438  * target.
00439  */
00440 
00441 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS                          28 /* R--F */
00442 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS_NOT_DETECTED             0
00443 #define NV_CTRL_FRAMELOCK_HOUSE_STATUS_DETECTED                 1
00444 
00445 
00446 /*
00447  * NV_CTRL_FRAMELOCK_SYNC - enable/disable the syncing of display
00448  * devices to the frame lock pulse as specified by previous calls to
00449  * NV_CTRL_FRAMELOCK_MASTER and NV_CTRL_FRAMELOCK_SLAVES.
00450  *
00451  * This attribute can only be queried through XNVCTRLQueryTargetAttribute()
00452  * using a NV_CTRL_TARGET_TYPE_GPU target.  This attribute cannot be
00453  * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
00454  */
00455 
00456 #define NV_CTRL_FRAMELOCK_SYNC                                  29 /* RW-G */
00457 #define NV_CTRL_FRAMELOCK_SYNC_DISABLE                          0
00458 #define NV_CTRL_FRAMELOCK_SYNC_ENABLE                           1
00459 
00460 
00461 /*
00462  * NV_CTRL_FRAMELOCK_SYNC_READY - reports whether a slave frame lock
00463  * board is receiving sync (regardless of whether or not any display
00464  * devices are using the sync).
00465  *
00466  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
00467  * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
00468  * target.
00469  */
00470 
00471 #define NV_CTRL_FRAMELOCK_SYNC_READY                            30 /* R--F */
00472 #define NV_CTRL_FRAMELOCK_SYNC_READY_FALSE                      0
00473 #define NV_CTRL_FRAMELOCK_SYNC_READY_TRUE                       1
00474 
00475 
00476 /*
00477  * NV_CTRL_FRAMELOCK_STEREO_SYNC - this indicates that the GPU stereo
00478  * signal is in sync with the frame lock stereo signal.
00479  *
00480  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
00481  * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN
00482  * target.
00483  */
00484 
00485 #define NV_CTRL_FRAMELOCK_STEREO_SYNC                           31 /* R--G */
00486 #define NV_CTRL_FRAMELOCK_STEREO_SYNC_FALSE                     0
00487 #define NV_CTRL_FRAMELOCK_STEREO_SYNC_TRUE                      1
00488 
00489 
00490 /*
00491  * NV_CTRL_FRAMELOCK_TEST_SIGNAL - to test the connections in the sync
00492  * group, tell the master to enable a test signal, then query port[01]
00493  * status and sync_ready on all slaves.  When done, tell the master to
00494  * disable the test signal.  Test signal should only be manipulated
00495  * while NV_CTRL_FRAMELOCK_SYNC is enabled.
00496  *
00497  * The TEST_SIGNAL is also used to reset the Universal Frame Count (as
00498  * returned by the glXQueryFrameCountNV() function in the
00499  * GLX_NV_swap_group extension).  Note: for best accuracy of the
00500  * Universal Frame Count, it is recommended to toggle the TEST_SIGNAL
00501  * on and off after enabling frame lock.
00502  *
00503  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
00504  * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
00505  */
00506 
00507 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL                           32 /* RW-G */
00508 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL_DISABLE                   0
00509 #define NV_CTRL_FRAMELOCK_TEST_SIGNAL_ENABLE                    1
00510 
00511 
00512 /*
00513  * NV_CTRL_FRAMELOCK_ETHERNET_DETECTED - The frame lock boards are
00514  * cabled together using regular cat5 cable, connecting to rj45 ports
00515  * on the backplane of the card.  There is some concern that users may
00516  * think these are ethernet ports and connect them to a
00517  * router/hub/etc.  The hardware can detect this and will shut off to
00518  * prevent damage (either to itself or to the router).
00519  * NV_CTRL_FRAMELOCK_ETHERNET_DETECTED may be called to find out if
00520  * ethernet is connected to one of the rj45 ports.  An appropriate
00521  * error message should then be displayed.  The _PORT0 and _PORT1
00522  * values may be or'ed together.
00523  *
00524  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
00525  * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
00526  * target.
00527  */
00528 
00529 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED                     33 /* R--F */
00530 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_NONE                0
00531 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_PORT0               0x1
00532 #define NV_CTRL_FRAMELOCK_ETHERNET_DETECTED_PORT1               0x2
00533 
00534 
00535 /*
00536  * NV_CTRL_FRAMELOCK_VIDEO_MODE - get/set what video mode is used
00537  * to interperate the house sync signal.  This should only be set
00538  * on the master.
00539  *
00540  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
00541  * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
00542  * target.
00543  */
00544 
00545 #define NV_CTRL_FRAMELOCK_VIDEO_MODE                            34 /* RW-F */
00546 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_NONE                       0
00547 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_TTL                        1
00548 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_NTSCPALSECAM               2
00549 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_HDTV                       3
00550 
00551 /*
00552  * During FRAMELOCK bring-up, the above values were redefined to
00553  * these:
00554  */
00555 
00556 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_AUTO             0
00557 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_TTL                        1
00558 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_BI_LEVEL         2
00559 #define NV_CTRL_FRAMELOCK_VIDEO_MODE_COMPOSITE_TRI_LEVEL        3
00560 
00561 
00562 /*
00563  * NV_CTRL_FRAMELOCK_SYNC_RATE - this is the refresh rate that the
00564  * frame lock board is sending to the GPU, in milliHz.
00565  *
00566  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
00567  * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
00568  * target.
00569  */
00570 
00571 #define NV_CTRL_FRAMELOCK_SYNC_RATE                             35 /* R--F */
00572 
00573 
00574 
00575 /**************************************************************************/
00576 
00577 /*
00578  * NV_CTRL_FORCE_GENERIC_CPU - inhibit the use of CPU specific
00579  * features such as MMX, SSE, or 3DNOW! for OpenGL clients; this
00580  * option may result in performance loss, but may be useful in
00581  * conjunction with software such as the Valgrind memory debugger.
00582  * This setting is only applied to OpenGL clients that are started
00583  * after this setting is applied.
00584  */
00585 
00586 #define NV_CTRL_FORCE_GENERIC_CPU                               37 /* RW- */
00587 #define NV_CTRL_FORCE_GENERIC_CPU_DISABLE                        0
00588 #define NV_CTRL_FORCE_GENERIC_CPU_ENABLE                         1
00589 
00590 
00591 /*
00592  * NV_CTRL_OPENGL_AA_LINE_GAMMA - for OpenGL clients, allow
00593  * Gamma-corrected antialiased lines to consider variances in the
00594  * color display capabilities of output devices when rendering smooth
00595  * lines.  Only available on recent Quadro GPUs.  This setting is only
00596  * applied to OpenGL clients that are started after this setting is
00597  * applied.
00598  */
00599 
00600 #define NV_CTRL_OPENGL_AA_LINE_GAMMA                            38 /* RW- */
00601 #define NV_CTRL_OPENGL_AA_LINE_GAMMA_DISABLE                     0
00602 #define NV_CTRL_OPENGL_AA_LINE_GAMMA_ENABLE                      1
00603 
00604 
00605 /*
00606  * NV_CTRL_FRAMELOCK_TIMING - this is TRUE when the gpu is both receiving
00607  * and locked to an input timing signal. Timing information may come from
00608  * the following places: Another frame lock device that is set to master, 
00609  * the house sync signal, or the GPU's internal timing from a display
00610  * device.
00611  *
00612  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
00613  * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
00614  */
00615 
00616 #define NV_CTRL_FRAMELOCK_TIMING                                39 /* R--G */
00617 #define NV_CTRL_FRAMELOCK_TIMING_FALSE                           0
00618 #define NV_CTRL_FRAMELOCK_TIMING_TRUE                            1
00619 
00620 /*
00621  * NV_CTRL_FLIPPING_ALLOWED - when TRUE, OpenGL will swap by flipping
00622  * when possible; when FALSE, OpenGL will alway swap by blitting.  XXX
00623  * can this be enabled dynamically?
00624  */
00625 
00626 #define NV_CTRL_FLIPPING_ALLOWED                                40 /* RW- */
00627 #define NV_CTRL_FLIPPING_ALLOWED_FALSE                           0
00628 #define NV_CTRL_FLIPPING_ALLOWED_TRUE                            1
00629 
00630 /*
00631  * NV_CTRL_ARCHITECTURE - returns the architecture on which the X server is
00632  * running.
00633  */
00634 
00635 #define NV_CTRL_ARCHITECTURE                                    41  /* R-- */
00636 #define NV_CTRL_ARCHITECTURE_X86                                 0
00637 #define NV_CTRL_ARCHITECTURE_X86_64                              1
00638 #define NV_CTRL_ARCHITECTURE_IA64                                2
00639 
00640 
00641 /*
00642  * NV_CTRL_TEXTURE_CLAMPING - texture clamping mode in OpenGL.  By
00643  * default, NVIDIA's OpenGL implementation uses CLAMP_TO_EDGE, which
00644  * is not strictly conformant, but some applications rely on the
00645  * non-conformant behavior, and not all GPUs support conformant
00646  * texture clamping in hardware.  _SPEC forces OpenGL texture clamping
00647  * to be conformant, but may introduce slower performance on older
00648  * GPUS, or incorrect texture clamping in certain applications.
00649  */
00650 
00651 #define NV_CTRL_TEXTURE_CLAMPING                                42  /* RW- */
00652 #define NV_CTRL_TEXTURE_CLAMPING_EDGE                            0
00653 #define NV_CTRL_TEXTURE_CLAMPING_SPEC                            1
00654 
00655 
00656 
00657 #define NV_CTRL_CURSOR_SHADOW                                   43  /* RW- */
00658 #define NV_CTRL_CURSOR_SHADOW_DISABLE                            0
00659 #define NV_CTRL_CURSOR_SHADOW_ENABLE                             1
00660 
00661 #define NV_CTRL_CURSOR_SHADOW_ALPHA                             44  /* RW- */
00662 #define NV_CTRL_CURSOR_SHADOW_RED                               45  /* RW- */
00663 #define NV_CTRL_CURSOR_SHADOW_GREEN                             46  /* RW- */
00664 #define NV_CTRL_CURSOR_SHADOW_BLUE                              47  /* RW- */
00665 
00666 #define NV_CTRL_CURSOR_SHADOW_X_OFFSET                          48  /* RW- */
00667 #define NV_CTRL_CURSOR_SHADOW_Y_OFFSET                          49  /* RW- */
00668 
00669 
00670 
00671 /*
00672  * When Application Control for FSAA is enabled, then what the
00673  * application requests is used, and NV_CTRL_FSAA_MODE is ignored.  If
00674  * this is disabled, then any application setting is overridden with
00675  * NV_CTRL_FSAA_MODE
00676  */
00677 
00678 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED                     50  /* RW- */
00679 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED_ENABLED              1
00680 #define NV_CTRL_FSAA_APPLICATION_CONTROLLED_DISABLED             0
00681 
00682 
00683 /*
00684  * When Application Control for LogAniso is enabled, then what the
00685  * application requests is used, and NV_CTRL_LOG_ANISO is ignored.  If
00686  * this is disabled, then any application setting is overridden with
00687  * NV_CTRL_LOG_ANISO
00688  */
00689 
00690 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED                51  /* RW- */
00691 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED_ENABLED         1
00692 #define NV_CTRL_LOG_ANISO_APPLICATION_CONTROLLED_DISABLED        0
00693 
00694 
00695 /*
00696  * IMAGE_SHARPENING adjusts the sharpness of the display's image
00697  * quality by amplifying high frequency content.  Valid values will
00698  * normally be in the range [0,32).  Only available on GeForceFX or
00699  * newer.
00700  */
00701 
00702 #define NV_CTRL_IMAGE_SHARPENING                                52  /* RWD */
00703 
00704 
00705 /*
00706  * NV_CTRL_TV_OVERSCAN adjusts the amount of overscan on the specified
00707  * display device.
00708  */
00709 
00710 #define NV_CTRL_TV_OVERSCAN                                     53  /* RWD */
00711 
00712 
00713 /*
00714  * NV_CTRL_TV_FLICKER_FILTER adjusts the amount of flicker filter on
00715  * the specified display device.
00716  */
00717 
00718 #define NV_CTRL_TV_FLICKER_FILTER                               54  /* RWD */
00719 
00720 
00721 /*
00722  * NV_CTRL_TV_BRIGHTNESS adjusts the amount of brightness on the
00723  * specified display device.
00724  */
00725 
00726 #define NV_CTRL_TV_BRIGHTNESS                                   55  /* RWD */
00727 
00728 
00729 /*
00730  * NV_CTRL_TV_HUE adjusts the amount of hue on the specified display
00731  * device.
00732  */
00733 
00734 #define NV_CTRL_TV_HUE                                          56  /* RWD */
00735 
00736 
00737 /*
00738  * NV_CTRL_TV_CONTRAST adjusts the amount of contrast on the specified
00739  * display device.
00740  */
00741 
00742 #define NV_CTRL_TV_CONTRAST                                     57  /* RWD */
00743 
00744 
00745 /*
00746  * NV_CTRL_TV_SATURATION adjusts the amount of saturation on the
00747  * specified display device.
00748  */
00749 
00750 #define NV_CTRL_TV_SATURATION                                   58  /* RWD */
00751 
00752 
00753 /*
00754  * NV_CTRL_TV_RESET_SETTINGS - this write-only attribute can be used
00755  * to request that all TV Settings be reset to their default values;
00756  * typical usage would be that this attribute be sent, and then all
00757  * the TV attributes be queried to retrieve their new values.
00758  */
00759 
00760 #define NV_CTRL_TV_RESET_SETTINGS                               59  /* -WD */
00761 
00762 
00763 /*
00764  * NV_CTRL_GPU_CORE_TEMPERATURE reports the current core temperature
00765  * of the GPU driving the X screen.
00766  */
00767 
00768 #define NV_CTRL_GPU_CORE_TEMPERATURE                            60  /* R-- */
00769 
00770 
00771 /*
00772  * NV_CTRL_GPU_CORE_THRESHOLD reports the current GPU core slowdown
00773  * threshold temperature, NV_CTRL_GPU_DEFAULT_CORE_THRESHOLD and
00774  * NV_CTRL_GPU_MAX_CORE_THRESHOLD report the default and MAX core
00775  * slowdown threshold temperatures.
00776  *
00777  * NV_CTRL_GPU_CORE_THRESHOLD reflects the temperature at which the
00778  * GPU is throttled to prevent overheating.
00779  */
00780 
00781 #define NV_CTRL_GPU_CORE_THRESHOLD                              61  /* R-- */
00782 #define NV_CTRL_GPU_DEFAULT_CORE_THRESHOLD                      62  /* R-- */
00783 #define NV_CTRL_GPU_MAX_CORE_THRESHOLD                          63  /* R-- */
00784 
00785 
00786 /*
00787  * NV_CTRL_AMBIENT_TEMPERATURE reports the current temperature in the
00788  * immediate neighbourhood of the GPU driving the X screen.
00789  */
00790 
00791 #define NV_CTRL_AMBIENT_TEMPERATURE                             64  /* R-- */
00792 
00793 
00794 /*
00795  * NV_CTRL_PBUFFER_SCANOUT_SUPPORTED - returns whether this X screen
00796  * supports scanout of FP pbuffers;
00797  * 
00798  * if this screen does not support PBUFFER_SCANOUT, then all other
00799  * PBUFFER_SCANOUT attributes are unavailable.
00800  *
00801  * PBUFFER_SCANOUT is supported if and only if:
00802  * - Twinview is configured with clone mode.  The secondary screen is used to 
00803  *   scanout the pbuffer.  
00804  * - The desktop is running in with 16 bits per pixel.
00805  */
00806 #define NV_CTRL_PBUFFER_SCANOUT_SUPPORTED                       65  /* R-- */
00807 #define NV_CTRL_PBUFFER_SCANOUT_FALSE                           0
00808 #define NV_CTRL_PBUFFER_SCANOUT_TRUE                            1
00809 
00810 /*
00811  * NV_CTRL_PBUFFER_SCANOUT_XID indicates the XID of the pbuffer used for
00812  * scanout.
00813  */
00814 #define NV_CTRL_PBUFFER_SCANOUT_XID                             66  /* RW- */
00815 
00816 /**************************************************************************/
00817 /*
00818  * The NV_CTRL_GVO_* integer attributes are used to configure GVO
00819  * (Graphics to Video Out).  This functionality is available, for
00820  * example, on the Quadro FX 4000 SDI graphics board.
00821  *
00822  * The following is a typical usage pattern for the GVO attributes:
00823  *
00824  * - query NV_CTRL_GVO_SUPPORTED to determine if the X screen supports GV0.
00825  *
00826  * - specify NV_CTRL_GVO_SYNC_MODE (one of FREE_RUNNING, GENLOCK, or
00827  * FRAMELOCK); if you specify GENLOCK or FRAMELOCK, you should also
00828  * specify NV_CTRL_GVO_SYNC_SOURCE.
00829  * 
00830  * - Use NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED and
00831  * NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED to detect what input syncs are
00832  * present.
00833  * 
00834  * (If no analog sync is detected but it is known that a valid
00835  * bi-level or tri-level sync is connected set
00836  * NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE appropriately and
00837  * retest with NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED).
00838  *
00839  * - if syncing to input sync, query the
00840  * NV_CTRL_GVO_INPUT_VIDEO_FORMAT attribute; note that Input video
00841  * format can only be queried after SYNC_SOURCE is specified.
00842  *
00843  * - specify the NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT
00844  *
00845  * - specify the NV_CTRL_GVO_DATA_FORMAT
00846  *
00847  * - specify any custom Color Space Conversion (CSC) matrix, offset,
00848  * and scale with XNVCTRLSetGvoColorConversion().
00849  *
00850  * - if using the GLX_NV_video_out extension to display one or more
00851  * pbuffers, call glXGetVideoDeviceNV() to lock the GVO output for use
00852  * by the GLX client; then bind the pbuffer(s) to the GVO output with
00853  * glXBindVideoImageNV() and send pbuffers to the GVO output with
00854  * glXSendPbufferToVideoNV(); see the GLX_NV_video_out spec for more
00855  * details.
00856  *
00857  * - if, rather than using the GLX_NV_video_out extension to display
00858  * GLX pbuffers on the GVO output, you wish display the X screen on
00859  * the GVO output, set NV_CTRL_GVO_DISPLAY_X_SCREEN to
00860  * NV_CTRL_GVO_DISPLAY_X_SCREEN_ENABLE.
00861  *
00862  * Note that setting most GVO attributes only causes the value to be
00863  * cached in the X server.  The values will be flushed to the hardware
00864  * either when NV_CTRL_GVO_DISPLAY_X_SCREEN is enabled, or when a GLX
00865  * pbuffer is bound to the GVO output (with glXBindVideoImageNV()).
00866  *
00867  * Note that GLX_NV_video_out and NV_CTRL_GVO_DISPLAY_X_SCREEN are
00868  * mutually exclusive.  If NV_CTRL_GVO_DISPLAY_X_SCREEN is enabled,
00869  * then glXGetVideoDeviceNV will fail.  Similarly, if a GLX client has
00870  * locked the GVO output (via glXGetVideoDeviceNV), then
00871  * NV_CTRL_GVO_DISPLAY_X_SCREEN will fail.  The NV_CTRL_GVO_LOCKED
00872  * event will be sent when a GLX client locks the GVO output.
00873  *
00874  */
00875 
00876 
00877 /*
00878  * NV_CTRL_GVO_SUPPORTED - returns whether this X screen supports GVO;
00879  * if this screen does not support GVO output, then all other GVO
00880  * attributes are unavailable.
00881  */
00882 
00883 #define NV_CTRL_GVO_SUPPORTED                                   67  /* R-- */
00884 #define NV_CTRL_GVO_SUPPORTED_FALSE                             0
00885 #define NV_CTRL_GVO_SUPPORTED_TRUE                              1
00886 
00887 
00888 /*
00889  * NV_CTRL_GVO_SYNC_MODE - selects the GVO sync mode; possible values
00890  * are:
00891  *
00892  * FREE_RUNNING - GVO does not sync to any external signal
00893  *
00894  * GENLOCK - the GVO output is genlocked to an incoming sync signal;
00895  * genlocking locks at hsync.  This requires that the output video
00896  * format exactly match the incoming sync video format.
00897  *
00898  * FRAMELOCK - the GVO output is frame locked to an incoming sync
00899  * signal; frame locking locks at vsync.  This requires that the output
00900  * video format have the same refresh rate as the incoming sync video
00901  * format.
00902  */
00903 
00904 #define NV_CTRL_GVO_SYNC_MODE                                   68  /* RW- */
00905 #define NV_CTRL_GVO_SYNC_MODE_FREE_RUNNING                      0
00906 #define NV_CTRL_GVO_SYNC_MODE_GENLOCK                           1
00907 #define NV_CTRL_GVO_SYNC_MODE_FRAMELOCK                         2
00908 
00909 
00910 /*
00911  * NV_CTRL_GVO_SYNC_SOURCE - if NV_CTRL_GVO_SYNC_MODE is set to either
00912  * GENLOCK or FRAMELOCK, this controls which sync source is used as
00913  * the incoming sync signal (either Composite or SDI).  If
00914  * NV_CTRL_GVO_SYNC_MODE is FREE_RUNNING, this attribute has no
00915  * effect.
00916  */
00917 
00918 #define NV_CTRL_GVO_SYNC_SOURCE                                 69  /* RW- */
00919 #define NV_CTRL_GVO_SYNC_SOURCE_COMPOSITE                       0
00920 #define NV_CTRL_GVO_SYNC_SOURCE_SDI                             1
00921 
00922 
00923 /*
00924  * NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT - specifies the output video
00925  * format.  Note that the valid video formats will vary depending on
00926  * the NV_CTRL_GVO_SYNC_MODE and the incoming sync video format.  See
00927  * the definition of NV_CTRL_GVO_SYNC_MODE.
00928  *
00929  * Note that when querying the ValidValues for this data type, the
00930  * values are reported as bits within a bitmask
00931  * (ATTRIBUTE_TYPE_INT_BITS); unfortunately, there are more valid
00932  * value bits than will fit in a single 32-bit value.  To solve this,
00933  * query the ValidValues for NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT to check
00934  * which of the first 31 VIDEO_FORMATS are valid, then query the
00935  * ValidValues for NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT2 to check which of
00936  * the VIDEO_FORMATS with value 32 and higher are valid.
00937  */
00938 
00939 #define NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT                         70  /* RW- */
00940 
00941 #define NV_CTRL_GVO_VIDEO_FORMAT_NONE                           0
00942 #define NV_CTRL_GVO_VIDEO_FORMAT_480I_59_94_SMPTE259_NTSC       1
00943 #define NV_CTRL_GVO_VIDEO_FORMAT_576I_50_00_SMPTE259_PAL        2
00944 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_59_94_SMPTE296            3
00945 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_60_00_SMPTE296            4
00946 #define NV_CTRL_GVO_VIDEO_FORMAT_1035I_59_94_SMPTE260           5
00947 #define NV_CTRL_GVO_VIDEO_FORMAT_1035I_60_00_SMPTE260           6
00948 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_50_00_SMPTE295           7
00949 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_50_00_SMPTE274           8
00950 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_59_94_SMPTE274           9
00951 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_60_00_SMPTE274           10
00952 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_23_976_SMPTE274          11
00953 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_24_00_SMPTE274           12
00954 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_25_00_SMPTE274           13
00955 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_29_97_SMPTE274           14
00956 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_30_00_SMPTE274           15
00957 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_50_00_SMPTE296            16
00958 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_24_00_SMPTE274           17 //deprecated
00959 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_48_00_SMPTE274           17
00960 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_23_98_SMPTE274           18 //deprecated
00961 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_47_96_SMPTE274           18
00962 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_30_00_SMPTE296            19 
00963 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_29_97_SMPTE296            20  
00964 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_25_00_SMPTE296            21 
00965 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_24_00_SMPTE296            22 
00966 #define NV_CTRL_GVO_VIDEO_FORMAT_720P_23_98_SMPTE296            23  
00967 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_25_00_SMPTE274         24
00968 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_29_97_SMPTE274         25
00969 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_30_00_SMPTE274         26
00970 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_24_00_SMPTE274         27
00971 #define NV_CTRL_GVO_VIDEO_FORMAT_1080PSF_23_98_SMPTE274         28
00972 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_30_00_SMPTE372           29
00973 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_29_97_SMPTE372           30
00974 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_30_00_SMPTE372           31
00975 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_29_97_SMPTE372           32
00976 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_25_00_SMPTE372           33
00977 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_25_00_SMPTE372           34
00978 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_24_00_SMPTE372           35
00979 #define NV_CTRL_GVO_VIDEO_FORMAT_1080P_23_98_SMPTE372           36
00980 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_24_00_SMPTE372           37
00981 #define NV_CTRL_GVO_VIDEO_FORMAT_1080I_23_98_SMPTE372           38
00982 
00983 /*
00984  * NV_CTRL_GVO_INPUT_VIDEO_FORMAT - indicates the input video format
00985  * detected; the possible values are the NV_CTRL_GVO_VIDEO_FORMAT
00986  * constants.
00987  */
00988 
00989 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT                          71  /* R-- */
00990 
00991 
00992 /*
00993  * NV_CTRL_GVO_DATA_FORMAT - This controls how the data in the source
00994  * (either the X screen or the GLX pbuffer) is interpretted and
00995  * displayed.
00996  *
00997  * Note: some of the below DATA_FORMATS have been renamed.  For
00998  * example, R8G8B8_TO_RGB444 has been renamed to X8X8X8_444_PASSTHRU.
00999  * This is to more accurately reflect DATA_FORMATS where the
01000  * per-channel data could be either RGB or YCrCb -- the point is that
01001  * the driver and GVO hardware do not perform any implicit color space
01002  * conversion on the data; it is passed through to the SDI out.
01003  */
01004 
01005 #define NV_CTRL_GVO_DATA_FORMAT                                 72  /* RW- */
01006 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB444              0
01007 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_YCRCBA4444          1
01008 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_YCRCBZ4444         2
01009 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_YCRCB422              3
01010 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_YCRCBA4224          4
01011 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_YCRCBZ4224         5
01012 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8_TO_RGB444                6 // renamed
01013 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8_444_PASSTHRU             6
01014 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8A8_TO_RGBA4444            7 // renamed
01015 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8A8_4444_PASSTHRU          7
01016 #define NV_CTRL_GVO_DATA_FORMAT_R8G8B8Z10_TO_RGBZ4444           8 // renamed
01017 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8Z8_4444_PASSTHRU          8
01018 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR10CB10_TO_YCRCB444         9 // renamed
01019 #define NV_CTRL_GVO_DATA_FORMAT_X10X10X10_444_PASSTHRU          9
01020 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8_TO_YCRCB444           10 // renamed
01021 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8_444_PASSTHRU            10
01022 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8A10_TO_YCRCBA4444      11 // renamed
01023 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8A10_4444_PASSTHRU        11
01024 #define NV_CTRL_GVO_DATA_FORMAT_Y10CR8CB8Z10_TO_YCRCBZ4444      12 // renamed
01025 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8Z10_4444_PASSTHRU        12
01026 #define NV_CTRL_GVO_DATA_FORMAT_DUAL_R8G8B8_TO_DUAL_YCRCB422    13
01027 #define NV_CTRL_GVO_DATA_FORMAT_DUAL_Y8CR8CB8_TO_DUAL_YCRCB422  14 // renamed
01028 #define NV_CTRL_GVO_DATA_FORMAT_DUAL_X8X8X8_TO_DUAL_422_PASSTHRU 14
01029 #define NV_CTRL_GVO_DATA_FORMAT_R10G10B10_TO_YCRCB422           15
01030 #define NV_CTRL_GVO_DATA_FORMAT_R10G10B10_TO_YCRCB444           16
01031 #define NV_CTRL_GVO_DATA_FORMAT_Y12CR12CB12_TO_YCRCB444         17 // renamed
01032 #define NV_CTRL_GVO_DATA_FORMAT_X12X12X12_444_PASSTHRU          17
01033 #define NV_CTRL_GVO_DATA_FORMAT_R12G12B12_TO_YCRCB444           18
01034 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8_422_PASSTHRU             19
01035 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8A8_4224_PASSTHRU          20
01036 #define NV_CTRL_GVO_DATA_FORMAT_X8X8X8Z8_4224_PASSTHRU          21
01037 #define NV_CTRL_GVO_DATA_FORMAT_X10X10X10_422_PASSTHRU          22
01038 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8_422_PASSTHRU            23
01039 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8A10_4224_PASSTHRU        24
01040 #define NV_CTRL_GVO_DATA_FORMAT_X10X8X8Z10_4224_PASSTHRU        25
01041 #define NV_CTRL_GVO_DATA_FORMAT_X12X12X12_422_PASSTHRU          26
01042 #define NV_CTRL_GVO_DATA_FORMAT_R12G12B12_TO_YCRCB422           27
01043 
01044 /*
01045  * NV_CTRL_GVO_DISPLAY_X_SCREEN - enable/disable GVO output of the X
01046  * screen.  At this point, all the GVO attributes that have been
01047  * cached in the X server are flushed to the hardware and GVO is
01048  * enabled.  Note that this attribute can fail to be set if a GLX
01049  * client has locked the GVO output (via glXGetVideoDeviceNV).  Note
01050  * that due to the inherit race conditions in this locking strategy,
01051  * NV_CTRL_GVO_DISPLAY_X_SCREEN can fail unexpectantly.  In the
01052  * failing situation, X will not return an X error.  Instead, you
01053  * should query the value of NV_CTRL_GVO_DISPLAY_X_SCREEN after
01054  * setting it to confirm that the setting was applied.
01055  */
01056 
01057 #define NV_CTRL_GVO_DISPLAY_X_SCREEN                            73  /* RW- */
01058 #define NV_CTRL_GVO_DISPLAY_X_SCREEN_ENABLE                     1
01059 #define NV_CTRL_GVO_DISPLAY_X_SCREEN_DISABLE                    0
01060 
01061 
01062 /*
01063  * NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED - indicates whether
01064  * Composite Sync input is detected.
01065  */
01066 
01067 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED               74  /* R-- */
01068 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_FALSE         0
01069 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECTED_TRUE          1
01070 
01071 
01072 /*
01073  * NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE - get/set the
01074  * Composite Sync input detect mode.
01075  */
01076 
01077 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE            75  /* RW- */
01078 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_AUTO       0
01079 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_BI_LEVEL   1
01080 #define NV_CTRL_GVO_COMPOSITE_SYNC_INPUT_DETECT_MODE_TRI_LEVEL  2
01081 
01082 
01083 /*
01084  * NV_CTRL_GVO_SYNC_INPUT_DETECTED - indicates whether SDI Sync input
01085  * is detected, and what type.
01086  */
01087 
01088 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED                     76  /* R-- */
01089 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_NONE                0
01090 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_HD                  1
01091 #define NV_CTRL_GVO_SDI_SYNC_INPUT_DETECTED_SD                  2
01092 
01093 
01094 /*
01095  * NV_CTRL_GVO_VIDEO_OUTPUTS - indicates which GVO video output
01096  * connectors are currently outputing data.
01097  */
01098 
01099 #define NV_CTRL_GVO_VIDEO_OUTPUTS                               77  /* R-- */
01100 #define NV_CTRL_GVO_VIDEO_OUTPUTS_NONE                          0
01101 #define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO1                        1
01102 #define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO2                        2
01103 #define NV_CTRL_GVO_VIDEO_OUTPUTS_VIDEO_BOTH                    3
01104 
01105 
01106 /*
01107  * NV_CTRL_GVO_FPGA_VERSION - indicates the version of the Firmware on
01108  * the GVO device.  Deprecated; use
01109  * NV_CTRL_STRING_GVO_FIRMWARE_VERSION instead.
01110  */
01111 
01112 #define NV_CTRL_GVO_FIRMWARE_VERSION                            78  /* R-- */
01113 
01114 
01115 /*
01116  * NV_CTRL_GVO_SYNC_DELAY_PIXELS - controls the delay between the
01117  * input sync and the output sync in numbers of pixels from hsync;
01118  * this is a 12 bit value.
01119  */
01120 
01121 #define NV_CTRL_GVO_SYNC_DELAY_PIXELS                           79  /* RW- */
01122 
01123 
01124 /*
01125  * NV_CTRL_GVO_SYNC_DELAY_LINES - controls the delay between the input
01126  * sync and the output sync in numbers of lines from vsync; this is a
01127  * 12 bit value.
01128  */
01129 
01130 #define NV_CTRL_GVO_SYNC_DELAY_LINES                            80  /* RW- */
01131 
01132 
01133 /*
01134  * NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE - must be set for a period
01135  * of about 2 seconds for the new InputVideoFormat to be properly
01136  * locked to.  In nvidia-settings, we do a reacquire whenever genlock
01137  * or frame lock mode is entered into, when the user clicks the
01138  * "detect" button.  This value can be written, but always reads back
01139  * _FALSE.
01140  */
01141 
01142 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE                81  /* -W- */
01143 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE_FALSE          0
01144 #define NV_CTRL_GVO_INPUT_VIDEO_FORMAT_REACQUIRE_TRUE           1
01145 
01146 
01147 /*
01148  * NV_CTRL_GVO_LOCKED - indicates that GVO configurability is locked;
01149  * this occurs when the GLX_NV_video_out function calls
01150  * glXGetVideoDeviceNV().  All GVO output resources are locked until
01151  * either glXReleaseVideoDeviceNV() is called or the X Display used
01152  * when calling glXGetVideoDeviceNV() is closed.
01153  *
01154  * When GVO is locked; all GVO NV-CONTROL attributes are read only.
01155  */
01156 
01157 #define NV_CTRL_GVO_GLX_LOCKED                                  82  /* R-- */
01158 #define NV_CTRL_GVO_GLX_LOCKED_FALSE                            0
01159 #define NV_CTRL_GVO_GLX_LOCKED_TRUE                             1
01160 
01161 
01162 
01163 /*
01164  * NV_CTRL_GVO_VIDEO_FORMAT_{WIDTH,HEIGHT,REFRESH_RATE} - query the
01165  * width, height, and refresh rate for the specified
01166  * NV_CTRL_GVO_VIDEO_FORMAT_*.  So that this can be queried with
01167  * existing interfaces, XNVCTRLQueryAttribute() should be used, and
01168  * the video format specified in the display_mask field; eg:
01169  *
01170  * XNVCTRLQueryAttribute (dpy,
01171  *                        screen, 
01172  *                        NV_CTRL_GVO_VIDEO_FORMAT_480I_59_94_SMPTE259_NTSC,
01173  *                        NV_CTRL_GVO_VIDEO_FORMAT_WIDTH,
01174  *                        &value);
01175  *
01176  * Note that Refresh Rate is in 1/1000 Hertz values
01177  */
01178 
01179 #define NV_CTRL_GVO_VIDEO_FORMAT_WIDTH                          83  /* R-- */
01180 #define NV_CTRL_GVO_VIDEO_FORMAT_HEIGHT                         84  /* R-- */
01181 #define NV_CTRL_GVO_VIDEO_FORMAT_REFRESH_RATE                   85  /* R-- */
01182 
01183 
01184 /*
01185  * NV_CTRL_GVO_X_SCREEN_PAN_[XY] - when GVO output of the X screen is
01186  * enabled, the pan x/y attributes control which portion of the X
01187  * screen is displayed by GVO.  These attributes can be updated while
01188  * GVO output is enabled, or before enabling GVO output.  The pan
01189  * values will be clamped so that GVO output is not panned beyond the
01190  * end of the X screen.
01191  */
01192 
01193 #define NV_CTRL_GVO_X_SCREEN_PAN_X                              86  /* RW- */
01194 #define NV_CTRL_GVO_X_SCREEN_PAN_Y                              87  /* RW- */
01195 
01196 
01197 /*
01198  * NV_CTRL_GPU_OVERCLOCKING_STATE - query the current or set a new
01199  * overclocking state; the value of this attribute controls the
01200  * availability of additional overclocking attributes (see below).
01201  *
01202  * Note: this attribute is unavailable unless overclocking support
01203  * has been enabled in the X server (by the user).
01204  */
01205 
01206 #define NV_CTRL_GPU_OVERCLOCKING_STATE                          88  /* RW- */
01207 #define NV_CTRL_GPU_OVERCLOCKING_STATE_NONE                     0
01208 #define NV_CTRL_GPU_OVERCLOCKING_STATE_MANUAL                   1
01209 
01210 
01211 /*
01212  * NV_CTRL_GPU_{2,3}D_CLOCK_FREQS - query or set the GPU and memory
01213  * clocks of the device driving the X screen.  New clock frequencies
01214  * are tested before being applied, and may be rejected.
01215  *
01216  * Note: if the target clocks are too aggressive, their testing may
01217  * render the system unresponsive.
01218  *
01219  * Note: while this attribute can always be queried, it can't be set
01220  * unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL.  Since
01221  * the target clocks may be rejected, the requester should read this
01222  * attribute after the set to determine success or failure.
01223  */
01224 
01225 #define NV_CTRL_GPU_2D_CLOCK_FREQS                              89  /* RW- */
01226 #define NV_CTRL_GPU_3D_CLOCK_FREQS                              90  /* RW- */
01227 
01228 
01229 /*
01230  * NV_CTRL_GPU_DEFAULT_{2,3}D_CLOCK_FREQS - query the default memory
01231  * and GPU core clocks of the device driving the X screen.
01232  */
01233 
01234 #define NV_CTRL_GPU_DEFAULT_2D_CLOCK_FREQS                      91  /* R-- */
01235 #define NV_CTRL_GPU_DEFAULT_3D_CLOCK_FREQS                      92  /* R-- */
01236 
01237 
01238 /*
01239  * NV_CTRL_GPU_CURRENT_CLOCK_FREQS - query the current GPU and memory
01240  * clocks of the graphics device driving the X screen.
01241  */
01242 
01243 #define NV_CTRL_GPU_CURRENT_CLOCK_FREQS                         93  /* R-- */
01244 
01245 
01246 /*
01247  * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS - Holds the last calculated
01248  * optimal 3D clock frequencies found by the
01249  * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION process.  Querying this
01250  * attribute before having probed for the optimal clocks will return
01251  * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_INVALID
01252  *
01253  * Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the
01254  * optimal clock detection process is unavailable.
01255  */
01256 
01257 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS                         94  /* R-- */
01258 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_INVALID                  0
01259 
01260 
01261 /*
01262  * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION - set to _START to
01263  * initiate testing for the optimal 3D clock frequencies.  Once
01264  * found, the optimal clock frequencies will be returned by the
01265  * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS attribute asynchronously
01266  * (using an X event, see XNVCtrlSelectNotify).
01267  *
01268  * To cancel an ongoing test for the optimal clocks, set the
01269  * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION attribute to _CANCEL
01270  *
01271  * Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the
01272  * optimal clock detection process is unavailable.
01273  */
01274 
01275 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION               95  /* -W- */
01276 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_START          0
01277 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_CANCEL         1
01278 
01279 
01280 /*
01281  * NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE - query this
01282  * variable to know if a test is currently being run to
01283  * determine the optimal 3D clock frequencies.  _BUSY means a
01284  * test is currently running, _IDLE means the test is not running.
01285  *
01286  * Note: unless NV_CTRL_GPU_OVERCLOCKING_STATE is set to _MANUAL, the
01287  * optimal clock detection process is unavailable.
01288  */
01289 
01290 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE         96  /* R-- */
01291 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE_IDLE     0
01292 #define NV_CTRL_GPU_OPTIMAL_CLOCK_FREQS_DETECTION_STATE_BUSY     1
01293 
01294 
01295 
01296 /*************************************************************************
01297  * DDC/CI VCP codes                                                      *
01298  * From the VESA Monitor Control Command Set (MCCS) Standard - Version 2 *
01299  *************************************************************************/
01300  
01301 #define NV_CTRL_DDCCI_ON                                        1
01302 #define NV_CTRL_DDCCI_OFF                                       0
01303 
01304 /*************************************
01305  * DDC/CI VCP CODES: GEOMETRY ADJUST *
01306  *************************************/
01307  
01308 /* Increasing (decreasing) this value moves the image toward the right
01309  * (left) side of the screen.
01310  * Type: Range
01311  */
01312 #define NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_POSITION              97 /* RWD */
01313 
01314 /* Increasing (decreasing) this value will increase (decrease) the width
01315  * of the image.
01316  * Type: Range
01317  */
01318 #define NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_SIZE                  98 /* RWD */
01319 
01320 /* Increasing (decreasing) this value will cause the right and left sides
01321  * of the image to become more (less) convex.
01322  * Type: Range
01323  */  
01324 #define NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_PINCUSHION            99 /* RWD */
01325 
01326 /* Increasing (decreasing) this value will move the center section of the
01327  * image towards the right(left) side of the display.
01328  * Type: Range
01329  */  
01330 #define NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_PINCUSHION_BALANCE    100/* RWD */
01331 
01332 /* Increasing (decreasing) this value will shift the red pixels to the right
01333  * (left) across the image and the blue pixels left (right) across the image
01334  * with respect to the green pixels.
01335  * Type: Range
01336  */  
01337 #define NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_CONVERGENCE           101/* RWD */
01338 
01339 /* Increasing (decreasing) this value will increase (decrease) the
01340  * density of pixels in the image center.
01341  * Type: Range
01342  */
01343 #define NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_LINEARITY             102/* RWD */
01344 
01345 /* Increasing (decreasing) this value shifts the density of pixels from
01346  * the left (right) side to the right (left) side of the image.
01347  * Type: Range
01348  */
01349 #define NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_LINEARITY_BALANCE     103/* RWD */
01350 
01351 /* Increasing (decreasing) this value moves the image toward the
01352  * top (bottom) edge of the display.
01353  * Type: Range
01354  */
01355 #define NV_CTRL_DDCCI_GEOMETRY_VERTICAL_POSITION                104/* RWD */
01356 
01357 /* Increasing (decreasing) this value will increase (decrease) the
01358  * height of the image
01359  * Type: Range
01360  */
01361 #define NV_CTRL_DDCCI_GEOMETRY_VERTICAL_SIZE                    105/* RWD */
01362 
01363 /* Increasing (decreasing) this value will cause the top and bottom
01364  * edges of the image to become more (less) convex.
01365  * Type: Range
01366  */
01367 #define NV_CTRL_DDCCI_GEOMETRY_VERTICAL_PINCUSHION              106/* RWD */
01368 
01369 /* Increasing (decreasing) this value will move the center section of
01370  * the image toward the top (bottom) edge of the display.
01371  * Type: Range
01372  */
01373 #define NV_CTRL_DDCCI_GEOMETRY_VERTICAL_PINCUSHION_BALANCE      107/* RWD */
01374 
01375 /* Increasing (decreasing) this value shifts the red pixels up (down)
01376  * across the image and the blue pixels down (up) across the image
01377  * with respect to the green pixels.
01378  * Type: Range
01379  */
01380 #define NV_CTRL_DDCCI_GEOMETRY_VERTICAL_CONVERGENCE             108/* RWD */
01381 
01382 /* Increasing (decreasing) this value will increase (decrease) the
01383  * density of scan lines in the image center.
01384  * Type: Range
01385  */
01386 #define NV_CTRL_DDCCI_GEOMETRY_VERTICAL_LINEARITY               109/* RWD */
01387 
01388 /* Increasing (decreasing) this value shifts the density of scan lines
01389  * from the top (bottom) end to the bottom (top) end of the image.
01390  * Type: Range
01391  */
01392 #define NV_CTRL_DDCCI_GEOMETRY_VERTICAL_LINEARITY_BALANCE       110/* RWD */
01393 
01394 /* Increasing (decreasing) this value will increase (decrease) the
01395  * degree of keystone distortion in the image.
01396  * Type: Range
01397  */
01398 #define NV_CTRL_DDCCI_GEOMETRY_KEYSTONE                         111/* RWD */
01399 
01400 /* Increasing (decreasing) this value shifts the top section of the
01401  * image to the right (left) with respect to the bottom section of the
01402  * image.
01403  * Type: Range
01404  */
01405 #define NV_CTRL_DDCCI_GEOMETRY_KEY_BALANCE                      112/* RWD */
01406 
01407 /* Increasing (decreasing) this value will increase (decrease) the
01408  * degree of trapezoid distortion in the image.
01409  * Type: Range
01410  */
01411 #define NV_CTRL_DDCCI_GEOMETRY_TRAPEZOID                        113/* RWD */
01412 
01413 /* Increasing (decreasing) this value will increase (decrease) the
01414  * ratio between the horizontal size at the top of the image and the
01415  * horizontal size at the bottom of the image.
01416  * Type: Range
01417  */
01418 #define NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_TRAPEZOID             114/* RWD */
01419 
01420 /* Increasing (decreasing) this value will increase (decrease) the
01421  * ratio between the vertical size at the left of the image and the
01422  * vertical size at the right of the image.
01423  * Type: Range
01424  */
01425 #define NV_CTRL_DDCCI_GEOMETRY_VERTICAL_TRAPEZOID               115/* RWD */
01426 
01427 /* Increasing (decreasing) this value rotates the image (counter)
01428   clockwise about the center point of the image.
01429  * Type: Range
01430  */
01431 #define NV_CTRL_DDCCI_GEOMETRY_TILT                             116/* RWD */
01432 
01433 /* Increasing (decreasing) this value will increase (decrease) the
01434  * distance between the left and right sides at the top of the image.
01435  * Type: Range
01436  */
01437 #define NV_CTRL_DDCCI_GEOMETRY_TOP_CORNER                       117/* RWD */
01438 
01439 /* Increasing (decreasing) this value moves the top end of the
01440  * image to the right (left).
01441  * Type: Range
01442  */
01443 #define NV_CTRL_DDCCI_GEOMETRY_TOP_CORNER_BALANCE               118/* RWD */
01444 
01445 /* Increasing (decreasing) this value will increase (decrease) the
01446  * distance between the left and right sides at the bottom of the
01447  * image.
01448  * Type: Range
01449  */
01450 #define NV_CTRL_DDCCI_GEOMETRY_BOTTOM_CORNER                    119/* RWD */
01451 
01452 /* Increasing (decreasing) this value moves the bottom end of the
01453  * image to the right (left).
01454  * Type: Range
01455  */
01456 #define NV_CTRL_DDCCI_GEOMETRY_BOTTOM_CORNER_BALANCE            120/* RWD */
01457 
01458 
01459 /**************************************
01460  * DDC/CI VCP CODES: PRESET SELECTION *
01461  **************************************/
01462 
01463 /* Restore all factory presets including brightness / contrast,
01464  * geometry, color and TV defaults.
01465  * NV__CTRL_DDCCI_ON causes defaults to be restored 
01466  * A value of NV_CTRL_DDCCI_OFF shall be ignored 
01467  * Type: Boolean
01468  */
01469 #define NV_CTRL_DDCCI_PRESET_RESTORE_DEFAULTS                   121/* -WD */
01470 
01471 /* Restores factory defaults for brightness and contrast adjustments.
01472  * NV_CTRL_DDCCI_ON causes defaults to be restored 
01473  * A value of NV_CTRL_DDCCI_OFF shall be ignored 
01474  * Type: Boolean
01475  */
01476 #define NV_CTRL_DDCCI_PRESET_RESTORE_DEFAULTS_BRIGHTNESS_CONTRAST 122/* -WD */
01477 
01478 /* Restore factory defaults for geometry adjustments.
01479  * NV_CTRL_DDCCI_ON causes defaults to be restored 
01480  * A value of NV_CTRL_DDCCI_OFF shall be ignored 
01481  * Type: Boolean
01482  */
01483 #define NV_CTRL_DDCCI_PRESET_RESTORE_DEFAULTS_GEOMETRY          123/* -WD */
01484 
01485 /* Restore factory defaults for color settings.
01486  * NV_CTRL_DDCCI_ON causes defaults to be restored 
01487  * A value of NV_CTRL_DDCCI_OFF shall be ignored 
01488  * Type: Boolean
01489  */
01490 #define NV_CTRL_DDCCI_PRESET_RESTORE_DEFAULTS_COLOR             124/* -WD */
01491 
01492 /* Restore factory defaults for TV functions.
01493  * NV_CTRL_DDCCI_ON causes defaults to be restored 
01494  * A value of NV_CTRL_DDCCI_OFF shall be ignored 
01495  * Type: Boolean
01496  */
01497 #define NV_CTRL_DDCCI_PRESET_RESTORE_DEFAULTS_TV                125/* -WD */
01498 
01499 /* Store / Restore the user saved values for current mode.
01500  * - NV_CTRL_DDCCI_PRESET_SETTINGS_STORE_CURRENT:
01501  *   Store current settings in the monitor.
01502  * - NV_CTRL_DDCCI_PRESET_SETTINGS_RESTORE_FACTORY_DEFAULTS:
01503  *  Restore factory defaults for current mode. If no factory
01504  *  defaults then restore user values for current mode.
01505  * - All other values are reserved and shall be ignored.
01506  * Type: Integer
01507  */
01508 #define NV_CTRL_DDCCI_PRESET_SETTINGS                           126/* -WD */
01509 #define NV_CTRL_DDCCI_PRESET_SETTINGS_STORE_CURRENT             1
01510 #define NV_CTRL_DDCCI_PRESET_SETTINGS_RESTORE_FACTORY_DEFAULTS  2
01511 
01512 
01513 /***************************************
01514  * DDC/CI VCP CODES: IMAGE ADJUSTMENTS *
01515  ***************************************/
01516 
01517 /* 
01518  * Increasing (decreasing) this value will increase (decrease) the
01519  * Brightness of the image.
01520  * Type: Range
01521  */
01522 #define NV_CTRL_DDCCI_IMAGE_BRIGHTNESS                          127/* RWD */
01523 
01524 /* 
01525  * Increasing (decreasing) this value will increase (decrease) the
01526  * Contrast of the image.
01527  * Type: Range
01528  */
01529 #define NV_CTRL_DDCCI_IMAGE_CONTRAST                            128/* RWD */  
01530 
01531 /* 
01532  * Turn on / off an auto setup function (periodic or event driven)
01533  * 0 and  3 : Shall be ignored
01534  * NV_CTRL_DDCCI_IMAGE_AUTO_SETUP_TOGGLE_OFF : Turn auto setup off
01535  * NV_CTRL_DDCCI_IMAGE_AUTO_SETUP_TOGGLE_ON : Turn auto setup on
01536  * Type: Integer
01537  */         
01538 #define NV_CTRL_DDCCI_IMAGE_AUTO_SETUP_TOGGLE                   129/* -WD */
01539 #define NV_CTRL_DDCCI_IMAGE_AUTO_SETUP_TOGGLE_OFF               1
01540 #define NV_CTRL_DDCCI_IMAGE_AUTO_SETUP_TOGGLE_ON                2
01541 
01542 /* 
01543  * Perform autosetup function (H/V position, clock, clock phase, A/D
01544  * converter, etc)
01545  * NV_CTRL_OFF : Indicates that auto-setup is not active
01546  * NV_CTRL_ON : Perform autosetup
01547  * >=2 : Shall be ignored
01548  * Type: Integer
01549  */         
01550 #define NV_CTRL_DDCCI_IMAGE_AUTO_SETUP                          130/* RWD */
01551 
01552 /* Increasing (decreasing) this value will increase (decrease) the
01553  * sampling clock frequency 
01554  * Type: Range
01555  */
01556 #define NV_CTRL_DDCCI_IMAGE_CLOCK                               131/* RWD */
01557 
01558 /* Increasing (decreasing) this value will increase (decrease) the
01559  * phase shift of the sampling clock
01560  * Type: Range
01561  */
01562 #define NV_CTRL_DDCCI_IMAGE_CLOCK_PHASE                         132/* RWD */
01563 
01564 /* Allows the display to specify the minimum increment in which it
01565  * can adjust the color temperature.
01566  * This will be used in conjunction with 
01567  * NV_CTRL_DDCCI_IMAGE_COLOR_TEMPERATURE_REQUEST, Color temperature request.
01568  * Values of 0 and > 5000 are invalid and shall be ignored.
01569  * Type: Integer
01570  */
01571 #define NV_CTRL_DDCCI_IMAGE_COLOR_TEMPERATURE_INCREMENT         133/* R-D */
01572 
01573 /* Allows a specified color temperature (in °K) to be requested. If
01574  * display is unable to achieve requested color temperature, then it
01575  * should move to the closest possible temperature.
01576  * A value of 0 shall be treated as a request for a color temperature
01577  * of 3000°K. Values greater than 0 shall be used as a multiplier of
01578  * the color temperature increment (read using 
01579  * NV_CTRL_DDCCI_IMAGE_COLOR_TEMPERATURE_INCREMENT) and the
01580  * result added to the base value of 3000°K
01581  * Example:
01582  * If NV_CTRL_DDCCI_IMAGE_COLOR_TEMPERATURE_INCREMENT returns a value of 
01583  * 50°K and NV_CTRL_DDCCI_IMAGE_COLOR_TEMPERATURE_INCREMENT sends a
01584  * value of 50 (decimal) then the display shall interpret this as a
01585  * request to adjust the color temperature to 5500°K
01586  * (3000 + (50 * 50))°K = 5500°K
01587  * Notes:
01588  * 1) Applications using this function are recommended to read the
01589  * actual color temperature after using this command and taking
01590  * appropriate action.
01591  * 2) This control is only recommended if the display can produce a
01592  * continuously (at defined increment, see VCP code 0Bh) variable
01593  * color temperature.
01594  * Type: Range
01595  */
01596 #define NV_CTRL_DDCCI_IMAGE_COLOR_TEMPERATURE_REQUEST           134/* RWD */
01597 
01598 /* Select a specified color temperature.
01599  * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_SRGB : sRGB
01600  * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_NATIVE : Display native
01601  * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_4000K :  4000 K
01602  * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_5000K :  5000 K
01603  * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_6500K :  6500 K
01604  * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_7500K :  7500 K
01605  * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_8200K :  8200 K
01606  * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_9300K :  9300 K
01607  * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_10000K : 10000 K
01608  * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_USER1 :  11500 K
01609  * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_USER1 :  User 1
01610  * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_USER2 :  User 2
01611  * NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_USER3 :  User 3
01612  * 00 and >=0E shall be ignored
01613  * Type: Integer
01614  */
01615 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET                 135/* RWD */
01616 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_SRGB            0x01
01617 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_NATIVE          0x02
01618 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_4000K           0x03
01619 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_5000K           0x04
01620 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_6500K           0x05
01621 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_7500K           0x06
01622 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_8200K           0x07
01623 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_9300K           0x08
01624 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_10000K          0x09
01625 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_11500K          0x0A
01626 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_USER1           0x0B
01627 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_USER2           0x0C
01628 #define NV_CTRL_DDCCI_IMAGE_SELECT_COLOR_PRESET_USER3           0x0D
01629 
01630 /*
01631  * Increasing (decreasing) this value will increase (decrease) the
01632  * luminance of red pixels.
01633  * The value returned shall be an indication of the actual red gain at
01634  * the current color temperature and not be normalized.
01635  * Type: Range
01636  */
01637 #define NV_CTRL_DDCCI_IMAGE_RED_VIDEO_GAIN                      136/* RWD */
01638 
01639 /*
01640  * Increasing (decreasing) this value will increase (decrease) the
01641  * luminance of green pixels.
01642  * The value returned shall be an indication of the actual green gain at
01643  * the current color temperature and not be normalized.
01644  * Type: Range
01645  */
01646 #define NV_CTRL_DDCCI_IMAGE_GREEN_VIDEO_GAIN                    137/* RWD */
01647 
01648 /*
01649  * Increasing (decreasing) this value will increase (decrease) the
01650  * luminance of blue pixels.
01651  * The value returned shall be an indication of the actual blue gain at
01652  * the current color temperature and not be normalized.
01653  * Type: Range
01654  */
01655 #define NV_CTRL_DDCCI_IMAGE_BLUE_VIDEO_GAIN                     138/* RWD */
01656 
01657 /* Increasing (decreasing) this value will increase (decrease) the
01658  * black level of red pixels.
01659  * Type: Range
01660  */
01661 #define NV_CTRL_DDCCI_IMAGE_RED_VIDEO_BLACK_LEVEL               139/* RWD */
01662 
01663 /* Increasing (decreasing) this value will increase (decrease) the
01664  * black level of green pixels.
01665  * Type: Range
01666  */
01667 #define NV_CTRL_DDCCI_IMAGE_GREEN_VIDEO_BLACK_LEVEL             140/* RWD */
01668 
01669 /* Increasing (decreasing) this value will increase (decrease) the
01670  * black level of blue pixels.
01671  * Type: Range
01672  */
01673 #define NV_CTRL_DDCCI_IMAGE_BLUE_VIDEO_BLACK_LEVEL              141/* RWD */
01674 
01675 /* Increasing (decreasing) this value will adjust the focus of the image.
01676  * Type: Range
01677  */
01678 #define NV_CTRL_DDCCI_IMAGE_FOCUS                               142/* RWD */
01679 
01680 /* Increasing (decreasing) this value controls the horizontal picture
01681  * moiré cancellation.
01682  * Type: Range
01683  */
01684 #define NV_CTRL_DDCCI_IMAGE_HORIZONTAL_MOIRE                    143/* RWD */
01685 
01686 /* Increasing (decreasing) this value controls the vertical picture
01687  * moiré cancellation.
01688  * Type: Range
01689  */
01690 #define NV_CTRL_DDCCI_IMAGE_VERTICAL_MOIRE                      144/* RWD */
01691 
01692 /* Increasing (decreasing) this value will increase (decrease) the
01693  * distance to the focal plane of the image.
01694  * Type: Range
01695  */
01696 #define NV_CTRL_DDCCI_IMAGE_ADJUST_FOCAL_PLANE                  145/* RWD */
01697 
01698 /* Increasing (decreasing) this value will increase (decrease) the
01699  * zoom function of the optics
01700  * Type: Range
01701  */
01702 #define NV_CTRL_DDCCI_IMAGE_ADJUST_ZOOM                         146/* RWD */
01703 
01704 /* This value will cause the picture to flip horizontally.
01705  * NV_CTRL_DDCCI_ON : flip horizontally
01706  * NV_CTRL_DDCCI_OFF : Shall be ignored
01707  * Type: Boolean
01708  */
01709 #define NV_CTRL_DDCCI_IMAGE_HOR_FLIP                            147/* -WD */
01710 
01711 /* This value will cause the picture to flip vertically.
01712  * NV_CTRL_DDCCI_ON : flip vertically
01713  * NV_CTRL_DDCCI_OFF : Shall be ignored
01714  * Type: Boolean
01715  */
01716 #define NV_CTRL_DDCCI_IMAGE_VER_FLIP                            148/* -WD */
01717 
01718 /* Changing this value will affect the scaling (input versus output)
01719  * function of the display.
01720  * NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING_NO_SCALING : No scaling, 1:1 relationship
01721  * NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING_MAX_NO_DISTORT2 : Scale to maximum 
01722  *   without AR distortion
01723  * NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING_MAX_VERTICAL : Scale to maximum vertical 
01724      size
01725  * NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING_MAX_HORIZONTAL ; Scale to maximum 
01726      horizontal size
01727  * 0 and >=5 : Shall be ignored
01728  * Type: Integer
01729  */
01730 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING                     149/* RWD */
01731 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING_NO_SCALING          1
01732 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING_MAX_NO_DISTORT      2
01733 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING_MAX_VERTICAL        3
01734 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_SCALING_MAX_HORIZONTAL      4
01735 
01736 /* Allows one of several image expansion algorithms to be selecte
01737  * to suit different types of image and/or different personal
01738  * preference.
01739  * NV_CTRL_DDCCI_IMAGE_SHARPNESS_FILTER_FUNC(1) : Filter function 1
01740  * NV_CTRL_DDCCI_IMAGE_SHARPNESS_FILTER_FUNC(2) : Filter function 2
01741  * NV_CTRL_DDCCI_IMAGE_SHARPNESS_FILTER_FUNC(3) : Filter function 3
01742  * NV_CTRL_DDCCI_IMAGE_SHARPNESS_FILTER_FUNC(4) : Filter function 4
01743  * 0 and  5 shall be ignored
01744  * Type: Integer
01745  */
01746 #define NV_CTRL_DDCCI_IMAGE_SHARPNESS                           150/* RWD */
01747 #define NV_CTRL_DDCCI_IMAGE_SHARPNESS_FILTER_FUNC(n)            n
01748 
01749 /* Indicates the orientation of the screen.
01750  * NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_0        
01751  *      The normal landscape mode.
01752  * NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_90   
01753  *      Portrait mode achieved by clockwise rotation of the display 90 degrees.
01754  * NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_180
01755  *      Landscape mode achieved by rotation of the display 180 degrees.
01756  * NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_270
01757  *      Portrait mode achieved by clockwise rotation of the display 270 degrees.
01758  * NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_NA 
01759  *      Indicates that the display cannot supply the current orientation
01760  * Type: Integer
01761  */
01762 #define NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION                  151/* R-D */
01763 #define NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_0                0x01
01764 #define NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_90               0x02
01765 #define NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_180              0x03
01766 #define NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_270              0x04
01767 #define NV_CTRL_DDCCI_IMAGE_SCREEN_ORIENTATION_NA               0xFF
01768 
01769 /* Selects a scan format.
01770  * NV_CTRL_DDCCI_IMAGE_SCAN_FORMAT_UNDERSCAN: Underscan
01771  * NV_CTRL_DDCCI_IMAGE_SCAN_FORMAT_OVERSCAN: Overscan
01772  * NV_CTRL_DDCCI_IMAGE_SCAN_FORMAT_WIDESCREEN: Widescreen
01773  * Type: Integer
01774  */
01775 #define NV_CTRL_DDCCI_IMAGE_SCAN_FORMAT                         152/* RWD */
01776 #define NV_CTRL_DDCCI_IMAGE_SCAN_FORMAT_UNDERSCAN               1
01777 #define NV_CTRL_DDCCI_IMAGE_SCAN_FORMAT_OVERSCAN                2
01778 #define NV_CTRL_DDCCI_IMAGE_SCAN_FORMAT_WIDESCREEN              3
01779 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE                        153/* RWD */
01780 
01781 /* Display mode:
01782  * NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE_PRODUCTIVITY : 
01783  *      Productivity (e.g. office applications)
01784  * NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE_MIXED : Mixed (e.g. internet)
01785  * NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE_ENTERTAINMENT : 
01786         Entertainment (e.g. TV / movie)
01787  * NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE_USERDEFINED : User defined
01788  * Note:
01789  * The condition(s) associated with options 1, 2 and 3 are defined
01790  * by the display manufacturer
01791  * Type: Integer
01792  */
01793 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE_PRODUCTIVITY           1
01794 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE_MIXED                  2
01795 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE_ENTERTAINMENT          3
01796 #define NV_CTRL_DDCCI_IMAGE_DISPLAY_MODE_USERDEFINED            4
01797 
01798 /***********************************************
01799  * DDC/CI VCP CODES: WINDOWED IMAGE OPERATIONS *
01800  ***********************************************/
01801 
01802 /* Defines the top left X pixel of an area of the image. Specified in
01803  * co-ordinates of incoming image before any scaling etc in the display.
01804  * Type: Range
01805  */
01806 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_POSITION_TOP_LEFT_X         154/* RWD */ 
01807 
01808 /* Defines the top left Y pixel of an area of the image. Specified in
01809  * co-ordinates of incoming image before any scaling etc in the display.
01810  * Type: Range
01811  */
01812 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_POSITION_TOP_LEFT_Y         155/* RWD */
01813 
01814 /* Defines the bottom right X pixel of an area of the image.
01815  * Specified in co-ordinates of incoming image before any scaling
01816  * in the display.
01817  * Type: Range
01818  */
01819 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_POSITION_BOTTOM_RIGHT_X     156/* RWD */
01820 
01821 /* Defines the bottom right Y pixel of an area of the image.
01822  * Specified in co-ordinates of incoming image before any scaling
01823  * in the display.
01824  * Type: Range
01825  */
01826 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_POSITION_BOTTOM_LEFT_X      157/* RWD */
01827 
01828 /* Window control, enables the brightness and color within a
01829  * window to be different from the desktop.
01830  * NV_CTRL_DDCCI_WINDOWEDIMAGE_OLD_CONTROL_TOGGLE_OFF : Off
01831  * NV_CTRL_DDCCI_WINDOWEDIMAGE_OLD_CONTROL_TOGGLE_ON: On
01832  * All other values are reserved.
01833  * Notes:
01834  * 1. This control should be used in conjunction with
01835  *      NV_CTRL_DDCCI_WINDOWEDIMAGE_BACKGROUND
01836  * 2. This command structure is not recommended for new designs,
01837  * see NV_CTRL_DDCCI_WINDOWEDIMAGE_CONTROL_TOGGLE for alternate.
01838  * Type: Integer
01839  */
01840 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_OLD_CONTROL_TOGGLE          158/* RWD */
01841 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_OLD_CONTROL_TOGGLE_OFF      1
01842 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_OLD_CONTROL_TOGGLE_ON       2
01843 
01844 /* Changes the contrast ratio between the area of the window and
01845  * the rest of the desktop
01846  * Lower (higher) values will cause the desktop brightness to
01847  * decrease (increase)
01848  * Notes:
01849  * 1. This contropl should be used in conjunction with 
01850  *  NV_CTRL_DDCCI_WINDOWEDIMAGE_OLD_CONTROL_TOGGLE
01851  * 2. This command structure is not recommended for new designs,
01852  * see NV_CTRL_DDCCI_WINDOWEDIMAGE_WINDOW_SELECT for alternate.
01853  * Type: Range
01854  */
01855 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_BACKGROUND                  159/* RWD */
01856 
01857 /* A value of 127 shall have no effect.
01858  * A value > 127 shall cause the color to shift towards yellow
01859  * A value < 127 shall cause the color to shift towards magenta
01860  * Type: Range 
01861  */
01862 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_6AXIS_COLOR_CONTROL_RED     160/* RWD */
01863 
01864 /* A value of 127 shall have no effect.
01865  * A value > 127 shall cause the color to shift towards green
01866  * A value < 127 shall cause the color to shift towards red
01867  * Type: Range 
01868  */
01869 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_6AXIS_COLOR_CONTROL_YELLOW  161/* RWD */
01870 
01871 /* A value of 127 shall have no effect.
01872  * A value > 127 shall cause the color to shift towards cyan
01873  * A value < 127 shall cause the color to shift towards yellow
01874  * Type: Range 
01875  */
01876 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_6AXIS_COLOR_CONTROL_GREEN   162/* RWD */
01877 
01878 /* A value of 127 shall have no effect.
01879  * A value > 127 shall cause the color to shift towards blue
01880  * A value < 127 shall cause the color to shift towards green
01881  * Type: Range 
01882  */
01883 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_6AXIS_COLOR_CONTROL_CYAN    163/* RWD */
01884 
01885 /* A value of 127 shall have no effect.
01886  * A value > 127 shall cause the color to shift towards magenta
01887  * A value < 127 shall cause the color to shift towards cyan
01888  * Type: Range 
01889  */
01890 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_6AXIS_COLOR_CONTROL_BLUE    164/* RWD */
01891 
01892 /* A value of 127 shall have no effect.
01893  * A value > 127 shall cause the color to shift towards red
01894  * A value < 127 shall cause the color to shift towards blue
01895  * Type: Range 
01896  */
01897 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_6AXIS_COLOR_CONTROL_MAGENTA 165/* RWD */
01898 
01899 /* Turn the selected window operation on / off.
01900  * Bit: NV_CTRL_DDCCI_WINDOWEDIMAGE_CONTROL_TOGGLE_DPY_IMAGE
01901  *         0      Window controls have no effect on the
01902  *                displayed image
01903  *         1      Window controls effect the displayed image
01904  *                (full image area)
01905  *  Bit: NV_CTRL_DDCCI_WINDOWEDIMAGE_CONTROL_TOGGLE_WINDOW(n)
01906  *         0      Window controls have no effect on the
01907  *                displayed image (window n)
01908  *         1      Window controls effect the displayed image
01909  *                (window n)
01910  *  n is between 1 and 7
01911  * Note: This command structure is recommend, in conjunction with
01912  * NV_CTRL_DDCCI_WINDOWEDIMAGE_WINDOW_SELECT, for all new designs.
01913  * Type: Bitmask
01914  */ 
01915 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_CONTROL_TOGGLE              166/* RWD */
01916 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_CONTROL_TOGGLE_DPY_IMAGE    1
01917 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_CONTROL_TOGGLE_WINDOW(n)    (1<<n)
01918 
01919 /* Change the selected window as defined with 
01920  * NV_CTRL_DDCCI_WINDOWEDIMAGE_CONTROL_TOGGLE
01921  * When a window is selected then all commands that the display
01922  * controller supports for window operations are valid, this may
01923  * include but is not limited to: brightness, contrast, R/G/B gain, 6-
01924  * axis color, sharpness, etc.
01925  * meaning of value NV_CTRL_DDCCI_WINDOWEDIMAGE_WINDOW_SELECT_DPY_IMAGE:
01926  *           Full display image area is selected except for
01927  *           area(s) of active windows
01928  * meaning of value NV_CTRL_DDCCI_WINDOWEDIMAGE_WINDOW_SELECT_WINDOW(n)
01929  *           Window n is selected
01930  * If this command is not supported then the `full image area' shall
01931  * be the default.
01932  * This command structure is recommend, in conjunction with 
01933  * NV_CTRL_DDCCI_WINDOWEDIMAGE_CONTROL_TOGGLE, for all new designs.
01934  * Type: Integer
01935  */
01936 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_WINDOW_SELECT               167/* RWD */
01937 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_WINDOW_SELECT_DPY_IMAGE     0
01938 #define NV_CTRL_DDCCI_WINDOWEDIMAGE_WINDOW_SELECT_WINDOW(n)     (1<<n)
01939 
01940 
01941 /*************************************/
01942 /* DDC/CI VCP CODES: AUDIO FUNCTIONS */
01943 /*************************************/
01944 
01945 /* Increasing (decreasing) this value will increase (decrease) the
01946  * audio volume.
01947  * Type: Range
01948  */
01949 #define NV_CTRL_DDCCI_AUDIO_SPEAKER_VOLUME                      168/* RWD */
01950 
01951 /* Increasing (decreasing) this value will increase (decrease) the
01952  * microphone gain.
01953  * Type: Range
01954  */
01955 #define NV_CTRL_DDCCI_AUDIO_MICROPHONE_VOLUME                   169/* RWD */
01956 
01957 /* Increasing (decreasing) this control will cause high frequency
01958  * audio to be emphasized (de-emphasised).
01959  * Type: Range
01960  */
01961 #define NV_CTRL_DDCCI_AUDIO_TV_AUDIO_TREBLE                     170/* RWD */
01962 
01963 /* Increasing (decreasing) this control will cause low frequency
01964  * audio to be emphasized (de-emphasised).
01965  * Type: Range
01966  */
01967 #define NV_CTRL_DDCCI_AUDIO_TV_AUDIO_BASS                       171/* RWD */
01968 
01969 /* This control affects the left ­ right balance of audio output.
01970  * Increasing (decreasing) the value will cause the balance to move
01971  * to the right (left).
01972  * Type: Range
01973  */
01974 #define NV_CTRL_DDCCI_AUDIO_TV_AUDIO_BALANCE                    172/* RWD */
01975 
01976 /* This control allows one of several audio modes to be selected.
01977  * NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE_SPEAKER_OFF: Display audio is disabled,
01978  * NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE_SPEAKER_MONO: Both display audio channels,
01979  *  use the left audio channel
01980  * NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE_SPEAKER_STEREO: Incoming left and right 
01981  *  audio. Channels feed separate display output audio channels.
01982  * NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE_SPEAKER_STEREO_EXPANDED: As defined 
01983  *  by the manufacturer.
01984  * Type: Integer
01985  */
01986 #define NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE                      173/* RWD */
01987 #define NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE_SPEAKER_OFF          0
01988 #define NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE_SPEAKER_MONO         1
01989 #define NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE_SPEAKER_STEREO       2
01990 #define NV_CTRL_DDCCI_AUDIO_TV_STEREO_MODE_SPEAKER_STEREO_EXPANDED 3
01991 
01992 
01993 /************************************/
01994 /* DDC/CI VCP CODES: DPVL Functions */
01995 /************************************/
01996 
01997 /* Video mode and status of a DPVL capable monitor
01998  * Bit   Value                          Meaning
01999  *  0      0      Raster scan mode
02000  *         1      DPVL mode
02001  *  1      0      Monitor is able to receive the next packet
02002  *         1      Monitor is unable to accept another packet
02003  *  2      0      No error detected in the last header received
02004  *         1      Error detected in the last header received
02005  * Other bits are reserved and shall be set to '0'.
02006  * Type: Bitmask
02007  */
02008 #define NV_CTRL_DDCCI_DPVL_MONITOR_STATUS                       174/* R-D */ 
02009 #define NV_CTRL_DDCCI_DPVL_MONITOR_STATUS_DPVL_MODE                     (1<<0)
02010 #define NV_CTRL_DDCCI_DPVL_MONITOR_STATUS_UNABLE_TO_RECEIVE_NEXT_PACKET (1<<1)
02011 #define NV_CTRL_DDCCI_DPVL_MONITOR_STATUS_ERROR_DETECTED_IN_LAST_HEADER (1<<2)
02012 
02013 /* Counter for the DPVL packets received (valid and invalid ones).
02014  * This value counts from 0000h to FFFFh and then rolls over to 0000h.
02015  * The host can reset the value to 0000h.
02016  * Type: Range
02017  */
02018 #define NV_CTRL_DDCCI_DPVL_PACKET_COUNT                         175/* RWD */
02019 
02020 /* The X origin of the monitor in the virtual screen. The support of
02021  * this command indicates the multi-display support of the display. If
02022  * a display supports this command, the monitor must also support
02023  * Monitor Y Origin command.
02024  * Type: Range; "0000h" to "FFFFh" or 0 to 65535
02025  */
02026 #define NV_CTRL_DDCCI_DPVL_MONITOR_X_ORIGIN                     176/* RWD */
02027 
02028 /* The Y origin of the display in the virtual screen. The support of
02029  * this command indicates the multi-display support of the display. If
02030  * a display supports this command, the monitor must also support
02031  * Monitor X Origin command.
02032  * Type: Range; "0000h" to "FFFFh" or 0 to 65535
02033  */
02034 #define NV_CTRL_DDCCI_DPVL_MONITOR_Y_ORIGIN                     177/* RWD */
02035 
02036 /* Error Counter for the DPVL header. The counter value saturates
02037  * at FFFFh. Host can reset to 0000h.
02038  * Type: Range
02039  */
02040 #define NV_CTRL_DDCCI_DPVL_HEADER_ERROR_COUNT                   178/* RWD */
02041 
02042 /* CRC error Counter for the DPVL body (containing video data).
02043  * The counter value saturates at FFFFh. The Host can reset to 0000h
02044  * Type: Range
02045  */
02046 #define NV_CTRL_DDCCI_DPVL_BODY_CRC_ERROR_COUNT                 179/* RWD */
02047 
02048 /* Assigned identification number for the monitor.
02049  * Type: Valid range is 0000h to FFFEh, FFFFh is reserved for broadcast.
02050  */
02051 #define NV_CTRL_DDCCI_DPVL_CLIENT_ID                            180/* RWD */
02052 
02053 /* Indicates the status of the DVI link
02054  * NV_CTRL_DDCCI_DPVL_LINK_CONTROL_DISABLED: Link shutdown is disabled
02055  * NV_CTRL_DDCCI_DPVL_LINK_CONTROL_ENABLED: Link shutdown is enabled
02056  * Type: Boolean
02057  */
02058 #define NV_CTRL_DDCCI_DPVL_LINK_CONTROL                         181/* RWD */
02059 #define NV_CTRL_DDCCI_DPVL_LINK_CONTROL_DISABLED                0
02060 #define NV_CTRL_DDCCI_DPVL_LINK_CONTROL_ENABLED                 1
02061 
02062 /**********************************************/
02063 /* DDC/CI VCP CODES:  Miscellaneous Functions */
02064 /**********************************************/
02065 
02066 /* Causes a CRT display to perform a degauss cycle with
02067  * NV_CTRL_DDCCI_ON
02068  * Type: Boolean
02069  */
02070 #define NV_CTRL_DDCCI_MISC_DEGAUSS                              182/* -WD */
02071 
02072 /* Used to indicate that a display user control (excluding power
02073  * controls) has been used to change and save (or autosave) a new value.
02074  * NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE_NO_NEW : No new control value
02075  * NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE_NO_USER_CONTROLS : A new control value 
02076  *  has been saved
02077  * NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE_NO_USER_CONTROLS : No user controls are present
02078  * Note:
02079  * A value = NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE_NEW should only be reset to 
02080  * a value = NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE_NO_NEW by a host write
02081  * operation and not by the display
02082  * Type: Integer
02083  */
02084 #define NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE                    183/* RWD */
02085 #define NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE_NO_NEW             0x01
02086 #define NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE_NEW                0x02
02087 #define NV_CTRL_DDCCI_MISC_NEW_CONTROL_VALUE_NO_USER_CONTROLS   0xFF
02088 
02089 /* Allows display controls to be used as soft keys
02090  * NV_CTRL_DDCCI_MISC_SOFT_CONTROLS_NO_BUTTON_ACTIVE : No button active
02091  * NV_CTRL_DDCCI_MISC_SOFT_CONTROLS_BUTTON(n): Button n active
02092  * n is between 1 and 7.
02093  * NV_CTRL_DDCCI_MISC_SOFT_CONTROLS_NONE : No controls present
02094  * Note:
02095  * A `button active' value should only be reset to a value = 0 by
02096  * host write operation and not by the display
02097  * Type: Integer
02098  */
02099 #define NV_CTRL_DDCCI_MISC_SOFT_CONTROLS                        184/* RWD */
02100 #define NV_CTRL_DDCCI_MISC_SOFT_CONTROLS_NO_BUTTON_ACTIVE       0
02101 #define NV_CTRL_DDCCI_MISC_SOFT_CONTROLS_BUTTON(n)              n
02102 #define NV_CTRL_DDCCI_MISC_SOFT_CONTROLS_NONE                   0xFF
02103 
02104 /* When read this control returns the VCP code associated with
02105  * the new control value reported using 02H
02106  * Examples:
02107  * If brightness has been changed then return value of 10h
02108  * If red gain has been changed then return value of 16h.
02109  * Type: Range
02110  */
02111 #define NV_CTRL_DDCCI_MISC_ACTIVE_CONTROL                       185/* R-D */
02112 
02113 /* Used to select the active video source
02114  * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_ANALOG_1: Analog video (R/G/B) 1
02115  * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_ANALOG_2: Analog video (R/G/B) 2
02116  * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_DIGITAL_1: Digital video (TMDS) 1
02117  * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_DIGITAL_2: Digital video (TMDS) 2
02118  * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPOSITE_1: Composite video 1
02119  * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPOSITE_2: Composite video 2
02120  * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_SVIDEO_1: S-video 1
02121  * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_SVIDEO_2: S-video 2
02122  * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_TUNER_1: Tuner 1
02123  * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_TUNER_2: Tuner 2
02124  * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_TUNER_3: Tuner 3
02125  * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPONENT_1: Component video (YPrPb/YCrCb) 1
02126  * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPONENT_2: Component video (YPrPb/YCrCb) 2
02127  * NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPONENT_3: Component video (YPrPb/YCrCb) 3
02128  * Type: Integer
02129  */
02130 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE                         186/* RWD */
02131 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_ANALOG_1                1
02132 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_ANALOG_2                2
02133 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_DIGITAL_1               3
02134 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_DIGITAL_2               4
02135 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPOSITE_1             5
02136 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPOSITE_2             6
02137 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_SVIDEO_1                7
02138 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_SVIDEO_2                8
02139 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_TUNER_1                 9
02140 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_TUNER_2                 10
02141 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_TUNER_3                 11
02142 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPONENT_1             12
02143 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPONENT_2             13
02144 #define NV_CTRL_DDCCI_MISC_INPUT_SOURCE_COMPONENT_3             14
02145 
02146 /* ncreasing (decreasing) this value will increase (decrease) the
02147  * velocity modulation of the horizontal scan as a function of a
02148  * change in the luminance level.
02149  * Type: Range
02150  */
02151 #define NV_CTRL_DDCCI_MISC_VELOCITY_SCAN_MODULATION             187/* RWD */
02152 
02153 /* Increasing this control increases the amplitude of the color
02154  * difference components of the video signal.
02155  * The result is an increase in the amount of pure color relative to
02156  * white in the video. This control does not affect the RGB input,
02157  * only the TV video inputs.
02158  * Type: Range
02159  */
02160 #define NV_CTRL_DDCCI_MISC_TV_COLOR_SATURATION                  188/* RWD */
02161 
02162 /* Used to increment / decrement between TV-channels, the exact
02163  * behavior is implementation specific (e.g. increment / decrement
02164  * to next numeric channel or increment / decrement to next
02165  * channel with a signal)
02166  * NV_CTRL_DDCCI_MISC_TV_CHANNEL_UP_DOWN_INCREMENT: Increment channel
02167  * NV_CTRL_DDCCI_MISC_TV_CHANNEL_UP_DOWN_DECREMENT: Decrement channel
02168  * Type: Integer
02169  */
02170 #define NV_CTRL_DDCCI_MISC_TV_CHANNEL_UP_DOWN                   189/* -WD */
02171 #define NV_CTRL_DDCCI_MISC_TV_CHANNEL_UP_DOWN_INCREMENT         1
02172 #define NV_CTRL_DDCCI_MISC_TV_CHANNEL_UP_DOWN_DECREMENT         2
02173 
02174 /* Increasing this control increases the amplitude of the high
02175  * frequency components of the video signal.
02176  * This allows fine details to be accentuated. This control does not
02177  * affect the RGB input, only the TV video inputs.
02178  * Type: Range
02179  */
02180 #define NV_CTRL_DDCCI_MISC_TV_SHARPNESS                         190/* RWD */
02181 
02182 /* Provides for the TV-audio to be muted or unmated.
02183  * NV_CTRL_DDCCI_MISC_TV_AUDIO_MUTE_ON: Mute the audio
02184  * NV_CTRL_DDCCI_MISC_TV_AUDIO_MUTE_OFF: Unmute the audio
02185  * Type: Range
02186  */
02187 #define NV_CTRL_DDCCI_MISC_TV_AUDIO_MUTE                        191/* RWD */
02188 #define NV_CTRL_DDCCI_MISC_TV_AUDIO_MUTE_ON                     1
02189 #define NV_CTRL_DDCCI_MISC_TV_AUDIO_MUTE_OFF                    2
02190 
02191 /* Increasing (decreasing) this control increases (decreases) the
02192  * ratio between whites and blacks in the video.
02193  * This control does not affect the RGB input, only the TV video
02194  * inputs.
02195  * Type: Range
02196  */
02197 #define NV_CTRL_DDCCI_MISC_TV_CONTRAST                          192/* RWD */
02198 
02199 /* Also known as `tint'
02200  * Increasing (decreasing) this control increases (decreases) the
02201  * wavelength of the color component of the video signal.
02202  * The result is a shift towards red (blue) in the hue of all colors.
02203  * This control does not affect the RGB input, only the TV video
02204  * inputs.
02205  * Type: Range
02206  */
02207 #define NV_CTRL_DDCCI_MISC_TV_HUE                               193/* RWD */
02208 
02209 /* Increasing this control increases the black level of the video,
02210  * resulting in an increase of the luminance level of the video.
02211  * A value of zero represents the darkest level possible.
02212  * This control does not affect the RGB input, only the TV video
02213  * inputs.
02214  * Type: Range
02215  */
02216 #define NV_CTRL_DDCCI_MISC_TV_BLACK_LEVEL_SHARPNESS             194/* RWD */
02217 
02218 /* Horizontal synchronization signal frequency in Hz as determined
02219  * by the display.
02220  * FFh: Indicates that the display cannot supply this information
02221  * Type: Range
02222  */
02223 #define NV_CTRL_DDCCI_MISC_HORIZONTAL_FREQUENCY                 195/* R-D */
02224 
02225 /* Vertical synchronization signal frequency in 0.01Hz as
02226  * determined by the display.
02227  * FFh: Indicates that the display cannot supply this information
02228  * Type: Range
02229  */
02230 #define NV_CTRL_DDCCI_MISC_VERTICAL_FREQUENCY                   196/* R-D */
02231 
02232 /* Select a type of LCD sub-pixel structure
02233  * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_UNDEFINED:
02234  *      Sub-pixel layout is not defined
02235  * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_RGB_V:
02236  *      Red / Green / Blue vertical stripe
02237  * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_RGB_H:
02238  *      Red / Green / Blue horizontal stripe
02239  * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_BGR_V:
02240  *      Blue / Green / Red vertical stripe
02241  * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_BGR_H:
02242  *      Blue/ Green / Red horizontal stripe
02243  * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_QUAD_1:
02244  *      Quad-pixel, a 2 x 2 sub-pixel structure with red at top
02245  *      left, blue at bottom right and green at top right and
02246  *      bottom left
02247  * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_QUAD_2:
02248  *      Quad-pixel, a 2 x 2 sub-pixel structure with red at
02249  *      bottom left, blue at top right and green at top left and
02250  *      bottom right
02251  * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_DELTA:
02252  *      Delta (triad)
02253  * NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_MOSAIC:
02254  *      Mosaic with red, green and blue fields overlayed 
02255  *      (field sequential color)
02256  * Type: Integer
02257  */
02258 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT            197/* R-D */
02259 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_UNDEFINED  0
02260 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_RGB_V      1
02261 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_RGB_H      2
02262 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_BGR_V      3
02263 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_BGR_H      4
02264 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_QUAD_1     5
02265 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_QUAD_2     6
02266 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_DELTA      7
02267 #define NV_CTRL_DDCCI_MISC_FLATPANEL_SUBPIXEL_LAYOUT_MOSAIC     8
02268 
02269 /* Select the base technology type
02270  * NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_CRT_SHADOWMASK: CRT (shadowmask)
02271  * NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_CRT_APERTURE_GRILL: CRT (aperture
02272  *      grill)
02273  * NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_TFT: TFT
02274  * NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_LCOS: LCoS
02275  * NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_PLASMA: Plasma
02276  * NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_OLED: OLED
02277  * NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_EL: EL
02278  * NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_MEM: MEM
02279  * Type: integer
02280  */
02281 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE              198/* R-D */
02282 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_CRT_SHADOWMASK       1
02283 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_CRT_APERTURE_GRILL   2
02284 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_TFT                  3
02285 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_LCOS                 4
02286 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_PLASMA               5
02287 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_OLED                 6
02288 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_EL                   7
02289 #define NV_CTRL_DDCCI_MISC_DISPLAY_TECHNOLOGY_TYPE_MEM                  8
02290 
02291 /* Returns the current value (in hours) of `active power on' time
02292  * accumulated by the display ­ a 2 byte value.
02293  * "Active power on" time is defined as the period when the
02294  * emissive elements(s) of the display ­ cathodes for a CRT,
02295  * fluorescent lamps for a LCD, etc ­ are active.
02296  * Type: Range
02297  */
02298 #define NV_CTRL_DDCCI_MISC_DISPLAY_USAGE_TIME                   199/* R-D */
02299 
02300 /* Returns the length (in bytes) of non-volatile storage in the display
02301  * available for writing a display descriptor ­ the maximum
02302  * descriptor length is 256 bytes
02303  * See 
02304  * Type: Range
02305  */
02306 #define NV_CTRL_DDCCI_MISC_DISPLAY_DESCRIPTOR_LENGTH            200/* R-D */
02307 
02308 /* If enabled (NV_CTRL_DDCCI_ON), the display descriptor written to the 
02309  * display using XNVCTRLSetDDCCIDisplayDescriptor() shall be displayed when 
02310  * no video is being received.
02311  * The duration for which it is displayed is left to individual manufacturers.
02312  * NV_CTRL_DDCCI_ON: Display is enabled
02313  * NV_CTRL_DDCCI_OFF: The display descriptor shall not be displayed.
02314  * Type: Boolean
02315  */
02316 #define NV_CTRL_DDCCI_MISC_ENABLE_DISPLAY_OF_DISPLAY_DESCRIPTOR 201/* RWD */
02317 
02318 /* A 2 byte value used to allow an application to only operate with
02319  * known products. The display manufacturer and application author
02320  * agree to a code such that application will only run when a valid
02321  * code is present in the display.
02322  * Type: Integer
02323  */
02324 #define NV_CTRL_DDCCI_MISC_APPLICATION_ENABLE_KEY               202/* R-D */
02325 
02326 /* This VCP code provides allows a 2 byte value identifying the
02327  * firmware level installed in the display to be determined.
02328  * Type: Range
02329  */
02330 #define NV_CTRL_DDCCI_MISC_DISPLAY_FIRMWARE_LEVEL               203/* R-D */
02331 
02332 /* Indicates the current state of the display OSD
02333  * NV_CTRL_DDCCI_MISC_OSD_DISABLED: OSD is disabled
02334  * NV_CTRL_DDCCI_MISC_OSD_ENABLED: OSD is enabled
02335  * NV_CTRL_DDCCI_MISC_OSD_CANNOT_SUPPLY: Indicates that the display cannot 
02336  *  supply this information.
02337  * Type: Integer
02338  */
02339 #define NV_CTRL_DDCCI_MISC_OSD                                  204/* RWD */
02340 #define NV_CTRL_DDCCI_MISC_OSD_DISABLED                         1
02341 #define NV_CTRL_DDCCI_MISC_OSD_ENABLED                          2
02342 #define NV_CTRL_DDCCI_MISC_OSD_CANNOT_SUPPLY                    0xFF
02343 
02344 /* Allows the displayed OSD language to be selected.
02345  * Type: Integer */
02346 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE                         205/* RWD */
02347 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_CHINESE                 1
02348 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_ENGLISH                 2
02349 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_FRENCH                  3
02350 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_GERMAN                  4
02351 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_ITALIAN                 5
02352 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_JAPANESE                6
02353 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_KOREAN                  7
02354 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_PORTUGESE               8
02355 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_RUSSIAN                 9
02356 #define NV_CTRL_DDCCI_MISC_OSD_LANGUAGE_SPANISH                 10
02357 
02358 /* An `auxiliary display' is a small alpha-numeric display associated
02359  * with the primary display and able to be accessed via the primary
02360  * display.
02361  * This command returns a 1 byte value that defines the number of
02362  * characters and the number of rows available. The format is:
02363  * Bits 0 to 5 : The number of characters / row
02364  * Bits 6 to 7 : The number of rows
02365  * I.e. The maximum auxiliary display size is 4 rows each with 64 characters
02366  * Type: Bitmask
02367  */
02368 #define NV_CTRL_DDCCI_MISC_AUXILIARY_DISPLAY_SIZE               206/* R-D */
02369 #define NV_CTRL_DDCCI_MISC_AUXILIARY_DISPLAY_SIZE_COLUMNS_MASK  0x1F
02370 #define NV_CTRL_DDCCI_MISC_AUXILIARY_DISPLAY_SIZE_ROWS_MASK     0x60
02371 
02372 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT                        207/* RWD */
02373 
02374 /* Used to selects the active output.
02375  * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_ANALOG_1: Analog video (R/G/B) 1
02376  * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_ANALOG_2: Analog video (R/G/B) 2
02377  * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_DIGITAL_1: Digital video (TMDS) 1
02378  * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_DIGITAL_2: Digital video (TMDS) 2
02379  * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPOSITE_1: Composite video 1
02380  * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPOSITE_2: Composite video 2
02381  * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_SVIDEO_1: S-video 1
02382  * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_SVIDEO_2: S-video 2
02383  * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_TUNER_1: Tuner 1
02384  * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_TUNER_2: Tuner 2
02385  * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_TUNER_3: Tuner 3
02386  * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPONENT_1: Component video (YPrPb/YCrCb) 1
02387  * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPONENT_2: Component video (YPrPb/YCrCb) 2
02388  * NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPONENT_3: Component video (YPrPb/YCrCb) 3
02389  * Type: Integer
02390  */
02391 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_ANALOG_1               1
02392 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_ANALOG_2               2
02393 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_DIGITAL_1              3
02394 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_DIGITAL_2              4
02395 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPOSITE_1            5
02396 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPOSITE_2            6
02397 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_SVIDEO_1               7
02398 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_SVIDEO_2               8
02399 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_TUNER_1                9
02400 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_TUNER_2                10
02401 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_TUNER_3                11
02402 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPONENT_1            12
02403 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPONENT_2            13
02404 #define NV_CTRL_DDCCI_MISC_OUTPUT_SELECT_COMPONENT_3            14
02405 
02406 /* Used to select the video mode with respect to 2D or 3D video.
02407  * Here is the meaning of the bitmask:
02408  * NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_FIELD_SEQUENTIAL_RIGHT_FIRST:
02409  *  Enable Field-Sequential Right Eye First
02410  * NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_FIELD_SEQUENTIAL_LEFT_FIRST:
02411  *  Enable Field-Sequential Left Eye First
02412  * NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_2WAY_INTERLEAVED_RIGHT_FIRST:
02413  *  Enable 2-Way Interleaved Right Eye First
02414  * NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_2WAY_INTERLEAVED_LEFT_FIRST:
02415  *  Enable 2-Way Interleaved Left Eye First
02416  * NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_4WAY_INTERLEAVED_ODD_LINES:
02417  *  Enable 4-Way Interleaved, Display Stereo Buffer 0 (even scan lines)
02418  * NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_4WAY_INTERLEAVED_ODD_LINES:
02419  *  Enable 4-Way Interleaved, Display Stereo Buffer 1 (odd scan lines)
02420  * NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_SIDE_BY_SIDE_INTERLEAVED:
02421  * Enable Side-by-Side Interleaved
02422  * Note: It is permissible, during a read operation, for a display to indicate
02423  * support for 2 or more stereo modes
02424  * Type: Bitmask
02425  */
02426 #define NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE                    208/* RWD */
02427 #define NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_FIELD_SEQUENTIAL_RIGHT_FIRST (1<<6)
02428 #define NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_FIELD_SEQUENTIAL_LEFT_FIRST  (1<<5)
02429 #define NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_2WAY_INTERLEAVED_RIGHT_FIRST (1<<4)
02430 #define NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_2WAY_INTERLEAVED_LEFT_FIRST  (1<<3)
02431 #define NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_4WAY_INTERLEAVED_EVEN_LINES  (1<<2)
02432 #define NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_4WAY_INTERLEAVED_ODD_LINES   (1<<1)
02433 #define NV_CTRL_DDCCI_MISC_STEREO_VIDEO_MODE_SIDE_BY_SIDE_INTERLEAVED     (1<<0)
02434 
02435 /* Power Mode ­ DPMS and DPM standards are supported.
02436  * Value                                    DPMS        DPM
02437  * NV_CTRL_DDCCI_MISC_POWER_MODE_ON         On          On
02438  * NV_CTRL_DDCCI_MISC_POWER_MODE_STANDBY    Standby     Off
02439  * NV_CTRL_DDCCI_MISC_POWER_MODE_SUSPEND    Suspend     Off
02440  * NV_CTRL_DDCCI_MISC_POWER_MODE_OFF        Off         Off
02441  * Type: Integer
02442  */
02443 #define NV_CTRL_DDCCI_MISC_POWER_MODE                           209/* RWD */
02444 #define NV_CTRL_DDCCI_MISC_POWER_MODE_ON                        1
02445 #define NV_CTRL_DDCCI_MISC_POWER_MODE_STANDBY                   2
02446 #define NV_CTRL_DDCCI_MISC_POWER_MODE_SUSPEND                   3
02447 #define NV_CTRL_DDCCI_MISC_POWER_MODE_OFF                       4
02448 
02449 /* Controls output of an auxiliary power output from a display to a host device.
02450  * NV_CTRL_DDCCI_MISC_AUXILIARY_POWER_OUTPUT_DISABLE: 
02451  *  Disable auxiliary output power
02452  * NV_CTRL_DDCCI_MISC_AUXILIARY_POWER_OUTPUT_ENABLE: 
02453  * Enable auxiliary output power
02454  * Type: Integer
02455  */
02456 #define NV_CTRL_DDCCI_MISC_AUXILIARY_POWER_OUTPUT               210/* RWD */
02457 #define NV_CTRL_DDCCI_MISC_AUXILIARY_POWER_OUTPUT_DISABLE       1
02458 #define NV_CTRL_DDCCI_MISC_AUXILIARY_POWER_OUTPUT_ENABLE        2
02459 
02460 /* Operation mode
02461  * NV_CTRL_DDCCI_MISC_OPERATION_MODE_STANDALONE: Stand alone
02462  * NV_CTRL_DDCCI_MISC_OPERATION_MODE_SLAVE: Slave (full PC control)
02463  * Type: Integer
02464  */
02465 #define NV_CTRL_DDCCI_MISC_OPERATION_MODE                       211/* -WD */
02466 #define NV_CTRL_DDCCI_MISC_OPERATION_MODE_STANDALONE            1
02467 #define NV_CTRL_DDCCI_MISC_OPERATION_MODE_SLAVE                 2
02468 
02469 /* Define the version number of VCP list recognized by the display.
02470  * This is a 2 byte value, byte 1 defines the version number and
02471  * byte 2 defines the revision number
02472  * e.g 02 00 (hex) defines Version 2, Revision 0
02473  * Type: Integer
02474  */
02475 #define NV_CTRL_DDCCI_MISC_VCP_VERSION                          212/* R-D */
02476 
02477 /* Save the current adjustment data to EEPROM or other 
02478  * non-volatile storage inside the display
02479  * Returns TRUE on success
02480  * Type: Boolean
02481  */
02482 #define NV_CTRL_DDCCI_SAVE_CURRENT_SETTINGS                     213/* -WD */
02483 
02484 /* Detects if the display is DDC/CI capable
02485  * Returns TRUE on success
02486  * Type: Boolean
02487  */ 
02488 #define NV_CTRL_DDCCI_CAPABLE                                   214/* R-D*/
02489 
02490 #define NV_CTRL_DDCCI_FIRST_VCP NV_CTRL_DDCCI_GEOMETRY_HORIZONTAL_POSITION
02491 #define NV_CTRL_DDCCI_LAST_VCP NV_CTRL_DDCCI_CAPABLE
02492 /**************************************************************************/
02493 
02494 /*
02495  * NV_CTRL_FLATPANEL_CHIP_LOCATION - for the specified display device,
02496  * report whether the flatpanel is driven by the on-chip controller,
02497  * or a separate controller chip elsewhere on the graphics board.
02498  * This attribute is only available for flatpanels.
02499  */
02500 
02501 #define NV_CTRL_FLATPANEL_CHIP_LOCATION                         215/* R-DG */
02502 #define NV_CTRL_FLATPANEL_CHIP_LOCATION_INTERNAL                  0
02503 #define NV_CTRL_FLATPANEL_CHIP_LOCATION_EXTERNAL                  1
02504 
02505 /*
02506  * NV_CTRL_FLATPANEL_LINK - report whether the specified display
02507  * device is driven by a single link or dual link DVI connection.
02508  * This attribute is only available for flatpanels.
02509  */
02510 
02511 #define NV_CTRL_FLATPANEL_LINK                                  216/* R-DG */
02512 #define NV_CTRL_FLATPANEL_LINK_SINGLE                             0
02513 #define NV_CTRL_FLATPANEL_LINK_DUAL                               1
02514 
02515 /*
02516  * NV_CTRL_FLATPANEL_SIGNAL - for the specified display device, report
02517  * whether the flatpanel is driven by an LVDS or TMDS signal.  This
02518  * attribute is only available for flatpanels.
02519  */
02520 
02521 #define NV_CTRL_FLATPANEL_SIGNAL                                217/* R-DG */
02522 #define NV_CTRL_FLATPANEL_SIGNAL_LVDS                             0
02523 #define NV_CTRL_FLATPANEL_SIGNAL_TMDS                             1
02524 
02525 
02526 /*
02527  * NV_CTRL_USE_HOUSE_SYNC - when TRUE, the server (master) frame lock
02528  * device will propagate the incoming house sync signal as the outgoing
02529  * frame lock sync signal.  If the frame lock device cannot detect a
02530  * frame lock sync signal, it will default to using the internal timings
02531  * from the GPU connected to the primary connector.
02532  *
02533  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
02534  * using a NV_CTRL_TARGET_TYPE_FRAMELOCK or NV_CTRL_TARGET_TYPE_X_SCREEN
02535  * target.
02536  */
02537 
02538 #define NV_CTRL_USE_HOUSE_SYNC                                  218/* RW-F */
02539 #define NV_CTRL_USE_HOUSE_SYNC_FALSE                            0
02540 #define NV_CTRL_USE_HOUSE_SYNC_TRUE                             1
02541 
02542 /*
02543  * NV_CTRL_EDID_AVAILABLE - report if an EDID is available for the
02544  * specified display device.
02545  *
02546  * This attribute may also be queried through XNVCTRLQueryTargetAttribute()
02547  * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN
02548  * target.
02549  */
02550 
02551 #define NV_CTRL_EDID_AVAILABLE                                  219 /* R-DG */
02552 #define NV_CTRL_EDID_AVAILABLE_FALSE                            0
02553 #define NV_CTRL_EDID_AVAILABLE_TRUE                             1
02554 
02555 /*
02556  * NV_CTRL_FORCE_STEREO - when TRUE, OpenGL will force stereo flipping
02557  * even when no stereo drawables are visible (if the device is configured
02558  * to support it, see the "Stereo" X config option).
02559  * When false, fall back to the default behavior of only flipping when a
02560  * stereo drawable is visible.
02561  */
02562 
02563 
02564 #define NV_CTRL_FORCE_STEREO                                    220 /* RW- */
02565 #define NV_CTRL_FORCE_STEREO_FALSE                              0
02566 #define NV_CTRL_FORCE_STEREO_TRUE                               1
02567 
02568 
02569 /*
02570  * NV_CTRL_IMAGE_SETTINGS - the image quality setting for OpenGL clients.
02571  *
02572  * This setting is only applied to OpenGL clients that are started
02573  * after this setting is applied.
02574  */
02575 
02576 #define NV_CTRL_IMAGE_SETTINGS                                  221 /* RW- */
02577 #define NV_CTRL_IMAGE_SETTINGS_HIGH_QUALITY                     0
02578 #define NV_CTRL_IMAGE_SETTINGS_QUALITY                          1
02579 #define NV_CTRL_IMAGE_SETTINGS_PERFORMANCE                      2
02580 #define NV_CTRL_IMAGE_SETTINGS_HIGH_PERFORMANCE                 3
02581 
02582 
02583 /*
02584  * NV_CTRL_XINERAMA - return whether xinerama is enabled
02585  */
02586 
02587 
02588 #define NV_CTRL_XINERAMA                                        222 /* RW- */
02589 #define NV_CTRL_XINERAMA_OFF                                    0
02590 #define NV_CTRL_XINERAMA_ON                                     1
02591 
02592 /*
02593  * NV_CTRL_XINERAMA_STEREO - when TRUE, OpenGL will allow stereo flipping
02594  * on multiple X screens configured with Xinerama.
02595  * When FALSE, flipping is allowed only on one X screen at a time.
02596  */
02597 
02598 #define NV_CTRL_XINERAMA_STEREO                                  223 /* RW- */
02599 #define NV_CTRL_XINERAMA_STEREO_FALSE                            0
02600 #define NV_CTRL_XINERAMA_STEREO_TRUE                             1
02601 
02602 /*
02603  * NV_CTRL_BUS_RATE - if the bus type of the GPU driving the specified
02604  * screen is AGP, then NV_CTRL_BUS_RATE returns the configured AGP
02605  * transfer rate.  If the bus type is PCI Express, then this attribute
02606  * returns the width of the physical link.
02607  */
02608 
02609 #define NV_CTRL_BUS_RATE                                         224  /* R-- */
02610 
02611 /*
02612  * NV_CTRL_SHOW_SLI_HUD - when TRUE, OpenGL will draw information about the
02613  * current SLI mode.
02614  */
02615 
02616 #define NV_CTRL_SHOW_SLI_HUD                                     225  /* RW- */
02617 #define NV_CTRL_SHOW_SLI_HUD_FALSE                               0
02618 #define NV_CTRL_SHOW_SLI_HUD_TRUE                                1
02619 
02620 /*
02621  * NV_CTRL_XV_SYNC_TO_DISPLAY - this control is valid when twinview and 
02622  * XVideo Sync To VBlank are enabled.
02623  * It controls which display device will be synched to.
02624  */
02625 
02626 #define NV_CTRL_XV_SYNC_TO_DISPLAY                               226  /* RW- */
02627 
02628 /*
02629  * NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT2 - this attribute is only intended
02630  * to be used to query the ValidValues for
02631  * NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT above the first 31 VIDEO_FORMATS.
02632  * See NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT for details.
02633  */
02634 
02635 #define NV_CTRL_GVO_OUTPUT_VIDEO_FORMAT2                         227  /* --- */
02636 
02637 /*
02638  * Override the SDI hardware's Color Space Conversion with the values
02639  * controlled through XNVCTRLSetGvoColorConversion() and
02640  * XNVCTRLGetGvoColorConversion().  If this attribute is FALSE, then
02641  * the values specified through XNVCTRLSetGvoColorConversion() are
02642  * ignored.
02643  */
02644 
02645 #define NV_CTRL_GVO_OVERRIDE_HW_CSC                              228  /* RW- */
02646 #define NV_CTRL_GVO_OVERRIDE_HW_CSC_FALSE                        0
02647 #define NV_CTRL_GVO_OVERRIDE_HW_CSC_TRUE                         1
02648 
02649 
02650 /*
02651  * NV_CTRL_GVO_CAPABILITIES - this read-only attribute describes GVO
02652  * capabilities that differ between NVIDIA SDI products.  This value
02653  * is a bitmask where each bit indicates whether that capability is
02654  * available.
02655  *
02656  * APPLY_CSC_IMMEDIATELY - whether the CSC matrix, offset, and scale
02657  * specified through XNVCTRLSetGvoColorConversion() will take affect
02658  * immediately, or only after SDI output is disabled and enabled
02659  * again.
02660  *
02661  * APPLY_CSC_TO_X_SCREEN - whether the CSC matrix, offset, and scale
02662  * specified through XNVCTRLSetGvoColorConversion() will also apply
02663  * to GVO output of an X screen, or only to OpenGL GVO output, as
02664  * enabled through the GLX_NV_video_out extension.
02665  */
02666 
02667 #define NV_CTRL_GVO_CAPABILITIES                                 229  /* R-- */
02668 #define NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_IMMEDIATELY           0x1
02669 #define NV_CTRL_GVO_CAPABILITIES_APPLY_CSC_TO_X_SCREEN           0x2
02670 
02671 
02672 /*
02673  * NV_CTRL_GVO_COMPOSITE_TERMINATION - enable or disable 75 ohm
02674  * termination of the SDI composite input signal.
02675  */
02676 
02677 #define NV_CTRL_GVO_COMPOSITE_TERMINATION                        230  /* RW- */
02678 #define NV_CTRL_GVO_COMPOSITE_TERMINATION_ENABLE                   1
02679 #define NV_CTRL_GVO_COMPOSITE_TERMINATION_DISABLE                  0
02680 
02681 
02682 /*
02683  * NV_CTRL_ASSOCIATED_DISPLAY_DEVICES - display device mask indicating
02684  * which display devices are "associated" with the specified X screen
02685  * (ie: are available to the X screen for displaying the X screen).
02686  */
02687  
02688 #define NV_CTRL_ASSOCIATED_DISPLAY_DEVICES                       231 /* RW- */
02689 
02690 /*
02691  * NV_CTRL_FRAMELOCK_SLAVES - get/set whether the display device(s)
02692  * given should listen or ignore the master's sync signal.
02693  *
02694  * This attribute can only be queried through XNVCTRLQueryTargetAttribute()
02695  * using a NV_CTRL_TARGET_TYPE_GPU target.  This attribute cannot be
02696  * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
02697  */
02698 
02699 #define NV_CTRL_FRAMELOCK_SLAVES                                 232 /* RW-G */
02700 
02701 /*
02702  * NV_CTRL_FRAMELOCK_MASTERABLE - Can this Display Device be set
02703  * as the master of the frame lock group.  Returns MASTERABLE_TRUE if
02704  * the GPU driving the display device is connected to the "primary"
02705  * connector on the frame lock board.
02706  *
02707  * This attribute can only be queried through XNVCTRLQueryTargetAttribute()
02708  * using a NV_CTRL_TARGET_TYPE_GPU target.  This attribute cannot be
02709  * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
02710  */
02711 
02712 #define NV_CTRL_FRAMELOCK_MASTERABLE                             233 /* R-DG */
02713 #define NV_CTRL_FRAMELOCK_MASTERABLE_FALSE                       0
02714 #define NV_CTRL_FRAMELOCK_MASTERABLE_TRUE                        1
02715 
02716 
02717 /*
02718  * NV_CTRL_PROBE_DISPLAYS - re-probes the hardware to detect what
02719  * display devices are connected to the GPU or GPU driving the
02720  * specified X screen.  Returns a display mask.
02721  *
02722  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
02723  * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
02724  */
02725 
02726 #define NV_CTRL_PROBE_DISPLAYS                                   234 /* R--G */
02727 
02728 
02729 /*
02730  * NV_CTRL_REFRESH_RATE - Returns the refresh rate of the specified
02731  * display device in 100 * Hz (ie. to get the refresh rate in Hz, divide
02732  * the returned value by 100.)
02733  *
02734  * This attribute may be queried through XNVCTRLQueryTargetAttribute()
02735  * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
02736  */
02737 
02738 #define NV_CTRL_REFRESH_RATE                                    235 /* R-DG */
02739 
02740 
02741 /*
02742  * NV_CTRL_GVO_FLIP_QUEUE_SIZE - The Graphics to Video Out interface
02743  * exposed through NV-CONTROL and the GLX_NV_video_out extension uses
02744  * an internal flip queue when pbuffers are sent to the video device
02745  * (via glXSendPbufferToVideoNV()).  The NV_CTRL_GVO_FLIP_QUEUE_SIZE
02746  * can be used to query and assign the flip queue size.  This
02747  * attribute is applied to GLX when glXGetVideoDeviceNV() is called by
02748  * the application.
02749  */
02750 
02751 #define NV_CTRL_GVO_FLIP_QUEUE_SIZE                             236 /* RW- */
02752 
02753 
02754 /*
02755  * NV_CTRL_CURRENT_SCANLINE - query the current scanline for the
02756  * specified display device.
02757  */
02758 
02759 #define NV_CTRL_CURRENT_SCANLINE                                 237 /* R-D */
02760 
02761 
02762 #define NV_CTRL_LAST_ATTRIBUTE NV_CTRL_CURRENT_SCANLINE
02763 
02764 
02765 /**************************************************************************/
02766 
02767 /*
02768  * String Attributes:
02769  *
02770  * String attributes can be queryied through the XNVCTRLQueryStringAttribute()
02771  * and XNVCTRLQueryTargetStringAttribute() function calls.
02772  * 
02773  * String attributes can be set through the XNVCTRLSetStringAttribute()
02774  * function call.  (There are currently no string attributes that can be
02775  * set on non-X Screen targets.)
02776  *
02777  * Unless otherwise noted, all string attributes can be queried/set using an
02778  * NV_CTRL_TARGET_TYPE_X_SCREEN target.  Attributes that cannot take an
02779  * NV_CTRL_TARGET_TYPE_X_SCREEN target also cannot be queried/set through
02780  * XNVCTRLQueryStringAttribute()/XNVCTRLSetStringAttribute() (Since
02781  * these assume an X Screen target).
02782  */
02783 
02784 
02785 /*
02786  * NV_CTRL_STRING_PRODUCT_NAME - the GPU product name on which the
02787  * specified X screen is running.
02788  *
02789  * This attribute may be queried through XNVCTRLQueryTargetStringAttribute()
02790  * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
02791  */
02792 
02793 #define NV_CTRL_STRING_PRODUCT_NAME                             0  /* R--G */
02794 
02795 
02796 /*
02797  * NV_CTRL_STRING_VBIOS_VERSION - the video bios version on the GPU on
02798  * which the specified X screen is running.
02799  */
02800 
02801 #define NV_CTRL_STRING_VBIOS_VERSION                            1  /* R-- */
02802 
02803 
02804 /*
02805  * NV_CTRL_STRING_NVIDIA_DRIVER_VERSION - string representation of the
02806  * NVIDIA driver version number for the NVIDIA X driver in use.
02807  */
02808 
02809 #define NV_CTRL_STRING_NVIDIA_DRIVER_VERSION                    3  /* R-- */
02810 
02811 
02812 /*
02813  * NV_CTRL_STRING_DISPLAY_DEVICE_NAME - name of the display device
02814  * specified in the display_mask argument.
02815  *
02816  * This attribute may be queried through XNVCTRLQueryTargetStringAttribute()
02817  * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
02818  */
02819 
02820 #define NV_CTRL_STRING_DISPLAY_DEVICE_NAME                      4  /* R-DG */
02821 
02822 
02823 /*
02824  * NV_CTRL_STRING_TV_ENCODER_NAME - name of the TV encoder used by the
02825  * specified display device; only valid if the display device is a TV.
02826  */
02827 
02828 #define NV_CTRL_STRING_TV_ENCODER_NAME                          5  /* R-D */
02829 
02830 
02831 /* NV_CTRL_STRING_DDCCI_MISC_TRANSMIT_DISPLAY_DESCRIPTOR -
02832  * Allows a display descriptor (up to maximum length defined by the
02833  * display (see NV_CTRL_DDCCI_MISC_DISPLAY_DESCRIPTOR_LENGTHC2h) to be written 
02834  * (read) to (from) non-volatile storage in the display.
02835  * If an attempt is made to write beyond the maximum storage
02836  * length, the descriptor shall be truncated with the excess bytes
02837  * being discarded.
02838  */
02839 
02840 #define NV_CTRL_STRING_DDCCI_MISC_TRANSMIT_DISPLAY_DESCRIPTOR   6  /* RWD */
02841 
02842 
02843 /* NV_CTRL_STRING_DDCCI_MISC_AUXILIARY_DISPLAY_DATA -
02844  * An `auxiliary display' is a small alpha-numeric display associated
02845  * with the primary display and able to be accessed via the primary
02846  * display.
02847  * This command transmits a number of bytes of alpha-numeric
02848  * data to be displayed on the auxiliary display. The data shall
02849  * conform to ISO 8859-2 (Latin 1) code set.
02850  * The auxiliary display will be written from the top left position,
02851  * moving to right along each line and then starting at left end of the
02852  * next line.
02853  */
02854 
02855 #define NV_CTRL_STRING_DDCCI_MISC_AUXILIARY_DISPLAY_DATA        7  /* -WD */
02856 
02857 #define NV_CTRL_STRING_GVO_FIRMWARE_VERSION                     8  /* R-- */
02858 
02859 
02860 /* 
02861  * NV_CTRL_STRING_CURRENT_MODELINE - Return the modeline currently
02862  * being used by the specified display device.
02863  *
02864  * This attribute may be queried through XNVCTRLQueryTargetStringAttribute()
02865  * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
02866  */
02867 
02868 #define NV_CTRL_STRING_CURRENT_MODELINE                         9   /* R-DG */
02869 
02870 
02871 /* 
02872  * NV_CTRL_STRING_ADD_MODELINE - Adds a modeline to the specified
02873  * display device.  The modeline is not added if validation fails.
02874  *
02875  * This attribute may be queried through XNVCTRLQueryTargetStringAttribute()
02876  * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
02877  */
02878 
02879 #define NV_CTRL_STRING_ADD_MODELINE                            10   /* -WDG */
02880 
02881 
02882 /*
02883  * NV_CTRL_STRING_DELETE_MODLEINE - Deletes an existing modeline
02884  * from the specified display device.  The currently selected
02885  * modeline cannot be deleted.  (This also means you cannot delete
02886  * the last modeline.)
02887  *
02888  * This attribute may be queried through XNVCTRLQueryTargetStringAttribute()
02889  * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
02890  */
02891 
02892 #define NV_CTRL_STRING_DELETE_MODELINE                         11   /* -WDG */
02893 
02894 
02895 /* 
02896  * NV_CTRL_STRING_CURRENT_METAMODE - Returns the metamode currently
02897  * being used by the specified X screen.
02898  */
02899 
02900 #define NV_CTRL_STRING_CURRENT_METAMODE                        12   /* R--- */
02901 
02902 
02903 /* 
02904  * NV_CTRL_STRING_ADD_METAMODE - Adds a metamode to the specified
02905  * X Screen (or GPU).  All modelines referenced in the metamode
02906  * must already exist for each display device (as returned by the
02907  * NV_CTRL_BINARY_DATA_MODELINES attribute)
02908  *
02909  * TwinView must be enabled on the X Screen/GPU to access this attribute.
02910  */
02911 
02912 #define NV_CTRL_STRING_ADD_METAMODE                            13   /* -W-- */
02913 
02914 
02915 /*
02916  * NV_CTRL_STRING_DELETE_METAMODE - Deletes an existing metamode
02917  * from the specified X Screen (or GPU).  The currently selected
02918  * metamode cannot be deleted.  (This also means you cannot delete
02919  * the last metamode.)
02920  *
02921  * TwinView must be enabled on the X Screen/GPU to access this attribute.
02922  */
02923 
02924 #define NV_CTRL_STRING_DELETE_METAMODE                         14   /* -WD-- */
02925 
02926 #define NV_CTRL_STRING_LAST_ATTRIBUTE NV_CTRL_STRING_DELETE_METAMODE
02927 
02928 
02929 /**************************************************************************/
02930 
02931 /*
02932  * Binary Data Attributes:
02933  *
02934  * Binary data attributes can be queryied through the XNVCTRLQueryBinaryData()
02935  * and XNVCTRLQueryTargetBinaryData() function calls.
02936  * 
02937  * There are currently no binary data attributes that can be set.
02938  *
02939  * Unless otherwise noted, all Binary data attributes can be queried
02940  * using an NV_CTRL_TARGET_TYPE_X_SCREEN target.  Attributes that cannot take
02941  * an NV_CTRL_TARGET_TYPE_X_SCREEN target also cannot be queried through
02942  * XNVCTRLQueryBinaryData() (Since an X Screen target is assumed).
02943  */
02944 
02945 
02946 /*
02947  * NV_CTRL_BINARY_DATA_EDID - Returns a display device's EDID information
02948  * data.
02949  *
02950  * This attribute may be queried through XNVCTRLQueryTargetBinaryData()
02951  * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
02952  */
02953 
02954 #define NV_CTRL_BINARY_DATA_EDID                                0  /* R-DG */
02955 
02956 
02957 /* 
02958  * NV_CTRL_BINARY_DATA_MODELINES - Returns a display device's supported
02959  * modelines.  Modelines are returned in a buffer, separated by a single
02960  * \0 and terminated by two consecuitive \0's like so:
02961  *
02962  *  "Modeline 1\0Modeline 2\0Modeline 3\0Last Modeline\0\0"
02963  *
02964  * This attribute may be queried through XNVCTRLQueryTargetBinaryData()
02965  * using a NV_CTRL_TARGET_TYPE_GPU or NV_CTRL_TARGET_TYPE_X_SCREEN target.
02966  */
02967 
02968 #define NV_CTRL_BINARY_DATA_MODELINES                           1   /* R-DG */
02969 
02970 
02971 /* 
02972  * NV_CTRL_BINARY_DATA_METAMODES - Returns an X Screen's supported
02973  * metamodes.  Metamodes are returned in a buffer separated by a single
02974  * \0 and terminated by two consecuitive \0's like so:
02975  *
02976  *  "MetaMode 1\0MetaMode 2\0MetaMode 3\0Last MetaMode\0\0"
02977  */
02978 
02979 #define NV_CTRL_BINARY_DATA_METAMODES                           2   /* R-D- */
02980 
02981 
02982 /*
02983  * NV_CTRL_BINARY_DATA_XSCREENS_USING_GPU - Returns the list of X
02984  * screens currently driven by the given GPU.
02985  *
02986  * The format of the returned data is:
02987  *
02988  *     4       CARD32 number of screens
02989  *     4 * n   CARD32 screen indices
02990  *
02991  * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
02992  * using a NV_CTRL_TARGET_TYPE_GPU target.  This attribute cannot be
02993  * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
02994  */
02995 
02996 #define NV_CTRL_BINARY_DATA_XSCREENS_USING_GPU                  3   /* R-DG */
02997 
02998 /*
02999  * NV_CTRL_BINARY_DATA_GPUS_USED_BY_XSCREEN - Returns the list of GPUs
03000  * currently in use by the given X screen.
03001  *
03002  * The format of the returned data is:
03003  *
03004  *     4       CARD32 number of GPUs
03005  *     4 * n   CARD32 GPU indices
03006  */
03007 
03008 #define NV_CTRL_BINARY_DATA_GPUS_USED_BY_XSCREEN                4   /* R--- */
03009 
03010 /*
03011  * NV_CTRL_BINARY_DATA_GPUS_USING_FRAMELOCK - Returns the list of
03012  * GPUs currently connected to the given frame lock board.
03013  *
03014  * The format of the returned data is:
03015  *
03016  *     4       CARD32 number of GPUs
03017  *     4 * n   CARD32 GPU indices
03018  *
03019  * This attribute can only be queried through XNVCTRLQueryTargetBinaryData()
03020  * using a NV_CTRL_TARGET_TYPE_FRAMELOCK target.  This attribute cannot be
03021  * queried using a NV_CTRL_TARGET_TYPE_X_SCREEN.
03022  */
03023 
03024 #define NV_CTRL_BINARY_DATA_GPUS_USING_FRAMELOCK                5   /* R-DF */
03025 
03026 #define NV_CTRL_BINARY_DATA_LAST_ATTRIBUTE \
03027     NV_CTRL_BINARY_DATA_GPUS_USING_FRAMELOCK
03028 
03029 
03030 /**************************************************************************/
03031 
03032 /*
03033  * CTRLAttributeValidValuesRec -
03034  *
03035  * structure and related defines used by
03036  * XNVCTRLQueryValidAttributeValues() to describe the valid values of
03037  * a particular attribute.  The type field will be one of:
03038  *
03039  * ATTRIBUTE_TYPE_INTEGER : the attribute is an integer value; there
03040  * is no fixed range of valid values.
03041  *
03042  * ATTRIBUTE_TYPE_BITMASK : the attribute is an integer value,
03043  * interpretted as a bitmask.
03044  *
03045  * ATTRIBUTE_TYPE_BOOL : the attribute is a boolean, valid values are
03046  * either 1 (on/true) or 0 (off/false).
03047  *
03048  * ATTRIBUTE_TYPE_RANGE : the attribute can have any integer value
03049  * between NVCTRLAttributeValidValues.u.range.min and
03050  * NVCTRLAttributeValidValues.u.range.max (inclusive).
03051  *
03052  * ATTRIBUTE_TYPE_INT_BITS : the attribute can only have certain
03053  * integer values, indicated by which bits in
03054  * NVCTRLAttributeValidValues.u.bits.ints are on (for example: if bit
03055  * 0 is on, then 0 is a valid value; if bit 5 is on, then 5 is a valid
03056  * value, etc).  This is useful for attributes like NV_CTRL_FSAA_MODE,
03057  * which can only have certain values, depending on GPU.
03058  *
03059  *
03060  * The permissions field of NVCTRLAttributeValidValuesRec is a bitmask
03061  * that may contain:
03062  *
03063  * ATTRIBUTE_TYPE_READ      - Attribute may be read (queried.)
03064  * ATTRIBUTE_TYPE_WRITE     - Attribute may be written to (set.)
03065  * ATTRIBUTE_TYPE_DISPLAY   - Attribute requires a display mask.
03066  * ATTRIBUTE_TYPE_GPU       - Attribute is valid for GPU target types.
03067  * ATTRIBUTE_TYPE_FRAMELOCK - Attribute is valid for Frame Lock target types.
03068  * ATTRIBUTE_TYPE_X_SCREEN  - Attribute is valid for X Screen target types.
03069  *
03070  * See 'Key to Integer Attribute "Permissions"' at the top of this
03071  * file for a description of what these permission bits mean.
03072  */
03073 
03074 #define ATTRIBUTE_TYPE_UNKNOWN   0
03075 #define ATTRIBUTE_TYPE_INTEGER   1
03076 #define ATTRIBUTE_TYPE_BITMASK   2
03077 #define ATTRIBUTE_TYPE_BOOL      3
03078 #define ATTRIBUTE_TYPE_RANGE     4
03079 #define ATTRIBUTE_TYPE_INT_BITS  5
03080 
03081 #define ATTRIBUTE_TYPE_READ       0x01
03082 #define ATTRIBUTE_TYPE_WRITE      0x02
03083 #define ATTRIBUTE_TYPE_DISPLAY    0x04
03084 #define ATTRIBUTE_TYPE_GPU        0x08
03085 #define ATTRIBUTE_TYPE_FRAMELOCK  0x10
03086 #define ATTRIBUTE_TYPE_X_SCREEN   0x20
03087 
03088 typedef struct _NVCTRLAttributeValidValues {
03089     int type;
03090     union {
03091         struct {
03092             int min;
03093             int max;
03094         } range;
03095         struct {
03096             unsigned int ints;
03097         } bits;
03098     } u;
03099     unsigned int permissions;
03100 } NVCTRLAttributeValidValuesRec;
03101 
03102 
03103 /**************************************************************************/
03104 
03105 /*
03106  * NV-CONTROL X event notification.
03107  *
03108  * To receive X event notifications dealing with NV-CONTROL, you should
03109  * call XNVCtrlSelectNotify() with one of the following set as the type
03110  * of event to receive (see NVCtrlLib.h for more information):
03111  */
03112 
03113 #define ATTRIBUTE_CHANGED_EVENT        0
03114 #define TARGET_ATTRIBUTE_CHANGED_EVENT 1
03115 
03116 
03117 
03118 #endif /* __NVCTRL_H */

Generated on Sat Aug 19 20:40:53 2006 for Renouveau by  doxygen 1.4.4