RedCore
Loading...
Searching...
No Matches
AudioObject.h
Go to the documentation of this file.
1#pragma once
2
3#include <audio/GameAudio.h>
4
5class AudAudioPlayer;
6
7namespace red {
8
10{
11public:
12 static const u32 cPlayableSoundNum = 12;
14
15public:
16 SoundObject(AudAudioPlayer* player, nw::snd::OutputLine outputLine = nw::snd::OutputLine::OUTPUT_LINE_MAIN);
17
18 // u8 vf34(const char* label, s32 actorPlayerId) override; // TODO
19
20 nw::snd::SoundHandle* startSound(const char* label, nw::snd::OutputLine outputLine = nw::snd::OutputLine::OUTPUT_LINE_MAIN)
21 {
22 return startSound_(label, outputLine);
23 }
24
25 nw::snd::SoundHandle* holdSound(const char* label, nw::snd::OutputLine outputLine = nw::snd::OutputLine::OUTPUT_LINE_MAIN)
26 {
27 return holdSound_(label, outputLine);
28 }
29
30 virtual nw::snd::SoundHandle* startSound(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine outputLine = nw::snd::OutputLine::OUTPUT_LINE_MAIN)
31 {
32 return startSound_(label, pos, outputLine);
33 }
34
35 virtual nw::snd::SoundHandle* holdSound(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine outputLine = nw::snd::OutputLine::OUTPUT_LINE_MAIN)
36 {
37 return holdSound_(label, pos, outputLine);
38 }
39
40 virtual void calc(const sead::Vector2f& pos);
41
42 void sendRemote(nw::snd::SoundHandle* handle, const char* label, nw::snd::OutputLine outputLine);
43 void setSoundPosition(nw::snd::SoundHandle* handle, const sead::Vector2f& pos);
44
45protected:
46 nw::snd::SoundHandle* startSound_(const char* label, nw::snd::OutputLine outputLine);
47 nw::snd::SoundHandle* holdSound_(const char* label, nw::snd::OutputLine outputLine);
48 nw::snd::SoundHandle* startSound_(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine outputLine);
49 nw::snd::SoundHandle* holdSound_(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine outputLine);
50
52 nw::snd::SoundHandle* findHandle_(const char* label);
53
54protected:
55 AudAudioPlayer* mAudioPlayer;
56 nw::snd::SoundHandle mHandles[cHandleNum];
58};
59
61{
62public:
63 AudioObject(AudAudioPlayer* player, nw::snd::OutputLine outputLine = nw::snd::OutputLine::OUTPUT_LINE_MAIN)
64 : SoundObject(player, outputLine)
65 {
66 }
67
68 using SoundObject::startSound;
69 using SoundObject::holdSound;
70
71 nw::snd::SoundHandle* startSound(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine outputLine = nw::snd::OutputLine::OUTPUT_LINE_MAIN) override
72 {
73 sead::Vector2f screenPos;
74 GameAudio::convertAudioObjctPos(&screenPos, pos);
75 return SoundObject::startSound_(label, screenPos, outputLine);
76 }
77
78 nw::snd::SoundHandle* holdSound(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine outputLine = nw::snd::OutputLine::OUTPUT_LINE_MAIN) override
79 {
80 sead::Vector2f screenPos;
81 GameAudio::convertAudioObjctPos(&screenPos, pos);
82 return SoundObject::holdSound_(label, screenPos, outputLine);
83 }
84
85 void calc(const sead::Vector2f& pos) override
86 {
87 sead::Vector2f screenPos;
88 GameAudio::convertAudioObjctPos(&screenPos, pos);
89 SoundObject::calc(screenPos);
90 }
91};
92
93// TODO
94// class AudioObjectCS : public SoundObject
95// {
96// public:
97// AudioObjectCS(AudAudioPlayer* player, nw::snd::OutputLine outputLine = nw::snd::OutputLine::OUTPUT_LINE_MAIN)
98// : SoundObject(player, outputLine)
99// {
100// }
101
102// nw::snd::SoundHandle* startSound(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine outputLine = nw::snd::OutputLine::OUTPUT_LINE_MAIN) override;
103// nw::snd::SoundHandle* holdSound(const char* label, const sead::Vector2f& pos, nw::snd::OutputLine outputLine = nw::snd::OutputLine::OUTPUT_LINE_MAIN) override;
104// void calc(const sead::Vector2f& pos) override;
105// };
106
107}
Definition AudioObject.h:61
AudioObject(AudAudioPlayer *player, nw::snd::OutputLine outputLine=nw::snd::OutputLine::OUTPUT_LINE_MAIN)
Definition AudioObject.h:63
nw::snd::SoundHandle * startSound(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine outputLine=nw::snd::OutputLine::OUTPUT_LINE_MAIN) override
Definition AudioObject.h:71
void calc(const sead::Vector2f &pos) override
Definition AudioObject.h:85
nw::snd::SoundHandle * holdSound(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine outputLine=nw::snd::OutputLine::OUTPUT_LINE_MAIN) override
Definition AudioObject.h:78
Definition AudioObject.h:10
nw::snd::SoundHandle * holdSound_(const char *label, nw::snd::OutputLine outputLine)
nw::snd::SoundHandle * findHandle_(const char *label)
nw::snd::SoundHandle * startSound(const char *label, nw::snd::OutputLine outputLine=nw::snd::OutputLine::OUTPUT_LINE_MAIN)
Definition AudioObject.h:20
virtual nw::snd::SoundHandle * startSound(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine outputLine=nw::snd::OutputLine::OUTPUT_LINE_MAIN)
Definition AudioObject.h:30
static const u32 cPlayableSoundNum
Definition AudioObject.h:12
nw::snd::SoundHandle * holdSound(const char *label, nw::snd::OutputLine outputLine=nw::snd::OutputLine::OUTPUT_LINE_MAIN)
Definition AudioObject.h:25
AudAudioPlayer * mAudioPlayer
Definition AudioObject.h:55
nw::snd::SoundHandle mHandles[cHandleNum]
Definition AudioObject.h:56
SoundObject(AudAudioPlayer *player, nw::snd::OutputLine outputLine=nw::snd::OutputLine::OUTPUT_LINE_MAIN)
nw::snd::SoundHandle * startSound_(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine outputLine)
sead::Vector2f mPos
Definition AudioObject.h:57
virtual void calc(const sead::Vector2f &pos)
void setSoundPosition(nw::snd::SoundHandle *handle, const sead::Vector2f &pos)
void sendRemote(nw::snd::SoundHandle *handle, const char *label, nw::snd::OutputLine outputLine)
nw::snd::SoundHandle * startSound_(const char *label, nw::snd::OutputLine outputLine)
nw::snd::SoundHandle * holdSound_(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine outputLine)
virtual nw::snd::SoundHandle * holdSound(const char *label, const sead::Vector2f &pos, nw::snd::OutputLine outputLine=nw::snd::OutputLine::OUTPUT_LINE_MAIN)
Definition AudioObject.h:35
static const u32 cHandleNum
Definition AudioObject.h:13
nw::snd::SoundHandle * getFreeHandle_()
Definition ActorDonutBlock.h:5