[go: up one dir, main page]

Menu

Diff of /vposition.h [000000] .. [r1]  Maximize  Restore

Switch to side-by-side view

--- a
+++ b/vposition.h
@@ -0,0 +1,100 @@
+/*
+   Copyright (C) 2011 Arnaud Champenois arthelion92@gmail.com
+
+    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
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program 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 General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+#ifndef VPOSITION_H
+#define VPOSITION_H
+
+#include <stdint.h>
+
+struct VPosition
+{
+    VPosition()
+    {
+        mMsPos = mFilePos = -1;
+    }
+
+    VPosition(int64_t aMsPos, int64_t aFilePos)
+    {
+        mMsPos = aMsPos;
+        mFilePos = aFilePos;
+    }
+
+    int64_t mMsPos; // Position time
+    int64_t mFilePos; // Position in file
+
+};
+
+inline bool operator<(const VPosition&a,const VPosition&b)
+{
+    if(a.mMsPos<b.mMsPos) return true;
+    else return false;
+}
+
+inline bool operator>(const VPosition&a,const VPosition&b)
+{
+    if(a.mMsPos>b.mMsPos) return true;
+    else return false;
+}
+
+inline bool operator<=(const VPosition&a,const VPosition&b)
+{
+    if(a.mMsPos<b.mMsPos) return true;
+    else return false;
+}
+
+inline bool operator>=(const VPosition&a,const VPosition&b)
+{
+    if(a.mMsPos>b.mMsPos) return true;
+    else return false;
+}
+
+inline bool operator==(const VPosition&a,const VPosition&b)
+{
+    if(a.mMsPos==b.mMsPos) return true;
+    else return false;
+}
+
+inline VPosition operator*(const VPosition&a,int aValue)
+{ return VPosition(a.mMsPos*aValue,a.mFilePos*aValue); }
+
+inline VPosition operator+(const VPosition&a,const VPosition&b)
+{
+   return VPosition(a.mMsPos+b.mMsPos,a.mFilePos+b.mFilePos);
+}
+
+inline VPosition &operator+=(VPosition&a,const VPosition&b)
+{
+  a.mMsPos += b.mMsPos;
+  a.mFilePos += b.mFilePos;
+
+  return a;
+}
+
+inline VPosition &operator-=(VPosition&a,const VPosition&b)
+{
+  a.mMsPos -= b.mMsPos;
+  a.mFilePos -= b.mFilePos;
+
+  return a;
+}
+
+
+inline VPosition operator-(const VPosition&a,const VPosition&b)
+{
+    return VPosition(a.mMsPos-b.mMsPos,a.mFilePos-b.mFilePos);
+ }
+
+#endif // VPOSITION_H