Main Page | Alphabetical List | Data Structures | File List | Data Fields | Globals

# dmxextension.h

Go to the documentation of this file.

    00001 /* $XFree86$ */
    00002 /*
    00003  * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina.
    00004  *
    00005  * All Rights Reserved.
    00006  *
    00007  * Permission is hereby granted, free of charge, to any person obtaining
    00008  * a copy of this software and associated documentation files (the
    00009  * "Software"), to deal in the Software without restriction, including
    00010  * without limitation on the rights to use, copy, modify, merge,
    00011  * publish, distribute, sublicense, and/or sell copies of the Software,
    00012  * and to permit persons to whom the Software is furnished to do so,
    00013  * subject to the following conditions:
    00014  *
    00015  * The above copyright notice and this permission notice (including the
    00016  * next paragraph) shall be included in all copies or substantial
    00017  * portions of the Software.
    00018  *
    00019  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    00020  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
    00021  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    00022  * NON-INFRINGEMENT.  IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
    00023  * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
    00024  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    00025  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    00026  * SOFTWARE.
    00027  */
    00028
    00029 /*
    00030  * Author:
    00031  *   Rickard E. (Rik) Faith <faith@redhat.com>
    00032  *   Kevin E. Martin <kem@redhat.com>
    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;    /* displayName's coordinate system */
    00050     unsigned int screenWindowHeight;   /* displayName's coordinate system */
    00051     int          screenWindowXoffset;  /* displayName's coordinate system */
    00052     int          screenWindowYoffset;  /* displayName's coordinate system */
    00053
    00054     unsigned int rootWindowWidth;      /* screenWindow's coordinate system */
    00055     unsigned int rootWindowHeight;     /* screenWindow's coordinate system */
    00056     int          rootWindowXoffset;    /* screenWindow's coordinate system */
    00057     int          rootWindowYoffset;    /* screenWindow's coordinate system */
    00058
    00059     int          rootWindowXorigin;    /* global coordinate system */
    00060     int          rootWindowYorigin;    /* global coordinate system */
    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 /* dmxUpdateScreenResources exposed for dmxCreateWindow in dmxwindow.c */
    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