bionic (3) ALLEGRO_FILE_INTERFACE.3alleg5.gz

Provided by: allegro5-doc_5.2.3.0-1_all bug

NAME

       ALLEGRO_FILE_INTERFACE - Allegro 5 API

SYNOPSIS

              #include <allegro5/allegro.h>

              typedef struct ALLEGRO_FILE_INTERFACE

DESCRIPTION

       A  structure  containing  function  pointers  to  handle a type of "file", real or virtual.  See the full
       discussion in al_set_new_file_interface(3alleg5).

       The fields are:

              void*         (*fi_fopen)(const char *path, const char *mode);
              bool          (*fi_fclose)(ALLEGRO_FILE *f);
              size_t        (*fi_fread)(ALLEGRO_FILE *f, void *ptr, size_t size);
              size_t        (*fi_fwrite)(ALLEGRO_FILE *f, const void *ptr, size_t size);
              bool          (*fi_fflush)(ALLEGRO_FILE *f);
              int64_t       (*fi_ftell)(ALLEGRO_FILE *f);
              bool          (*fi_fseek)(ALLEGRO_FILE *f, int64_t offset, int whence);
              bool          (*fi_feof)(ALLEGRO_FILE *f);
              int           (*fi_ferror)(ALLEGRO_FILE *f);
              const char *  (*fi_ferrmsg)(ALLEGRO_FILE *f);
              void          (*fi_fclearerr)(ALLEGRO_FILE *f);
              int           (*fi_fungetc)(ALLEGRO_FILE *f, int c);
              off_t         (*fi_fsize)(ALLEGRO_FILE *f);

       The fi_open function must allocate memory for whatever userdata structure it needs.  The pointer to  that
       memory  must  be returned; it will then be associated with the file.  The other functions can access that
       data by calling  al_get_file_userdata(3alleg5)  on  the  file  handle.   If  fi_open  returns  NULL  then
       al_fopen(3alleg5) will also return NULL.

       The   fi_fclose   function   must   clean   up   and  free  the  userdata,  but  Allegro  will  free  the
       ALLEGRO_FILE(3alleg5) handle.

       If fi_fungetc is NULL, then Allegro's default implementation of a 16 char long buffer will be used.