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:
DarkWyrm 2003-11-22 00:47:01 +00:00
parent 840db4bded
commit 2d6fb9b82d

View File

@ -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)
{ {
} }