mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-05 19:25:04 +00:00
143 lines
5.1 KiB
C
143 lines
5.1 KiB
C
|
/**
|
||
|
* @file BasicSound.h
|
||
|
* @brief A basic sound.
|
||
|
*/
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "types.h"
|
||
|
#include "nn/atk/SoundPlayer.h"
|
||
|
|
||
|
namespace nn
|
||
|
{
|
||
|
namespace atk
|
||
|
{
|
||
|
class SoundActor;
|
||
|
|
||
|
enum MixMode
|
||
|
{
|
||
|
|
||
|
};
|
||
|
|
||
|
namespace detail
|
||
|
{
|
||
|
class PlayerHeap;
|
||
|
class ExternalSoundPlayer;
|
||
|
|
||
|
class BasicSound
|
||
|
{
|
||
|
public:
|
||
|
BasicSound();
|
||
|
virtual ~BasicSound();
|
||
|
|
||
|
virtual void Initialize();
|
||
|
virtual void Finalize();
|
||
|
virtual bool IsPrepared() const = 0;
|
||
|
virtual bool IsAttachedTempSpecialHandle() = 0;
|
||
|
virtual void DetachTempSpecialHandle() = 0;
|
||
|
virtual void OnUpdatePlayerPriority();
|
||
|
virtual void UpdateMoveValue();
|
||
|
virtual void OnUpdateParam();
|
||
|
|
||
|
void SetPriority(s32, s32);
|
||
|
void GetPriority(s32 *, s32 *) const;
|
||
|
void ClearIsFinalizedForCannotAllocatedResourceFlag();
|
||
|
void SetId(u32 newID);
|
||
|
bool IsAttachedGeneralHandle();
|
||
|
void DetachGeneralHandle();
|
||
|
bool IsAttachedTempGeneralHandle();
|
||
|
void DetachTempGeneralHandle();
|
||
|
void StartPrepared();
|
||
|
void Stop(s32);
|
||
|
void SetPlayerPriority(s32);
|
||
|
void ForceStop();
|
||
|
void Pause(bool, s32);
|
||
|
void Mute(bool, s32);
|
||
|
void SetAutoStopCounter(s32);
|
||
|
void FadeIn(s32);
|
||
|
bool IsPause() const;
|
||
|
bool IsMute() const;
|
||
|
void Update();
|
||
|
void UpdateParam();
|
||
|
void UpdateMoveValue();
|
||
|
void CalculateVolume() const;
|
||
|
f32 CalculatePitch() const;
|
||
|
f32 CalculateLpfFrequency() const;
|
||
|
u32 CalculateOutLineFlag() const;
|
||
|
void CalculateBiquadFilter(s32 *, f32 *) const;
|
||
|
void AttachPlayerHeap(nn::atk::detail::PlayerHeap *);
|
||
|
void DetachPlayerHeap(nn::atk::detail::PlayerHeap *);
|
||
|
void AttachSoundPlayer(nn::atk::SoundPlayer *);
|
||
|
void DetachSoundPlayer(nn::atk::SoundPlayer *);
|
||
|
void AttachSoundActor(nn::atk::SoundActor *);
|
||
|
void DetachSoundActor(nn::atk::SoundActor *);
|
||
|
void AttachExternalSoundPlayer(nn::atk::detail::ExternalSoundPlayer *);
|
||
|
void DetachExternalSoundPlayer(nn::atk::detail::ExternalSoundPlayer *);
|
||
|
u32 GetRemainingFadeFrames() const;
|
||
|
u32 GetRemainingPauseFadeFrames() const;
|
||
|
u32 GetRemainingMuteFadeFrames() const;
|
||
|
void SetInitialVolume(f32 vol);
|
||
|
f32 GetInitialVolume() const;
|
||
|
void SetVolume(f32, s32);
|
||
|
s32 GetVolume() const;
|
||
|
void SetPitch(f32);
|
||
|
f32 GetPitch() const;
|
||
|
void SetLpfFreq(f32);
|
||
|
f32 GetLpfFreq() const;
|
||
|
void SetBiquadFilter(s32, f32);
|
||
|
void GetBiquadFilter(s32 *, f32 *) const;
|
||
|
void SetOutputLine(u32);
|
||
|
u32 GetOutputLine() const;
|
||
|
void ResetOutputLine();
|
||
|
void SetMixMode(nn::atk::MixMode);
|
||
|
nn::atk::MixMode GetMixMode();
|
||
|
void SetPan(f32);
|
||
|
f32 GetPan() const;
|
||
|
void SetSurroundPan(f32);
|
||
|
f32 GetSurroundPan() const;
|
||
|
void SetMainSend(f32);
|
||
|
f32 GetMainSend() const;
|
||
|
|
||
|
u64* _8; // nn::atk::detail::PlayerHeap*
|
||
|
u64* _10; // nn::atk::SoundHandle*
|
||
|
u64* _18; // nn::atk::SoundHandle*
|
||
|
nn::atk::SoundPlayer* mSoundPlayer; // _20
|
||
|
u64* _28; // nn::atk::SoundActor*
|
||
|
u64* _30; // nn::atk::detail::ExternalSoundPlayer*
|
||
|
u64* _38; // nn::atk::SoundArchive*
|
||
|
u8 _40[0xF0-0x40];
|
||
|
s32 mPriority; // _F0
|
||
|
u32 _F4;
|
||
|
u32 _F8;
|
||
|
s32 mAutoStopCounter; // _FC
|
||
|
u64 _100;
|
||
|
u32 mID; // _108
|
||
|
u32 _10C;
|
||
|
u32 _110;
|
||
|
u32 _114;
|
||
|
f32 mInitialVolume; // _118
|
||
|
f32 mPitch; // _11C
|
||
|
f32 mLpfFreq; // _120
|
||
|
f32 _124;
|
||
|
u32 mOutputLine; // _128
|
||
|
f32 _12C;
|
||
|
f32 mVolume; // _130
|
||
|
u32 _134;
|
||
|
u32 _138;
|
||
|
nn::atk::MixMode mMixMode; // _13C
|
||
|
f32 mPan; // _140
|
||
|
f32 mSurroundPan; // _144
|
||
|
f32 mMainSend; // _148
|
||
|
u8 _14C[0x158-0x14C];
|
||
|
f32 mOutputVol; // _158
|
||
|
u8 _15C[0x190-0x15C];
|
||
|
f32 mOutputPan; // _190
|
||
|
f32 mOutputSurroundPan; // _194
|
||
|
f32 mOutputMainSend; // _198
|
||
|
f32 mOutputFxSend; // _19C
|
||
|
|
||
|
static u64 g_LastInstanceId;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|