summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Panzlaff <michael.panzlaff@fau.de>2021-08-01 12:00:10 +0200
committerMichael Panzlaff <michael.panzlaff@fau.de>2021-08-25 18:03:50 +0200
commit5adc7017a33cf6d55cf76d95a72fc6f5d879bcc3 (patch)
treeb3c969165d3e6ba39428a39490c7bc797c243b66
parent9a42ad73f93adceb0c39067906e0639c8f56aa31 (diff)
arm7: merge SND_lfo into SND_exChannel
-rw-r--r--arm7/arm7.lsf1
-rw-r--r--arm7/lib/include/SND_exChannel.h5
-rw-r--r--arm7/lib/include/SND_lfo.h5
-rw-r--r--arm7/lib/src/SND_exChannel.c39
-rw-r--r--arm7/lib/src/SND_lfo.c43
5 files changed, 44 insertions, 49 deletions
diff --git a/arm7/arm7.lsf b/arm7/arm7.lsf
index c3960f04..e313647d 100644
--- a/arm7/arm7.lsf
+++ b/arm7/arm7.lsf
@@ -45,7 +45,6 @@ Autoload WRAM
Object SND_main.o
Object SND_capture.o
Object SND_channel.o
- Object SND_lfo.o
Object SND_exChannel.o
Object SND_seq.o
Object SND_bank.o
diff --git a/arm7/lib/include/SND_exChannel.h b/arm7/lib/include/SND_exChannel.h
index 6bc4ab29..03fd4b41 100644
--- a/arm7/lib/include/SND_exChannel.h
+++ b/arm7/lib/include/SND_exChannel.h
@@ -38,4 +38,9 @@ u32 SND_GetLockedChannel(u32 weak);
void SND_InvalidateWave(const void *begin, const void *end);
+void SND_InitLfoParam(struct SNDLfoParam *lfoParam);
+void SND_StartLfo(struct SNDLfo *lfo);
+void SND_UpdateLfo(struct SNDLfo *lfo);
+int SND_GetLfoValue(struct SNDLfo *lfo);
+
#endif //GUARD_SND_EXCHANNEL_H
diff --git a/arm7/lib/include/SND_lfo.h b/arm7/lib/include/SND_lfo.h
index 43055c27..f3737f08 100644
--- a/arm7/lib/include/SND_lfo.h
+++ b/arm7/lib/include/SND_lfo.h
@@ -5,9 +5,4 @@
#include "nitro/SND_exChannel_shared.h"
-void SND_InitLfoParam(struct SNDLfoParam *lfoParam);
-void SND_StartLfo(struct SNDLfo *lfo);
-void SND_UpdateLfo(struct SNDLfo *lfo);
-int SND_GetLfoValue(struct SNDLfo *lfo);
-
#endif //GUARD_SND_LFO_H
diff --git a/arm7/lib/src/SND_exChannel.c b/arm7/lib/src/SND_exChannel.c
index 54c5a3c4..6081150f 100644
--- a/arm7/lib/src/SND_exChannel.c
+++ b/arm7/lib/src/SND_exChannel.c
@@ -429,3 +429,42 @@ void SND_InvalidateWave(const void *start, const void *end) {
}
}
}
+
+void SND_InitLfoParam(struct SNDLfoParam *lfoParam) {
+ lfoParam->target = SND_LFO_PITCH;
+ lfoParam->depth = 0;
+ lfoParam->range = 1;
+ lfoParam->speed = 16;
+ lfoParam->delay = 0;
+}
+
+void SND_StartLfo(struct SNDLfo *lfo) {
+ lfo->counter = 0;
+ lfo->delayCounter = 0;
+}
+
+void SND_UpdateLfo(struct SNDLfo *lfo) {
+ if (lfo->delayCounter < lfo->param.delay) {
+ lfo->delayCounter++;
+ } else {
+ u32 tmp = lfo->counter;
+ tmp += lfo->param.speed << 6;
+ tmp >>= 8;
+ while (tmp >= 0x80) {
+ tmp -= 0x80;
+ }
+ lfo->counter += lfo->param.speed << 6;
+ lfo->counter &= 0xFF;
+ lfo->counter |= tmp << 8;
+ }
+}
+
+int SND_GetLfoValue(struct SNDLfo *lfo) {
+ if (lfo->param.depth == 0) {
+ return 0;
+ } else if (lfo->delayCounter < lfo->param.delay) {
+ return 0;
+ } else {
+ return SND_SinIdx((s32)((u32)lfo->counter >> 8)) * lfo->param.depth * lfo->param.range;
+ }
+}
diff --git a/arm7/lib/src/SND_lfo.c b/arm7/lib/src/SND_lfo.c
deleted file mode 100644
index 262c6d27..00000000
--- a/arm7/lib/src/SND_lfo.c
+++ /dev/null
@@ -1,43 +0,0 @@
-#include "SND_lfo.h"
-
-#include "SND_util.h"
-#include "SND_exChannel.h"
-
-void SND_InitLfoParam(struct SNDLfoParam *lfoParam) {
- lfoParam->target = SND_LFO_PITCH;
- lfoParam->depth = 0;
- lfoParam->range = 1;
- lfoParam->speed = 16;
- lfoParam->delay = 0;
-}
-
-void SND_StartLfo(struct SNDLfo *lfo) {
- lfo->counter = 0;
- lfo->delayCounter = 0;
-}
-
-void SND_UpdateLfo(struct SNDLfo *lfo) {
- if (lfo->delayCounter < lfo->param.delay) {
- lfo->delayCounter++;
- } else {
- u32 tmp = lfo->counter;
- tmp += lfo->param.speed << 6;
- tmp >>= 8;
- while (tmp >= 0x80) {
- tmp -= 0x80;
- }
- lfo->counter += lfo->param.speed << 6;
- lfo->counter &= 0xFF;
- lfo->counter |= tmp << 8;
- }
-}
-
-int SND_GetLfoValue(struct SNDLfo *lfo) {
- if (lfo->param.depth == 0) {
- return 0;
- } else if (lfo->delayCounter < lfo->param.delay) {
- return 0;
- } else {
- return SND_SinIdx((s32)((u32)lfo->counter >> 8)) * lfo->param.depth * lfo->param.range;
- }
-}