desktop.h

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 "/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 // Interface class for dlopen ability
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 // Class SaXManipulateDesktop...
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 } // end namespace
00253 #endif

Generated on Mon Jan 7 17:25:36 2008 for libsax by  doxygen 1.4.6