arsa  2.7
cdxsnd.h
Go to the documentation of this file.
1 #ifndef _CDXSND_H_
2 #define _CDXSND_H_
3 
4 // push avoid dll warning
5 #ifdef __WIN32__
6 #pragma warning( push )
7 #pragma warning( disable: 4251 )
8 #endif
9 
10 #include "arsa_begin_code.h"
11 #include <irrlicht.h>
12 
13 namespace irr
14 {
15  namespace arsa
16  {
17  class CAVSceneNode;
18  }
19 }
20 
21 struct SOUNDINFO
22 {
23  SOUNDINFO( const irr::core::stringc& filename = "" )
24  {
25  FileName = filename;
26  Av = 0;
27  }
28 
37 };
38 
40 {
41 public:
42  CDXSnd( );
43  virtual ~CDXSnd( );
44 
45  virtual void Create( void );
46  virtual void Destroy( void );
47  virtual void drawAll();
48  virtual SOUNDINFO* Get(const char* filename, const char* actorname = 0, bool stream = true, const char* aliasname = 0);
49  virtual SOUNDINFO* Get(irr::io::IReadFile* fp, const char* actorname = 0, bool stream = true, const char* aliasname = 0);
50  virtual int Play( const char* filename, int pan = 0, bool loop = false, const char* actorname = NULL );
51  virtual int PlayX(const char* filename );
52  virtual int PlayOnce(const char* filename );
53  virtual void Pause( const char* filename );
54  virtual void Resume( const char* filename );
55  virtual void Stop( const char* filename );
56  virtual void Loop(const char* filename, bool loop);
57  virtual void PauseAll( void );
58  virtual void PauseAllWav( void );
59  virtual void StopAllWav( void );
60  virtual void PlayAll( void );
61  virtual void PauseAllWavByActor(const char* actorname );
62  virtual bool IsPlaying( const char* filename );
63  virtual bool IsEnd(const char* filename);
64  virtual bool Seek(const char* filename, irr::u32 hh, irr::u32 mm, irr::u32 ss);
65  virtual bool SeekSec(const char* filename, irr::s32 sec);
66  virtual bool SeekPercent(const char* filename, irr::s32 percent);
67  virtual int getPlayback(const irr::core::stringc& str);
68  virtual bool IsExistSnd(const char* filename) const;
69  virtual irr::u64 getVideoEndDuration(const char* filename); // return millisec, 0 is error
70  virtual irr::u64 getAudioEndDuration(const char* filename); // return millisec, 0 is error
71  virtual irr::u64 getVideoCurrentDuration(const char* filename); // return millisec, 0 is error
72  virtual irr::u64 getAudioCurrentDuration(const char* filename); // return millisec, 0 is error
73  virtual bool HasVideo(const char* filename);
74  virtual bool HasAudio(const char* filename);
75 
76  virtual void SetWavVolume( int volume );
77  virtual void SetMidiVolume(int volume );
78  virtual void SetFolder( const char* foldername );
79  virtual int GetExtend( const char* filename );
80  virtual bool CacheSound( const char* scriptname, const char* actorname = 0, bool stream = true);
81  virtual void Remove( const char* filename );
82  virtual void RemoveAll( void );
83  virtual void SetPause( bool pause ) { m_Pause = pause; };
84  virtual bool GetPause( void ) const { return m_Pause; };
85 
86  // video
87  virtual void Show(const char* filename, bool show = true);
88  virtual bool IsShow(const char* filename);
89  virtual void SetPlayTime(const char* filename, irr::f32 sec);
90  virtual bool Draw(const char* filename, bool is_forground = true);
91  virtual bool Resize(const char* filename, const irr::core::dimension2di& size);
92  virtual irr::core::dimension2di getTextureSize(const char* filename);
93  virtual void UseAsTexture(const char* filename, bool active = true);
94  virtual void UseAsForground(const char* filename, bool active = true);
95  virtual irr::video::ITexture* GetTexture(const char* filename);
96 
97  virtual irr::u32 getSndCount() const;
98  virtual SOUNDINFO* getSndInfo(irr::s32 id);
99  bool isQuit() const { return m_quit; }
100 
101  // don't call, internal used only!
102  void lock();
103  void unlock();
104  void lockList();
105  void unlockList();
106 
107 private:
108  bool m_Pause;
109  //int m_MidiVolume;
110  //int m_WavVolume;
111  irr::core::stringc m_Folder;
113  bool m_quit;
114  void* m_lock;
115  void* m_lockList;
116  void* m_thread;
117 
118  int Load(const char* filename, const char* actorname = 0, bool stream = true, const char* aliasname = 0 );
119  int Load( irr::io::IReadFile* fp, const char* actorname = 0, bool stream = true, const char* aliasname = 0);
120  void createThread();
121  void freeThread();
122  void* createSemaphore( int value );
123  void freeSemaphore(void** semaphore);
124  void internal_lock( void* semaphore );
125  void internal_unlock( void* semaphore );
126 
127 };
128 
129 // backward compatable
131 {
132 public:
133  CDXSound() {}
134  virtual ~CDXSound() {}
135  virtual bool Create() { return true; }
136 };
137 
139 {
140 public:
141  CDXSoundBuffer();
142  virtual ~CDXSoundBuffer();
143  virtual bool Load(void* dummy, const char* filename, int Num = 1);
144  virtual void Play();
145  virtual void Stop();
146  virtual void Pause();
147  virtual void Resume();
148  virtual bool IsPlaying();
149  virtual void Clear();
150  virtual void Loop( bool loop );
151  virtual bool Seek(irr::u32 hh, irr::u32 mm, irr::u32 ss);
152  virtual bool SeekSec(irr::s32 sec);
153  virtual bool SeekPercent(irr::s32 percent);
154 
155 private:
156  irr::core::stringc Filename;
157 };
158 
160 {
161 public:
163  virtual ~CDXMidi() {}
164  virtual void Init() {}
165  virtual bool LoadMidi(const char* filename) { return CDXSoundBuffer::Load(0, filename); }
166  virtual void Play(int dummy) { CDXSoundBuffer::Play(); }
167  virtual bool IsPlaying(int dummy) { return CDXSoundBuffer::IsPlaying(); }
168 };
169 
170 // pop avoid dll warning
171 #ifdef __WIN32__
172 #pragma warning( pop )
173 #endif
174 
175 #endif
irr::core::stringc FileName
sound full filename
Definition: cdxsnd.h:32
unsigned long long u64
64 bit unsigned variable.
Definition: irrTypes.h:86
Interface providing read access to a file.
Definition: IReadFile.h:18
virtual ~CDXSound()
Definition: cdxsnd.h:134
float f32
32 bit floating point variable.
Definition: irrTypes.h:108
GLuint GLuint stream
irr::core::stringc AliasName
alias to filename good to be uniqueness
Definition: cdxsnd.h:34
virtual void Play()
virtual ~CDXMidi()
Definition: cdxsnd.h:163
virtual void Play(int dummy)
Definition: cdxsnd.h:166
Everything in the Irrlicht Engine can be found in this namespace.
Definition: CARSADPad.h:6
Main header file of the irrlicht, the only file needed to include.
GLsizeiptr size
Specifies a 2 dimensional size.
Definition: dimension2d.h:20
virtual void Init()
Definition: cdxsnd.h:164
Very simple string class with some useful features.
Definition: irrString.h:37
virtual bool Load(void *dummy, const char *filename, int Num=1)
virtual bool LoadMidi(const char *filename)
Definition: cdxsnd.h:165
virtual bool IsPlaying(int dummy)
Definition: cdxsnd.h:167
signed int s32
32 bit signed variable.
Definition: irrTypes.h:70
GLsizei const GLfloat * value
virtual bool GetPause(void) const
Definition: cdxsnd.h:84
Definition: cdxsnd.h:39
unsigned int u32
32 bit unsigned variable.
Definition: irrTypes.h:62
virtual bool Create()
Definition: cdxsnd.h:135
bool isQuit() const
Definition: cdxsnd.h:99
virtual void SetPause(bool pause)
Definition: cdxsnd.h:83
#define NULL
Definition: begin_code.h:167
CDXSound()
Definition: cdxsnd.h:133
#define ARSA_API
virtual bool IsPlaying()
irr::arsa::CAVSceneNode * Av
av acenenode
Definition: cdxsnd.h:30
Interface of a Video Driver dependent Texture.
Definition: ITexture.h:177
irr::core::stringc ActorName
actor name
Definition: cdxsnd.h:36
CDXMidi()
Definition: cdxsnd.h:162
SOUNDINFO(const irr::core::stringc &filename="")
Definition: cdxsnd.h:23