update CycleTimer to utilize NDEBUG and PBD::DEBUG so that we can leave them in place...
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 30 Nov 2011 15:24:31 +0000 (15:24 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 30 Nov 2011 15:24:31 +0000 (15:24 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@10840 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/ardour/cycle_timer.h
libs/ardour/ardour/debug.h
libs/ardour/debug.cc

index 146b393a6367399e23a124c1c1c02e698e68b2b9..dc70204e82fa1f15072fa96d86004da37a7b59ab 100644 (file)
 #include <iostream>
 
 #include "ardour/cycles.h"
+#include "ardour/debug.h"
 
 class CycleTimer {
   private:
        static float cycles_per_usec;
+#ifndef NDEBUG
        cycles_t _entry;
        cycles_t _exit;
        std::string _name;
+#endif
 
   public:
-       CycleTimer(std::string name) : _name (name){
-               if (cycles_per_usec == 0) {
-                       cycles_per_usec = get_mhz ();
+       CycleTimer(const std::string& name) {
+#ifndef NDEBUG
+               if (PBD::debug_bits & PBD::DEBUG::CycleTimers) {
+                       _name = name;
+                       if (cycles_per_usec == 0) {
+                               cycles_per_usec = get_mhz ();
+                       }
+                       _entry = get_cycles();
                }
-               _entry = get_cycles();
+#endif
        }
+
        ~CycleTimer() {
-               _exit = get_cycles();
-               std::cerr << _name << ": " << (float) (_exit - _entry) / cycles_per_usec << " (" <<  _entry << ", " << _exit << ')' << std::endl;
+#ifndef NDEBUG
+               if (PBD::debug_bits & PBD::DEBUG::CycleTimers) {
+                       _exit = get_cycles();
+                       std::cerr << _name << ": " << (float) (_exit - _entry) / cycles_per_usec << " (" <<  _entry << ", " << _exit << ')' << std::endl;
+               }
+#endif
        }
 
        static float get_mhz ();
index 0351aace1f047f2bcb37b520c7b9f5530b7ca477..8ab4a4d9fdfe9622f839454c5a52ea0013c9c2e8 100644 (file)
@@ -54,6 +54,7 @@ namespace PBD {
                extern uint64_t PluginManager;
                extern uint64_t AudioUnits;
                extern uint64_t ControlProtocols;
+               extern uint64_t CycleTimers;
        }
 }
 
index e731113dc231bb034553700160a3514eb9b7d4f0..de29a99b05f0608661a3c18fa0b7b244fa606e3b 100644 (file)
@@ -51,4 +51,5 @@ uint64_t PBD::DEBUG::CaptureAlignment = PBD::new_debug_bit ("capturealignment");
 uint64_t PBD::DEBUG::PluginManager = PBD::new_debug_bit ("pluginmanager");
 uint64_t PBD::DEBUG::AudioUnits = PBD::new_debug_bit ("audiounits");
 uint64_t PBD::DEBUG::ControlProtocols = PBD::new_debug_bit ("controlprotocols");
+uint64_t PBD::DEBUG::CycleTimers = PBD::new_debug_bit ("cycletimers");