| @@ -62,6 +62,7 @@ codec_source = \ | |||||
| driver_source = \ | driver_source = \ | ||||
| driver/conio.c \ | driver/conio.c \ | ||||
| driver/ncurses.c \ | driver/ncurses.c \ | ||||
| driver/null.c \ | |||||
| driver/raw.c \ | driver/raw.c \ | ||||
| driver/slang.c \ | driver/slang.c \ | ||||
| driver/vga.c \ | driver/vga.c \ | ||||
| @@ -178,6 +178,7 @@ char const * const * caca_get_display_driver_list(void) | |||||
| #endif | #endif | ||||
| #if !defined(__KERNEL__) | #if !defined(__KERNEL__) | ||||
| "raw", "raw libcaca output", | "raw", "raw libcaca output", | ||||
| "null", "null driver", | |||||
| #endif | #endif | ||||
| NULL, NULL | NULL, NULL | ||||
| }; | }; | ||||
| @@ -388,6 +389,9 @@ static int caca_select_driver(caca_display_t *dp, char const *driver) | |||||
| #endif | #endif | ||||
| #if defined(USE_VGA) | #if defined(USE_VGA) | ||||
| if(!strcasecmp(var, "vga")) return vga_install(dp); | if(!strcasecmp(var, "vga")) return vga_install(dp); | ||||
| #endif | |||||
| #if !defined(__KERNEL__) | |||||
| if(!strcasecmp(var, "null")) return null_install(dp); | |||||
| #endif | #endif | ||||
| return -1; | return -1; | ||||
| } | } | ||||
| @@ -419,6 +423,8 @@ static int caca_select_driver(caca_display_t *dp, char const *driver) | |||||
| #if defined(USE_SLANG) | #if defined(USE_SLANG) | ||||
| if(slang_install(dp) == 0) return 0; | if(slang_install(dp) == 0) return 0; | ||||
| #endif | #endif | ||||
| /* Of course we don't try "raw" or "null" if the user did not | |||||
| * specifically ask for them. */ | |||||
| return -1; | return -1; | ||||
| } | } | ||||
| @@ -1,6 +1,6 @@ | |||||
| /* | /* | ||||
| * libcaca Colour ASCII-Art library | * libcaca Colour ASCII-Art library | ||||
| * Copyright (c) 2002-2006 Sam Hocevar <sam@zoy.org> | |||||
| * Copyright (c) 2002-2006 Sam Hocevar <sam@hocevar.net> | |||||
| * All Rights Reserved | * All Rights Reserved | ||||
| * | * | ||||
| * $Id$ | * $Id$ | ||||
| @@ -80,7 +80,7 @@ struct caca_canvas | |||||
| /* Graphics driver */ | /* Graphics driver */ | ||||
| enum caca_driver | enum caca_driver | ||||
| { | { | ||||
| CACA_DRIVER_NONE = 0, | |||||
| CACA_DRIVER_NULL = 0, | |||||
| CACA_DRIVER_RAW = 1, | CACA_DRIVER_RAW = 1, | ||||
| #if defined(USE_COCOA) | #if defined(USE_COCOA) | ||||
| CACA_DRIVER_COCOA = 2, | CACA_DRIVER_COCOA = 2, | ||||
| @@ -121,6 +121,7 @@ int gl_install(caca_display_t *); | |||||
| #if defined(USE_NCURSES) | #if defined(USE_NCURSES) | ||||
| int ncurses_install(caca_display_t *); | int ncurses_install(caca_display_t *); | ||||
| #endif | #endif | ||||
| int null_install(caca_display_t *); | |||||
| int raw_install(caca_display_t *); | int raw_install(caca_display_t *); | ||||
| #if defined(USE_SLANG) | #if defined(USE_SLANG) | ||||
| int slang_install(caca_display_t *); | int slang_install(caca_display_t *); | ||||
| @@ -0,0 +1,90 @@ | |||||
| /* | |||||
| * libcaca Colour ASCII-Art library | |||||
| * Copyright (c) 2002-2009 Sam Hocevar <sam@hocevar.net> | |||||
| * All Rights Reserved | |||||
| * | |||||
| * $Id$ | |||||
| * | |||||
| * This library is free software. It comes without any warranty, to | |||||
| * the extent permitted by applicable law. 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. | |||||
| */ | |||||
| /* | |||||
| * This file contains a null libcaca input and output driver | |||||
| */ | |||||
| #include "config.h" | |||||
| #if !defined(__KERNEL__) | |||||
| #include "caca.h" | |||||
| #include "caca_internals.h" | |||||
| static int null_init_graphics(caca_display_t *dp) | |||||
| { | |||||
| return 0; | |||||
| } | |||||
| static int null_end_graphics(caca_display_t *dp) | |||||
| { | |||||
| return 0; | |||||
| } | |||||
| static int null_set_display_title(caca_display_t *dp, char const *title) | |||||
| { | |||||
| return -1; | |||||
| } | |||||
| static int null_get_display_width(caca_display_t const *dp) | |||||
| { | |||||
| return 0; | |||||
| } | |||||
| static int null_get_display_height(caca_display_t const *dp) | |||||
| { | |||||
| return 0; | |||||
| } | |||||
| static void null_display(caca_display_t *dp) | |||||
| { | |||||
| ; | |||||
| } | |||||
| static void null_handle_resize(caca_display_t *dp) | |||||
| { | |||||
| ; | |||||
| } | |||||
| static int null_get_event(caca_display_t *dp, caca_privevent_t *ev) | |||||
| { | |||||
| ev->type = CACA_EVENT_NONE; | |||||
| return 0; | |||||
| } | |||||
| /* | |||||
| * Driver initialisation | |||||
| */ | |||||
| int null_install(caca_display_t *dp) | |||||
| { | |||||
| dp->drv.id = CACA_DRIVER_NULL; | |||||
| dp->drv.driver = "null"; | |||||
| dp->drv.init_graphics = null_init_graphics; | |||||
| dp->drv.end_graphics = null_end_graphics; | |||||
| dp->drv.set_display_title = null_set_display_title; | |||||
| dp->drv.get_display_width = null_get_display_width; | |||||
| dp->drv.get_display_height = null_get_display_height; | |||||
| dp->drv.display = null_display; | |||||
| dp->drv.handle_resize = null_handle_resize; | |||||
| dp->drv.get_event = null_get_event; | |||||
| dp->drv.set_mouse = NULL; | |||||
| dp->drv.set_cursor = NULL; | |||||
| return 0; | |||||
| } | |||||
| #endif /* !__KERNEL__ */ | |||||