Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2011
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 10.82 KB | None | 0 0
  1. Index: headers/private/graphics/common/multimonitor_extras.h
  2. ===================================================================
  3. --- headers/private/graphics/common/multimonitor_extras.h   (revision 0)
  4. +++ headers/private/graphics/common/multimonitor_extras.h   (revision 0)
  5. @@ -0,0 +1,38 @@
  6. +/*
  7. + * Copyright 2006-2011, Haiku, Inc. All Rights Reserved.
  8. + * Distributed under the terms of the MIT License.
  9. + *
  10. + * Authors:
  11. + *      Alexander von Gluck IV, kallisti5@unixzen.com
  12. + */
  13. +#ifndef MULTIMONITOR_EXTRAS_H
  14. +#define MULTIMONITOR_EXTRAS_H
  15. +
  16. +
  17. +/* These are extra timing flags used to handle multiple monitor
  18. +   support. The overall multiple monitor system needs to be
  19. +   redesigned at some point
  20. +*/
  21. +
  22. +/* multimonitor timing flags */
  23. +enum {
  24. +   B_MULTIMON_STANDARD = 0 << 16,  /* multimon mode standard */
  25. +   B_MULTIMON_COMBINE  = 3 << 16,  /* multimon mode combined */
  26. +   B_MULTIMON_MODEMASK = 7 << 16,  /* multimon mode mask */
  27. +   B_MULTIMON_HPOS     = 0 << 21,  /* multimon horz position */
  28. +   B_MULTIMON_VPOS     = 1 << 21,  /* multimon vert position */
  29. +   B_MULTIMON_POSMASK  = 1 << 21,  /* multimon position mask */
  30. +   B_MULTIMON_REQUEST  = 1 << 25,  /* multimon supported request */
  31. +   B_MULTIMON_REPLY    = 1 << 26   /* multimon supported reply */
  32. +};
  33. +
  34. +
  35. +// operation codes tunneled via ProposeDisplayMode
  36. +typedef enum {
  37. +   ms_swap             = 'sw',
  38. +   ms_use_laptop_panel = 'up',
  39. +   ms_tv_standard      = 'tv'
  40. +} multi_mon_settings;
  41. +
  42. +
  43. +#endif /* MULTIMONITOR_EXTRAS_H */
  44. Index: headers/private/graphics/radeon/multimon.h
  45. ===================================================================
  46. --- headers/private/graphics/radeon/multimon.h  (revision 42460)
  47. +++ headers/private/graphics/radeon/multimon.h  (working copy)
  48. @@ -1,30 +0,0 @@
  49. -/*
  50. -   Copyright (c) 2002, Thomas Kurschel
  51. -  
  52. -
  53. -   Part of Radeon driver
  54. -      
  55. -   Multi-Monitor Settings interface
  56. -*/
  57. -#ifndef _MULTIMON_H
  58. -#define _MULTIMON_H
  59. -
  60. -
  61. -#include <SupportDefs.h>
  62. -
  63. -
  64. -class BScreen;
  65. -
  66. -status_t GetSwapDisplays( BScreen *screen, bool *swap );
  67. -status_t SetSwapDisplays( BScreen *screen, bool swap );
  68. -
  69. -status_t GetUseLaptopPanel( BScreen *screen, bool *use );
  70. -status_t SetUseLaptopPanel( BScreen *screen, bool use );
  71. -
  72. -status_t GetNthSupportedTVStandard( BScreen *screen, int idx, uint32 *standard );
  73. -status_t GetTVStandard( BScreen *screen, uint32 *standard );
  74. -status_t SetTVStandard( BScreen *screen, uint32 standard );
  75. -
  76. -status_t TestMultiMonSupport( BScreen *screen );
  77. -
  78. -#endif // _MULTIMON_H
  79. Index: headers/private/graphics/radeon/accelerant_ext.h
  80. ===================================================================
  81. --- headers/private/graphics/radeon/accelerant_ext.h    (revision 42460)
  82. +++ headers/private/graphics/radeon/accelerant_ext.h    (working copy)
  83. @@ -1,39 +0,0 @@
  84. -/*
  85. -   Copyright (c) 2002, Thomas Kurschel
  86. -
  87. -
  88. -   Part of Radeon accelerant
  89. -      
  90. -   additional accelerant interface definitions
  91. -*/
  92. -
  93. -
  94. -#ifndef _ACCELERANT_EXT_H
  95. -#define _ACCELERANT_EXT_H
  96. -
  97. -
  98. -// additional timing flags for GetMode/SetMode
  99. -enum {
  100. -   RADEON_MODE_STANDARD = 0 << 16,
  101. -   RADEON_MODE_COMBINE = 3 << 16,
  102. -  
  103. -   RADEON_MODE_MASK = 7 << 16,
  104. -  
  105. -   // used internally
  106. -   RADEON_MODE_POSITION_HORIZONTAL = 0 << 21,
  107. -   RADEON_MODE_POSITION_VERTICAL = 1 << 21,
  108. -   RADEON_MODE_POSITION_MASK = 1 << 21,
  109. -  
  110. -   RADEON_MODE_MULTIMON_REQUEST = 1 << 25,
  111. -   RADEON_MODE_MULTIMON_REPLY = 1 << 26
  112. -};
  113. -
  114. -// operation codes tunneled via ProposeDisplayMode
  115. -typedef enum {
  116. -   ms_swap             = 'sw',
  117. -   ms_use_laptop_panel = 'up',
  118. -   ms_tv_standard      = 'tv'
  119. -} multi_mon_settings;
  120. -
  121. -
  122. -#endif
  123. Index: src/preferences/screen/multimon.cpp
  124. ===================================================================
  125. --- src/preferences/screen/multimon.cpp (revision 42460)
  126. +++ src/preferences/screen/multimon.cpp (working copy)
  127. @@ -7,7 +7,7 @@
  128.  
  129.  
  130.  #include "multimon.h"
  131. -#include "accelerant_ext.h"
  132. +#include "multimonitor_extras.h"
  133.  
  134.  #include <OS.h>
  135.  #include <Screen.h>
  136. @@ -202,8 +202,8 @@
  137.         return B_ERROR;
  138.  
  139.     // set request bits
  140. -   modeList[0].timing.flags |= RADEON_MODE_MULTIMON_REQUEST;
  141. -   modeList[0].timing.flags &= ~RADEON_MODE_MULTIMON_REPLY;
  142. +   modeList[0].timing.flags |= B_MULTIMON_REQUEST;
  143. +   modeList[0].timing.flags &= ~B_MULTIMON_REPLY;
  144.     low = high = modeList[0];
  145.  
  146.     result = screen->ProposeMode(&modeList[0], &low, &high);
  147. @@ -211,8 +211,8 @@
  148.         goto out;
  149.  
  150.     // check reply bits
  151. -   if ((modeList[0].timing.flags & RADEON_MODE_MULTIMON_REQUEST) == 0
  152. -       && (modeList[0].timing.flags & RADEON_MODE_MULTIMON_REPLY) != 0)
  153. +   if ((modeList[0].timing.flags & B_MULTIMON_REQUEST) == 0
  154. +       && (modeList[0].timing.flags & B_MULTIMON_REPLY) != 0)
  155.         result = B_OK;
  156.     else
  157.         result = B_ERROR;
  158. Index: src/preferences/screen/Jamfile
  159. ===================================================================
  160. --- src/preferences/screen/Jamfile  (revision 42460)
  161. +++ src/preferences/screen/Jamfile  (working copy)
  162. @@ -4,7 +4,6 @@
  163.  AddSubDirSupportedPlatforms libbe_test ;
  164.  
  165.  UsePrivateHeaders [ FDirName graphics common ] ;
  166. -UsePrivateHeaders [ FDirName graphics radeon ] ;
  167.  UsePrivateHeaders interface ;
  168.  
  169.  Preference Screen :
  170. Index: src/add-ons/accelerants/radeon/radeon_accelerant.h
  171. ===================================================================
  172. --- src/add-ons/accelerants/radeon/radeon_accelerant.h  (revision 42460)
  173. +++ src/add-ons/accelerants/radeon/radeon_accelerant.h  (working copy)
  174. @@ -12,7 +12,6 @@
  175.  
  176.  
  177.  #include "radeon_interface.h"
  178. -#include "accelerant_ext.h"
  179.  
  180.  #ifdef __cplusplus
  181.  extern "C" {
  182. Index: src/add-ons/accelerants/radeon/multimon.c
  183. ===================================================================
  184. --- src/add-ons/accelerants/radeon/multimon.c   (revision 42460)
  185. +++ src/add-ons/accelerants/radeon/multimon.c   (working copy)
  186. @@ -8,6 +8,7 @@
  187.  */
  188.  
  189.  #include "radeon_accelerant.h"
  190. +#include "multimonitor_extras.h"
  191.  #include "generic.h"
  192.  #include "GlobalData.h"
  193.  
  194. @@ -17,7 +18,7 @@
  195.  {
  196.     (void)vc;
  197.    
  198. -   mode->timing.flags &= ~RADEON_MODE_MASK;
  199. +   mode->timing.flags &= ~B_MULTIMON_MODEMASK;
  200.    
  201.     // combine mode is used if virtual area is twice as visible area
  202.     // and if scrolling is enabled; if combining is impossible, use
  203. @@ -30,22 +31,22 @@
  204.     // remove scroll flag - we don't need it anymore
  205.     mode->flags &= ~B_SCROLL;
  206.        
  207. -   mode->timing.flags &= ~RADEON_MODE_POSITION_MASK;
  208. +   mode->timing.flags &= ~B_MULTIMON_POSMASK;
  209.  
  210. -   if( mode->virtual_width == 2 * mode->timing.h_display ) {
  211. +   if (mode->virtual_width == 2 * mode->timing.h_display) {
  212.         SHOW_FLOW0( 2, "horizontal combine mode" );
  213. -       mode->timing.flags |= RADEON_MODE_POSITION_HORIZONTAL;
  214. -       mode->timing.flags &= ~RADEON_MODE_MASK;
  215. -       mode->timing.flags |= RADEON_MODE_COMBINE;
  216. -   } else if( mode->virtual_height == 2 * mode->timing.v_display ) {
  217. +       mode->timing.flags |= B_MULTIMON_HPOS;
  218. +       mode->timing.flags &= ~B_MULTIMON_MODEMASK;
  219. +       mode->timing.flags |= B_MULTIMON_COMBINE;
  220. +   } else if (mode->virtual_height == 2 * mode->timing.v_display) {
  221.         SHOW_FLOW0( 2, "vertical combine mode" );
  222. -       mode->timing.flags |= RADEON_MODE_POSITION_VERTICAL;
  223. -       mode->timing.flags &= ~RADEON_MODE_MASK;
  224. -       mode->timing.flags |= RADEON_MODE_COMBINE;
  225. +       mode->timing.flags |= B_MULTIMON_HPOS;
  226. +       mode->timing.flags &= ~B_MULTIMON_MODEMASK;
  227. +       mode->timing.flags |= B_MULTIMON_COMBINE;
  228.     } else {
  229.         // ups, this isn't really a combine mode - restore flags
  230.         SHOW_FLOW0( 2, "wasn't really a combine mode" );
  231. -       mode->timing.flags &= ~RADEON_MODE_MASK;
  232. +       mode->timing.flags &= ~B_MULTIMON_MODEMASK;
  233.         mode->flags |= B_SCROLL;
  234.     }
  235.  }
  236. @@ -56,18 +57,18 @@
  237.     // if there is no second port or no second monitor connected,
  238.     // fall back to standard mode
  239.     int num_usable_crtcs = vc->assigned_crtc[0] && si->crtc[0].chosen_displays != dd_none;
  240. -  
  241. -   if( si->num_crtc > 1 )
  242. +
  243. +   if (si->num_crtc > 1)
  244.         num_usable_crtcs += vc->assigned_crtc[1] && si->crtc[1].chosen_displays != dd_none;
  245. -      
  246. -   if( num_usable_crtcs < 2 ) {
  247. +
  248. +   if (num_usable_crtcs < 2) {
  249.         SHOW_FLOW0( 2, "only one monitor - disabling any multi-mon mode" );
  250.         // restore flags if combine mode is selected
  251. -       if( (mode->timing.flags & RADEON_MODE_MASK) == RADEON_MODE_COMBINE )
  252. +       if ((mode->timing.flags & B_MULTIMON_MODEMASK) == B_MULTIMON_COMBINE)
  253.             mode->flags |= B_SCROLL;
  254.  
  255. -       mode->timing.flags &= ~RADEON_MODE_MASK;
  256. -       mode->timing.flags |= RADEON_MODE_STANDARD;
  257. +       mode->timing.flags &= ~B_MULTIMON_MODEMASK;
  258. +       mode->timing.flags |= B_MULTIMON_STANDARD;
  259.     }
  260.  }
  261.  
  262. @@ -76,9 +77,9 @@
  263.  void Radeon_HideMultiMode( virtual_card *vc, display_mode *mode )
  264.  {
  265.     (void) vc;
  266. -  
  267. +
  268.     // restore flags for combine mode
  269. -   if( (mode->timing.flags & RADEON_MODE_MASK) == RADEON_MODE_COMBINE )
  270. +   if ((mode->timing.flags & B_MULTIMON_MODEMASK) == B_MULTIMON_COMBINE)
  271.         mode->flags |= B_SCROLL;
  272.  }
  273.  
  274. @@ -105,11 +106,11 @@
  275.         si->crtc[1].rel_y = 0;
  276.     }
  277.    
  278. -   switch( mode->timing.flags & RADEON_MODE_MASK ) {
  279. -   case RADEON_MODE_COMBINE:
  280. +   switch(mode->timing.flags & B_MULTIMON_MODEMASK) {
  281. +   case B_MULTIMON_COMBINE:
  282.         // detect where second screen must be located and
  283.         // adapt total visible area accordingly
  284. -       if( (mode->timing.flags & RADEON_MODE_POSITION_MASK) == RADEON_MODE_POSITION_HORIZONTAL ) {
  285. +       if ((mode->timing.flags & B_MULTIMON_POSMASK) == B_MULTIMON_HPOS) {
  286.             vc->eff_width = 2 * mode->timing.h_display;
  287.             x = mode->timing.h_display;
  288.             y = 0;
  289. @@ -143,14 +144,14 @@
  290.     0, 1, 3, 4, 103, 3/* PAL SCART - no public id, so I use PAL BDGHI */, 102 };
  291.  
  292.  // check and execute tunnel settings command
  293. -status_t Radeon_CheckMultiMonTunnel( virtual_card *vc, display_mode *mode,
  294. +status_t Radeon_CheckMultiMonTunnel( virtual_card *vc, display_mode *mode,
  295.     const display_mode *low, const display_mode *high, bool *isTunneled )
  296.  {
  297. -   if( (mode->timing.flags & RADEON_MODE_MULTIMON_REQUEST) != 0 &&
  298. -       (mode->timing.flags & RADEON_MODE_MULTIMON_REPLY) == 0 )
  299. +   if ((mode->timing.flags & B_MULTIMON_REQUEST) != 0
  300. +       && (mode->timing.flags & B_MULTIMON_REPLY) == 0)
  301.     {
  302. -       mode->timing.flags &= ~RADEON_MODE_MULTIMON_REQUEST;
  303. -       mode->timing.flags |= RADEON_MODE_MULTIMON_REPLY;
  304. +       mode->timing.flags &= ~B_MULTIMON_REQUEST;
  305. +       mode->timing.flags |= B_MULTIMON_REPLY;
  306.        
  307.         // still process request, just in case someone set this flag
  308.         // combination by mistake
  309. @@ -264,8 +265,8 @@
  310.  // return true if both ports must be programmed
  311.  bool Radeon_NeedsSecondPort( display_mode *mode )
  312.  {
  313. -   switch( mode->timing.flags & RADEON_MODE_MASK ) {
  314. -   case RADEON_MODE_COMBINE:
  315. +   switch(mode->timing.flags & B_MULTIMON_MODEMASK) {
  316. +   case B_MULTIMON_COMBINE:
  317.         return true;
  318.     default:
  319.         return false;
  320. @@ -276,8 +277,8 @@
  321.  // return number of ports showing differents parts of frame buffer
  322.  bool Radeon_DifferentPorts( display_mode *mode )
  323.  {
  324. -   switch( mode->timing.flags & RADEON_MODE_MASK ) {
  325. -   case RADEON_MODE_COMBINE:
  326. +   switch(mode->timing.flags & B_MULTIMON_MODEMASK) {
  327. +   case B_MULTIMON_COMBINE:
  328.         return 2;
  329.     default:
  330.         return 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement