diff options
Diffstat (limited to 'display.c')
-rw-r--r-- | display.c | 42 |
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; +} + |