prime/include/Kyoto/Input/CRumbleVoice.hpp

58 lines
992 B
C++

#ifndef _CRUMBLEVOICE_HPP
#define _CRUMBLEVOICE_HPP
#include "types.h"
#include "rstl/reserved_vector.hpp"
#include "rstl/vector.hpp"
enum ERumblePriority {
kRP_None,
kRP_One,
kRP_Two,
kRP_Three,
};
struct SAdsrData {
f32 x0_attackGain;
f32 x4_autoReleaseDur;
f32 x8_attackDur;
f32 xc_decayDur;
f32 x10_sustainGain;
f32 x14_releaseDur;
bool x18_24_hasSustain : 1;
bool x18_25_autoRelease : 1;
};
struct SAdsrDelta {
enum EPhase {
kP_Stop,
kP_PrePulse,
kP_Attack,
kP_Decay,
kP_Sustain,
kP_Release,
};
f32 x0_curIntensity;
f32 x4_attackTime;
f32 x8_decayTime;
f32 xc_releaseTime;
f32 x10_autoReleaseTime;
f32 x14_attackIntensity;
f32 x18_sustainIntensity;
ERumblePriority x1c_priority;
EPhase x20_phase;
};
class CRumbleVoice {
private:
rstl::vector< SAdsrData > x0_datas;
rstl::vector< SAdsrDelta > x10_deltas;
rstl::reserved_vector< s16, 4 > x20_handleIds;
s16 x2c_usedChannels;
u8 x2e_lastId;
};
#endif