#include "timer.h"
#include "defs.h"

#define _SOUND_H

#define NOMEM  3            // Zuwenig Speicher verfgbar
#define NOFORM 5            // Unbekanntes Dateiformat
#define NOFILE 6            // Fehler beim ffnen der Datei

char PlaySound(char *FileName);
void ErrorMsg(char Nr);

class Sound
{
  public:
    Sound();
    virtual ~Sound();

    void Play();
    virtual char Read();

  protected:
    static void interrupt NeuerTimer(...);
    void SetSoundLength(DWORD len)         { Laenge=len; }
    void SetSoundSampleRate(WORD freq)     { SampleRate=freq; }
    void SetSoundBuffer(BYTE huge *Buffer) { Zeiger=SoundDaten=Buffer; }

  private:
    void GenerateTab();
    void AdjustSampleRate();

    Timer *TimerObject;
    WORD SampleRate;
    static DWORD count,Laenge;
    static BYTE StartWert,Zaehler,xlat[255],inc;
    static BYTE huge *SoundDaten,huge *Zeiger;
};