caca.h File Reference

The libcaca public header. More...

Data Structures

struct  caca_event
 Handling of user events. More...

Defines

#define CACA_API_VERSION_1
#define CACA_BLACK   0x00
#define CACA_BLUE   0x01
#define CACA_GREEN   0x02
#define CACA_CYAN   0x03
#define CACA_RED   0x04
#define CACA_MAGENTA   0x05
#define CACA_BROWN   0x06
#define CACA_LIGHTGRAY   0x07
#define CACA_DARKGRAY   0x08
#define CACA_LIGHTBLUE   0x09
#define CACA_LIGHTGREEN   0x0a
#define CACA_LIGHTCYAN   0x0b
#define CACA_LIGHTRED   0x0c
#define CACA_LIGHTMAGENTA   0x0d
#define CACA_YELLOW   0x0e
#define CACA_WHITE   0x0f
#define CACA_DEFAULT   0x10
#define CACA_TRANSPARENT   0x20
#define CACA_BOLD   0x01
#define CACA_ITALICS   0x02
#define CACA_UNDERLINE   0x04
#define CACA_BLINK   0x08
#define CACA_MAGIC_FULLWIDTH   0x000ffffe

Typedefs

typedef struct caca_canvas caca_canvas_t
typedef struct caca_dither caca_dither_t
typedef struct caca_font caca_font_t
typedef struct caca_file caca_file_t
typedef struct caca_display caca_display_t
typedef struct caca_event caca_event_t

Enumerations

enum  caca_event_type {
  CACA_EVENT_NONE = 0x0000, CACA_EVENT_KEY_PRESS = 0x0001, CACA_EVENT_KEY_RELEASE = 0x0002, CACA_EVENT_MOUSE_PRESS = 0x0004,
  CACA_EVENT_MOUSE_RELEASE = 0x0008, CACA_EVENT_MOUSE_MOTION = 0x0010, CACA_EVENT_RESIZE = 0x0020, CACA_EVENT_QUIT = 0x0040,
  CACA_EVENT_ANY = 0xffff
}
 

User event type enumeration.

More...
enum  caca_key {
  CACA_KEY_UNKNOWN = 0x00, CACA_KEY_CTRL_A = 0x01, CACA_KEY_CTRL_B = 0x02, CACA_KEY_CTRL_C = 0x03,
  CACA_KEY_CTRL_D = 0x04, CACA_KEY_CTRL_E = 0x05, CACA_KEY_CTRL_F = 0x06, CACA_KEY_CTRL_G = 0x07,
  CACA_KEY_BACKSPACE = 0x08, CACA_KEY_TAB = 0x09, CACA_KEY_CTRL_J = 0x0a, CACA_KEY_CTRL_K = 0x0b,
  CACA_KEY_CTRL_L = 0x0c, CACA_KEY_RETURN = 0x0d, CACA_KEY_CTRL_N = 0x0e, CACA_KEY_CTRL_O = 0x0f,
  CACA_KEY_CTRL_P = 0x10, CACA_KEY_CTRL_Q = 0x11, CACA_KEY_CTRL_R = 0x12, CACA_KEY_PAUSE = 0x13,
  CACA_KEY_CTRL_T = 0x14, CACA_KEY_CTRL_U = 0x15, CACA_KEY_CTRL_V = 0x16, CACA_KEY_CTRL_W = 0x17,
  CACA_KEY_CTRL_X = 0x18, CACA_KEY_CTRL_Y = 0x19, CACA_KEY_CTRL_Z = 0x1a, CACA_KEY_ESCAPE = 0x1b,
  CACA_KEY_DELETE = 0x7f, CACA_KEY_UP = 0x111, CACA_KEY_DOWN = 0x112, CACA_KEY_LEFT = 0x113,
  CACA_KEY_RIGHT = 0x114, CACA_KEY_INSERT = 0x115, CACA_KEY_HOME = 0x116, CACA_KEY_END = 0x117,
  CACA_KEY_PAGEUP = 0x118, CACA_KEY_PAGEDOWN = 0x119, CACA_KEY_F1 = 0x11a, CACA_KEY_F2 = 0x11b,
  CACA_KEY_F3 = 0x11c, CACA_KEY_F4 = 0x11d, CACA_KEY_F5 = 0x11e, CACA_KEY_F6 = 0x11f,
  CACA_KEY_F7 = 0x120, CACA_KEY_F8 = 0x121, CACA_KEY_F9 = 0x122, CACA_KEY_F10 = 0x123,
  CACA_KEY_F11 = 0x124, CACA_KEY_F12 = 0x125, CACA_KEY_F13 = 0x126, CACA_KEY_F14 = 0x127,
  CACA_KEY_F15 = 0x128
}
 

Special key values.

More...

Functions

__extern caca_canvas_tcaca_create_canvas (int, int)
 Initialise a libcaca canvas.
__extern int caca_manage_canvas (caca_canvas_t *, int(*)(void *), void *)
 Manage a canvas.
__extern int caca_unmanage_canvas (caca_canvas_t *, int(*)(void *), void *)
 Unmanage a canvas.
__extern int caca_set_canvas_size (caca_canvas_t *, int, int)
 Resize a canvas.
__extern int caca_get_canvas_width (caca_canvas_t const *)
 Get the canvas width.
__extern int caca_get_canvas_height (caca_canvas_t const *)
 Get the canvas height.
__extern uint8_t const * caca_get_canvas_chars (caca_canvas_t const *)
 Get the canvas character array.
__extern uint8_t const * caca_get_canvas_attrs (caca_canvas_t const *)
 Get the canvas attribute array.
__extern int caca_free_canvas (caca_canvas_t *)
 Uninitialise libcaca.
__extern int caca_rand (int, int)
 Generate a random integer within a range.
__extern char const * caca_get_version (void)
 Return the libcaca version.
__extern int caca_gotoxy (caca_canvas_t *, int, int)
 Set cursor position.
__extern int caca_get_cursor_x (caca_canvas_t const *)
 Get X cursor position.
__extern int caca_get_cursor_y (caca_canvas_t const *)
 Get Y cursor position.
__extern int caca_put_char (caca_canvas_t *, int, int, uint32_t)
 Print an ASCII or Unicode character.
__extern uint32_t caca_get_char (caca_canvas_t const *, int, int)
 Get the Unicode character at the given coordinates.
__extern int caca_put_str (caca_canvas_t *, int, int, char const *)
 Print a string.
__extern int caca_printf (caca_canvas_t *, int, int, char const *,...)
 Print a formated string.
__extern int caca_clear_canvas (caca_canvas_t *)
 Clear the canvas.
__extern int caca_set_canvas_handle (caca_canvas_t *, int, int)
 Set cursor handle.
__extern int caca_get_canvas_handle_x (caca_canvas_t const *)
 Get X handle position.
__extern int caca_get_canvas_handle_y (caca_canvas_t const *)
 Get Y handle position.
__extern int caca_blit (caca_canvas_t *, int, int, caca_canvas_t const *, caca_canvas_t const *)
 Blit a canvas onto another one.
__extern int caca_set_canvas_boundaries (caca_canvas_t *, int, int, int, int)
 Set a canvas' new boundaries.
__extern int caca_invert (caca_canvas_t *)
 Invert a canvas' colours.
__extern int caca_flip (caca_canvas_t *)
 Flip a canvas horizontally.
__extern int caca_flop (caca_canvas_t *)
 Flip a canvas vertically.
__extern int caca_rotate_180 (caca_canvas_t *)
 Rotate a canvas.
__extern int caca_rotate_left (caca_canvas_t *)
 Rotate a canvas, 90 degrees counterclockwise.
__extern int caca_rotate_right (caca_canvas_t *)
 Rotate a canvas, 90 degrees counterclockwise.
__extern int caca_stretch_left (caca_canvas_t *)
 Rotate and stretch a canvas, 90 degrees counterclockwise.
__extern int caca_stretch_right (caca_canvas_t *)
 Rotate and stretch a canvas, 90 degrees clockwise.
__extern uint32_t caca_get_attr (caca_canvas_t const *, int, int)
 Get the text attribute at the given coordinates.
__extern int caca_set_attr (caca_canvas_t *, uint32_t)
 Set the default character attribute.
__extern int caca_put_attr (caca_canvas_t *, int, int, uint32_t)
 Set the character attribute at the given coordinates.
__extern int caca_set_color_ansi (caca_canvas_t *, uint8_t, uint8_t)
 Set the default colour pair for text (ANSI version).
__extern int caca_set_color_argb (caca_canvas_t *, uint16_t, uint16_t)
 Set the default colour pair for text (truecolor version).
__extern uint8_t caca_attr_to_ansi (uint32_t)
 Get DOS ANSI information from attribute.
__extern uint8_t caca_attr_to_ansi_fg (uint32_t)
 Get ANSI foreground information from attribute.
__extern uint8_t caca_attr_to_ansi_bg (uint32_t)
 Get ANSI background information from attribute.
__extern uint16_t caca_attr_to_rgb12_fg (uint32_t)
 Get 12-bit RGB foreground information from attribute.
__extern uint16_t caca_attr_to_rgb12_bg (uint32_t)
 Get 12-bit RGB background information from attribute.
__extern void caca_attr_to_argb64 (uint32_t, uint8_t[8])
 Get 64-bit ARGB information from attribute.
__extern uint32_t caca_utf8_to_utf32 (char const *, size_t *)
 Convert a UTF-8 character to UTF-32.
__extern size_t caca_utf32_to_utf8 (char *, uint32_t)
 Convert a UTF-32 character to UTF-8.
__extern uint8_t caca_utf32_to_cp437 (uint32_t)
 Convert a UTF-32 character to CP437.
__extern uint32_t caca_cp437_to_utf32 (uint8_t)
 Convert a CP437 character to UTF-32.
__extern char caca_utf32_to_ascii (uint32_t)
 Convert a UTF-32 character to ASCII.
__extern int caca_utf32_is_fullwidth (uint32_t)
 Tell whether a UTF-32 character is fullwidth.
__extern int caca_draw_line (caca_canvas_t *, int, int, int, int, uint32_t)
 Draw a line on the canvas using the given character.
__extern int caca_draw_polyline (caca_canvas_t *, int const x[], int const y[], int, uint32_t)
 Draw a polyline.
__extern int caca_draw_thin_line (caca_canvas_t *, int, int, int, int)
 Draw a thin line on the canvas, using ASCII art.
__extern int caca_draw_thin_polyline (caca_canvas_t *, int const x[], int const y[], int)
 Draw an ASCII art thin polyline.
__extern int caca_draw_circle (caca_canvas_t *, int, int, int, uint32_t)
 Draw a circle on the canvas using the given character.
__extern int caca_draw_ellipse (caca_canvas_t *, int, int, int, int, uint32_t)
 Draw an ellipse on the canvas using the given character.
__extern int caca_draw_thin_ellipse (caca_canvas_t *, int, int, int, int)
 Draw a thin ellipse on the canvas.
__extern int caca_fill_ellipse (caca_canvas_t *, int, int, int, int, uint32_t)
 Fill an ellipse on the canvas using the given character.
__extern int caca_draw_box (caca_canvas_t *, int, int, int, int, uint32_t)
 Draw a box on the canvas using the given character.
__extern int caca_draw_thin_box (caca_canvas_t *, int, int, int, int)
 Draw a thin box on the canvas.
__extern int caca_draw_cp437_box (caca_canvas_t *, int, int, int, int)
 Draw a box on the canvas using CP437 characters.
__extern int caca_fill_box (caca_canvas_t *, int, int, int, int, uint32_t)
 Fill a box on the canvas using the given character.
__extern int caca_draw_triangle (caca_canvas_t *, int, int, int, int, int, int, uint32_t)
 Draw a triangle on the canvas using the given character.
__extern int caca_draw_thin_triangle (caca_canvas_t *, int, int, int, int, int, int)
 Draw a thin triangle on the canvas.
__extern int caca_fill_triangle (caca_canvas_t *, int, int, int, int, int, int, uint32_t)
 Fill a triangle on the canvas using the given character.
__extern int caca_get_frame_count (caca_canvas_t const *)
 Get the number of frames in a canvas.
__extern int caca_set_frame (caca_canvas_t *, int)
 Activate a given canvas frame.
__extern char const * caca_get_frame_name (caca_canvas_t const *)
 Get the current frame's name.
__extern int caca_set_frame_name (caca_canvas_t *, char const *)
 Set the current frame's name.
__extern int caca_create_frame (caca_canvas_t *, int)
 Add a frame to a canvas.
__extern int caca_free_frame (caca_canvas_t *, int)
 Remove a frame from a canvas.
__extern caca_dither_tcaca_create_dither (int, int, int, int, uint32_t, uint32_t, uint32_t, uint32_t)
 Create an internal dither object.
__extern int caca_set_dither_palette (caca_dither_t *, uint32_t r[], uint32_t g[], uint32_t b[], uint32_t a[])
 Set the palette of an 8bpp dither object.
__extern int caca_set_dither_brightness (caca_dither_t *, float)
 Set the brightness of a dither object.
__extern float caca_get_dither_brightness (caca_dither_t const *)
 Get the brightness of a dither object.
__extern int caca_set_dither_gamma (caca_dither_t *, float)
 Set the gamma of a dither object.
__extern float caca_get_dither_gamma (caca_dither_t const *)
 Get the gamma of a dither object.
__extern int caca_set_dither_contrast (caca_dither_t *, float)
 Set the contrast of a dither object.
__extern float caca_get_dither_contrast (caca_dither_t const *)
 Get the contrast of a dither object.
__extern int caca_set_dither_antialias (caca_dither_t *, char const *)
 Set dither antialiasing.
__extern char const *const * caca_get_dither_antialias_list (caca_dither_t const *)
 Get available antialiasing methods.
__extern char const * caca_get_dither_antialias (caca_dither_t const *)
 Get current antialiasing method.
__extern int caca_set_dither_color (caca_dither_t *, char const *)
 Choose colours used for dithering.
__extern char const *const * caca_get_dither_color_list (caca_dither_t const *)
 Get available colour modes.
__extern char const * caca_get_dither_color (caca_dither_t const *)
 Get current colour mode.
__extern int caca_set_dither_charset (caca_dither_t *, char const *)
 Choose characters used for dithering.
__extern char const *const * caca_get_dither_charset_list (caca_dither_t const *)
 Get available dither character sets.
__extern char const * caca_get_dither_charset (caca_dither_t const *)
 Get current character set.
__extern int caca_set_dither_algorithm (caca_dither_t *, char const *)
 Set dithering algorithm.
__extern char const *const * caca_get_dither_algorithm_list (caca_dither_t const *)
 Get dithering algorithms.
__extern char const * caca_get_dither_algorithm (caca_dither_t const *)
 Get current dithering algorithm.
__extern int caca_dither_bitmap (caca_canvas_t *, int, int, int, int, caca_dither_t const *, void *)
 Dither a bitmap on the canvas.
__extern int caca_free_dither (caca_dither_t *)
 Free the memory associated with a dither.
__extern caca_font_tcaca_load_font (void const *, size_t)
 Load a font from memory for future use.
__extern char const *const * caca_get_font_list (void)
 Get available builtin fonts.
__extern int caca_get_font_width (caca_font_t const *)
 Get a font's standard glyph width.
__extern int caca_get_font_height (caca_font_t const *)
 Get a font's standard glyph height.
__extern uint32_t const * caca_get_font_blocks (caca_font_t const *)
 Get a font's list of supported glyphs.
__extern int caca_render_canvas (caca_canvas_t const *, caca_font_t const *, void *, int, int, int)
 Render the canvas onto an image buffer.
__extern int caca_free_font (caca_font_t *)
 Free a font structure.
__extern int caca_canvas_set_figfont (caca_canvas_t *, char const *)
__extern int caca_put_figchar (caca_canvas_t *, uint32_t)
__extern int caca_flush_figlet (caca_canvas_t *)
__extern caca_file_tcaca_file_open (char const *, const char *)
__extern int caca_file_close (caca_file_t *)
__extern uint64_t caca_file_tell (caca_file_t *)
__extern size_t caca_file_read (caca_file_t *, void *, size_t)
__extern size_t caca_file_write (caca_file_t *, const void *, size_t)
__extern char * caca_file_gets (caca_file_t *, char *, int)
__extern int caca_file_eof (caca_file_t *)
__extern ssize_t caca_import_memory (caca_canvas_t *, void const *, size_t, char const *)
__extern ssize_t caca_import_file (caca_canvas_t *, char const *, char const *)
__extern char const *const * caca_get_import_list (void)
__extern void * caca_export_memory (caca_canvas_t const *, char const *, size_t *)
__extern char const *const * caca_get_export_list (void)
__extern caca_display_tcaca_create_display (caca_canvas_t *)
 Attach a caca graphical context to a caca canvas.
__extern caca_display_tcaca_create_display_with_driver (caca_canvas_t *, char const *)
 Attach a specific caca graphical context to a caca canvas.
__extern char const *const * caca_get_display_driver_list (void)
 Get available display drivers.
__extern char const * caca_get_display_driver (caca_display_t *)
 Return a caca graphical context's current output driver.
__extern int caca_set_display_driver (caca_display_t *, char const *)
 Set the output driver.
__extern int caca_free_display (caca_display_t *)
 Detach a caca graphical context from a caca backend context.
__extern caca_canvas_tcaca_get_canvas (caca_display_t *)
 Get the canvas attached to a caca graphical context.
__extern int caca_refresh_display (caca_display_t *)
 Flush pending changes and redraw the screen.
__extern int caca_set_display_time (caca_display_t *, int)
 Set the refresh delay.
__extern int caca_get_display_time (caca_display_t const *)
 Get the display's average rendering time.
__extern int caca_get_display_width (caca_display_t const *)
 Get the display width.
__extern int caca_get_display_height (caca_display_t const *)
 Get the display height.
__extern int caca_set_display_title (caca_display_t *, char const *)
 Set the display title.
__extern int caca_set_mouse (caca_display_t *, int)
 Show or hide the mouse pointer.
__extern int caca_set_cursor (caca_display_t *, int)
 Show or hide the cursor.
__extern int caca_get_event (caca_display_t *, int, caca_event_t *, int)
 Get the next mouse or keyboard input event.
__extern int caca_get_mouse_x (caca_display_t const *)
 Return the X mouse coordinate.
__extern int caca_get_mouse_y (caca_display_t const *)
 Return the Y mouse coordinate.
__extern enum caca_event_type caca_get_event_type (caca_event_t const *)
 Return an event's type.
__extern int caca_get_event_key_ch (caca_event_t const *)
 Return a key press or key release event's value.
__extern uint32_t caca_get_event_key_utf32 (caca_event_t const *)
 Return a key press or key release event's Unicode value.
__extern int caca_get_event_key_utf8 (caca_event_t const *, char *)
 Return a key press or key release event's UTF-8 value.
__extern int caca_get_event_mouse_button (caca_event_t const *)
 Return a mouse press or mouse release event's button.
__extern int caca_get_event_mouse_x (caca_event_t const *)
 Return a mouse motion event's X coordinate.
__extern int caca_get_event_mouse_y (caca_event_t const *)
 Return a mouse motion event's Y coordinate.
__extern int caca_get_event_resize_width (caca_event_t const *)
 Return a resize event's display width value.
__extern int caca_get_event_resize_height (caca_event_t const *)
 Return a resize event's display height value.

Detailed Description

Version:
$Id$
Author:
Sam Hocevar <sam@zoy.org> This header contains the public types and functions that applications using libcaca may use.

Define Documentation

#define CACA_API_VERSION_1

libcaca API version


Typedef Documentation

typedef struct caca_canvas caca_canvas_t

libcaca canvas

typedef struct caca_dither caca_dither_t

dither structure

typedef struct caca_font caca_font_t

font structure

typedef struct caca_file caca_file_t

file handle structure

typedef struct caca_display caca_display_t

libcaca display context

typedef struct caca_event caca_event_t

libcaca event structure


Enumeration Type Documentation

This enum serves two purposes:

  • Build listening masks for caca_get_event().
  • Define the type of a caca_event_t.
Enumerator:
CACA_EVENT_NONE 

No event.

CACA_EVENT_KEY_PRESS 

A key was pressed.

CACA_EVENT_KEY_RELEASE 

A key was released.

CACA_EVENT_MOUSE_PRESS 

A mouse button was pressed.

CACA_EVENT_MOUSE_RELEASE 

A mouse button was released.

CACA_EVENT_MOUSE_MOTION 

The mouse was moved.

CACA_EVENT_RESIZE 

The window was resized.

CACA_EVENT_QUIT 

The user requested to quit.

CACA_EVENT_ANY 

Bitmask for any event.

enum caca_key

Special key values returned by caca_get_event() for which there is no printable ASCII equivalent.

Enumerator:
CACA_KEY_UNKNOWN 

Unknown key.

CACA_KEY_CTRL_A 

The Ctrl-A key.

CACA_KEY_CTRL_B 

The Ctrl-B key.

CACA_KEY_CTRL_C 

The Ctrl-C key.

CACA_KEY_CTRL_D 

The Ctrl-D key.

CACA_KEY_CTRL_E 

The Ctrl-E key.

CACA_KEY_CTRL_F 

The Ctrl-F key.

CACA_KEY_CTRL_G 

The Ctrl-G key.

CACA_KEY_BACKSPACE 

The backspace key.

CACA_KEY_TAB 

The tabulation key.

CACA_KEY_CTRL_J 

The Ctrl-J key.

CACA_KEY_CTRL_K 

The Ctrl-K key.

CACA_KEY_CTRL_L 

The Ctrl-L key.

CACA_KEY_RETURN 

The return key.

CACA_KEY_CTRL_N 

The Ctrl-N key.

CACA_KEY_CTRL_O 

The Ctrl-O key.

CACA_KEY_CTRL_P 

The Ctrl-P key.

CACA_KEY_CTRL_Q 

The Ctrl-Q key.

CACA_KEY_CTRL_R 

The Ctrl-R key.

CACA_KEY_PAUSE 

The pause key.

CACA_KEY_CTRL_T 

The Ctrl-T key.

CACA_KEY_CTRL_U 

The Ctrl-U key.

CACA_KEY_CTRL_V 

The Ctrl-V key.

CACA_KEY_CTRL_W 

The Ctrl-W key.

CACA_KEY_CTRL_X 

The Ctrl-X key.

CACA_KEY_CTRL_Y 

The Ctrl-Y key.

CACA_KEY_CTRL_Z 

The Ctrl-Z key.

CACA_KEY_ESCAPE 

The escape key.

CACA_KEY_DELETE 

The delete key.

CACA_KEY_UP 

The up arrow key.

CACA_KEY_DOWN 

The down arrow key.

CACA_KEY_LEFT 

The left arrow key.

CACA_KEY_RIGHT 

The right arrow key.

CACA_KEY_INSERT 

The insert key.

CACA_KEY_HOME 

The home key.

CACA_KEY_END 

The end key.

CACA_KEY_PAGEUP 

The page up key.

CACA_KEY_PAGEDOWN 

The page down key.

CACA_KEY_F1 

The F1 key.

CACA_KEY_F2 

The F2 key.

CACA_KEY_F3 

The F3 key.

CACA_KEY_F4 

The F4 key.

CACA_KEY_F5 

The F5 key.

CACA_KEY_F6 

The F6 key.

CACA_KEY_F7 

The F7 key.

CACA_KEY_F8 

The F8 key.

CACA_KEY_F9 

The F9 key.

CACA_KEY_F10 

The F10 key.

CACA_KEY_F11 

The F11 key.

CACA_KEY_F12 

The F12 key.

CACA_KEY_F13 

The F13 key.

CACA_KEY_F14 

The F14 key.

CACA_KEY_F15 

The F15 key.