/***************************************************************************
 * trackpos.h: implementation of TrackPos class
 *
 * This file is part of KTabEdit, a KDE tabulature editor
 *
 * copyright (C) 2003-2007 the KTabEdit development team <mrgwen@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 2 of the License, or
 * (at your option) any later version.
 *
 * See the file COPYING for more information.
 ***************************************************************************/

#ifndef TRACKPOS_H
#define TRACKPOS_H

class TrackPos
{
public:
	TrackPos();
	TrackPos(int bar, int time, int note);
	virtual ~TrackPos();
	
	virtual void clone(const TrackPos& position);
	
	virtual void incChord();
	virtual void decChord();
	virtual void setChord(int);
	virtual int chord() const;
	
	virtual void incBar();
	virtual void decBar();
	virtual void setBar(int);
	virtual int bar() const;
	
	virtual void incTimes();
	virtual void decTimes();
	virtual void setTimes(int);
	virtual int times() const;
	
	virtual bool operator==(const TrackPos& trackPos) const;
	virtual bool operator!=(const TrackPos& trackPos) const;
	
	virtual bool operator<(const TrackPos& position) const;
	virtual bool operator<=(const TrackPos& position) const;
	
	virtual bool operator>(const TrackPos& position) const;
	virtual bool operator>=(const TrackPos& position) const;
private:
	int curBarPos;
	int curTimesPos;
	int curPos;
};

#endif
