Logo
Sound.h
1#pragma once
2
3#include "Types.h"
4#include "snd/Sound.h"
5#include "Math/Vector3.h"
6
7namespace SharpKmyAudio
8{
9 public enum class SurroundMode {
10 None,
12 Planar,
13 };
14
15 public enum class VolumeRollOffType {
16 Fix,
17 Linear,
19 };
20
21 public ref class Sound
22 {
23 private:
24 int sePlayerId = -1;
25 u32 pausePos = 0;
26 int typeIndex;
27 float pan;
28 float volume;
29 float tempo;
30 bool loop;
31 bool is3D = false;
32 float x;
33 float y;
34 float z;
35
36
37 public:
38 kmySound::WaveSound *obj = NULL;
39 void Release()
40 {
41 if (obj)
42 obj->unref();
43 obj = NULL;
44 }
45
46 static Sound^ load(System::String ^path);
47
48 bool play(SurroundMode surroundMode, VolumeRollOffType volumeRollOff, float minimumDistance, float maximumDistance);
49 bool play(bool loop, int typeIndex, SurroundMode surroundMode, VolumeRollOffType volumeRollOff, float minimumDistance, float maximumDistance);
50 void stop();
51 void pause();
52 void setLoopInfo(int start, int end);
53 void setPan(float pan);
54 void setVolume(float volume);
55 void setTempo(float tempo);
56 float getPan() { return pan; }
57 float getVolume() { return volume; }
58 float getTempo() { return tempo; }
60 bool isPlaying();
61 bool isAvailable();
62
63 cli::array<s16> ^getWaveform();
64 u32 getSamplingRate() { return (obj == nullptr) ? 0 : obj->getSamplingRate(); }
65 int getChannelCount() { return (obj == nullptr) ? 0 : obj->getChannelCount(); }
66
67 static void initializeSETypeCount(cli::array<int>^ seCounts);
69 static void setDistanceScaleMaxDistance(float distanceOfZeroVolume);
70 };
71}
Definition: Sound.h:22
static Sound load(System::String ^path)
Definition: Sound.cpp:8
void setPan(float pan)
Definition: Sound.cpp:169
bool play(SurroundMode surroundMode, VolumeRollOffType volumeRollOff, float minimumDistance, float maximumDistance)
Definition: Sound.cpp:31
void setLoopInfo(int start, int end)
Definition: Sound.cpp:148
static void initializeSETypeCount(cli::array< int >^ seCounts)
Definition: Sound.cpp:240
void stop()
Definition: Sound.cpp:124
static void setListenerMatrix(SharpKmyMath::Matrix4 mtx)
Definition: Sound.cpp:252
u32 getSamplingRate()
Definition: Sound.h:64
float getTempo()
Definition: Sound.h:58
void setVolume(float volume)
Definition: Sound.cpp:177
void Release()
Definition: Sound.h:39
bool isPlaying()
Definition: Sound.cpp:155
float getVolume()
Definition: Sound.h:57
int getChannelCount()
Definition: Sound.h:65
float getPan()
Definition: Sound.h:56
void setTempo(float tempo)
Definition: Sound.cpp:185
void setPosition(SharpKmyMath::Vector3 ^pos)
Definition: Sound.cpp:193
kmySound::WaveSound * obj
Definition: Sound.h:38
bool isAvailable()
Definition: Sound.cpp:214
void pause()
Definition: Sound.cpp:135
cli::array< s16 > getWaveform()
Definition: Sound.cpp:221
static void setDistanceScaleMaxDistance(float distanceOfZeroVolume)
Definition: Sound.cpp:262
Definition: Matrix4.h:12
Definition: Sound.cpp:5
VolumeRollOffType
Definition: Sound.h:15
SurroundMode
Definition: Sound.h:9
Definition: Vector3.h:7