History log of /haiku/src/kits/interface/Screen.cpp
Revision Date Author Comments
# 3a2b67b5 21-Nov-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Support for configuring screen backlight

Accelerant interface:
Introduce new hooks B_SET_BRIGHTNESS and B_GET_BRIGHTNESS. Brightness is
a float in the 0..1 range.

App_server:
Forward brightness things between BScreen and the accelerant.

intel_extreme:
Implement the hooks. Note that this only works for laptop panels, but
the driver will pretend to support it in other cases as well.

Screen preferences:
If the accelerant supports the B_GET_BRIGHTNESS hook, allow to set
brightness with a slider. Otherwise, the slidere is hidden and these
changes aren't visible.


# 1326b9d0 29-Oct-2011 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Apply the patch by jscipione on ticket #7994.

* Update BScreen class style and variable names
* Remove documentation from Screen.cpp file
* Create Screen.dox documentation file



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42984 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f7e005eb 21-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Moved PrivateScreen.h header to headers/private/interface.
* Desktop is now including it as well to be able to use the new
B_CURRENT_WORKSPACE_INDEX constant.
* Include order cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32558 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aadbd94e 21-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* BPrivateScreen used B_CURRENT_WORKSPACE where an index was required. This
was reason that caused bug #2658.
* Introduced a new constant B_CURRENT_WORKSPACE_INDEX in PrivateScreen.h; maybe
this should be made public one day.
* Fixed another reason that caused bug #2658: BPrivateScreen waited 100ms
between frame updates, leaving a large window open for such problems; I've
reduced it to 10ms now, but the actual bug fix is to reset the counter for
each BScreen object, so that when you create a new BScreen object, the frame
is retrieved timely.
* The reference count was not initialized, causing BPrivateScreens to be leaked
forever.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32557 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0eed9183 20-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Rewrote screen configuration management: VirtualScreen doesn't have anything
to do with the configurations now, instead, there is a separated
ScreenConfigurations class that maintains all known screen_configurations
per workspace (and the Workspace::Private class has two of them, one for the
current modes, one for the stored modes).
* Added Desktop::{Get|Set}ScreenMode() methods, ServerApp now only calls those.
* Getting and setting of anything else than the current screen is now supported.
* This change also fixes that a temporarily set screen mode was not being
restored on workspace switch.
* Also, the Deskbar now seems to have the wrong location a lot, which is
something that should be easily fixable therefore. I will look into this next.
* Got rid of the unhandy screen_id structure server side, and in BPrivateScreen;
we now just use an int32 - the next API break should definitely replace the
screen_id with a simple typedef.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32541 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 91af9113 17-May-2008 Stephan Aßmus <superstippi@gmx.de>

The compiler warns, and it is correct - DPMSState() and DPMSCapabilities
are supposed to return flags, and not a status_t.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25529 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c2784486 15-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

* Introduced a monitor_info structure and means to let it be filled by the
accelerant (or the app_server via EDID info). It's still experimental
API, and opinions are welcome.
* Moved BPrivateScreen into the BPrivate namespace.
* Rewrote Screen.h.
* Introduced a BScreen::GetMonitorInfo() method, and implemented it in the
app server as well (ie. AS_GET_MONITOR_INFO).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22563 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9c3e767c 07-Feb-2007 Waldemar Kornewald <wkornewald@nowhere.fake>

Changed from ~0 to kCurrentWorkspaceIndex which is actually readable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20102 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ce9e7512 07-Feb-2007 Waldemar Kornewald <wkornewald@nowhere.fake>

Changed from B_ALL_WORKSPACES to ~0 because that's more readable. :)
Can't we have something like B_CURRENT_WORKSPACE_INDEX?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20095 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 234554ce 02-Feb-2007 Waldemar Kornewald <wkornewald@nowhere.fake>

Fixed BScreen::SetMode() to use the current workspace when none is given.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20053 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2e964229 29-Apr-2006 Stephan Aßmus <superstippi@gmx.de>

removed a tiny bit of code duplication

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17261 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b66d7537 14-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* Prepared the BScreen and BPrivateScreen class to be used with multiple monitors.
* BPrivateScreen now buffers its frame for 0.1 seconds (so that calling it several
times in a row is both consistent and cheap).
* Added GetFrameBufferConfig() call to the HW interface (and implemented it).
* Added server commands AS_VALID_SCREEN_ID, AS_GET_NEXT_SCREEN_ID, and
AS_GET_FRAME_BUFFER_CONFIG.
* BPrivateScreen::BaseAddress() and BPrivateScreen::BytesPerRow() are now working.
* minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14915 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a817d6ad 14-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* (tried to) implemented RootLayer::ResizeBy() and activated AS_SET_SCREEN_MODE again;
it works in the test environment, but I haven't yet tested it on real hardware.
* moved PrivateScreen.h to src/kits/interface/ - it's not used outside of that one.
* moved reading the color map from the BPrivateScreen constructor to the ColorMap()
method.
* improved/cleaned server/client communication for the screen stuff a tiny bit.
* fixed the GetBitmap() method I implemented yesterday.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14908 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 28362fed 21-Feb-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

I just noticed this file had a weird license header...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11430 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a5b449ce 28-Jul-2003 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added BScreen implementation, which uses BPrivateScreen (not yet implemented).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4114 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1326b9d0b48dd37031ac17a31f77f092fd2afd73 29-Oct-2011 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Apply the patch by jscipione on ticket #7994.

* Update BScreen class style and variable names
* Remove documentation from Screen.cpp file
* Create Screen.dox documentation file



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42984 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f7e005eb834bd43dfcb74bc6d8e337b0a327105a 21-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Moved PrivateScreen.h header to headers/private/interface.
* Desktop is now including it as well to be able to use the new
B_CURRENT_WORKSPACE_INDEX constant.
* Include order cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32558 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aadbd94ef7c89e9acbca53bf6f18c1f25ba4ba25 21-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* BPrivateScreen used B_CURRENT_WORKSPACE where an index was required. This
was reason that caused bug #2658.
* Introduced a new constant B_CURRENT_WORKSPACE_INDEX in PrivateScreen.h; maybe
this should be made public one day.
* Fixed another reason that caused bug #2658: BPrivateScreen waited 100ms
between frame updates, leaving a large window open for such problems; I've
reduced it to 10ms now, but the actual bug fix is to reset the counter for
each BScreen object, so that when you create a new BScreen object, the frame
is retrieved timely.
* The reference count was not initialized, causing BPrivateScreens to be leaked
forever.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32557 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0eed9183061a7763972bc2589f9c43489cd078ab 20-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Rewrote screen configuration management: VirtualScreen doesn't have anything
to do with the configurations now, instead, there is a separated
ScreenConfigurations class that maintains all known screen_configurations
per workspace (and the Workspace::Private class has two of them, one for the
current modes, one for the stored modes).
* Added Desktop::{Get|Set}ScreenMode() methods, ServerApp now only calls those.
* Getting and setting of anything else than the current screen is now supported.
* This change also fixes that a temporarily set screen mode was not being
restored on workspace switch.
* Also, the Deskbar now seems to have the wrong location a lot, which is
something that should be easily fixable therefore. I will look into this next.
* Got rid of the unhandy screen_id structure server side, and in BPrivateScreen;
we now just use an int32 - the next API break should definitely replace the
screen_id with a simple typedef.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32541 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 91af9113d6e47c1d48e097a4bb190ee1b40065d3 17-May-2008 Stephan Aßmus <superstippi@gmx.de>

The compiler warns, and it is correct - DPMSState() and DPMSCapabilities
are supposed to return flags, and not a status_t.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25529 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c27844865341578ec602735e06ecba0bd188cdeb 15-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

* Introduced a monitor_info structure and means to let it be filled by the
accelerant (or the app_server via EDID info). It's still experimental
API, and opinions are welcome.
* Moved BPrivateScreen into the BPrivate namespace.
* Rewrote Screen.h.
* Introduced a BScreen::GetMonitorInfo() method, and implemented it in the
app server as well (ie. AS_GET_MONITOR_INFO).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22563 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9c3e767c44c69d4d75d0d266c1bfecd56e819132 07-Feb-2007 Waldemar Kornewald <wkornewald@nowhere.fake>

Changed from ~0 to kCurrentWorkspaceIndex which is actually readable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20102 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ce9e75125ef36568a7ff1f2b04f5dc0501113a8a 07-Feb-2007 Waldemar Kornewald <wkornewald@nowhere.fake>

Changed from B_ALL_WORKSPACES to ~0 because that's more readable. :)
Can't we have something like B_CURRENT_WORKSPACE_INDEX?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20095 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 234554ce4b5a8b94b9af63e791282189a3f9ad8b 02-Feb-2007 Waldemar Kornewald <wkornewald@nowhere.fake>

Fixed BScreen::SetMode() to use the current workspace when none is given.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20053 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2e964229edda6096dc39f276cbf207626c35ebb8 29-Apr-2006 Stephan Aßmus <superstippi@gmx.de>

removed a tiny bit of code duplication

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17261 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b66d7537121d617485e5f5c47d4deb7f79f20880 14-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* Prepared the BScreen and BPrivateScreen class to be used with multiple monitors.
* BPrivateScreen now buffers its frame for 0.1 seconds (so that calling it several
times in a row is both consistent and cheap).
* Added GetFrameBufferConfig() call to the HW interface (and implemented it).
* Added server commands AS_VALID_SCREEN_ID, AS_GET_NEXT_SCREEN_ID, and
AS_GET_FRAME_BUFFER_CONFIG.
* BPrivateScreen::BaseAddress() and BPrivateScreen::BytesPerRow() are now working.
* minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14915 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a817d6ad5a6b49ed79d84ce2e8a6e9c5f5150560 14-Nov-2005 Axel Dörfler <axeld@pinc-software.de>

* (tried to) implemented RootLayer::ResizeBy() and activated AS_SET_SCREEN_MODE again;
it works in the test environment, but I haven't yet tested it on real hardware.
* moved PrivateScreen.h to src/kits/interface/ - it's not used outside of that one.
* moved reading the color map from the BPrivateScreen constructor to the ColorMap()
method.
* improved/cleaned server/client communication for the screen stuff a tiny bit.
* fixed the GetBitmap() method I implemented yesterday.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14908 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 28362fed3342eec0b3a5255b2d9e583964e81a68 21-Feb-2005 Stefano Ceccherini <stefano.ceccherini@gmail.com>

I just noticed this file had a weird license header...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11430 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a5b449ce66a86b2bcdbb1a909f0e97c84282107d 28-Jul-2003 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Added BScreen implementation, which uses BPrivateScreen (not yet implemented).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4114 a95241bf-73f2-0310-859d-f6bbb57e9c96