| @@ -15,6 +15,7 @@ libcaca_la_SOURCES = \ | |||
| driver_gl.c \ | |||
| driver_ncurses.c \ | |||
| driver_network.c \ | |||
| driver_raw.c \ | |||
| driver_slang.c \ | |||
| driver_vga.c \ | |||
| driver_win32.c \ | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * libcaca Colour ASCII-Art library | |||
| * Copyright (c) 2002-2006 Sam Hocevar <sam@zoy.org> | |||
| * Copyright (c) 2006 Sam Hocevar <sam@zoy.org> | |||
| * All Rights Reserved | |||
| * | |||
| * This library is free software; you can redistribute it and/or | |||
| @@ -133,6 +133,7 @@ static int caca_init_driver(caca_t *kk) | |||
| #if defined(USE_GL) | |||
| if(!strcasecmp(var, "gl")) return gl_install(kk); | |||
| #endif | |||
| if(!strcasecmp(var, "raw")) return raw_install(kk); | |||
| #if defined(USE_SLANG) | |||
| if(!strcasecmp(var, "slang")) return slang_install(kk); | |||
| #endif | |||
| @@ -170,9 +171,6 @@ static int caca_init_driver(caca_t *kk) | |||
| #if defined(USE_NCURSES) | |||
| if(ncurses_install(kk) == 0) return 0; | |||
| #endif | |||
| #if defined(USE_NETWORK) | |||
| if(network_install(kk) == 0) return 0; | |||
| #endif | |||
| return -1; | |||
| } | |||
| @@ -39,57 +39,59 @@ typedef long unsigned int uintptr_t; | |||
| enum caca_driver | |||
| { | |||
| CACA_DRIVER_NONE = 0, | |||
| CACA_DRIVER_RAW = 1, | |||
| #if defined(USE_CONIO) | |||
| CACA_DRIVER_CONIO = 1, | |||
| CACA_DRIVER_CONIO = 2, | |||
| #endif | |||
| #if defined(USE_GL) | |||
| CACA_DRIVER_GL = 3, | |||
| #endif | |||
| #if defined(USE_NETWORK) | |||
| CACA_DRIVER_NETWORK = 4, | |||
| #endif | |||
| #if defined(USE_NCURSES) | |||
| CACA_DRIVER_NCURSES = 2, | |||
| CACA_DRIVER_NCURSES = 5, | |||
| #endif | |||
| #if defined(USE_SLANG) | |||
| CACA_DRIVER_SLANG = 3, | |||
| CACA_DRIVER_SLANG = 6, | |||
| #endif | |||
| #if defined(USE_X11) | |||
| CACA_DRIVER_X11 = 4, | |||
| #if defined(USE_VGA) | |||
| CACA_DRIVER_VGA = 7, | |||
| #endif | |||
| #if defined(USE_WIN32) | |||
| CACA_DRIVER_WIN32 = 5, | |||
| CACA_DRIVER_WIN32 = 8, | |||
| #endif | |||
| #if defined(USE_GL) | |||
| CACA_DRIVER_GL = 6, | |||
| #endif | |||
| #if defined(USE_NETWORK) | |||
| CACA_DRIVER_NETWORK = 7, | |||
| #endif | |||
| #if defined(USE_VGA) | |||
| CACA_DRIVER_VGA = 8, | |||
| #if defined(USE_X11) | |||
| CACA_DRIVER_X11 = 9, | |||
| #endif | |||
| }; | |||
| /* Available drivers */ | |||
| /* Available external drivers */ | |||
| #if defined(USE_CONIO) | |||
| int conio_install(caca_t *); | |||
| #endif | |||
| #if defined(USE_GL) | |||
| int gl_install(caca_t *); | |||
| #endif | |||
| #if defined(USE_NETWORK) | |||
| int network_install(caca_t *); | |||
| #endif | |||
| #if defined(USE_NCURSES) | |||
| int ncurses_install(caca_t *); | |||
| #endif | |||
| int raw_install(caca_t *); | |||
| #if defined(USE_SLANG) | |||
| int slang_install(caca_t *); | |||
| #endif | |||
| #if defined(USE_VGA) | |||
| int vga_install(caca_t *); | |||
| #endif | |||
| #if defined(USE_WIN32) | |||
| int win32_install(caca_t *); | |||
| #endif | |||
| #if defined(USE_X11) | |||
| int x11_install(caca_t *); | |||
| #endif | |||
| #if defined(USE_NETWORK) | |||
| int network_install(caca_t *); | |||
| #endif | |||
| #if defined(USE_VGA) | |||
| int vga_install(caca_t *); | |||
| #endif | |||
| /* Timer structure */ | |||
| struct caca_timer | |||
| @@ -0,0 +1,106 @@ | |||
| /* | |||
| * libcaca Colour ASCII-Art library | |||
| * Copyright (c) 2002-2006 Sam Hocevar <sam@zoy.org> | |||
| * All Rights Reserved | |||
| * | |||
| * This library is free software; you can redistribute it and/or | |||
| * modify it under the terms of the Do What The Fuck You Want To | |||
| * Public License, Version 2, as published by Sam Hocevar. See | |||
| * http://sam.zoy.org/wtfpl/COPYING for more details. | |||
| */ | |||
| /** \file driver_raw.c | |||
| * \version \$Id$ | |||
| * \author Sam Hocevar <sam@zoy.org> | |||
| * \brief raw driver | |||
| * | |||
| * This file contains the libcaca raw input and output driver | |||
| */ | |||
| #include "config.h" | |||
| #if !defined(__KERNEL__) | |||
| # include <stdio.h> | |||
| #endif | |||
| #include "caca.h" | |||
| #include "caca_internals.h" | |||
| #include "cucul.h" | |||
| #include "cucul_internals.h" | |||
| static int raw_init_graphics(caca_t *kk) | |||
| { | |||
| return 0; | |||
| } | |||
| static int raw_end_graphics(caca_t *kk) | |||
| { | |||
| return 0; | |||
| } | |||
| static int raw_set_window_title(caca_t *kk, char const *title) | |||
| { | |||
| return 0; | |||
| } | |||
| static unsigned int raw_get_window_width(caca_t *kk) | |||
| { | |||
| return 0; | |||
| } | |||
| static unsigned int raw_get_window_height(caca_t *kk) | |||
| { | |||
| return 0; | |||
| } | |||
| static void raw_display(caca_t *kk) | |||
| { | |||
| uint8_t *attr = kk->qq->attr; | |||
| uint32_t *chars = kk->qq->chars; | |||
| int n; | |||
| fprintf(stdout, "CACA %i %i\n", kk->qq->width, kk->qq->height); | |||
| for(n = kk->qq->height * kk->qq->width; n--; ) | |||
| { | |||
| uint32_t c = *chars++; | |||
| uint8_t a = *attr++; | |||
| fprintf(stdout, "%c%c%c%c %c", (c >> 24), (c >> 16) & 0xff, | |||
| (c >> 8) & 0xff, c & 0xff, a); | |||
| } | |||
| fprintf(stdout, "ACAC\n"); | |||
| fflush(stdout); | |||
| } | |||
| static void raw_handle_resize(caca_t *kk) | |||
| { | |||
| ; | |||
| } | |||
| static int raw_get_event(caca_t *kk, struct caca_event *ev) | |||
| { | |||
| ev->type = CACA_EVENT_NONE; | |||
| return 0; | |||
| } | |||
| /* | |||
| * Driver initialisation | |||
| */ | |||
| int raw_install(caca_t *kk) | |||
| { | |||
| kk->drv.driver = CACA_DRIVER_RAW; | |||
| kk->drv.init_graphics = raw_init_graphics; | |||
| kk->drv.end_graphics = raw_end_graphics; | |||
| kk->drv.set_window_title = raw_set_window_title; | |||
| kk->drv.get_window_width = raw_get_window_width; | |||
| kk->drv.get_window_height = raw_get_window_height; | |||
| kk->drv.display = raw_display; | |||
| kk->drv.handle_resize = raw_handle_resize; | |||
| kk->drv.get_event = raw_get_event; | |||
| kk->drv.set_mouse = NULL; | |||
| return 0; | |||
| } | |||