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"); }
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; }
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; }
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; }
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; }