Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: headers/private/graphics/common/multimonitor_extras.h
- ===================================================================
- --- headers/private/graphics/common/multimonitor_extras.h (revision 0)
- +++ headers/private/graphics/common/multimonitor_extras.h (revision 0)
- @@ -0,0 +1,38 @@
- +/*
- + * Copyright 2006-2011, Haiku, Inc. All Rights Reserved.
- + * Distributed under the terms of the MIT License.
- + *
- + * Authors:
- + * Alexander von Gluck IV, kallisti5@unixzen.com
- + */
- +#ifndef MULTIMONITOR_EXTRAS_H
- +#define MULTIMONITOR_EXTRAS_H
- +
- +
- +/* These are extra timing flags used to handle multiple monitor
- + support. The overall multiple monitor system needs to be
- + redesigned at some point
- +*/
- +
- +/* multimonitor timing flags */
- +enum {
- + B_MULTIMON_STANDARD = 0 << 16, /* multimon mode standard */
- + B_MULTIMON_COMBINE = 3 << 16, /* multimon mode combined */
- + B_MULTIMON_MODEMASK = 7 << 16, /* multimon mode mask */
- + B_MULTIMON_HPOS = 0 << 21, /* multimon horz position */
- + B_MULTIMON_VPOS = 1 << 21, /* multimon vert position */
- + B_MULTIMON_POSMASK = 1 << 21, /* multimon position mask */
- + B_MULTIMON_REQUEST = 1 << 25, /* multimon supported request */
- + B_MULTIMON_REPLY = 1 << 26 /* multimon supported reply */
- +};
- +
- +
- +// operation codes tunneled via ProposeDisplayMode
- +typedef enum {
- + ms_swap = 'sw',
- + ms_use_laptop_panel = 'up',
- + ms_tv_standard = 'tv'
- +} multi_mon_settings;
- +
- +
- +#endif /* MULTIMONITOR_EXTRAS_H */
- Index: headers/private/graphics/radeon/multimon.h
- ===================================================================
- --- headers/private/graphics/radeon/multimon.h (revision 42460)
- +++ headers/private/graphics/radeon/multimon.h (working copy)
- @@ -1,30 +0,0 @@
- -/*
- - Copyright (c) 2002, Thomas Kurschel
- -
- -
- - Part of Radeon driver
- -
- - Multi-Monitor Settings interface
- -*/
- -#ifndef _MULTIMON_H
- -#define _MULTIMON_H
- -
- -
- -#include <SupportDefs.h>
- -
- -
- -class BScreen;
- -
- -status_t GetSwapDisplays( BScreen *screen, bool *swap );
- -status_t SetSwapDisplays( BScreen *screen, bool swap );
- -
- -status_t GetUseLaptopPanel( BScreen *screen, bool *use );
- -status_t SetUseLaptopPanel( BScreen *screen, bool use );
- -
- -status_t GetNthSupportedTVStandard( BScreen *screen, int idx, uint32 *standard );
- -status_t GetTVStandard( BScreen *screen, uint32 *standard );
- -status_t SetTVStandard( BScreen *screen, uint32 standard );
- -
- -status_t TestMultiMonSupport( BScreen *screen );
- -
- -#endif // _MULTIMON_H
- Index: headers/private/graphics/radeon/accelerant_ext.h
- ===================================================================
- --- headers/private/graphics/radeon/accelerant_ext.h (revision 42460)
- +++ headers/private/graphics/radeon/accelerant_ext.h (working copy)
- @@ -1,39 +0,0 @@
- -/*
- - Copyright (c) 2002, Thomas Kurschel
- -
- -
- - Part of Radeon accelerant
- -
- - additional accelerant interface definitions
- -*/
- -
- -
- -#ifndef _ACCELERANT_EXT_H
- -#define _ACCELERANT_EXT_H
- -
- -
- -// additional timing flags for GetMode/SetMode
- -enum {
- - RADEON_MODE_STANDARD = 0 << 16,
- - RADEON_MODE_COMBINE = 3 << 16,
- -
- - RADEON_MODE_MASK = 7 << 16,
- -
- - // used internally
- - RADEON_MODE_POSITION_HORIZONTAL = 0 << 21,
- - RADEON_MODE_POSITION_VERTICAL = 1 << 21,
- - RADEON_MODE_POSITION_MASK = 1 << 21,
- -
- - RADEON_MODE_MULTIMON_REQUEST = 1 << 25,
- - RADEON_MODE_MULTIMON_REPLY = 1 << 26
- -};
- -
- -// operation codes tunneled via ProposeDisplayMode
- -typedef enum {
- - ms_swap = 'sw',
- - ms_use_laptop_panel = 'up',
- - ms_tv_standard = 'tv'
- -} multi_mon_settings;
- -
- -
- -#endif
- Index: src/preferences/screen/multimon.cpp
- ===================================================================
- --- src/preferences/screen/multimon.cpp (revision 42460)
- +++ src/preferences/screen/multimon.cpp (working copy)
- @@ -7,7 +7,7 @@
- #include "multimon.h"
- -#include "accelerant_ext.h"
- +#include "multimonitor_extras.h"
- #include <OS.h>
- #include <Screen.h>
- @@ -202,8 +202,8 @@
- return B_ERROR;
- // set request bits
- - modeList[0].timing.flags |= RADEON_MODE_MULTIMON_REQUEST;
- - modeList[0].timing.flags &= ~RADEON_MODE_MULTIMON_REPLY;
- + modeList[0].timing.flags |= B_MULTIMON_REQUEST;
- + modeList[0].timing.flags &= ~B_MULTIMON_REPLY;
- low = high = modeList[0];
- result = screen->ProposeMode(&modeList[0], &low, &high);
- @@ -211,8 +211,8 @@
- goto out;
- // check reply bits
- - if ((modeList[0].timing.flags & RADEON_MODE_MULTIMON_REQUEST) == 0
- - && (modeList[0].timing.flags & RADEON_MODE_MULTIMON_REPLY) != 0)
- + if ((modeList[0].timing.flags & B_MULTIMON_REQUEST) == 0
- + && (modeList[0].timing.flags & B_MULTIMON_REPLY) != 0)
- result = B_OK;
- else
- result = B_ERROR;
- Index: src/preferences/screen/Jamfile
- ===================================================================
- --- src/preferences/screen/Jamfile (revision 42460)
- +++ src/preferences/screen/Jamfile (working copy)
- @@ -4,7 +4,6 @@
- AddSubDirSupportedPlatforms libbe_test ;
- UsePrivateHeaders [ FDirName graphics common ] ;
- -UsePrivateHeaders [ FDirName graphics radeon ] ;
- UsePrivateHeaders interface ;
- Preference Screen :
- Index: src/add-ons/accelerants/radeon/radeon_accelerant.h
- ===================================================================
- --- src/add-ons/accelerants/radeon/radeon_accelerant.h (revision 42460)
- +++ src/add-ons/accelerants/radeon/radeon_accelerant.h (working copy)
- @@ -12,7 +12,6 @@
- #include "radeon_interface.h"
- -#include "accelerant_ext.h"
- #ifdef __cplusplus
- extern "C" {
- Index: src/add-ons/accelerants/radeon/multimon.c
- ===================================================================
- --- src/add-ons/accelerants/radeon/multimon.c (revision 42460)
- +++ src/add-ons/accelerants/radeon/multimon.c (working copy)
- @@ -8,6 +8,7 @@
- */
- #include "radeon_accelerant.h"
- +#include "multimonitor_extras.h"
- #include "generic.h"
- #include "GlobalData.h"
- @@ -17,7 +18,7 @@
- {
- (void)vc;
- - mode->timing.flags &= ~RADEON_MODE_MASK;
- + mode->timing.flags &= ~B_MULTIMON_MODEMASK;
- // combine mode is used if virtual area is twice as visible area
- // and if scrolling is enabled; if combining is impossible, use
- @@ -30,22 +31,22 @@
- // remove scroll flag - we don't need it anymore
- mode->flags &= ~B_SCROLL;
- - mode->timing.flags &= ~RADEON_MODE_POSITION_MASK;
- + mode->timing.flags &= ~B_MULTIMON_POSMASK;
- - if( mode->virtual_width == 2 * mode->timing.h_display ) {
- + if (mode->virtual_width == 2 * mode->timing.h_display) {
- SHOW_FLOW0( 2, "horizontal combine mode" );
- - mode->timing.flags |= RADEON_MODE_POSITION_HORIZONTAL;
- - mode->timing.flags &= ~RADEON_MODE_MASK;
- - mode->timing.flags |= RADEON_MODE_COMBINE;
- - } else if( mode->virtual_height == 2 * mode->timing.v_display ) {
- + mode->timing.flags |= B_MULTIMON_HPOS;
- + mode->timing.flags &= ~B_MULTIMON_MODEMASK;
- + mode->timing.flags |= B_MULTIMON_COMBINE;
- + } else if (mode->virtual_height == 2 * mode->timing.v_display) {
- SHOW_FLOW0( 2, "vertical combine mode" );
- - mode->timing.flags |= RADEON_MODE_POSITION_VERTICAL;
- - mode->timing.flags &= ~RADEON_MODE_MASK;
- - mode->timing.flags |= RADEON_MODE_COMBINE;
- + mode->timing.flags |= B_MULTIMON_HPOS;
- + mode->timing.flags &= ~B_MULTIMON_MODEMASK;
- + mode->timing.flags |= B_MULTIMON_COMBINE;
- } else {
- // ups, this isn't really a combine mode - restore flags
- SHOW_FLOW0( 2, "wasn't really a combine mode" );
- - mode->timing.flags &= ~RADEON_MODE_MASK;
- + mode->timing.flags &= ~B_MULTIMON_MODEMASK;
- mode->flags |= B_SCROLL;
- }
- }
- @@ -56,18 +57,18 @@
- // if there is no second port or no second monitor connected,
- // fall back to standard mode
- int num_usable_crtcs = vc->assigned_crtc[0] && si->crtc[0].chosen_displays != dd_none;
- -
- - if( si->num_crtc > 1 )
- +
- + if (si->num_crtc > 1)
- num_usable_crtcs += vc->assigned_crtc[1] && si->crtc[1].chosen_displays != dd_none;
- -
- - if( num_usable_crtcs < 2 ) {
- +
- + if (num_usable_crtcs < 2) {
- SHOW_FLOW0( 2, "only one monitor - disabling any multi-mon mode" );
- // restore flags if combine mode is selected
- - if( (mode->timing.flags & RADEON_MODE_MASK) == RADEON_MODE_COMBINE )
- + if ((mode->timing.flags & B_MULTIMON_MODEMASK) == B_MULTIMON_COMBINE)
- mode->flags |= B_SCROLL;
- - mode->timing.flags &= ~RADEON_MODE_MASK;
- - mode->timing.flags |= RADEON_MODE_STANDARD;
- + mode->timing.flags &= ~B_MULTIMON_MODEMASK;
- + mode->timing.flags |= B_MULTIMON_STANDARD;
- }
- }
- @@ -76,9 +77,9 @@
- void Radeon_HideMultiMode( virtual_card *vc, display_mode *mode )
- {
- (void) vc;
- -
- +
- // restore flags for combine mode
- - if( (mode->timing.flags & RADEON_MODE_MASK) == RADEON_MODE_COMBINE )
- + if ((mode->timing.flags & B_MULTIMON_MODEMASK) == B_MULTIMON_COMBINE)
- mode->flags |= B_SCROLL;
- }
- @@ -105,11 +106,11 @@
- si->crtc[1].rel_y = 0;
- }
- - switch( mode->timing.flags & RADEON_MODE_MASK ) {
- - case RADEON_MODE_COMBINE:
- + switch(mode->timing.flags & B_MULTIMON_MODEMASK) {
- + case B_MULTIMON_COMBINE:
- // detect where second screen must be located and
- // adapt total visible area accordingly
- - if( (mode->timing.flags & RADEON_MODE_POSITION_MASK) == RADEON_MODE_POSITION_HORIZONTAL ) {
- + if ((mode->timing.flags & B_MULTIMON_POSMASK) == B_MULTIMON_HPOS) {
- vc->eff_width = 2 * mode->timing.h_display;
- x = mode->timing.h_display;
- y = 0;
- @@ -143,14 +144,14 @@
- 0, 1, 3, 4, 103, 3/* PAL SCART - no public id, so I use PAL BDGHI */, 102 };
- // check and execute tunnel settings command
- -status_t Radeon_CheckMultiMonTunnel( virtual_card *vc, display_mode *mode,
- +status_t Radeon_CheckMultiMonTunnel( virtual_card *vc, display_mode *mode,
- const display_mode *low, const display_mode *high, bool *isTunneled )
- {
- - if( (mode->timing.flags & RADEON_MODE_MULTIMON_REQUEST) != 0 &&
- - (mode->timing.flags & RADEON_MODE_MULTIMON_REPLY) == 0 )
- + if ((mode->timing.flags & B_MULTIMON_REQUEST) != 0
- + && (mode->timing.flags & B_MULTIMON_REPLY) == 0)
- {
- - mode->timing.flags &= ~RADEON_MODE_MULTIMON_REQUEST;
- - mode->timing.flags |= RADEON_MODE_MULTIMON_REPLY;
- + mode->timing.flags &= ~B_MULTIMON_REQUEST;
- + mode->timing.flags |= B_MULTIMON_REPLY;
- // still process request, just in case someone set this flag
- // combination by mistake
- @@ -264,8 +265,8 @@
- // return true if both ports must be programmed
- bool Radeon_NeedsSecondPort( display_mode *mode )
- {
- - switch( mode->timing.flags & RADEON_MODE_MASK ) {
- - case RADEON_MODE_COMBINE:
- + switch(mode->timing.flags & B_MULTIMON_MODEMASK) {
- + case B_MULTIMON_COMBINE:
- return true;
- default:
- return false;
- @@ -276,8 +277,8 @@
- // return number of ports showing differents parts of frame buffer
- bool Radeon_DifferentPorts( display_mode *mode )
- {
- - switch( mode->timing.flags & RADEON_MODE_MASK ) {
- - case RADEON_MODE_COMBINE:
- + switch(mode->timing.flags & B_MULTIMON_MODEMASK) {
- + case B_MULTIMON_COMBINE:
- return 2;
- default:
- return 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement