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 
00035 
00040 #ifndef _DMXEXTENSION_H_
00041 #define _DMXEXTENSION_H_
00042 
00045 typedef struct {
00046     const char   *displayName;
00047     int          logicalScreen;
00048 
00049     unsigned int screenWindowWidth;    
00050     unsigned int screenWindowHeight;   
00051     int          screenWindowXoffset;  
00052     int          screenWindowYoffset;  
00053 
00054     unsigned int rootWindowWidth;      
00055     unsigned int rootWindowHeight;     
00056     int          rootWindowXoffset;    
00057     int          rootWindowYoffset;    
00058 
00059     int          rootWindowXorigin;    
00060     int          rootWindowYorigin;    
00061 } DMXScreenAttributesRec, *DMXScreenAttributesPtr;
00062 
00064 typedef struct {
00065     int          screen;
00066     Window       window;
00067     xRectangle   pos;
00068     xRectangle   vis;
00069 } DMXWindowAttributesRec, *DMXWindowAttributesPtr;
00070 
00073 typedef struct {
00074     int          width;
00075     int          height;
00076     int          shiftX;
00077     int          shiftY;
00078 } DMXDesktopAttributesRec, *DMXDesktopAttributesPtr;
00079 
00081 typedef struct {
00082     const char   *name;
00083     int          inputType;
00084     int          physicalScreen;
00085     int          physicalId;
00086     int          isCore;
00087     int          sendsCore;
00088     int          detached;
00089 } DMXInputAttributesRec, *DMXInputAttributesPtr;
00090 
00091 
00092 extern unsigned long dmxGetNumScreens(void);
00093 extern void          dmxForceWindowCreation(WindowPtr pWindow);
00094 extern void          dmxFlushPendingSyncs(void);
00095 extern Bool          dmxGetScreenAttributes(int physical,
00096                                             DMXScreenAttributesPtr attr);
00097 extern Bool          dmxGetWindowAttributes(WindowPtr pWindow,
00098                                             DMXWindowAttributesPtr attr);
00099 extern void          dmxGetDesktopAttributes(DMXDesktopAttributesPtr attr);
00100 extern int           dmxGetInputCount(void);
00101 extern int           dmxGetInputAttributes(int deviceId,
00102                                            DMXInputAttributesPtr attr);
00103 extern int           dmxAddInput(DMXInputAttributesPtr attr, int *deviceId);
00104 extern int           dmxRemoveInput(int deviceId);
00105 
00106 extern int           dmxConfigureScreenWindows(int nscreens,
00107                                                CARD32 *screens,
00108                                                DMXScreenAttributesPtr attribs,
00109                                                int *errorScreen);
00110 
00111 extern int           dmxConfigureDesktop(DMXDesktopAttributesPtr attribs);
00112 
00113 
00114 extern void          dmxUpdateScreenResources(ScreenPtr pScreen,
00115                                               int x, int y, int w, int h);
00116 
00117 extern int           dmxAttachScreen(int idx, DMXScreenAttributesPtr attr);
00118 extern int           dmxDetachScreen(int idx);
00119 #endif