Added methods for DPMS and device capabilities
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5440 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
840db4bded
commit
2d6fb9b82d
@ -128,7 +128,7 @@ DisplayDriver::DisplayDriver(void)
|
|||||||
_is_cursor_hidden=false;
|
_is_cursor_hidden=false;
|
||||||
_is_cursor_obscured=false;
|
_is_cursor_obscured=false;
|
||||||
_cursor=NULL;
|
_cursor=NULL;
|
||||||
_dpms_caps=0;
|
_dpms_caps=B_DPMS_ON;
|
||||||
_dpms_state=B_DPMS_ON;
|
_dpms_state=B_DPMS_ON;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1333,7 +1333,7 @@ void DisplayDriver::ObscureCursor(void)
|
|||||||
|
|
||||||
The driver does not take ownership of the given cursor. Subclasses should make
|
The driver does not take ownership of the given cursor. Subclasses should make
|
||||||
a copy of the cursor passed to it. The default version of this function hides the
|
a copy of the cursor passed to it. The default version of this function hides the
|
||||||
cursor, replaces it, and shows the cursor if previously visible.
|
cursory, replaces it, and shows the cursor if previously visible.
|
||||||
*/
|
*/
|
||||||
void DisplayDriver::SetCursor(ServerCursor *cursor)
|
void DisplayDriver::SetCursor(ServerCursor *cursor)
|
||||||
{
|
{
|
||||||
@ -1999,33 +1999,6 @@ void DisplayDriver::GetTruncatedStrings( const char **instrings, int32 stringcou
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Sets the DPMS state of the driver
|
|
||||||
\param state The new state for the display. See Accelerant.h
|
|
||||||
*/
|
|
||||||
status_t DisplayDriver::SetDPMSState(uint32 state)
|
|
||||||
{
|
|
||||||
return B_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Returns the current DPMS state
|
|
||||||
\return The current DPMS state
|
|
||||||
*/
|
|
||||||
uint32 DisplayDriver::GetDPMSState(void)
|
|
||||||
{
|
|
||||||
return _dpms_state;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
\brief Returns the current DPMS capabilities
|
|
||||||
\return The current DPMS capabilities
|
|
||||||
*/
|
|
||||||
uint32 DisplayDriver::GetDPMSCapabilities(void)
|
|
||||||
{
|
|
||||||
return _dpms_caps;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Returns the bit depth for the current screen mode
|
\brief Returns the bit depth for the current screen mode
|
||||||
\return Current number of bits per pixel
|
\return Current number of bits per pixel
|
||||||
@ -2107,6 +2080,148 @@ void DisplayDriver::Unlock(void)
|
|||||||
_locker->Unlock();
|
_locker->Unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Sets the driver's Display Power Management System state
|
||||||
|
\param state The state which the driver should enter
|
||||||
|
\return B_OK if successful, B_ERROR for failure
|
||||||
|
|
||||||
|
This function will fail if the driver's rendering context does not support a
|
||||||
|
particular DPMS state. Use DPMSCapabilities to find out the supported states.
|
||||||
|
The default implementation supports only B_DPMS_ON.
|
||||||
|
*/
|
||||||
|
status_t DisplayDriver::SetDPMSMode(const uint32 &state)
|
||||||
|
{
|
||||||
|
if(state!=B_DPMS_ON)
|
||||||
|
return B_ERROR;
|
||||||
|
|
||||||
|
return B_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Returns the driver's current DPMS state
|
||||||
|
\return The driver's current DPMS state
|
||||||
|
*/
|
||||||
|
uint32 DisplayDriver::DPMSMode(void) const
|
||||||
|
{
|
||||||
|
return _dpms_state;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Returns the driver's DPMS capabilities
|
||||||
|
\return The driver's DPMS capabilities
|
||||||
|
|
||||||
|
The capabilities are the modes supported by the driver. The default implementation
|
||||||
|
allows only B_DPMS_ON. Other possible states are B_DPMS_STANDBY, SUSPEND, and OFF.
|
||||||
|
*/
|
||||||
|
uint32 DisplayDriver::DPMSCapabilities(void) const
|
||||||
|
{
|
||||||
|
return _dpms_caps;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Returns data about the rendering device
|
||||||
|
\param info Pointer to an object to receive the device info
|
||||||
|
\return B_OK if this function is supported, B_UNSUPPORTED if not
|
||||||
|
|
||||||
|
The default implementation of this returns B_UNSUPPORTED and does nothing.
|
||||||
|
|
||||||
|
From Accelerant.h:
|
||||||
|
|
||||||
|
uint32 version; // structure version number
|
||||||
|
char name[32]; // a name the user will recognize the device by
|
||||||
|
char chipset[32]; // the chipset used by the device
|
||||||
|
char serial_no[32]; // serial number for the device
|
||||||
|
uint32 memory; // amount of memory on the device, in bytes
|
||||||
|
uint32 dac_speed; // nominal DAC speed, in MHz
|
||||||
|
|
||||||
|
*/
|
||||||
|
status_t DisplayDriver::GetDeviceInfo(accelerant_device_info *info)
|
||||||
|
{
|
||||||
|
return B_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Returns data about the rendering device
|
||||||
|
\param mode_list Pointer to receive a list of modes.
|
||||||
|
\param count The number of modes in mode_list
|
||||||
|
\return B_OK if this function is supported, B_UNSUPPORTED if not
|
||||||
|
|
||||||
|
The default implementation of this returns B_UNSUPPORTED and does nothing.
|
||||||
|
*/
|
||||||
|
status_t DisplayDriver::GetModeList(display_mode **mode_list, uint32 *count)
|
||||||
|
{
|
||||||
|
return B_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Obtains the minimum and maximum pixel throughput
|
||||||
|
\param mode Structure to receive the data for the given mode
|
||||||
|
\param low Recipient of the minimum clock rate
|
||||||
|
\param high Recipient of the maximum clock rate
|
||||||
|
\return
|
||||||
|
- \c B_OK: Everything is kosher
|
||||||
|
- \c B_UNSUPPORTED: The function is unsupported
|
||||||
|
- \c B_ERROR: No known pixel clock limits
|
||||||
|
|
||||||
|
|
||||||
|
This function returns the minimum and maximum "pixel clock" rates, in
|
||||||
|
thousands-of-pixels per second, that are possible for the given mode. See
|
||||||
|
BScreen::GetPixelClockLimits() for more information.
|
||||||
|
|
||||||
|
The default implementation of this returns B_UNSUPPORTED and does nothing.
|
||||||
|
*/
|
||||||
|
status_t DisplayDriver::GetPixelClockLimits(display_mode *mode, uint32 *low, uint32 *high)
|
||||||
|
{
|
||||||
|
return B_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Obtains the timing constraints of the current display mode.
|
||||||
|
\param dtc Object to receive the constraints
|
||||||
|
\return
|
||||||
|
- \c B_OK: Everything is kosher
|
||||||
|
- \c B_UNSUPPORTED: The function is unsupported
|
||||||
|
- \c B_ERROR: No known timing constraints
|
||||||
|
|
||||||
|
The default implementation of this returns B_UNSUPPORTED and does nothing.
|
||||||
|
*/
|
||||||
|
status_t DisplayDriver::GetTimingConstraints(display_timing_constraints *dtc)
|
||||||
|
{
|
||||||
|
return B_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Obtains the timing constraints of the current display mode.
|
||||||
|
\param dtc Object to receive the constraints
|
||||||
|
\return
|
||||||
|
- \c B_OK: Everything is kosher
|
||||||
|
- \c B_UNSUPPORTED: The function is unsupported
|
||||||
|
|
||||||
|
The default implementation of this returns B_UNSUPPORTED and does nothing.
|
||||||
|
This is mostly the responsible of the hardware driver if the DisplayDriver
|
||||||
|
interfaces with actual hardware.
|
||||||
|
*/
|
||||||
|
status_t DisplayDriver::ProposeMode(display_mode *candidate, const display_mode *low, const display_mode *high)
|
||||||
|
{
|
||||||
|
return B_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Waits for the device's vertical retrace
|
||||||
|
\param timeout Amount of time to wait until retrace. Default is B_INFINITE_TIMEOUT
|
||||||
|
\return
|
||||||
|
- \c B_OK: Everything is kosher
|
||||||
|
- \c B_ERROR: The function timed out before retrace
|
||||||
|
- \c B_UNSUPPORTED: The function is unsupported
|
||||||
|
|
||||||
|
The default implementation of this returns B_UNSUPPORTED and does nothing.
|
||||||
|
*/
|
||||||
|
status_t DisplayDriver::WaitForRetrace(bigtime_t timeout)
|
||||||
|
{
|
||||||
|
return B_UNSUPPORTED;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Internal depth-setting function
|
\brief Internal depth-setting function
|
||||||
\param d Number of bits per pixel in use
|
\param d Number of bits per pixel in use
|
||||||
@ -2191,6 +2306,17 @@ void DisplayDriver::_SetDPMSCapabilities(uint32 caps)
|
|||||||
_dpms_caps=caps;
|
_dpms_caps=caps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Internal device info value-setting function
|
||||||
|
\param state The new capabilities of the driver
|
||||||
|
|
||||||
|
_SetDeviceInfo must be called at the initialization of the driver so that
|
||||||
|
GetDeviceInfo returns the proper values.
|
||||||
|
*/
|
||||||
|
void _SetDeviceInfo(const accelerant_device_info &infO)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Obtains the current cursor for the driver.
|
\brief Obtains the current cursor for the driver.
|
||||||
\return Pointer to the current cursor object.
|
\return Pointer to the current cursor object.
|
||||||
@ -2250,3 +2376,5 @@ void DisplayDriver::HLine(int32 x1, int32 x2, int32 y, PatternHandler *pat)
|
|||||||
void DisplayDriver::HLineThick(int32 x1, int32 x2, int32 y, int32 thick, PatternHandler *pat)
|
void DisplayDriver::HLineThick(int32 x1, int32 x2, int32 y, int32 thick, PatternHandler *pat)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user