summaryrefslogtreecommitdiff
path: root/src/JSystem/JAudio2/JASBasicInst.cpp
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2024-10-10 07:29:58 -0700
committerGitHub <noreply@github.com>2024-10-10 08:29:58 -0600
commit12eb254d769d84743b5cc6cd5424057c57eaf0ad (patch)
tree4509be332b2ccfc6fe939f47740d68f7746eca3e /src/JSystem/JAudio2/JASBasicInst.cpp
parent2fd702c0ac170a789af879b8b92a82d4dcc9080c (diff)
switch to dtk setup (#2203)
* switch to dtk setup * some cleanup / fixes * cleanup d_a_alink literals * Restore doxygen, update CI & README.md (#1) * Fix build image ref (#2) --------- Co-authored-by: Luke Street <luke@street.dev>
Diffstat (limited to 'src/JSystem/JAudio2/JASBasicInst.cpp')
-rw-r--r--src/JSystem/JAudio2/JASBasicInst.cpp76
1 files changed, 76 insertions, 0 deletions
diff --git a/src/JSystem/JAudio2/JASBasicInst.cpp b/src/JSystem/JAudio2/JASBasicInst.cpp
new file mode 100644
index 0000000000..30599d2ef1
--- /dev/null
+++ b/src/JSystem/JAudio2/JASBasicInst.cpp
@@ -0,0 +1,76 @@
+//
+// JASBasicInst
+//
+
+#include "JSystem/JAudio2/JASBasicInst.h"
+#include "JSystem/JAudio2/JASCalc.h"
+#include "JSystem/JKernel/JKRHeap.h"
+
+/* 80298014-8029807C 292954 0068+00 0/0 2/2 0/0 .text __ct__12JASBasicInstFv */
+JASBasicInst::JASBasicInst() {
+ mVolume = 1.0;
+ mPitch = 1.0;
+ mKeymapCount = 0;
+ mKeymap = NULL;
+ JASCalc::bzero(field_0xc, sizeof(field_0xc));
+}
+
+/* 8029807C-802980F8 2929BC 007C+00 1/0 0/0 0/0 .text __dt__12JASBasicInstFv */
+JASBasicInst::~JASBasicInst() {
+ delete[] mKeymap;
+}
+
+/* 802980F8-8029819C 292A38 00A4+00 1/0 0/0 0/0 .text getParam__12JASBasicInstCFiiP12JASInstParam
+ */
+bool JASBasicInst::getParam(int param_0, int param_1, JASInstParam* param_2) const {
+ param_2->field_0x1c = 0;
+ param_2->field_0x1e = 0;
+ param_2->field_0x14 = (JASOscillator::Data**)&field_0xc;
+ param_2->field_0x1d = 2;
+ param_2->mVolume = mVolume;
+ param_2->mPitch = mPitch;
+
+ TKeymap* keyMap = NULL;
+ for (int i = 0; i < mKeymapCount; i++) {
+ if (param_0 <= mKeymap[i].field_0x0) {
+ keyMap = &mKeymap[i];
+ break;
+ }
+ }
+
+ if (keyMap == NULL) {
+ return false;
+ }
+
+ param_2->mVolume *= keyMap->field_0x8;
+ param_2->mPitch *= keyMap->field_0xc;
+ param_2->field_0x1a = keyMap->field_0x4;
+ return true;
+}
+
+/* 8029819C-8029821C 292ADC 0080+00 0/0 2/2 0/0 .text
+ * setKeyRegionCount__12JASBasicInstFUlP7JKRHeap */
+void JASBasicInst::setKeyRegionCount(u32 count, JKRHeap* param_1) {
+ delete [] mKeymap;
+ mKeymap = new (param_1, 0) TKeymap[count];
+ mKeymapCount = count;
+}
+
+/* 8029821C-8029822C 292B5C 0010+00 0/0 2/2 0/0 .text
+ * setOsc__12JASBasicInstFiPCQ213JASOscillator4Data */
+void JASBasicInst::setOsc(int param_0, JASOscillator::Data const* param_1) {
+ field_0xc[param_0] = param_1;
+}
+
+/* 8029822C-80298250 292B6C 0024+00 0/0 2/2 0/0 .text getKeyRegion__12JASBasicInstFi */
+JASBasicInst::TKeymap* JASBasicInst::getKeyRegion(int param_0) {
+ if (param_0 >= mKeymapCount) {
+ return NULL;
+ }
+
+ return mKeymap + param_0;
+}
+
+/* 80298250-8029828C 292B90 003C+00 2/2 0/0 0/0 .text __dt__Q212JASBasicInst7TKeymapFv */
+JASBasicInst::TKeymap::~TKeymap() {
+} \ No newline at end of file