CrystalSpace

Public API Reference

csplugincommon/directx/directdetection.h

Go to the documentation of this file.
00001 /*
00002     Copyright (C) 1998 by Jorrit Tyberghein
00003 
00004     This library is free software; you can redistribute it and/or
00005     modify it under the terms of the GNU Library General Public
00006     License as published by the Free Software Foundation; either
00007     version 2 of the License, or (at your option) any later version.
00008 
00009     This library is distributed in the hope that it will be useful,
00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012     Library General Public License for more details.
00013 
00014     You should have received a copy of the GNU Library General Public
00015     License along with this library; if not, write to the Free
00016     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00017 */
00018 
00019 #ifndef __CS_DIRECTDETECTION_H__
00020 #define __CS_DIRECTDETECTION_H__
00021 
00022 #include "csextern_dx.h"
00023 #include "csutil/array.h"
00024 
00025 #include <windows.h>
00026 #include <ddraw.h>
00027 
00034 
00035 class CS_CSPLUGINCOMMON_DX_EXPORT DirectDetectionDevice
00036 {
00037 public:
00038   DirectDetectionDevice() : Windowed(false), IsPrimary2D(true), 
00039     DeviceName2D(0), DeviceDescription2D(0)
00040   {
00041     ZeroMemory (&Guid2D, sizeof(GUID));
00042   }
00043   DirectDetectionDevice (const DirectDetectionDevice& other) :
00044     Windowed (other.Windowed), IsPrimary2D (other.IsPrimary2D)
00045   {
00046     memcpy (&Guid2D, &other.Guid2D, sizeof (GUID));
00047     DeviceName2D = csStrNew (other.DeviceName2D);
00048     DeviceDescription2D = csStrNew (other.DeviceDescription2D);
00049   }
00050   ~DirectDetectionDevice()
00051   {
00052     delete[] DeviceName2D;
00053     delete[] DeviceDescription2D;
00054   }
00055 
00057   GUID Guid2D;
00059   bool Windowed;
00061   bool IsPrimary2D;
00063   char * DeviceName2D;
00065   char * DeviceDescription2D; 
00066 };
00067 
00069 class CS_CSPLUGINCOMMON_DX_EXPORT DirectDetection
00070 {
00071 public:
00072   bool Have2DDevice();
00073   DirectDetection();
00074   virtual ~DirectDetection();
00075   const DirectDetectionDevice* FindBestDevice (int displayNumber = 0);
00076   int AddDevice (const DirectDetectionDevice& dd2d);
00077   bool CheckDevices();
00078   bool CheckDevices2D();
00079 
00080   void ReportResult (int severity, char *str, HRESULT hRes);
00081   void SystemFatalError (char *str, HRESULT hRes);
00082 
00084   csArray<DirectDetectionDevice> Devices; 
00085   iObjectRegistry* object_reg;
00086 };
00087 
00090 #endif // __CS_DIRECTDETECTION_H__

Generated for Crystal Space by doxygen 1.4.7