/* 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 . */ #ifndef VPOSITION_H #define VPOSITION_H #include 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(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=(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