#ifndef _POSITION_H_
#define _POSITION_H_
#include "atom.h"
class Part;
class ostream;
class Tuplet;
class Position : public Atoma
{
private:
long totalTicks;
int modulo(int m) const { return totalTicks%m; }
int Meter(int,Part*) const;
public:
Position();
Position(long);
Position(int,int,int);
Position(char*,int);
// Position(int,int,int,Part*,int m0=0,int m1=0);
// Position(int,int,int,int,int);
// Position(char*,Part*,int m0=0,int m1=0);
Position(const Position&);
long ticks() const { return totalTicks; }
long negative();
int bar() const;
int beat() const;
int tick() const;
bool sameBar(Position&) const;
bool sameBarOrGreater(Position&) const;
bool sameBeat(Position&) const;
/*
int gBar(Part*);
int gBeat(Part*);
int gTicks(Part*);
int gBar(int,int);
int gBeat(int,int);
int gTicks(int,int);
int gBar(Part*,int,int);
int gBeat(Part*,int,int);
int gTicks(Part*,int,int);
*/
void gBBT(int&,int&,int&,Part*,int&,int&,bool returnMeter=false) const;
void gBBT(int&,int&,int&) const;
void nextBar();
void nextBeat();
void prevBar();
void snap(int res, Tuplet * tuplet = 0);
Position & operator=(const Position&);
Position & operator=(long);
Position & set(int,int,int,Part * master,int m0=0,int m1=0,int snap=0);
Position & operator+=(Position);
Position & operator-=(Position);
double operator*(double);
friend Position operator+(Position,Position);
friend Position operator-(Position,Position);
friend long operator+(Position,long);
friend long operator-(Position,long);
friend bool operator==(Position,Position);
friend bool operator==(Position,long);
friend bool operator!=(Position,Position);
friend bool operator!=(Position,long);
friend bool operator<(Position,Position);
friend bool operator<=(Position,Position);
friend bool operator>(Position,Position);
friend bool operator>=(Position,Position);
friend Position & operator++(Position&,int);
friend ostream & operator<<(ostream&,const Position&);
virtual ostream & print(int,ostream&) const;
virtual void flush(const char*) const;
virtual Element * copy() const;
virtual bool isEvent() const { return false; }
};
#endif
| Generated by: wuerthne on clouseau on Fri Sep 21 19:20:46 2001, using kdoc 2.0a53. |