implemented AS_GET_ACCELERANT/DRIVER_PATH and renamed the relative constants

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15666 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stefano Ceccherini
2005-12-24 16:25:47 +00:00
parent a66e501974
commit 51a523b147
6 changed files with 80 additions and 8 deletions
+8 -8
View File
@@ -991,16 +991,16 @@ BWindowScreen::InitClone()
CALLED(); CALLED();
AppServerLink link; AppServerLink link;
link.StartMessage(AS_GET_ACCELERANT_NAME); link.StartMessage(AS_GET_ACCELERANT_PATH);
link.Attach<int32>(fScreenIndex); link.Attach<int32>(fScreenIndex);
status_t status = B_ERROR; status_t status = B_ERROR;
if (link.FlushWithReply(status) < B_OK || status < B_OK) if (link.FlushWithReply(status) < B_OK || status < B_OK)
return status; return status;
BString accelerantName; BString accelerantPath;
link.ReadString(accelerantName); link.ReadString(accelerantPath);
fAddonImage = load_add_on(accelerantName.String()); fAddonImage = load_add_on(accelerantPath.String());
if (fAddonImage < B_OK) { if (fAddonImage < B_OK) {
printf("InitClone: cannot load accelerant image\n"); printf("InitClone: cannot load accelerant image\n");
return fAddonImage; return fAddonImage;
@@ -1025,12 +1025,12 @@ BWindowScreen::InitClone()
} }
status = B_ERROR; status = B_ERROR;
link.StartMessage(AS_GET_DRIVER_NAME); link.StartMessage(AS_GET_DRIVER_PATH);
link.Attach<int32>(fScreenIndex); link.Attach<int32>(fScreenIndex);
if (link.FlushWithReply(status) == B_OK && status == B_OK) { if (link.FlushWithReply(status) == B_OK && status == B_OK) {
BString driverName; BString driverPath;
link.ReadString(driverName); link.ReadString(driverPath);
status = clone((void *)driverName.String()); status = clone((void *)driverPath.String());
} }
if (status < B_OK) { if (status < B_OK) {
+30
View File
@@ -2280,6 +2280,36 @@ ServerApp::_DispatchMessage(int32 code, BPrivate::LinkReceiver& link)
fLink.Flush(); fLink.Flush();
break; break;
} }
case AS_GET_ACCELERANT_PATH:
{
int32 index;
fLink.Read<int32>(&index);
BString path;
status_t status = fDesktop->HWInterface()->GetAccelerantPath(path);
fLink.StartMessage(status);
if (status == B_OK)
fLink.AttachString(path.String());
fLink.Flush();
break;
}
case AS_GET_DRIVER_PATH:
{
int32 index;
fLink.Read<int32>(&index);
BString path;
status_t status = fDesktop->HWInterface()->GetDriverPath(path);
fLink.StartMessage(status);
if (status == B_OK)
fLink.AttachString(path.String());
fLink.Flush();
break;
}
default: default:
printf("ServerApp %s received unhandled message code %ld\n", printf("ServerApp %s received unhandled message code %ld\n",
@@ -616,6 +616,26 @@ AccelerantHWInterface::DPMSCapabilities()
return fAccDPMSCapabilities(); return fAccDPMSCapabilities();
} }
status_t
AccelerantHWInterface::GetAccelerantPath(BString &string)
{
image_info info;
status_t status = get_image_info(fAccelerantImage, &info);
if (status == B_OK)
string = info.name;
return status;
}
status_t
AccelerantHWInterface::GetDriverPath(BString &string)
{
// TODO: Get path from fCardFD: is that possible ?
return B_ERROR;
}
// AvailableHardwareAcceleration // AvailableHardwareAcceleration
uint32 uint32
AccelerantHWInterface::AvailableHWAcceleration() const AccelerantHWInterface::AvailableHWAcceleration() const
@@ -47,6 +47,9 @@ public:
virtual uint32 DPMSMode(); virtual uint32 DPMSMode();
virtual uint32 DPMSCapabilities(); virtual uint32 DPMSCapabilities();
virtual status_t GetAccelerantPath(BString &path);
virtual status_t GetDriverPath(BString &path);
// query for available hardware accleration and perform it // query for available hardware accleration and perform it
virtual uint32 AvailableHWAcceleration() const; virtual uint32 AvailableHWAcceleration() const;
+15
View File
@@ -38,6 +38,21 @@ HWInterface::Initialize()
return MultiLocker::InitCheck(); return MultiLocker::InitCheck();
} }
status_t
HWInterface::GetAccelerantPath(BString &path)
{
return B_ERROR;
}
status_t
HWInterface::GetDriverPath(BString &path)
{
return B_ERROR;
}
// SetCursor // SetCursor
void void
HWInterface::SetCursor(ServerCursor* cursor) HWInterface::SetCursor(ServerCursor* cursor)
+4
View File
@@ -19,6 +19,7 @@ class RenderingBuffer;
class RGBColor; class RGBColor;
class ServerCursor; class ServerCursor;
class UpdateQueue; class UpdateQueue;
class BString;
enum { enum {
HW_ACC_COPY_REGION = 0x00000001, HW_ACC_COPY_REGION = 0x00000001,
@@ -58,6 +59,9 @@ class HWInterface : public MultiLocker {
virtual uint32 DPMSMode() = 0; virtual uint32 DPMSMode() = 0;
virtual uint32 DPMSCapabilities() = 0; virtual uint32 DPMSCapabilities() = 0;
virtual status_t GetAccelerantPath(BString &path);
virtual status_t GetDriverPath(BString &path);
// query for available hardware accleration and perform it // query for available hardware accleration and perform it
// (Initialize() must have been called already) // (Initialize() must have been called already)
virtual uint32 AvailableHWAcceleration() const virtual uint32 AvailableHWAcceleration() const