00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef SAX_DESKTOP_H
00022 #define SAX_DESKTOP_H 1
00023
00024
00025
00026
00027 #include "import.h"
00028 #include "card.h"
00029 #include "path.h"
00030 #include "file.h"
00031
00032 namespace SaX {
00033
00034
00035
00036 #define XSLOAD "/usr/X11R6/bin/xsload"
00037 #define XMODE "/usr/sbin/xmode"
00038 #define SAX_PROFILE_CHECK "/var/lib/sax/createCHK.sh"
00039 #define PROFILE_DIR "/usr/share/sax/profile/"
00040 #define MAP_DIR "/usr/share/sax/sysp/maps/"
00041 #define SYSP_VENDOR "/usr/share/sax/sysp/script/vendor.pl"
00042
00043
00044
00045
00053 class SaXManipulateDesktopIF : public SaXException {
00054 public:
00055 virtual void calculateModelines ( bool ) = 0;
00056 virtual void setExtraModeline ( int,int,int,int ) = 0;
00057 virtual void addExtraModeline ( int,int,int,int ) = 0;
00058 virtual void removeExtraModeline ( int,int ) = 0;
00059 virtual void setResolution ( int,int,int ) = 0;
00060 virtual void addResolution ( int,int,int ) = 0;
00061 virtual void removeResolution ( int,int,int ) = 0;
00062 virtual void setVirtualResolution ( int,int,int ) = 0;
00063 virtual void removeVirtualResolution ( int ) = 0;
00064 virtual void setColorDepth ( int ) = 0;
00065 virtual bool enable3D ( void ) = 0;
00066 virtual bool disable3D ( void ) = 0;
00067 virtual void setDisplaySize ( int,int ) = 0;
00068 virtual void setHsyncRange ( double,double ) = 0;
00069 virtual void setVsyncRange ( double,double ) = 0;
00070 virtual void enableDPMS ( void ) = 0;
00071 virtual void disableDPMS ( void ) = 0;
00072 virtual void setMonitorVendor ( const QString& ) = 0;
00073 virtual void setMonitorName ( const QString& ) = 0;
00074 virtual void setCDBMonitor ( const QString& ) = 0;
00075 virtual QList<QString> getCDBMonitorVendorList ( void ) = 0;
00076 virtual QList<QString> getCDBMonitorModelList ( const QString& ) = 0;
00077 virtual QDict<QString> getCDBMonitorData (
00078 const QString&,const QString&
00079 ) = 0;
00080 virtual void setCDBMonitorData (
00081 const QString&, const QString&,
00082 const QString&, const QString&
00083 ) = 0;
00084
00085 public:
00086 virtual QList<QString> getResolutions ( int ) = 0;
00087 virtual QList<QString> getDisplaySize ( void ) = 0;
00088 virtual QList<QString> getHsyncRange ( void ) = 0;
00089 virtual QList<QString> getVsyncRange ( void ) = 0;
00090 virtual bool is3DEnabled ( void ) = 0;
00091 virtual bool is3DCard ( void ) = 0;
00092 virtual bool isDualHeadCard ( void ) = 0;
00093 virtual bool DPMSEnabled ( void ) = 0;
00094 virtual QString getMonitorVendor ( void ) = 0;
00095 virtual QString getMonitorName ( void ) = 0;
00096 virtual QString getColorDepth ( void ) = 0;
00097 virtual QString getVirtualResolution ( int ) = 0;
00098 virtual QString getDualHeadProfile ( void ) = 0;
00099 virtual QString getModelineAlgorithm ( void ) = 0;
00100 virtual bool willCalculateModelines ( void ) = 0;
00101
00102 public:
00103 virtual bool selectDesktop (int) = 0;
00104
00105 public:
00106 virtual ~SaXManipulateDesktopIF ( void ) { }
00107 };
00108
00109
00110
00165 class SaXManipulateDesktop : public SaXManipulateDesktopIF {
00166 private:
00167 SaXImport* mDesktop;
00168 SaXImport* mCard;
00169 SaXImport* mPath;
00170 SaXProcess* mCDBMonitors;
00171 QList<QString> mCDBMonitorList;
00172 QDict<QString> mCDBMonitorData;
00173 int mDesktopID;
00174
00175 private:
00176 QString getVendorForDriver ( const QString& );
00177 QString calculateModeline ( int,int,int,int );
00178
00179 public:
00180 void calculateModelines ( bool );
00181 void setExtraModeline ( int,int,int,int );
00182 void addExtraModeline ( int,int,int,int );
00183 void removeExtraModeline ( int,int );
00184 void setResolution ( int,int,int );
00185 void addResolution ( int,int,int );
00186 void removeResolution ( int,int,int );
00187 void setVirtualResolution ( int,int,int );
00188 void removeVirtualResolution ( int );
00189 void setColorDepth ( int );
00190 bool enable3D ( void );
00191 bool disable3D ( void );
00192 void setDisplaySize ( int,int );
00193 void setHsyncRange ( double,double );
00194 void setVsyncRange ( double,double );
00195 void enableDPMS ( void );
00196 void disableDPMS ( void );
00197 void setMonitorVendor ( const QString& );
00198 void setMonitorName ( const QString& );
00199 void setCDBMonitor ( const QString& );
00200 QList<QString> getCDBMonitorVendorList ( void );
00201 QList<QString> getCDBMonitorModelList ( const QString& );
00202 QDict<QString> getCDBMonitorData ( const QString&, const QString& );
00203 void setCDBMonitorData (
00204 const QString&, const QString&,
00205 const QString&, const QString&
00206 );
00207
00208 public:
00209 QList<QString> getResolutions ( int );
00210 QList<QString> getDisplaySize ( void );
00211 QList<QString> getHsyncRange ( void );
00212 QList<QString> getVsyncRange ( void );
00213 bool is3DEnabled ( void );
00214 bool is3DCard ( void );
00215 bool isDualHeadCard ( void );
00216 bool DPMSEnabled ( void );
00217 QString getMonitorVendor ( void );
00218 QString getMonitorName ( void );
00219 QString getColorDepth ( void );
00220 QString getVirtualResolution ( int );
00221 QString getDualHeadProfile ( void );
00222 QString getModelineAlgorithm ( void );
00223 bool willCalculateModelines ( void );
00224
00225 public:
00226 bool selectDesktop (int);
00227
00228 public:
00229 SaXManipulateDesktop (
00230 SaXImport*, SaXImport*, SaXImport*, int = 0
00231 );
00232 };
00233 }
00234 #endif