Esempio n. 1
0
static void printdmxinfo(Display *display, int id)
{
    int                  event_base;
    int                  error_base;
    int                  major_version, minor_version, patch_version;
    DMXInputAttributes   iinf;
    Display              *backend;
    char                 *backendname = NULL;

    if (!DMXQueryExtension(display, &event_base, &error_base)) return;
    if (!DMXQueryVersion(display, &major_version, &minor_version,
                         &patch_version)) return;
    if (major_version == 1 && minor_version == 0) return; /* too old */
    if (!DMXGetInputAttributes(display, id, &iinf)) return;

    printf("   DMX Information: ");
    if (iinf.detached) printf("detached ");
    else               printf("active   ");
    switch (iinf.inputType) {
    case DMXLocalInputType:
        printf("local, %s", core(&iinf));
        break;
    case DMXConsoleInputType:
        printf("console %s, %s", iinf.name, core(&iinf));
        break;
    case DMXBackendInputType:
        if (iinf.physicalId >= 0) {
            if ((backend = XOpenDisplay(iinf.name))) {
                XExtensionVersion *ext = XGetExtensionVersion(backend, INAME);
                if (ext && ext != (XExtensionVersion *)NoSuchExtension) {
                    int count, i;
                    XDeviceInfo *devInfo = XListInputDevices(backend, &count);
                    if (devInfo) {
                        for (i = 0; i < count; i++) {
                            if ((unsigned)iinf.physicalId == devInfo[i].id
                                && devInfo[i].name) {
                                backendname = strdup(devInfo[i].name);
                                break;
                            }
                        }
                        XFreeDeviceList(devInfo);
                    }
                }
                XCloseDisplay(backend);
            }
        }
        printf("backend o%d/%s",iinf.physicalScreen,  iinf.name);
        if (iinf.physicalId >= 0) printf("/id%d", iinf.physicalId);
        if (backendname) {
            printf("=%s", backendname);
            free(backendname);
        }
        printf(" %s", core(&iinf));
        break;
    }
    printf("\n");
}
Esempio n. 2
0
int main(int argc, char **argv)
{
    Display              *display = NULL;
    int                  event_base;
    int                  error_base;
    int                  major_version, minor_version, patch_version;
    int                  screenNum;

    if (argc != 3) {
        printf("Usage: %s display screenNum\n", argv[0]);
        return -1;
    }

    if (!(display = XOpenDisplay(argv[1]))) {
        printf("Cannot open display %s\n", argv[1]);
        return -1;
    }

    screenNum = strtol(argv[2], NULL, 0);

    if (!DMXQueryExtension(display, &event_base, &error_base)) {
        printf("DMX extension not present\n");
        return -1;
    }
    printf("DMX extension present: event_base = %d, error_base = %d\n",
           event_base, error_base);

    if (!DMXQueryVersion(display,
                         &major_version, &minor_version, &patch_version)) {
        printf("Could not get extension version\n");
        return -1;
    }
    printf("Extension version: %d.%d patch %d\n",
           major_version, minor_version, patch_version);

    if (!DMXRemoveScreen(display, screenNum))
        printf("Failed to remove screen #%d\n", screenNum);
    
    XCloseDisplay(display);
    return 0;
}
Esempio n. 3
0
int main(int argc, char **argv)
{
    Display              *display = NULL;
    int                  event_base;
    int                  error_base;
    int                  major_version, minor_version, patch_version;
    int                  status;

    if (argc != 3) {
        printf("Usage: %s display id\n", argv[0]);
        return -1;
    }

    if (!(display = XOpenDisplay(argv[1]))) {
        printf("Cannot open display %s\n", argv[1]);
        return -1;
    }

    if (!DMXQueryExtension(display, &event_base, &error_base)) {
        printf("DMX extension not present\n");
        return -1;
    }
    printf("DMX extension present: event_base = %d, error_base = %d\n",
           event_base, error_base);

    if (!DMXQueryVersion(display,
                         &major_version, &minor_version, &patch_version)) {
        printf("Could not get extension version\n");
        return -1;
    }
    printf("Extension version: %d.%d patch %d\n",
           major_version, minor_version, patch_version);

    status = DMXRemoveInput(display, atoi(argv[2]));

    printf("status = %d\n", status);

    XCloseDisplay(display);
    return 0;
}
Esempio n. 4
0
int
main(int argc, char **argv)
{
    Display *display = NULL;
    int event_base;
    int error_base;
    int major_version, minor_version, patch_version;
    int screenNum;
    DMXScreenAttributes attr;
    unsigned int mask = 0;

    if (argc != 4 && argc != 14) {
        printf
        ("Usage: %s display screenNum displayName [scrnx scrny scrnw scrnh rootx rooty rootw rooth originx originy]\n",
         argv[0]);
        return -1;
    }

    if (!(display = XOpenDisplay(argv[1]))) {
        printf("Cannot open display %s\n", argv[1]);
        return -1;
    }

    screenNum = strtol(argv[2], NULL, 0);
    if (argc == 14) {
        mask |= (DMXScreenWindowXoffset |
                 DMXScreenWindowYoffset |
                 DMXScreenWindowWidth | DMXScreenWindowHeight);
        attr.screenWindowXoffset = strtol(argv[4], NULL, 0);
        attr.screenWindowYoffset = strtol(argv[5], NULL, 0);
        attr.screenWindowWidth = strtol(argv[6], NULL, 0);
        attr.screenWindowHeight = strtol(argv[7], NULL, 0);

        mask |= (DMXRootWindowXoffset |
                 DMXRootWindowYoffset |
                 DMXRootWindowWidth | DMXRootWindowHeight);
        attr.rootWindowXoffset = strtol(argv[8], NULL, 0);
        attr.rootWindowYoffset = strtol(argv[9], NULL, 0);
        attr.rootWindowWidth = strtol(argv[10], NULL, 0);
        attr.rootWindowHeight = strtol(argv[11], NULL, 0);

        mask |= DMXRootWindowXorigin | DMXRootWindowYorigin;
        attr.rootWindowXorigin = strtol(argv[12], NULL, 0);
        attr.rootWindowYorigin = strtol(argv[13], NULL, 0);
    }

    if (!DMXQueryExtension(display, &event_base, &error_base)) {
        printf("DMX extension not present\n");
        return -1;
    }
    printf("DMX extension present: event_base = %d, error_base = %d\n",
           event_base, error_base);

    if (!DMXQueryVersion(display,
                         &major_version, &minor_version, &patch_version)) {
        printf("Could not get extension version\n");
        return -1;
    }
    printf("Extension version: %d.%d patch %d\n",
           major_version, minor_version, patch_version);

    if (!DMXAddScreen(display, argv[3], mask, &attr, &screenNum))
        printf("Failed to add %s as screen #%d\n", argv[2], screenNum);

    XCloseDisplay(display);
    return 0;
}
Esempio n. 5
0
int
main(int argc, char *argv[])
{
   const char *displayName = NULL;
   Display *dpy;
   int event_base, error_base;
   int scr, n;
   long vinfoMask, attrMask;
   XVisualInfo vinfoTemp, *visInfo;
   Visual *vis;
   Window win, root;
   XSetWindowAttributes attr;
   XFontStruct *fontInfo;
   GC gc;

   if (argc > 1) {
      displayName = argv[1];
   }

   dpy = XOpenDisplay(displayName);
   if (!dpy) {
      fprintf(stderr, "Unable to open display %s\n", displayName);
      return -1;
   }

   if (!DMXQueryExtension(dpy, &event_base, &error_base)) {
      fprintf(stderr, "DMX extension not available on this display.\n");
      return -1;
   }

   scr = DefaultScreen(dpy);
   root = RootWindow(dpy, scr);
   vis = DefaultVisual(dpy, scr);

   vinfoMask = VisualIDMask;
   vinfoTemp.visualid = vis->visualid;
   visInfo = XGetVisualInfo(dpy, vinfoMask, &vinfoTemp, &n);
   if (!visInfo || n != 1) {
      fprintf(stderr, "Unable to get visual!\n");
      XCloseDisplay(dpy);
      return -1;
   }

   attr.background_pixel = 0;
   attr.border_pixel = 0;
   attr.colormap = XCreateColormap(dpy, root, visInfo->visual, AllocNone);
   attr.event_mask = StructureNotifyMask | ExposureMask;
   attrMask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;

   win = XCreateWindow(dpy, root,
                       500, 500, 600, 400,  /* x, y, w, h */
                       0, /* border_width */
                       visInfo->depth, InputOutput,
		       visInfo->visual, attrMask, &attr);


   if (!win) {
      fprintf(stderr, "Unable to create window!\n");
      XCloseDisplay(dpy);
      return -1;
   }

   fontInfo = XLoadQueryFont(dpy, FontName);
   if (!fontInfo) {
      fprintf(stderr, "Error: font %s not found\n", FontName);
      exit(0);
   }

   gc = XCreateGC(dpy, win, 0, NULL);
   XSetBackground(dpy, gc, BlackPixel(dpy, scr));
   XSetForeground(dpy, gc, WhitePixel(dpy, scr));
   XSetFont(dpy, gc, fontInfo->fid);

   XMapWindow(dpy, win);

   EventLoop(dpy, win, gc);

   XDestroyWindow(dpy, win);
   XCloseDisplay(dpy);
   return 0;
}
Esempio n. 6
0
int main(int argc, char **argv)
{
    Display              *display = NULL;
    int                  event_base;
    int                  error_base;
    int                  major_version, minor_version, patch_version;
    int                  width, height, shiftX, shiftY, status;
    DMXDesktopAttributes attr;
    unsigned int         mask;

    if (argc != 6) {
        printf("Usage: %s display width height shiftX shiftY\n", argv[0]);
        return -1;
    }

    if (!(display = XOpenDisplay(argv[1]))) {
        printf("Cannot open display %s\n", argv[1]);
        return -1;
    }

    width  = strtol(argv[2], NULL, 0);
    height = strtol(argv[3], NULL, 0);
    shiftX = strtol(argv[4], NULL, 0);
    shiftY = strtol(argv[5], NULL, 0);

    if (!DMXQueryExtension(display, &event_base, &error_base)) {
        printf("DMX extension not present\n");
        return -1;
    }
    printf("DMX extension present: event_base = %d, error_base = %d\n",
           event_base, error_base);

    if (!DMXQueryVersion(display,
                         &major_version, &minor_version, &patch_version)) {
        printf("Could not get extension version\n");
        return -1;
    }
    printf("Extension version: %d.%d patch %d\n",
           major_version, minor_version, patch_version);

    mask        = (DMXDesktopWidth  |
		   DMXDesktopHeight |
		   DMXDesktopShiftX |
		   DMXDesktopShiftY);
    attr.width  = width;
    attr.height = height;
    attr.shiftX = shiftX;
    attr.shiftY = shiftY;
    switch (status = DMXChangeDesktopAttributes(display, mask, &attr)) {
    case DmxBadXinerama:
        printf("status = %d (No Xinerama)\n", status);
        break;
    case DmxBadValue:
        printf("status = %d (Bad Value)\n", status);
        break;
    case Success:
        printf("status = %d (Success)\n", status);
        break;
    default:
        printf("status = %d (UNKNOWN ERROR *****)\n", status);
        break;
    }
    
    XCloseDisplay(display);
    return 0;
}