| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- /******************************************************************************/
- #if EE_PRIVATE
- /******************************************************************************/
- enum VIRTUALIZATION_MODE // 2D Sound Virtualization Mode
- {
- VIRT_NONE, // none
- VIRT_LOW , // low
- VIRT_HIGH, // high
- };
- /******************************************************************************/
- const_mem_addr struct SoundBuffer // can be moved however 'memAddressChanged' needs to be called afterwards
- {
- // manage
- void del ();
- Bool create(Int frequency, Int bits, Int channels, Int samples, Bool is3D=false);
- // operations
- void memAddressChanged(); // !! can't be called when the SoundBuffer is playing/paused !!
- #if OPEN_SL
- Bool emulate3D();
- #endif
- #if DIRECT_SOUND
- Bool lock(Int pos=0, Int size=-1);
- void unlock( );
- #endif
- // get / set
- Bool is ()C;
- Bool is3D ()C;
- void raw ( Int raw ); Int raw ()C;
- void pan ( Flt pan );
- void volume ( Flt volume );
- void frequency( Int frequency);
- void speed ( Flt speed );
- void range ( Flt range ); Flt range()C;
- void pos (C Vec &pos ); Vec pos ()C;
- void vel (C Vec &vel ); Vec vel ()C;
- void setParams(C _Sound &sound, Bool pos_range, Bool doppler);
- // stop / play
- void stop ();
- void pause ();
- void toggle (Bool loop);
- Bool playing()C;
- void play (Bool loop);
- #if EE_PRIVATE
- void zero();
- #endif
- ~SoundBuffer() {del();}
- SoundBuffer();
- #if !EE_PRIVATE
- private:
- #endif
- SoundStream::Params _par;
- #if DIRECT_SOUND
- Ptr _lock_data;
- UInt _lock_size;
- IDirectSoundBuffer *_s;
- IDirectSound3DBuffer *_s3d;
- #elif XAUDIO
- IXAudio2SourceVoice *_sv;
- Mems<Byte> _data;
- Bool _3d;
- #elif OPEN_AL
- Bool _3d;
- UInt _buffer[2], _source;
- #elif OPEN_SL
- Bool _3d;
- Int _processed;
- Flt _volume, _range;
- Vec _pos;
- SLObjectItf player_object;
- SLPlayItf player_play;
- SLVolumeItf player_volume;
- SLPlaybackRateItf player_playback_rate;
- SLAndroidSimpleBufferQueueItf player_buffer_queue;
- SL3DLocationItf player_location;
- SL3DDopplerItf player_doppler;
- SL3DSourceItf player_source;
- Mems<Byte> _data;
- #endif
- NO_COPY_CONSTRUCTOR(SoundBuffer);
- };
- /******************************************************************************/
- #if XAUDIO
- extern IXAudio2 *XAudio;
- #endif
- /******************************************************************************/
- #endif
- /******************************************************************************/
|