X-Git-Url: https://harrygodden.com/git/?p=fishladder.git;a=blobdiff_plain;f=vg%2Fvg_io.h;fp=vg%2Fvg_io.h;h=0000000000000000000000000000000000000000;hp=afd134f45a05a76d72d0a69ee7a5076a2eeecd93;hb=30490c4c08d5c0f811017a901aa9e25a95be7c40;hpb=3363633178b1eea582304742ad1202487af0feb1 diff --git a/vg/vg_io.h b/vg/vg_io.h deleted file mode 100644 index afd134f..0000000 --- a/vg/vg_io.h +++ /dev/null @@ -1,140 +0,0 @@ -// Copyright (C) 2021 Harry Godden (hgn) - All Rights Reserved - -// Coloured logging -// =========================================================================================================== - -#define KNRM "\x1B[0m" -#define KRED "\x1B[31m" -#define KGRN "\x1B[32m" -#define KYEL "\x1B[33m" -#define KBLU "\x1B[34m" -#define KMAG "\x1B[35m" -#define KCYN "\x1B[36m" -#define KWHT "\x1B[37m" - -void (*vg_log_callback)( const char *str ) = NULL; - -static void vg_log_write( FILE *file, const char *prefix, const char *fmt, va_list args ) -{ - char buffer[512]; - int i, j; - - for( i = 0; i < vg_list_size( buffer ); i ++ ) - { - if( prefix[i] ) - buffer[i] = prefix[i]; - else - break; - } - - j = i + vsnprintf( buffer + i, vg_list_size( buffer ) - i -2, fmt, args ); - strcpy( buffer + j, KNRM ); - - fputs( buffer, file ); - - if( vg_log_callback ) - vg_log_callback( buffer ); -} - -static void vg_success( const char *fmt, ... ) - { va_list args; va_start( args, fmt ); vg_log_write( stdout, (KGRN "success" KWHT "| " KGRN), fmt, args ); va_end( args ); } -static void vg_info( const char *fmt, ... ) - { va_list args; va_start( args, fmt ); vg_log_write( stdout, (KNRM " info" KWHT "| " KNRM), fmt, args ); va_end( args ); } -static void vg_warn( const char *fmt, ... ) - { va_list args; va_start( args, fmt ); vg_log_write( stdout, (KYEL " warn" KWHT "| " KYEL), fmt, args ); va_end( args ); } -static void vg_error( const char *fmt, ... ) - { va_list args; va_start( args, fmt ); vg_log_write( stderr, (KRED " error" KWHT "| " KRED), fmt, args ); va_end( args ); } - -// FILE IO -// =========================================================================================================== - -static i64 vg_file_size( FILE *fileptr ) -{ - fseek( fileptr, 0, SEEK_END ); - i64 fsize = ftell( fileptr ); - fseek( fileptr, 0, SEEK_SET ); - - return fsize; -} - -static void *vg_disk_open_read( const char *path, int const reserve_end, i64 *size ) -{ - FILE *f = fopen( path, "rb" ); - if( f ) - { - i64 fsize = vg_file_size( f ); - void *buf = malloc( fsize + reserve_end ); - - if( buf ) - { - // Invalid / corrupt read - if( fread( buf, 1, fsize, f ) != fsize ) - { - free( buf ); - buf = NULL; - } - } - - *size = fsize; - - fclose( f ); - return buf; - } - else - { - return NULL; - } -} - -static char *vg_disk_load_text( const char *path, i64 *size ) -{ - char *buf; - i64 fsize; - - if( (buf = vg_disk_open_read( path, 1, &fsize )) ) - { - buf[ fsize ] = 0x00; - *size = fsize +1; - - return buf; - } - - return NULL; -} - -static void *vg_asset_read_s( const char *path, i64 *size ) -{ - return vg_disk_open_read( path, 0, size ); -} - -static void *vg_asset_read( const char *path ) -{ - i64 size; - return vg_disk_open_read( path, 0, &size ); -} - -static char *vg_textasset_read_s( const char *path, i64 *size ) -{ - return vg_disk_load_text( path, size ); -} - -static char *vg_textasset_read( const char *name ) -{ - i64 size; - return vg_disk_load_text( name, &size ); -} - -static int vg_asset_write( const char *path, void *data, i64 size ) -{ - FILE *f = fopen( path, "wb" ); - if( f ) - { - fwrite( data, size, 1, f ); - fclose( f ); - return 1; - } - else - { - return 0; - } -}