diff --git a/headers/os/add-ons/graphics/Accelerant.h b/headers/os/add-ons/graphics/Accelerant.h index 1322c357b2..b386ef0a16 100644 --- a/headers/os/add-ons/graphics/Accelerant.h +++ b/headers/os/add-ons/graphics/Accelerant.h @@ -52,6 +52,8 @@ enum { B_GET_PREFERRED_DISPLAY_MODE, /* optional */ B_GET_MONITOR_INFO, /* optional */ B_GET_EDID_INFO, /* optional */ + B_SET_BRIGHTNESS, /* optional */ + B_GET_BRIGHTNESS, /* optional */ /* cursor managment */ B_MOVE_CURSOR = 0x200, /* optional */ @@ -305,6 +307,9 @@ typedef status_t (*set_dpms_mode)(uint32 dpms_flags); typedef status_t (*get_preferred_display_mode)(display_mode* preferredMode); typedef status_t (*get_monitor_info)(monitor_info* info); typedef status_t (*get_edid_info)(void* info, uint32 size, uint32* _version); +typedef status_t (*set_brightness)(float brightness); +typedef status_t (*get_brightness)(float* brightness); + typedef sem_id (*accelerant_retrace_semaphore)(void); typedef status_t (*set_cursor_shape)(uint16 width, uint16 height, diff --git a/headers/os/interface/Screen.h b/headers/os/interface/Screen.h index b1479d9b40..e000f7fa14 100644 --- a/headers/os/interface/Screen.h +++ b/headers/os/interface/Screen.h @@ -82,6 +82,9 @@ public: uint32 DPMSState(); uint32 DPMSCapabilites(); + status_t GetBrightness(float*); + status_t SetBrightness(float); + private: // Forbidden and deprecated methods BScreen(const BScreen& other); diff --git a/headers/private/app/ServerProtocol.h b/headers/private/app/ServerProtocol.h index 580bb1728f..c564eb6bb3 100644 --- a/headers/private/app/ServerProtocol.h +++ b/headers/private/app/ServerProtocol.h @@ -174,6 +174,9 @@ enum { AS_GET_DPMS_STATE, AS_GET_DPMS_CAPABILITIES, + AS_SCREEN_SET_BRIGHTNESS, + AS_SCREEN_GET_BRIGHTNESS, + // Misc stuff AS_GET_ACCELERANT_PATH, AS_GET_DRIVER_PATH, diff --git a/headers/private/graphics/intel_extreme/intel_extreme.h b/headers/private/graphics/intel_extreme/intel_extreme.h index 1388e46951..aa7bd1c7b4 100644 --- a/headers/private/graphics/intel_extreme/intel_extreme.h +++ b/headers/private/graphics/intel_extreme/intel_extreme.h @@ -809,6 +809,11 @@ struct intel_free_graphics_memory { #define PANEL_DIVISOR_POW_CYCLE_DLY_MASK 0x1f #define PANEL_DIVISOR_POW_CYCLE_DLY_SHIFT 0x1f +// Backlight control registers +#define INTEL_BLC_PWM_CTL2 (0x8250 | REGS_NORTH_SHARED) +#define INTEL_BLC_PWM_CTL (0x8254 | REGS_NORTH_SHARED) +#define INTEL_SBLC_PWM_CTL2 (0x8254 | REGS_SOUTH_SHARED) + // ring buffer commands #define COMMAND_NOOP 0x00 diff --git a/headers/private/interface/PrivateScreen.h b/headers/private/interface/PrivateScreen.h index d3e64eff12..7f504a001c 100644 --- a/headers/private/interface/PrivateScreen.h +++ b/headers/private/interface/PrivateScreen.h @@ -82,6 +82,9 @@ public: uint32 DPMSState(); uint32 DPMSCapabilites(); + status_t GetBrightness(float*); + status_t SetBrightness(float); + void* BaseAddress(); uint32 BytesPerRow(); diff --git a/src/add-ons/accelerants/intel_extreme/accelerant_protos.h b/src/add-ons/accelerants/intel_extreme/accelerant_protos.h index fc7031d77d..ac65b155c2 100644 --- a/src/add-ons/accelerants/intel_extreme/accelerant_protos.h +++ b/src/add-ons/accelerants/intel_extreme/accelerant_protos.h @@ -36,6 +36,8 @@ status_t intel_propose_display_mode(display_mode* target, status_t intel_set_display_mode(display_mode* mode); status_t intel_get_display_mode(display_mode* currentMode); status_t intel_get_edid_info(void* info, size_t size, uint32* _version); +status_t intel_set_brightness(float brightness); +status_t intel_get_brightness(float* brightness); status_t intel_get_frame_buffer_config(frame_buffer_config* config); status_t intel_get_pixel_clock_limits(display_mode* mode, uint32* low, uint32* high); diff --git a/src/add-ons/accelerants/intel_extreme/hooks.cpp b/src/add-ons/accelerants/intel_extreme/hooks.cpp index 7e65040683..7ea4dac097 100644 --- a/src/add-ons/accelerants/intel_extreme/hooks.cpp +++ b/src/add-ons/accelerants/intel_extreme/hooks.cpp @@ -45,6 +45,10 @@ get_accelerant_hook(uint32 feature, void* data) #ifdef __HAIKU__ case B_GET_EDID_INFO: return (void*)intel_get_edid_info; + case B_SET_BRIGHTNESS: + return (void*)intel_set_brightness; + case B_GET_BRIGHTNESS: + return (void*)intel_get_brightness; #endif case B_GET_FRAME_BUFFER_CONFIG: return (void*)intel_get_frame_buffer_config; diff --git a/src/add-ons/accelerants/intel_extreme/mode.cpp b/src/add-ons/accelerants/intel_extreme/mode.cpp index 39401811dc..9f46c0aec2 100644 --- a/src/add-ons/accelerants/intel_extreme/mode.cpp +++ b/src/add-ons/accelerants/intel_extreme/mode.cpp @@ -659,6 +659,37 @@ intel_get_edid_info(void* info, size_t size, uint32* _version) } +status_t +intel_set_brightness(float brightness) +{ + CALLED(); + + if (brightness < 0 || brightness > 1) + return B_BAD_VALUE; + + uint16_t sblc = read32(INTEL_SBLC_PWM_CTL2) >> 16; + write32(INTEL_BLC_PWM_CTL, (uint32_t)(sblc * brightness)); + + return B_OK; +} + + +status_t +intel_get_brightness(float* brightness) +{ + CALLED(); + + if (brightness == NULL) + return B_BAD_VALUE; + + uint16_t sblc = read32(INTEL_SBLC_PWM_CTL2) >> 16; + uint16_t blc = read32( INTEL_BLC_PWM_CTL ); + *brightness = (float)blc / sblc; + + return B_OK; +} + + status_t intel_get_frame_buffer_config(frame_buffer_config* config) { diff --git a/src/kits/interface/PrivateScreen.cpp b/src/kits/interface/PrivateScreen.cpp index 03610b5298..ce061735b7 100644 --- a/src/kits/interface/PrivateScreen.cpp +++ b/src/kits/interface/PrivateScreen.cpp @@ -678,6 +678,39 @@ BPrivateScreen::DPMSCapabilites() } +status_t +BPrivateScreen::GetBrightness(float* brightness) +{ + if (brightness == NULL) + return B_BAD_VALUE; + + BPrivate::AppServerLink link; + link.StartMessage(AS_SCREEN_GET_BRIGHTNESS); + link.Attach(ID()); + + status_t status; + if (link.FlushWithReply(status) == B_OK && status == B_OK) + link.Read(brightness); + + return status; +} + + +status_t +BPrivateScreen::SetBrightness(float brightness) +{ + BPrivate::AppServerLink link; + link.StartMessage(AS_SCREEN_SET_BRIGHTNESS); + link.Attach(ID()); + link.Attach(brightness); + + status_t status = B_ERROR; + link.FlushWithReply(status); + + return status; +} + + void * BPrivateScreen::BaseAddress() { diff --git a/src/kits/interface/Screen.cpp b/src/kits/interface/Screen.cpp index 0bb4feff6f..1045756341 100644 --- a/src/kits/interface/Screen.cpp +++ b/src/kits/interface/Screen.cpp @@ -333,6 +333,24 @@ BScreen::DPMSCapabilites() } +status_t +BScreen::GetBrightness(float* brightness) +{ + if (fScreen != NULL) + return fScreen->GetBrightness(brightness); + return B_ERROR; +} + + +status_t +BScreen::SetBrightness(float brightness) +{ + if (fScreen != NULL) + return fScreen->SetBrightness(brightness); + return B_ERROR; +} + + // #pragma mark - Deprecated methods diff --git a/src/preferences/screen/Constants.h b/src/preferences/screen/Constants.h index f581d564e9..ae75798bd6 100644 --- a/src/preferences/screen/Constants.h +++ b/src/preferences/screen/Constants.h @@ -36,6 +36,7 @@ static const uint32 POP_TV_STANDARD_MSG = 'ptvs'; static const uint32 UPDATE_DESKTOP_MSG = 'udsk'; static const uint32 SLIDER_MODIFICATION_MSG = 'sldm'; static const uint32 SLIDER_INVOKE_MSG = 'sldi'; +static const uint32 SLIDER_BRIGHTNESS_MSG = 'brig'; static const uint32 SET_CUSTOM_REFRESH_MSG = 'scrf'; static const uint32 DIM_COUNT_MSG = 'scrf'; static const uint32 MAKE_INITIAL_MSG = 'mkin'; diff --git a/src/preferences/screen/ScreenWindow.cpp b/src/preferences/screen/ScreenWindow.cpp index 22c8d801c1..496e6cad35 100644 --- a/src/preferences/screen/ScreenWindow.cpp +++ b/src/preferences/screen/ScreenWindow.cpp @@ -506,6 +506,22 @@ ScreenWindow::ScreenWindow(ScreenSettings* settings) .Add(fTVStandardField->CreateMenuBarLayoutItem(), 1, 6) .End(); + fBrightnessSlider = new BSlider("brightness", "Brightness", + NULL, 0, 255, B_HORIZONTAL); + + status_t result = screen.GetBrightness(&fOriginalBrightness); + if (result == B_OK) { + fBrightnessSlider->SetModificationMessage( + new BMessage(SLIDER_BRIGHTNESS_MSG)); + fBrightnessSlider->SetValue(fOriginalBrightness * 255); + } else { + // The driver does not support changing the brightness, + // so hide the slider + fBrightnessSlider->Hide(); + + fOriginalBrightness = -1; + } + // TODO: we don't support getting the screen's preferred settings /* fDefaultsButton = new BButton(buttonRect, "DefaultsButton", "Defaults", new BMessage(BUTTON_DEFAULTS_MSG));*/ @@ -529,7 +545,10 @@ ScreenWindow::ScreenWindow(ScreenSettings* settings) .AddStrut(floorf(controlsBox->TopBorderOffset()) - 1) .Add(screenBox) .End() - .Add(controlsBox, 2) + .AddGroup(B_VERTICAL, 0, 1) + .Add(controlsBox, 2) + .Add(fBrightnessSlider) + .End() .End() .AddGroup(B_HORIZONTAL, B_USE_DEFAULT_SPACING) .Add(fRevertButton) @@ -1118,6 +1137,10 @@ ScreenWindow::MessageReceived(BMessage* message) fScreenMode.Revert(); _UpdateActiveMode(); + + BScreen screen(this); + screen.SetBrightness(fOriginalBrightness); + fBrightnessSlider->SetValue(fOriginalBrightness * 255); break; } @@ -1135,6 +1158,14 @@ ScreenWindow::MessageReceived(BMessage* message) PostMessage(message, fMonitorView); break; + case SLIDER_BRIGHTNESS_MSG: + { + BScreen screen(this); + screen.SetBrightness(message->FindInt32("be:value") / 255.f); + _CheckApplyEnabled(); + break; + } + default: BWindow::MessageReceived(message); } @@ -1214,8 +1245,13 @@ ScreenWindow::_CheckApplyEnabled() uint32 rows; BPrivate::get_workspaces_layout(&columns, &rows); + BScreen screen(this); + float brightness = -1; + screen.GetBrightness(&brightness); + fRevertButton->SetEnabled(columns != fOriginalWorkspacesColumns || rows != fOriginalWorkspacesRows + || brightness != fOriginalBrightness || fSelected != fOriginal); } diff --git a/src/preferences/screen/ScreenWindow.h b/src/preferences/screen/ScreenWindow.h index 1b8b14b232..8698625144 100644 --- a/src/preferences/screen/ScreenWindow.h +++ b/src/preferences/screen/ScreenWindow.h @@ -21,6 +21,7 @@ class BBox; class BPopUpMenu; class BMenuField; +class BSlider; class BSpinner; class BStringView; @@ -95,6 +96,8 @@ private: BPopUpMenu* fTVStandardMenu; BMenuField* fTVStandardField; + BSlider* fBrightnessSlider; + BButton* fDefaultsButton; BButton* fApplyButton; BButton* fRevertButton; @@ -110,6 +113,7 @@ private: uint32 fOriginalWorkspacesColumns; uint32 fOriginalWorkspacesRows; + float fOriginalBrightness; bool fModified; }; diff --git a/src/servers/app/ProfileMessageSupport.cpp b/src/servers/app/ProfileMessageSupport.cpp index 4f331c2e85..b51de468ca 100644 --- a/src/servers/app/ProfileMessageSupport.cpp +++ b/src/servers/app/ProfileMessageSupport.cpp @@ -155,6 +155,9 @@ string_for_message_code(uint32 code, BString& string) CODE(AS_GET_DPMS_STATE); CODE(AS_GET_DPMS_CAPABILITIES); + CODE(AS_SCREEN_SET_BRIGHTNESS); + CODE(AS_SCREEN_GET_BRIGHTNESS); + // Misc stuff CODE(AS_GET_ACCELERANT_PATH); CODE(AS_GET_DRIVER_PATH); diff --git a/src/servers/app/ServerApp.cpp b/src/servers/app/ServerApp.cpp index b9b25b6610..4d4a9fad33 100644 --- a/src/servers/app/ServerApp.cpp +++ b/src/servers/app/ServerApp.cpp @@ -3050,6 +3050,37 @@ ServerApp::_DispatchMessage(int32 code, BPrivate::LinkReceiver& link) break; } + case AS_SCREEN_SET_BRIGHTNESS: + { + STRACE(("ServerApp %s: AS_SCREEN_SET_BRIGHTNESS\n", Signature())); + int32 id; + link.Read(&id); + + float brightness; + link.Read(&brightness); + + status_t status = fDesktop->HWInterface()->SetBrightness(brightness); + fLink.StartMessage(status); + + fLink.Flush(); + break; + } + + case AS_SCREEN_GET_BRIGHTNESS: + { + STRACE(("ServerApp %s: AS_SCREEN_GET_BRIGHTNESS\n", Signature())); + int32 id; + link.Read(&id); + + float brightness; + status_t result = fDesktop->HWInterface()->GetBrightness(&brightness); + fLink.StartMessage(result); + if (result == B_OK) + fLink.Attach(brightness); + fLink.Flush(); + break; + } + case AS_READ_BITMAP: { STRACE(("ServerApp %s: AS_READ_BITMAP\n", Signature())); diff --git a/src/servers/app/drawing/BitmapHWInterface.cpp b/src/servers/app/drawing/BitmapHWInterface.cpp index 9366a2046b..60f9a1bd3b 100644 --- a/src/servers/app/drawing/BitmapHWInterface.cpp +++ b/src/servers/app/drawing/BitmapHWInterface.cpp @@ -176,6 +176,20 @@ BitmapHWInterface::DPMSCapabilities() } +status_t +BitmapHWInterface::SetBrightness(float) +{ + return B_UNSUPPORTED; +} + + +status_t +BitmapHWInterface::GetBrightness(float*) +{ + return B_UNSUPPORTED; +} + + RenderingBuffer* BitmapHWInterface::FrontBuffer() const { diff --git a/src/servers/app/drawing/BitmapHWInterface.h b/src/servers/app/drawing/BitmapHWInterface.h index b2a2d53628..343747cce6 100644 --- a/src/servers/app/drawing/BitmapHWInterface.h +++ b/src/servers/app/drawing/BitmapHWInterface.h @@ -51,6 +51,9 @@ public: virtual uint32 DPMSMode(); virtual uint32 DPMSCapabilities(); + virtual status_t SetBrightness(float); + virtual status_t GetBrightness(float*); + // frame buffer access virtual RenderingBuffer* FrontBuffer() const; virtual RenderingBuffer* BackBuffer() const; diff --git a/src/servers/app/drawing/DWindowHWInterface.cpp b/src/servers/app/drawing/DWindowHWInterface.cpp index 70e535c7b5..e590ebbf96 100644 --- a/src/servers/app/drawing/DWindowHWInterface.cpp +++ b/src/servers/app/drawing/DWindowHWInterface.cpp @@ -912,6 +912,24 @@ DWindowHWInterface::DPMSCapabilities() } +status_t +DWindowHWInterface::SetBrightness(float brightness) +{ + AutoReadLocker _(this); + + return BScreen().SetBrightness(brightness); +} + + +status_t +DWindowHWInterface::GetBrightness(float* brightness) +{ + AutoReadLocker _(this); + + return BScreen().GetBrightness(brightness); +} + + uint32 DWindowHWInterface::AvailableHWAcceleration() const { diff --git a/src/servers/app/drawing/DWindowHWInterface.h b/src/servers/app/drawing/DWindowHWInterface.h index 0601d4cf7f..1dd09c9aa5 100644 --- a/src/servers/app/drawing/DWindowHWInterface.h +++ b/src/servers/app/drawing/DWindowHWInterface.h @@ -56,6 +56,9 @@ public: virtual uint32 DPMSMode(); virtual uint32 DPMSCapabilities(); + virtual status_t SetBrightness(float); + virtual status_t GetBrightness(float*); + // query for available hardware accleration and perform it virtual uint32 AvailableHWAcceleration() const; diff --git a/src/servers/app/drawing/HWInterface.h b/src/servers/app/drawing/HWInterface.h index 822825dcd3..04515a1c3f 100644 --- a/src/servers/app/drawing/HWInterface.h +++ b/src/servers/app/drawing/HWInterface.h @@ -105,6 +105,9 @@ public: virtual uint32 DPMSMode() = 0; virtual uint32 DPMSCapabilities() = 0; + virtual status_t SetBrightness(float) = 0; + virtual status_t GetBrightness(float*) = 0; + virtual status_t GetAccelerantPath(BString& path); virtual status_t GetDriverPath(BString& path); diff --git a/src/servers/app/drawing/ViewHWInterface.cpp b/src/servers/app/drawing/ViewHWInterface.cpp index 4fec110348..b262d6ccda 100644 --- a/src/servers/app/drawing/ViewHWInterface.cpp +++ b/src/servers/app/drawing/ViewHWInterface.cpp @@ -734,6 +734,24 @@ ViewHWInterface::DPMSCapabilities() } +status_t +ViewHWInterface::SetBrightness(float) +{ + AutoReadLocker _(this); + + return BScreen().SetBrightness(float); +} + + +status_t +ViewHWInterface::GetBrightness(float*) +{ + AutoReadLocker _(this); + + return BScreen().GetBrightness(float); +} + + sem_id ViewHWInterface::RetraceSemaphore() { diff --git a/src/servers/app/drawing/ViewHWInterface.h b/src/servers/app/drawing/ViewHWInterface.h index b76e7a2816..9503d6d248 100644 --- a/src/servers/app/drawing/ViewHWInterface.h +++ b/src/servers/app/drawing/ViewHWInterface.h @@ -51,6 +51,9 @@ public: virtual uint32 DPMSMode(); virtual uint32 DPMSCapabilities(); + virtual status_t SetBrightness(float); + virtual status_t GetBrightness(float*); + // frame buffer access virtual RenderingBuffer* FrontBuffer() const; virtual RenderingBuffer* BackBuffer() const; diff --git a/src/servers/app/drawing/interface/html5/HTML5HWInterface.cpp b/src/servers/app/drawing/interface/html5/HTML5HWInterface.cpp index f7f2043180..d2dac8c119 100644 --- a/src/servers/app/drawing/interface/html5/HTML5HWInterface.cpp +++ b/src/servers/app/drawing/interface/html5/HTML5HWInterface.cpp @@ -516,6 +516,20 @@ HTML5HWInterface::RetraceSemaphore() } +status_t +HTML5HWInterface::SetBrightness(float) +{ + return B_UNSUPPORTED; +} + + +status_t +HTML5HWInterface::GetBrightness(float*) +{ + return B_UNSUPPORTED; +} + + status_t HTML5HWInterface::WaitForRetrace(bigtime_t timeout) { diff --git a/src/servers/app/drawing/interface/html5/HTML5HWInterface.h b/src/servers/app/drawing/interface/html5/HTML5HWInterface.h index dc97884539..5efa2cd9d5 100644 --- a/src/servers/app/drawing/interface/html5/HTML5HWInterface.h +++ b/src/servers/app/drawing/interface/html5/HTML5HWInterface.h @@ -62,6 +62,9 @@ virtual status_t SetDPMSMode(uint32 state); virtual uint32 DPMSMode(); virtual uint32 DPMSCapabilities(); +virtual status_t SetBrightness(float); +virtual status_t GetBrightness(float*); + // cursor handling virtual void SetCursor(ServerCursor* cursor); virtual void SetCursorVisible(bool visible); diff --git a/src/servers/app/drawing/interface/local/AccelerantHWInterface.cpp b/src/servers/app/drawing/interface/local/AccelerantHWInterface.cpp index 2f2a522368..13d45e0577 100644 --- a/src/servers/app/drawing/interface/local/AccelerantHWInterface.cpp +++ b/src/servers/app/drawing/interface/local/AccelerantHWInterface.cpp @@ -133,6 +133,10 @@ AccelerantHWInterface::AccelerantHWInterface() fAccDPMSMode(NULL), fAccSetDPMSMode(NULL), + // brightness hooks + fAccSetBrightness(NULL), + fAccGetBrightness(NULL), + // overlay hooks fAccOverlayCount(NULL), fAccOverlaySupportedSpaces(NULL), @@ -401,6 +405,10 @@ AccelerantHWInterface::_SetupDefaultHooks() fAccDPMSMode = (dpms_mode)fAccelerantHook(B_DPMS_MODE, NULL); fAccSetDPMSMode = (set_dpms_mode)fAccelerantHook(B_SET_DPMS_MODE, NULL); + // brightness + fAccGetBrightness = (get_brightness)fAccelerantHook(B_GET_BRIGHTNESS, NULL); + fAccSetBrightness = (set_brightness)fAccelerantHook(B_SET_BRIGHTNESS, NULL); + return B_OK; } @@ -1113,6 +1121,30 @@ AccelerantHWInterface::DPMSCapabilities() } +status_t +AccelerantHWInterface::SetBrightness(float brightness) +{ + AutoReadLocker _(this); + + if (!fAccSetBrightness) + return B_UNSUPPORTED; + + return fAccSetBrightness(brightness); +} + + +status_t +AccelerantHWInterface::GetBrightness(float* brightness) +{ + AutoReadLocker _(this); + + if (!fAccGetBrightness) + return B_UNSUPPORTED; + + return fAccGetBrightness(brightness); +} + + status_t AccelerantHWInterface::GetAccelerantPath(BString& string) { diff --git a/src/servers/app/drawing/interface/local/AccelerantHWInterface.h b/src/servers/app/drawing/interface/local/AccelerantHWInterface.h index 5cb8e57603..67861ca8eb 100644 --- a/src/servers/app/drawing/interface/local/AccelerantHWInterface.h +++ b/src/servers/app/drawing/interface/local/AccelerantHWInterface.h @@ -56,6 +56,9 @@ public: virtual uint32 DPMSMode(); virtual uint32 DPMSCapabilities(); + virtual status_t SetBrightness(float); + virtual status_t GetBrightness(float*); + virtual status_t GetAccelerantPath(BString& path); virtual status_t GetDriverPath(BString& path); @@ -159,6 +162,10 @@ private: dpms_mode fAccDPMSMode; set_dpms_mode fAccSetDPMSMode; + // brightness hooks + set_brightness fAccSetBrightness; + get_brightness fAccGetBrightness; + // overlay hooks overlay_count fAccOverlayCount; overlay_supported_spaces fAccOverlaySupportedSpaces; diff --git a/src/servers/app/drawing/interface/remote/RemoteHWInterface.cpp b/src/servers/app/drawing/interface/remote/RemoteHWInterface.cpp index 33017659ff..33b72b17e6 100644 --- a/src/servers/app/drawing/interface/remote/RemoteHWInterface.cpp +++ b/src/servers/app/drawing/interface/remote/RemoteHWInterface.cpp @@ -468,6 +468,20 @@ RemoteHWInterface::DPMSCapabilities() } +status_t +RemoteHWInterface::SetBrightness(float) +{ + return B_UNSUPPORTED; +} + + +status_t +RemoteHWInterface::GetBrightness(float*) +{ + return B_UNSUPPORTED; +} + + sem_id RemoteHWInterface::RetraceSemaphore() { diff --git a/src/servers/app/drawing/interface/remote/RemoteHWInterface.h b/src/servers/app/drawing/interface/remote/RemoteHWInterface.h index 03fcad6d4b..50661e0ab5 100644 --- a/src/servers/app/drawing/interface/remote/RemoteHWInterface.h +++ b/src/servers/app/drawing/interface/remote/RemoteHWInterface.h @@ -59,6 +59,9 @@ virtual status_t SetDPMSMode(uint32 state); virtual uint32 DPMSMode(); virtual uint32 DPMSCapabilities(); +virtual status_t SetBrightness(float); +virtual status_t GetBrightness(float*); + // cursor handling virtual void SetCursor(ServerCursor* cursor); virtual void SetCursorVisible(bool visible);