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 <math.h>
00028 #include "import.h"
00029 #include "card.h"
00030 #include "path.h"
00031 #include "file.h"
00032
00033 namespace SaX {
00034
00035
00036
00037 #define XMODE "/usr/sbin/xmode"
00038 #define XQUERY "/usr/sbin/xquery"
00039 #define SAX_PROFILE_CHECK "/var/lib/sax/createCHK.sh"
00040 #define PROFILE_DIR "/usr/share/sax/profile/"
00041 #define MAP_DIR "/usr/share/sax/sysp/maps/"
00042 #define SYSP_VENDOR "/usr/share/sax/sysp/script/vendor.pl"
00043
00044
00045
00046
00054 class SaXManipulateDesktopIF : public SaXException {
00055 public:
00056 virtual void calculateModelines ( bool ) = 0;
00057 virtual void setExtraModelineString ( const QString& ) = 0;
00058 virtual void setExtraModeline ( int,int,int,int ) = 0;
00059 virtual void addExtraModeline ( int,int,int,int ) = 0;
00060 virtual void removeExtraModeline ( int,int ) = 0;
00061 virtual void setResolution ( int,int,int ) = 0;
00062 virtual void addResolution ( int,int,int ) = 0;
00063 virtual void removeResolution ( int,int,int ) = 0;
00064 virtual void setVirtualResolution ( int,int,int ) = 0;
00065 virtual void removeVirtualResolution ( int ) = 0;
00066 virtual void setColorDepth ( int ) = 0;
00067 virtual bool enable3D ( void ) = 0;
00068 virtual bool disable3D ( void ) = 0;
00069 virtual void setDisplaySize ( int,int ) = 0;
00070 virtual void setDisplayRatioAndTraversal ( double ,int, int ) = 0;
00071 virtual void setHsyncRange ( double,double ) = 0;
00072 virtual void setVsyncRange ( double,double ) = 0;
00073 virtual void enableDPMS ( void ) = 0;
00074 virtual void disableDPMS ( void ) = 0;
00075 virtual void setMonitorVendor ( const QString& ) = 0;
00076 virtual void setMonitorName ( const QString& ) = 0;
00077 virtual void setCDBMonitor ( const QString& ) = 0;
00078 virtual QList<QString> getCDBMonitorVendorList ( void ) = 0;
00079 virtual QList<QString> getCDBMonitorModelList ( const QString& ) = 0;
00080 virtual QDict<QString> getCDBMonitorData (
00081 const QString&,const QString&
00082 ) = 0;
00083 virtual QDict<QString> getCDBMonitorIDData (
00084 const QString&
00085 ) = 0;
00086 virtual void setCDBMonitorData (
00087 const QString&, const QString&,
00088 const QString&, const QString&
00089 ) = 0;
00090
00091 public:
00092 virtual QList<QString> getResolutions ( int ) = 0;
00093 virtual QList<QString> getResolutionFromServer ( void ) = 0;
00094 virtual QList<QString> getDisplaySize ( void ) = 0;
00095 virtual QList<QString> getDisplayRatio( void ) = 0;
00096 virtual QString getDisplayTraversal ( void ) = 0;
00097 virtual QList<QString> getHsyncRange ( void ) = 0;
00098 virtual QList<QString> getVsyncRange ( void ) = 0;
00099 virtual bool is3DEnabled ( void ) = 0;
00100 virtual bool is3DCard ( void ) = 0;
00101 virtual bool isDualHeadCard ( void ) = 0;
00102 virtual bool isXineramaMode ( void ) = 0;
00103 virtual bool DPMSEnabled ( void ) = 0;
00104 virtual QString getMonitorVendor ( void ) = 0;
00105 virtual QString getMonitorName ( void ) = 0;
00106 virtual QString getColorDepth ( void ) = 0;
00107 virtual QString getVirtualResolution ( int ) = 0;
00108 virtual QString getDualHeadProfile ( void ) = 0;
00109 virtual QString getModelineAlgorithm ( void ) = 0;
00110 virtual bool willCalculateModelines ( void ) = 0;
00111
00112 public:
00113 virtual bool selectDesktop (int) = 0;
00114
00115 public:
00116 virtual ~SaXManipulateDesktopIF ( void ) { }
00117 };
00118
00119
00120
00175 class SaXManipulateDesktop : public SaXManipulateDesktopIF {
00176 private:
00177 SaXImport* mDesktop;
00178 SaXImport* mCard;
00179 SaXImport* mPath;
00180 SaXProcess* mCDBMonitors;
00181 QList<QString> mCDBMonitorList;
00182 QDict<QString> mCDBMonitorData;
00183 int mDesktopID;
00184
00185 private:
00186 QString getVendorForDriver ( const QString& );
00187 QString calculateModeline ( int,int,int,int );
00188 QString getDriverOptionsDualHeadProfile ( const QString& );
00189 QDict<QString> getMetaData ( void );
00190
00191 public:
00192 void calculateModelines ( bool );
00193 void setExtraModelineString ( const QString& );
00194 void setExtraModeline ( int,int,int,int );
00195 void addExtraModeline ( int,int,int,int );
00196 void removeExtraModeline ( int,int );
00197 void setResolution ( int,int,int );
00198 void addResolution ( int,int,int );
00199 void removeResolution ( int,int,int );
00200 void setVirtualResolution ( int,int,int );
00201 void removeVirtualResolution ( int );
00202 void setColorDepth ( int );
00203 bool enable3D ( void );
00204 bool disable3D ( void );
00205 void setDisplaySize ( int,int );
00206 void setDisplayRatioAndTraversal ( double ,int, int );
00207 void setHsyncRange ( double,double );
00208 void setVsyncRange ( double,double );
00209 void enableDPMS ( void );
00210 void disableDPMS ( void );
00211 void setMonitorVendor ( const QString& );
00212 void setMonitorName ( const QString& );
00213 void setCDBMonitor ( const QString& );
00214 QList<QString> getCDBMonitorVendorList ( void );
00215 QList<QString> getCDBMonitorModelList ( const QString& );
00216 QDict<QString> getCDBMonitorData ( const QString&, const QString& );
00217 QDict<QString> getCDBMonitorIDData ( const QString& );
00218 void setCDBMonitorData (
00219 const QString&, const QString&,
00220 const QString&, const QString&
00221 );
00222
00223 public:
00224 QList<QString> getResolutions ( int );
00225 QList<QString> getResolutionFromServer ( void );
00226 QList<QString> getDisplaySize ( void );
00227 QList<QString> getDisplayRatio( void );
00228 QString getDisplayTraversal ( void );
00229 QList<QString> getHsyncRange ( void );
00230 QList<QString> getVsyncRange ( void );
00231 bool is3DEnabled ( void );
00232 bool is3DCard ( void );
00233 bool isDualHeadCard ( void );
00234 bool isXineramaMode ( void );
00235 bool DPMSEnabled ( void );
00236 QString getMonitorVendor ( void );
00237 QString getMonitorName ( void );
00238 QString getColorDepth ( void );
00239 QString getVirtualResolution ( int );
00240 QString getDualHeadProfile ( void );
00241 QString getModelineAlgorithm ( void );
00242 bool willCalculateModelines ( void );
00243
00244 public:
00245 bool selectDesktop (int);
00246
00247 public:
00248 SaXManipulateDesktop (
00249 SaXImport*, SaXImport*, SaXImport*, int = 0
00250 );
00251 };
00252 }
00253 #endif