#ifndef _PLAYER_H_
#define _PLAYER_H_
class DeviceManager;
class Song;
class Part;
class PrProgress;
class SongIterator;
class AlsaManager;
#define MAXDEVNUM 16
#define TIMERINTERVALL 1000.0
enum { KMID, ARTS, ALSA };
class Player
{
friend class Track;
private:
Song * _song;
DeviceManager * devman;
int devnum;
char * devices[MAXDEVNUM];
long oldTimePos;
bool needSync;
bool _playing;
void init();
void wait(long,long);
void mergeQueue();
public:
Player();
Player(Song*);
~Player();
const char * device(int i);
int devicenum();
void play(PrProgress * progress = 0, Part * part=0, long left = 0, long right = 0, bool cycl = false, int record_track = -1);
void hit(int out, int ch, int freq, int vol);
void quad(int out, int ch, int freq1, int freq2, int freq3, int freq4, int vol);
void killAllNotes();
void setTempo(int t, long pos=0);
bool playing() const { return _playing; }
/*
* ARTS/ALSA
*/
private:
void metronome(int);
AlsaManager * alsa;
SongIterator * aiterator;
int ntracks;
long pp;
long left;
struct PlayerState * ps;
void initPlayer();
void freePlayer();
public:
bool playQuantum(bool cycl = false);
bool playStart(PrProgress * progress, Part * part, long left, long right);
double time();
long ticks();
long volume();
void programChange(int track);
void programChange(Track*);
};
#endif
| Generated by: wuerthne on clouseau on Fri Sep 21 19:20:46 2001, using kdoc 2.0a53. |