Remove LiveTV menu.
[vuplus_xbmc] / xbmc / threads / Helpers.h
index c98bb66..2511086 100644 (file)
@@ -1,6 +1,6 @@
 /*
- *      Copyright (C) 2005-2011 Team XBMC
- *      http://www.xbmc.org
+ *      Copyright (C) 2005-2013 Team XBMC
+ *      http://xbmc.org
  *
  *  This Program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with XBMC; see the file COPYING.  If not, write to
- *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
- *  http://www.gnu.org/copyleft/gpl.html
+ *  along with XBMC; see the file COPYING.  If not, see
+ *  <http://www.gnu.org/licenses/>.
  *
  */
 
 #pragma once
 
-#include <assert.h>
-
 namespace XbmcThreads
 {
   /**
@@ -36,16 +33,22 @@ namespace XbmcThreads
     inline NonCopyable() {}
   };
 
+  /**
+   * This will create a new predicate from an old predicate P with 
+   *  inverse truth value. This predicate is safe to use in a 
+   *  TightConditionVariable<P>
+   */
+  template <class P> class InversePredicate
+  {
+    P predicate;
+
+  public:
+    inline InversePredicate(P predicate_) : predicate(predicate_) {}
+    inline InversePredicate(const InversePredicate<P>& other) : predicate(other.predicate) {}
+    inline InversePredicate<P>& operator=(InversePredicate<P>& other) { predicate = other.predicate; }
+
+    inline bool operator!() const { return !(!predicate); }
+  };
+
 }
 
-/*#ifdef NDEBUG
-#define XBMC_ASSERT_TRUE(expression) assert( expression )
-#define XBMC_ASSERT_NOTEQUALS(compareTo,expression) assert( compareTo != expression )
-#define XBMC_ASSERT_EQUALS(compareTo,expression) assert( compareTo == expression )
-#define XBMC_ASSERT_ZERO(expression) assert( 0 == expression )
-#else*/
-#define XBMC_ASSERT_TRUE(expression) expression
-#define XBMC_ASSERT_NOTEQUALS(compareTo,expression) expression
-#define XBMC_ASSERT_EQUALS(compareTo,expression) expression
-#define XBMC_ASSERT_ZERO(expression) expression
-//#endif