//------------------------------------------------------------------------ // Copyright 2009 (c) Jeff Brown // // This file is part of the ZBar Bar Code Reader. // // The ZBar Bar Code Reader is free software; you can redistribute it // and/or modify it under the terms of the GNU Lesser Public License as // published by the Free Software Foundation; either version 2.1 of // the License, or (at your option) any later version. // // The ZBar Bar Code Reader 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 Lesser Public License for more details. // // You should have received a copy of the GNU Lesser Public License // along with the ZBar Bar Code Reader; if not, write to the Free // Software Foundation, Inc., 51 Franklin St, Fifth Floor, // Boston, MA 02110-1301 USA // // http://sourceforge.net/projects/zbar //------------------------------------------------------------------------ #include #define xNSSTR(s) @ #s #define NSSTR(s) xNSSTR(s) #ifdef DEBUG_OBJC #ifndef MODULE #define MODULE ZBarReaderController #endif #define zlog(fmt, ...) NSLog(NSSTR(MODULE) @": " fmt, ##__VA_ARGS__) #define timer_start uint64_t t_start = timer_now(); #else #define zlog(...) while (0) #define timer_start #endif static inline uint64_t timer_now() { return (mach_absolute_time()); } static inline double timer_elapsed(uint64_t start, uint64_t end) { mach_timebase_info_data_t info; mach_timebase_info(&info); return ((double)(end - start) * info.numer / (info.denom * 1000000000.)); }