aboutsummaryrefslogtreecommitdiff
path: root/tests/modehotplug/demo.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/modehotplug/demo.c')
-rw-r--r--tests/modehotplug/demo.c157
1 files changed, 0 insertions, 157 deletions
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");
-}