X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fdl%2Fext%2Flame%2Flametime.c;fp=src%2Flib%2Fdl%2Fext%2Flame%2Flametime.c;h=f11d2e62d4a6c059a3e3ebeffbdba900b205e1bd;hb=10d8a0d8b1b72502f34c2ac1bd3a5c2d87849080;hp=0000000000000000000000000000000000000000;hpb=bc10e84da5198561bb96cf8eb459f59b8b0739ec;p=16.git diff --git a/src/lib/dl/ext/lame/lametime.c b/src/lib/dl/ext/lame/lametime.c new file mode 100755 index 00000000..f11d2e62 --- /dev/null +++ b/src/lib/dl/ext/lame/lametime.c @@ -0,0 +1,149 @@ +/* + * Lame time routines source file + * + * Copyright (c) 2000 Mark Taylor + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* $Id: lametime.c,v 1.21 2011/05/07 16:05:17 rbrito Exp $ */ + +/* + * name: GetCPUTime ( void ) + * + * description: returns CPU time used by the process + * input: none + * output: time in seconds + * known bugs: may not work in SMP and RPC + * conforming: ANSI C + * + * There is some old difficult to read code at the end of this file. + * Can someone integrate this into this function (if useful)? + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include + +#ifdef WITH_DMALLOC +#include +#endif + +#include "lametime.h" + +#if !defined(CLOCKS_PER_SEC) +# warning Your system does not define CLOCKS_PER_SEC, guessing one... +# define CLOCKS_PER_SEC 1000000 +#endif + + +double +GetCPUTime(void) +{ + clock_t t; + +#if defined(_MSC_VER) || defined(__BORLANDC__) + t = clock(); +#else + t = clock(); +#endif + return t / (double) CLOCKS_PER_SEC; +} + + +/* + * name: GetRealTime ( void ) + * + * description: returns real (human) time elapsed relative to a fixed time (mostly 1970-01-01 00:00:00) + * input: none + * output: time in seconds + * known bugs: bad precision with time() + */ + +#if defined(__unix__) || defined(SVR4) || defined(BSD) + +# include +# include + +double +GetRealTime(void) +{ /* conforming: SVr4, BSD 4.3 */ + struct timeval t; + + if (0 != gettimeofday(&t, NULL)) + assert(0); + return t.tv_sec + 1.e-6 * t.tv_usec; +} + +#elif defined(WIN16) || defined(WIN32) + +# include +# include +# include + +double +GetRealTime(void) +{ /* conforming: Win 95, Win NT */ + struct timeb t; + + ftime(&t); + return t.time + 1.e-3 * t.millitm; +} + +#else + +double +GetRealTime(void) +{ /* conforming: SVr4, SVID, POSIX, X/OPEN, BSD 4.3 */ /* BUT NOT GUARANTEED BY ANSI */ + time_t t; + + t = time(NULL); + return (double) t; +} + +#endif + + +#if defined(_WIN32) || defined(__CYGWIN__) +# include +# include +#else +# include +#endif + +int +lame_set_stream_binary_mode(FILE * const fp) +{ +#if defined __EMX__ + _fsetmode(fp, "b"); +#elif defined __BORLANDC__ + setmode(_fileno(fp), O_BINARY); +#elif defined __CYGWIN__ + setmode(fileno(fp), _O_BINARY); +#elif defined _WIN32 + _setmode(_fileno(fp), _O_BINARY); +#else + (void) fp; /* doing nothing here, silencing the compiler only. */ +#endif + return 0; +} + + +/* End of lametime.c */