summaryrefslogtreecommitdiff
path: root/display.c
diff options
context:
space:
mode:
Diffstat (limited to 'display.c')
-rw-r--r--display.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/display.c b/display.c
new file mode 100644
index 0000000..f58e42d
--- /dev/null
+++ b/display.c
@@ -0,0 +1,42 @@
+#include "xenon.h"
+#include "screen.h"
+
+typedef struct xenon_display
+{
+ char* name;
+ Display* display;
+ struct xenon_display* next;
+}
+xenon_display;
+
+static xenon_display* display_list = NULL;
+
+xenon_display* display_create()
+{
+ xenon_display* new_display = (xenon_display*) malloc ( sizeof(xenon_display) );
+ Display* new_Display = (Display*) malloc ( sizeof(Display) );
+ new_Display -> nscreens = 1;
+ new_Display -> screens = &screen;
+
+ new_display -> next = display_list;
+ new_display -> display = (Display*)new_Display;
+
+ display_list = new_display;
+
+ return new_display;
+}
+
+Display* display_find(const char* name)
+{
+ xenon_display* d = display_list;
+ if (name)
+ while(d)
+ {
+ if (!strcmp(name,d->name))
+ return d->display;
+ d = d->next;
+ }
+
+ return display_create()->display;
+}
+