00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00040 #ifndef _DMXEXT_H_
00041 #define _DMXEXT_H_
00042 
00043 
00044 
00045 #define DmxBadXinerama         1001
00046 #define DmxBadValue            1002
00047 #define DmxBadReply            1003
00048 
00049 #define DMXScreenWindowWidth   (1L<<0)
00050 #define DMXScreenWindowHeight  (1L<<1)
00051 #define DMXScreenWindowXoffset (1L<<2)
00052 #define DMXScreenWindowYoffset (1L<<3)
00053 #define DMXRootWindowWidth     (1L<<4)
00054 #define DMXRootWindowHeight    (1L<<5)
00055 #define DMXRootWindowXoffset   (1L<<6)
00056 #define DMXRootWindowYoffset   (1L<<7)
00057 #define DMXRootWindowXorigin   (1L<<8)
00058 #define DMXRootWindowYorigin   (1L<<9)
00059 
00060 #define DMXDesktopWidth        (1L<<0)
00061 #define DMXDesktopHeight       (1L<<1)
00062 #define DMXDesktopShiftX       (1L<<2)
00063 #define DMXDesktopShiftY       (1L<<3)
00064 
00065 #define DMXInputType           (1L<<0)
00066 #define DMXInputPhysicalScreen (1L<<1)
00067 #define DMXInputSendsCore      (1L<<2)
00068 
00069 #ifndef _DMX_SERVER_
00070 
00073 typedef struct {
00074     char         *displayName;
00075     int          logicalScreen;
00076 
00077     unsigned int screenWindowWidth;    
00078     unsigned int screenWindowHeight;   
00079     int          screenWindowXoffset;  
00080     int          screenWindowYoffset;  
00081 
00082     unsigned int rootWindowWidth;      
00083     unsigned int rootWindowHeight;     
00084     int          rootWindowXoffset;    
00085     int          rootWindowYoffset;    
00086 
00087     int          rootWindowXorigin;    
00088     int          rootWindowYorigin;    
00089 } DMXScreenAttributes;
00090 
00093 typedef struct {
00094     int          screen;
00095     Window       window;
00096     XRectangle   pos, vis;
00097 } DMXWindowAttributes;
00098 
00101 typedef struct {
00102     unsigned int width;         
00103     unsigned int height;        
00104     int          shiftX;        
00105     int          shiftY;        
00106 } DMXDesktopAttributes;
00107 
00110 typedef enum {
00111     DMXLocalInputType,
00112     DMXConsoleInputType,
00113     DMXBackendInputType
00114 } DMXInputEnum;
00115 
00118 typedef struct {
00119     DMXInputEnum inputType;
00120     int          physicalScreen;
00121     int          physicalId;
00122     Bool         isCore;
00123     Bool         sendsCore;
00124     const char   *name;
00125     Bool         detached;
00126 } DMXInputAttributes;
00127 
00128 _XFUNCPROTOBEGIN
00129 
00130 extern Bool DMXQueryExtension(Display *dpy,
00131                               int *event_basep, int *error_basep);
00132 extern Bool DMXQueryVersion(Display *dpy, int *major_version,
00133                             int *minor_version, int *patch_version);
00134 extern Bool DMXSync(Display *dpy);
00135 extern Bool DMXForceWindowCreation(Display *dpy, Window window);
00136 
00137 
00138 extern Bool DMXGetScreenCount(Display *dpy, int *screen_count);
00139 extern Bool DMXGetScreenAttributes(Display *dpy,
00140                                    int screen,
00141                                    DMXScreenAttributes *attr);
00142 extern int  DMXChangeScreensAttributes(Display *dpy,
00143                                        int screen_count,
00144                                        int *screens,
00145                                        int mask_count,
00146                                        unsigned int *masks,
00147                                        DMXScreenAttributes *attr, 
00148                                        int *error_screen);
00149 
00150 extern Bool DMXAddScreen(Display *dpy,
00151                          const char *displayName,
00152                          unsigned int mask,
00153                          DMXScreenAttributes *attr,
00154                          int *screen);
00155 extern Bool DMXRemoveScreen(Display *dpy, int screen);
00156 
00157 
00158 
00159 
00160 
00161 
00162 
00163 extern Bool DMXGetWindowAttributes(Display *dpy, Window window,
00164                                    int *screen_count, int available_count,
00165                                    DMXWindowAttributes *attr);
00166 
00167 extern Bool DMXGetDesktopAttributes(Display *dpy, DMXDesktopAttributes *attr);
00168 extern int  DMXChangeDesktopAttributes(Display *dpy,
00169                                        unsigned int mask,
00170                                        DMXDesktopAttributes *attr);
00171 
00172 extern Bool DMXGetInputCount(Display *dpy, int *input_count);
00173 extern Bool DMXGetInputAttributes(Display *dpy, int id,
00174                                   DMXInputAttributes *attr);
00175 
00176 extern Bool DMXAddInput(Display *dpy,
00177                         unsigned int mask,
00178                         DMXInputAttributes *attr,
00179                         int *id);
00180 extern Bool DMXRemoveInput(Display *dpy, int id);
00181 
00182 
00183 extern Bool DMXAddBackendInput(Display *dpy, int screen, int sendsCore,
00184                                int *newId);
00185 extern Bool DMXAddConsoleInput(Display *dpy, const char *name, int sendsCore,
00186                                int *newId);
00187 
00188 _XFUNCPROTOEND
00189 #endif
00190 #endif