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

Generated on Tue Sep 25 20:18:16 2007 for libsax by  doxygen 1.5.3