ROOT logo
// $Id: AlSource.h 2331 2010-01-10 22:20:13Z matevz $

// Copyright (C) 1999-2008, Matevz Tadel. All rights reserved.
// This file is part of GLED, released under GNU General Public License version 2.
// For the licensing terms see $GLEDSYS/LICENSE or http://www.gnu.org/.

#ifndef Audio1_AlSource_H
#define Audio1_AlSource_H

#include <Glasses/ZNode.h>

class AlBuffer;

class AlSource : public ZNode
{
  MAC_RNR_FRIENDS(AlSource);

public:
  enum LocationType_e { LT_FollowParents, LT_CamDelta };

private:
  void _init();

protected:
  ZLink<AlBuffer>  mDefaultBuffer; // X{GS} L{}

  LocationType_e   mLocationType; // X{GS} 7 PhonyEnum()

  Float_t     mGain;    // X{GS} Ray{Source} 7 Value(-range=>[0,100,1,1000])
  Float_t     mMinGain; // X{GS} Ray{Source} 7 Value(-range=>[0,100,1,1000], -join=>1)
  Float_t     mMaxGain; // X{GS} Ray{Source} 7 Value(-range=>[0,100,1,1000])
  Float_t     mPitch;   // X{GS} Ray{Source} 7 Value(-range=>[0.001,1000,1,1000])

  Float_t     mConeInnerAngle; // X{GS} Ray{Cone} 7 Value(-range=>[0,360,1,1000])
  Float_t     mConeOuterAngle; // X{GS} Ray{Cone} 7 Value(-range=>[0,360,1,1000])
  Float_t     mConeOuterGain;  // X{GS} Ray{Cone} 7 Value(-range=>[0,1,  1,1000])

  UInt_t      mAlSrc;	//!

public:
  AlSource(const Text_t* n="AlSource", const Text_t* t=0) :
    ZNode(n,t) { _init(); }
  virtual ~AlSource();

  Bool_t IsPlaying();

  void QueueBuffer(AlBuffer* buf=0, Int_t count=1); // X{E} C{1} 7 MCWButt()
  void UnqueueBuffers(Int_t count=1);               // X{E} 7 MCWButt()
  void UnqueueAllBuffers();                         // X{E} 7 MCWButt()

  void Play();     // X{E} 7 MCWButt(-join=>1)
  void Loop();     // X{E} 7 MCWButt(-join=>1)
  void Stop();     // X{E} 7 MCWButt()

  void EmitSourceRay();
  void EmitConeRay();

  void PrintSourceInfo();  //! X{E} 7 MButt()

#include "AlSource.h7"
  ClassDef(AlSource, 1);
}; // endclass AlSource


#endif
 AlSource.h:1
 AlSource.h:2
 AlSource.h:3
 AlSource.h:4
 AlSource.h:5
 AlSource.h:6
 AlSource.h:7
 AlSource.h:8
 AlSource.h:9
 AlSource.h:10
 AlSource.h:11
 AlSource.h:12
 AlSource.h:13
 AlSource.h:14
 AlSource.h:15
 AlSource.h:16
 AlSource.h:17
 AlSource.h:18
 AlSource.h:19
 AlSource.h:20
 AlSource.h:21
 AlSource.h:22
 AlSource.h:23
 AlSource.h:24
 AlSource.h:25
 AlSource.h:26
 AlSource.h:27
 AlSource.h:28
 AlSource.h:29
 AlSource.h:30
 AlSource.h:31
 AlSource.h:32
 AlSource.h:33
 AlSource.h:34
 AlSource.h:35
 AlSource.h:36
 AlSource.h:37
 AlSource.h:38
 AlSource.h:39
 AlSource.h:40
 AlSource.h:41
 AlSource.h:42
 AlSource.h:43
 AlSource.h:44
 AlSource.h:45
 AlSource.h:46
 AlSource.h:47
 AlSource.h:48
 AlSource.h:49
 AlSource.h:50
 AlSource.h:51
 AlSource.h:52
 AlSource.h:53
 AlSource.h:54
 AlSource.h:55
 AlSource.h:56
 AlSource.h:57
 AlSource.h:58
 AlSource.h:59
 AlSource.h:60
 AlSource.h:61
 AlSource.h:62
 AlSource.h:63
 AlSource.h:64
 AlSource.h:65