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