|
libsax 7.2
|
00001 /************** 00002 FILE : desktop.h 00003 *************** 00004 PROJECT : SaX2 - library interface [header] 00005 : 00006 AUTHOR : Marcus Schäfer <ms@suse.de> 00007 : 00008 BELONGS TO : SaX2 - SuSE advanced X11 configuration 00009 : 00010 : 00011 DESCRIPTION : native C++ class library to access SaX2 00012 : functionality. Easy to use interface for 00013 : //.../ 00014 : - importing/exporting X11 configurations 00015 : - modifying/creating X11 configurations 00016 : --- 00017 : 00018 : 00019 STATUS : Status: Development 00020 **************/ 00021 #ifndef SAX_DESKTOP_H 00022 #define SAX_DESKTOP_H 1 00023 00024 //==================================== 00025 // Includes... 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 // Defines... 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 SAX_KMS_STATUS "/usr/share/sax/libsax/KMSStatus.sh" 00042 #define PROFILE_DIR "/usr/share/sax/profile/" 00043 #define MAP_DIR "/usr/share/sax/sysp/maps/" 00044 #define SYSP_VENDOR "/usr/share/sax/sysp/script/vendor.pl" 00045 00046 //==================================== 00047 // Interface class for dlopen ability 00048 //------------------------------------ 00056 class SaXManipulateDesktopIF : public SaXException { 00057 public: 00058 virtual void calculateModelines ( bool ) = 0; 00059 virtual void setExtraModelineString ( const QString& ) = 0; 00060 virtual void setExtraModeline ( int,int,int,int ) = 0; 00061 virtual void addExtraModeline ( int,int,int,int ) = 0; 00062 virtual void removeExtraModeline ( int,int ) = 0; 00063 virtual void setResolution ( int,int,int ) = 0; 00064 virtual void addResolution ( int,int,int ) = 0; 00065 virtual void removeResolution ( int,int,int ) = 0; 00066 virtual void setVirtualResolution ( int,int,int ) = 0; 00067 virtual void removeVirtualResolution ( int ) = 0; 00068 virtual void setColorDepth ( int ) = 0; 00069 virtual bool enable3D ( void ) = 0; 00070 virtual bool disable3D ( void ) = 0; 00071 virtual void setDisplaySize ( int,int ) = 0; 00072 virtual void setDisplayRatioAndTraversal ( double ,int, int ) = 0; 00073 virtual void setHsyncRange ( double,double ) = 0; 00074 virtual void setVsyncRange ( double,double ) = 0; 00075 virtual void setPreferredMode ( const QString& ) = 0; 00076 virtual void enableDPMS ( void ) = 0; 00077 virtual void disableDPMS ( void ) = 0; 00078 virtual void setMonitorVendor ( const QString& ) = 0; 00079 virtual void setMonitorName ( const QString& ) = 0; 00080 virtual void setCDBMonitor ( const QString& ) = 0; 00081 virtual QList<QString> getCDBMonitorVendorList ( void ) = 0; 00082 virtual QList<QString> getCDBMonitorModelList ( const QString& ) = 0; 00083 virtual Q3Dict<QString> getCDBMonitorData ( 00084 const QString&,const QString& 00085 ) = 0; 00086 virtual Q3Dict<QString> getCDBMonitorIDData ( 00087 const QString& 00088 ) = 0; 00089 virtual void setCDBMonitorData ( 00090 const QString&, const QString&, 00091 const QString&, const QString& 00092 ) = 0; 00093 00094 public: 00095 virtual QList<QString> getResolutions ( int ) = 0; 00096 virtual QList<QString> getResolutionsFromFrameBuffer (void) = 0; 00097 virtual QList<QString> getResolutionFromServer ( void ) = 0; 00098 virtual QList<QString> getResolutionsFromDDC1 ( void ) = 0; 00099 virtual QList<QString> getResolutionsFromDDC2 ( void ) = 0; 00100 virtual QList<QString> getDisplaySize ( void ) = 0; 00101 virtual QList<QString> getDisplayRatio( void ) = 0; 00102 virtual QString getDisplayTraversal ( void ) = 0; 00103 virtual QList<QString> getHsyncRange ( void ) = 0; 00104 virtual QList<QString> getVsyncRange ( void ) = 0; 00105 virtual bool is3DEnabled ( void ) = 0; 00106 virtual bool is3DCard ( void ) = 0; 00107 virtual bool isDualHeadCard ( void ) = 0; 00108 virtual bool isXineramaMode ( void ) = 0; 00109 virtual bool DPMSEnabled ( void ) = 0; 00110 virtual int getFBKernelMode ( const QString&,int ) = 0; 00111 virtual int setFBKernelMode ( int ) = 0; 00112 virtual bool getKMSStatus ( void ) = 0; 00113 virtual int getColorDepthFromServer ( void ) = 0; 00114 virtual QString getMonitorVendor ( void ) = 0; 00115 virtual QString getMonitorName ( void ) = 0; 00116 virtual QString getColorDepth ( void ) = 0; 00117 virtual QString getVirtualResolution ( int ) = 0; 00118 virtual QString getDualHeadProfile ( void ) = 0; 00119 virtual QString getModelineAlgorithm ( void ) = 0; 00120 virtual bool willCalculateModelines ( void ) = 0; 00121 00122 public: 00123 virtual bool selectDesktop (int) = 0; 00124 00125 public: 00126 virtual ~SaXManipulateDesktopIF ( void ) { } 00127 }; 00128 //==================================== 00129 // Class SaXManipulateDesktop... 00130 //------------------------------------ 00185 class SaXManipulateDesktop : public SaXManipulateDesktopIF { 00186 private: 00187 SaXImport* mDesktop; 00188 SaXImport* mCard; 00189 SaXImport* mPath; 00190 SaXImportSysp* mSyspDesktop; 00191 SaXProcess* mCDBMonitors; 00192 QList<QString> mCDBMonitorList; 00193 Q3Dict<QString> mCDBMonitorData; 00194 int mDesktopID; 00195 00196 private: 00197 QString getVendorForDriver ( const QString& ); 00198 QString calculateModeline ( int,int,int,int ); 00199 QString getDriverOptionsDualHeadProfile ( const QString& ); 00200 Q3Dict<QString> getMetaData ( void ); 00201 QList<QString> getResolutionsFromDDC ( const QString& ); 00202 00203 public: 00204 void calculateModelines ( bool ); 00205 void setExtraModelineString ( const QString& ); 00206 void setExtraModeline ( int,int,int,int ); 00207 void addExtraModeline ( int,int,int,int ); 00208 void removeExtraModeline ( int,int ); 00209 void setResolution ( int,int,int ); 00210 void addResolution ( int,int,int ); 00211 void removeResolution ( int,int,int ); 00212 void setVirtualResolution ( int,int,int ); 00213 void removeVirtualResolution ( int ); 00214 void setColorDepth ( int ); 00215 bool enable3D ( void ); 00216 bool disable3D ( void ); 00217 void setDisplaySize ( int,int ); 00218 void setDisplayRatioAndTraversal ( double ,int, int ); 00219 void setHsyncRange ( double,double ); 00220 void setVsyncRange ( double,double ); 00221 void setPreferredMode ( const QString& ); 00222 void enableDPMS ( void ); 00223 void disableDPMS ( void ); 00224 void setMonitorVendor ( const QString& ); 00225 void setMonitorName ( const QString& ); 00226 void setCDBMonitor ( const QString& ); 00227 QList<QString> getCDBMonitorVendorList ( void ); 00228 QList<QString> getCDBMonitorModelList ( const QString& ); 00229 Q3Dict<QString> getCDBMonitorData ( const QString&, const QString& ); 00230 Q3Dict<QString> getCDBMonitorIDData ( const QString& ); 00231 void setCDBMonitorData ( 00232 const QString&, const QString&, 00233 const QString&, const QString& 00234 ); 00235 00236 public: 00237 QList<QString> getResolutions ( int ); 00238 QList<QString> getResolutionsFromFrameBuffer (void); 00239 QList<QString> getResolutionFromServer ( void ); 00240 QList<QString> getResolutionsFromDDC1 ( void ); 00241 QList<QString> getResolutionsFromDDC2 ( void ); 00242 QList<QString> getDisplaySize ( void ); 00243 QList<QString> getDisplayRatio( void ); 00244 QString getDisplayTraversal ( void ); 00245 QList<QString> getHsyncRange ( void ); 00246 QList<QString> getVsyncRange ( void ); 00247 bool is3DEnabled ( void ); 00248 bool is3DCard ( void ); 00249 bool isDualHeadCard ( void ); 00250 bool isXineramaMode ( void ); 00251 bool DPMSEnabled ( void ); 00252 int getFBKernelMode ( const QString&,int ); 00253 int setFBKernelMode ( int ); 00254 bool getKMSStatus ( void ); 00255 int getColorDepthFromServer ( void ); 00256 QString getMonitorVendor ( void ); 00257 QString getMonitorName ( void ); 00258 QString getColorDepth ( void ); 00259 QString getVirtualResolution ( int ); 00260 QString getDualHeadProfile ( void ); 00261 QString getModelineAlgorithm ( void ); 00262 bool willCalculateModelines ( void ); 00263 00264 public: 00265 bool selectDesktop (int); 00266 00267 public: 00268 SaXManipulateDesktop ( 00269 SaXImport*, SaXImport*, SaXImport*, int = 0 00270 ); 00271 }; 00272 } // end namespace 00273 #endif
1.7.3