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 "/usr/share/sax/libsax/createCHK.sh"
00040 #define SAX_GRUB_UPDATE "/usr/share/sax/libsax/createGRB.pl"
00041 #define PROFILE_DIR "/usr/share/sax/profile/"
00042 #define MAP_DIR "/usr/share/sax/sysp/maps/"
00043 #define SYSP_VENDOR "/usr/share/sax/sysp/script/vendor.pl"
00044
00045
00046
00047
00055 class SaXManipulateDesktopIF : public SaXException {
00056 public:
00057 virtual void calculateModelines ( bool ) = 0;
00058 virtual void setExtraModelineString ( const QString& ) = 0;
00059 virtual void setExtraModeline ( int,int,int,int ) = 0;
00060 virtual void addExtraModeline ( int,int,int,int ) = 0;
00061 virtual void removeExtraModeline ( int,int ) = 0;
00062 virtual void setResolution ( int,int,int ) = 0;
00063 virtual void addResolution ( int,int,int ) = 0;
00064 virtual void removeResolution ( int,int,int ) = 0;
00065 virtual void setVirtualResolution ( int,int,int ) = 0;
00066 virtual void removeVirtualResolution ( int ) = 0;
00067 virtual void setColorDepth ( int ) = 0;
00068 virtual bool enable3D ( void ) = 0;
00069 virtual bool disable3D ( void ) = 0;
00070 virtual void setDisplaySize ( int,int ) = 0;
00071 virtual void setDisplayRatioAndTraversal ( double ,int, int ) = 0;
00072 virtual void setHsyncRange ( double,double ) = 0;
00073 virtual void setVsyncRange ( double,double ) = 0;
00074 virtual void enableDPMS ( void ) = 0;
00075 virtual void disableDPMS ( void ) = 0;
00076 virtual void setMonitorVendor ( const QString& ) = 0;
00077 virtual void setMonitorName ( const QString& ) = 0;
00078 virtual void setCDBMonitor ( const QString& ) = 0;
00079 virtual QList<QString> getCDBMonitorVendorList ( void ) = 0;
00080 virtual QList<QString> getCDBMonitorModelList ( const QString& ) = 0;
00081 virtual QDict<QString> getCDBMonitorData (
00082 const QString&,const QString&
00083 ) = 0;
00084 virtual QDict<QString> getCDBMonitorIDData (
00085 const QString&
00086 ) = 0;
00087 virtual void setCDBMonitorData (
00088 const QString&, const QString&,
00089 const QString&, const QString&
00090 ) = 0;
00091
00092 public:
00093 virtual QList<QString> getResolutions ( int ) = 0;
00094 virtual QList<QString> getResolutionsFromFrameBuffer (void) = 0;
00095 virtual QList<QString> getResolutionFromServer ( void ) = 0;
00096 virtual QList<QString> getResolutionsFromDDC1 ( void ) = 0;
00097 virtual QList<QString> getResolutionsFromDDC2 ( void ) = 0;
00098 virtual QList<QString> getDisplaySize ( void ) = 0;
00099 virtual QList<QString> getDisplayRatio( void ) = 0;
00100 virtual QString getDisplayTraversal ( void ) = 0;
00101 virtual QList<QString> getHsyncRange ( void ) = 0;
00102 virtual QList<QString> getVsyncRange ( void ) = 0;
00103 virtual bool is3DEnabled ( void ) = 0;
00104 virtual bool is3DCard ( void ) = 0;
00105 virtual bool isDualHeadCard ( void ) = 0;
00106 virtual bool isXineramaMode ( void ) = 0;
00107 virtual bool DPMSEnabled ( void ) = 0;
00108 virtual int getFBKernelMode ( const QString&,int ) = 0;
00109 virtual int setFBKernelMode ( int ) = 0;
00110 virtual int getColorDepthFromServer ( void ) = 0;
00111 virtual QString getMonitorVendor ( void ) = 0;
00112 virtual QString getMonitorName ( void ) = 0;
00113 virtual QString getColorDepth ( void ) = 0;
00114 virtual QString getVirtualResolution ( int ) = 0;
00115 virtual QString getDualHeadProfile ( void ) = 0;
00116 virtual QString getModelineAlgorithm ( void ) = 0;
00117 virtual bool willCalculateModelines ( void ) = 0;
00118
00119 public:
00120 virtual bool selectDesktop (int) = 0;
00121
00122 public:
00123 virtual ~SaXManipulateDesktopIF ( void ) { }
00124 };
00125
00126
00127
00182 class SaXManipulateDesktop : public SaXManipulateDesktopIF {
00183 private:
00184 SaXImport* mDesktop;
00185 SaXImport* mCard;
00186 SaXImport* mPath;
00187 SaXImportSysp* mSyspDesktop;
00188 SaXProcess* mCDBMonitors;
00189 QList<QString> mCDBMonitorList;
00190 QDict<QString> mCDBMonitorData;
00191 int mDesktopID;
00192
00193 private:
00194 QString getVendorForDriver ( const QString& );
00195 QString calculateModeline ( int,int,int,int );
00196 QString getDriverOptionsDualHeadProfile ( const QString& );
00197 QDict<QString> getMetaData ( void );
00198 QList<QString> getResolutionsFromDDC ( const QString& );
00199
00200 public:
00201 void calculateModelines ( bool );
00202 void setExtraModelineString ( const QString& );
00203 void setExtraModeline ( int,int,int,int );
00204 void addExtraModeline ( int,int,int,int );
00205 void removeExtraModeline ( int,int );
00206 void setResolution ( int,int,int );
00207 void addResolution ( int,int,int );
00208 void removeResolution ( int,int,int );
00209 void setVirtualResolution ( int,int,int );
00210 void removeVirtualResolution ( int );
00211 void setColorDepth ( int );
00212 bool enable3D ( void );
00213 bool disable3D ( void );
00214 void setDisplaySize ( int,int );
00215 void setDisplayRatioAndTraversal ( double ,int, int );
00216 void setHsyncRange ( double,double );
00217 void setVsyncRange ( double,double );
00218 void enableDPMS ( void );
00219 void disableDPMS ( void );
00220 void setMonitorVendor ( const QString& );
00221 void setMonitorName ( const QString& );
00222 void setCDBMonitor ( const QString& );
00223 QList<QString> getCDBMonitorVendorList ( void );
00224 QList<QString> getCDBMonitorModelList ( const QString& );
00225 QDict<QString> getCDBMonitorData ( const QString&, const QString& );
00226 QDict<QString> getCDBMonitorIDData ( const QString& );
00227 void setCDBMonitorData (
00228 const QString&, const QString&,
00229 const QString&, const QString&
00230 );
00231
00232 public:
00233 QList<QString> getResolutions ( int );
00234 QList<QString> getResolutionsFromFrameBuffer (void);
00235 QList<QString> getResolutionFromServer ( void );
00236 QList<QString> getResolutionsFromDDC1 ( void );
00237 QList<QString> getResolutionsFromDDC2 ( void );
00238 QList<QString> getDisplaySize ( void );
00239 QList<QString> getDisplayRatio( void );
00240 QString getDisplayTraversal ( void );
00241 QList<QString> getHsyncRange ( void );
00242 QList<QString> getVsyncRange ( void );
00243 bool is3DEnabled ( void );
00244 bool is3DCard ( void );
00245 bool isDualHeadCard ( void );
00246 bool isXineramaMode ( void );
00247 bool DPMSEnabled ( void );
00248 int getFBKernelMode ( const QString&,int );
00249 int setFBKernelMode ( int );
00250 int getColorDepthFromServer ( void );
00251 QString getMonitorVendor ( void );
00252 QString getMonitorName ( void );
00253 QString getColorDepth ( void );
00254 QString getVirtualResolution ( int );
00255 QString getDualHeadProfile ( void );
00256 QString getModelineAlgorithm ( void );
00257 bool willCalculateModelines ( void );
00258
00259 public:
00260 bool selectDesktop (int);
00261
00262 public:
00263 SaXManipulateDesktop (
00264 SaXImport*, SaXImport*, SaXImport*, int = 0
00265 );
00266 };
00267 }
00268 #endif