/*
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;
}
inline VPosition& Saturate()
{
if(mMsPos<0 || mFilePos<0)
{
mMsPos = 0;
mFilePos = 0;
}
return *this;
}
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