1 /* 2 This file is part of darktable, 3 Copyright (C) 2010-2020 darktable developers. 4 5 darktable is free software: you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation, either version 3 of the License, or 8 (at your option) any later version. 9 10 darktable is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with darktable. If not, see <http://www.gnu.org/licenses/>. 17 */ 18 19 #pragma once 20 21 #include "gui/gtk.h" 22 23 24 #ifdef USE_DARKTABLE_PROFILING 25 #define TIMER_START(name, description) \ 26 dt_timer_t *name = dt_timer_start_with_name(__FILE__, __FUNCTION__, description) 27 #else 28 #define TIMER_START(name, description) \ 29 { \ 30 } 31 #endif 32 33 #ifdef USE_DARKTABLE_PROFILING 34 #define TIMER_STOP(name) dt_timer_stop_with_name(name) 35 #else 36 #define TIMER_STOP(name) \ 37 { \ 38 } 39 #endif 40 41 #ifdef USE_DARKTABLE_PROFILING 42 typedef struct dt_timer_t 43 { 44 const char *file; 45 const char *function; 46 const char *description; 47 GTimer *timer; 48 } dt_timer_t; 49 50 dt_timer_t *dt_timer_start_with_name(const char *file, const char *function, const char *description); 51 void dt_timer_stop_with_name(dt_timer_t *); 52 #endif 53 54 // modelines: These editor modelines have been set for all relevant files by tools/update_modelines.sh 55 // vim: shiftwidth=2 expandtab tabstop=2 cindent 56 // kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified; 57