diff options
Diffstat (limited to 'contrib/nosefart/log.c')
-rw-r--r-- | contrib/nosefart/log.c | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/contrib/nosefart/log.c b/contrib/nosefart/log.c new file mode 100644 index 000000000..8935a596e --- /dev/null +++ b/contrib/nosefart/log.c @@ -0,0 +1,118 @@ +/* +** Nofrendo (c) 1998-2000 Matthew Conte (matt@conte.com) +** +** +** This program is free software; you can redistribute it and/or +** modify it under the terms of version 2 of the GNU Library General +** Public License as published by the Free Software Foundation. +** +** This program is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** Library General Public License for more details. To obtain a +** copy of the GNU Library General Public License, write to the Free +** Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +** +** Any permitted reproduction of these routines, in whole or in part, +** must bear this legend. +** +** +** log.c +** +** Error logging functions +** $Id: log.c,v 1.2 2003/12/05 15:55:01 f1rmb Exp $ +*/ + +#include <stdio.h> +#include <stdarg.h> +#include "types.h" +#include "log.h" + + +#ifdef OSD_LOG +#include "osd.h" +#endif + +#if defined(OSD_LOG) && !defined(NOFRENDO_DEBUG) +#error NOFRENDO_DEBUG must be defined as well as OSD_LOG +#endif + +/* Note that all of these functions will be empty if +** debugging is not enabled. +*/ +#ifdef NOFRENDO_DEBUG +static FILE *errorlog; +#endif + +int log_init(void) +{ +#ifdef NOFRENDO_DEBUG +#ifdef OSD_LOG + /* Initialize an OSD logging system */ + osd_loginit(); +#endif /* OSD_LOG */ + errorlog = fopen("errorlog.txt", "wt"); + if (NULL == errorlog) + return (-1); +#endif /* NOFRENDO_DEBUG */ + return 0; +} + +void log_shutdown(void) +{ +#ifdef NOFRENDO_DEBUG + /* Snoop around for unallocated blocks */ + mem_checkblocks(); + mem_checkleaks(); +#ifdef OSD_LOG + osd_logshutdown(); +#endif /* OSD_LOG */ + fclose(errorlog); +#endif /* NOFRENDO_DEBUG */ +} + +void log_print(const char *string) +{ +#ifdef NOFRENDO_DEBUG +#ifdef OSD_LOG + osd_logprint(string); +#endif /* OSD_LOG */ + /* Log it to disk, as well */ + fputs(string, errorlog); +#endif /* NOFRENDO_DEBUG */ +} + +void log_printf(const char *format, ... ) +{ +#ifdef NOFRENDO_DEBUG +#ifdef OSD_LOG + char buffer[1024 + 1]; +#endif /* OSD_LOG */ + va_list arg; + + va_start(arg, format); + +#ifdef OSD_LOG + vsprintf(buffer, format, arg); + osd_logprint(buffer); +#endif /* OSD_LOG */ + vfprintf(errorlog, format, arg); + va_end(arg); +#endif /* NOFRENDO_DEBUG */ +} + +/* +** $Log: log.c,v $ +** Revision 1.2 2003/12/05 15:55:01 f1rmb +** cleanup phase II. use xprintf when it's relevant, use xine_xmalloc when it's relevant too. Small other little fix (can't remember). Change few internal function prototype because it xine_t pointer need to be used if some xine's internal sections. NOTE: libdvd{nav,read} is still too noisy, i will take a look to made it quit, without invasive changes. To be continued... +** +** Revision 1.1 2003/01/08 07:04:35 tmmm +** initial import of Nosefart sources +** +** Revision 1.5 2000/06/26 04:55:33 matt +** minor change +** +** Revision 1.4 2000/06/09 15:12:25 matt +** initial revision +** +*/ |