diff options
Diffstat (limited to 'tests/modehotplug')
-rw-r--r-- | tests/modehotplug/Makefile | 14 | ||||
-rw-r--r-- | tests/modehotplug/demo.c | 157 | ||||
-rwxr-xr-x | tests/modehotplug/test | 1 |
3 files changed, 0 insertions, 172 deletions
diff --git a/tests/modehotplug/Makefile b/tests/modehotplug/Makefile deleted file mode 100644 index 467fb11a..00000000 --- a/tests/modehotplug/Makefile +++ /dev/null @@ -1,14 +0,0 @@ - -all: app - -#CFLAGS = -g -ansi -pedantic -DPOSIX_C_SOURCE=199309L \ -# -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE \ - -app: demo.c - @gcc $(CFLAGS) -o app -Wall -I../../libdrm -I../../shared-core -L../../libdrm/.libs -ldrm demo.c - -clean: - @rm -f app - -run: app - sudo ./test diff --git a/tests/modehotplug/demo.c b/tests/modehotplug/demo.c deleted file mode 100644 index 4ef2e386..00000000 --- a/tests/modehotplug/demo.c +++ /dev/null @@ -1,157 +0,0 @@ - -#include <assert.h> -#include <stdio.h> -#include <stdlib.h> -#include <stdint.h> -#include <unistd.h> -#include <string.h> - -#include "xf86drm.h" -#include "xf86drmMode.h" - -/* structs for the demo_driver */ - -#define DEMO_MAX_OUTPUTS 8 - -struct demo_driver -{ - /* drm stuff */ - int fd; - drmModeResPtr res; - uint32_t counter; - - drmModeOutputPtr outputs[DEMO_MAX_OUTPUTS]; -}; - -struct demo_driver* demoCreateDriver(void); -void demoUpdateRes(struct demo_driver *driver); - -void demoPopulateOutputs(struct demo_driver *driver); -void demoHotplug(struct demo_driver *driver); - -const char* demoGetStatus(drmModeOutputPtr out); - -int main(int argc, char **argv) -{ - struct demo_driver *driver; - uint32_t temp; - int i; - - printf("starting demo\n"); - - driver = demoCreateDriver(); - - if (!driver) { - printf("failed to create driver\n"); - return 1; - } - - driver->counter = drmModeGetHotplug(driver->fd); - demoPopulateOutputs(driver); - while (driver->counter != (temp = drmModeGetHotplug(driver->fd))) { - demoPopulateOutputs(driver); - driver->counter = temp; - } - - for (i = 0; i < driver->res->count_outputs && i < DEMO_MAX_OUTPUTS; i++) { - printf("Output %u is %s\n", - driver->outputs[i]->output_id, - demoGetStatus(driver->outputs[i])); - } - - while(1) { - usleep(100000); - temp = drmModeGetHotplug(driver->fd); - if (temp == driver->counter) - continue; - - demoHotplug(driver); - driver->counter = temp; - } - - return 0; -} - -const char* demoGetStatus(drmModeOutputPtr output) -{ - switch (output->connection) { - case DRM_MODE_CONNECTED: - return "connected"; - case DRM_MODE_DISCONNECTED: - return "disconnected"; - default: - return "unknown"; - } -} - -void demoHotplug(struct demo_driver *driver) -{ - drmModeResPtr res = driver->res; - int i; - drmModeOutputPtr temp, current; - - for (i = 0; i < res->count_outputs && i < DEMO_MAX_OUTPUTS; i++) { - temp = drmModeGetOutput(driver->fd, res->outputs[i]); - current = driver->outputs[i]; - - if (temp->connection != current->connection) { - printf("Output %u became %s was %s\n", - temp->output_id, - demoGetStatus(temp), - demoGetStatus(current)); - } - - drmModeFreeOutput(current); - driver->outputs[i] = temp; - } -} - -void demoPopulateOutputs(struct demo_driver *driver) -{ - drmModeResPtr res = driver->res; - int i; - - for (i = 0; i < res->count_outputs && i < DEMO_MAX_OUTPUTS; i++) { - drmModeFreeOutput(driver->outputs[i]); - driver->outputs[i] = drmModeGetOutput(driver->fd, res->outputs[i]); - } -} - -struct demo_driver* demoCreateDriver(void) -{ - struct demo_driver* driver = malloc(sizeof(struct demo_driver)); - - memset(driver, 0, sizeof(struct demo_driver)); - - driver->fd = drmOpen("i915", NULL); - - if (driver->fd < 0) { - printf("Failed to open the card fb\n"); - goto err_driver; - } - - demoUpdateRes(driver); - if (!driver->res) { - printf("could not retrive resources\n"); - goto err_res; - } - - return driver; - -err_res: - drmClose(driver->fd); -err_driver: - free(driver); - return NULL; -} - -void demoUpdateRes(struct demo_driver *driver) -{ - if (driver->res) - drmModeFreeResources(driver->res); - - driver->res = drmModeGetResources(driver->fd); - - if (!driver->res) - printf("failed to get resources from kernel\n"); -} diff --git a/tests/modehotplug/test b/tests/modehotplug/test deleted file mode 100755 index f98e3708..00000000 --- a/tests/modehotplug/test +++ /dev/null @@ -1 +0,0 @@ -LD_PRELOAD=../../libdrm/.libs/libdrm.so ./app |