<HTML>
<HEAD>
<TITLE>Includes</TITLE></HEAD><BODY><H6><A href=Main.html>Contents page</A></H6><P>
<H6><A href=Main.html>Index</A></H6><P>
<H1>Includes</H1>
<HR>
  //////////////////////////////////////////////////////////////////////////////<PRE>
  // AudioDT.hpp
  //
  // Deryk Robosson
  // March 16, 1996
  //////////////////////////////////////////////////////////////////////////////<P>

  #ifndef __AUDIODT_HPP__
  #define __AUDIODT_HPP__<P>

  //////////////////////////////////////////////////////////////////////////////
  // INCLUDES
  #include &quot;aframe:include/aframe.hpp&quot;
  #include &quot;aframe:include/datatype.hpp&quot;<P>

  //////////////////////////////////////////////////////////////////////////////
  // Definitions<P>

  typedef struct {
      struct VoiceHeader  *vhdr;          // voice header pointer
      struct dtTrigger    dtt;            // datatype trigger struct
      ULONG               samplelength;   // sample length
      ULONG               cycles;         // sample cycles
      ULONG               period;         // sample period
      ULONG               volume;         // sample volume
      ULONG               clock;          // sample clock rate
      BYTE                *buffer;        // sample buffer
  } AUDIODT;<P>

  //////////////////////////////////////////////////////////////////////////////
  // AudioDT Class<P>

  class AFAudioDT : public AFDataType
  {
  public:<P>

      AFAudioDT();
      ~AFAudioDT();<P>

      virtual char *ObjectType() { return &quot;AudioDT&quot;; };<P>

      BOOL PlaySample();
      BOOL PlayFile(char* file_name);
      BOOL LoadSample(char* file_name);
      BOOL SetVolume(int volume);
      BOOL SetVolume(ULONG volume);
      BOOL SetBuffer(UBYTE *buffer, ULONG size);
      BOOL SignalTask(struct Task *task);
      UBYTE* GetBuffer(UBYTE* buffer);
      ULONG GetBufferSize();<P>

      AUDIODT m_dtAudio;
  };<P>

  //////////////////////////////////////////////////////////////////////////////
  #endif // __AUDIODT_HPP__
<HR>
