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