mirror of
https://github.com/zeldaret/tww.git
synced 2026-09-05 18:28:11 -04:00
JASChannelMgr and JASBankMgr OK
This commit is contained in:
@@ -136,13 +136,13 @@ s8 JASystem::TTrack::mainProc() {
|
||||
}
|
||||
field_0x364 -= 1.0f;
|
||||
}
|
||||
if (mParent && mChannelUpdater.field_0x0) {
|
||||
if (mParent && mChannelUpdater.mManagedChannels) {
|
||||
TChannel* channel = mChannelUpdater.getListHead(0);
|
||||
if (channel) {
|
||||
mParent->mChannelUpdater.addListHead(channel, 0);
|
||||
channel->field_0x4 = &mParent->mChannelUpdater;
|
||||
mChannelUpdater.field_0x0--;
|
||||
mParent->mChannelUpdater.field_0x0++;
|
||||
mChannelUpdater.mManagedChannels--;
|
||||
mParent->mChannelUpdater.mManagedChannels++;
|
||||
}
|
||||
}
|
||||
mIntrMgr.request(REQUEST_UNK_7);
|
||||
@@ -225,21 +225,21 @@ void JASystem::TTrack::flushAll() {
|
||||
/* 80281088-80281138 .text moveFreeChannel__Q28JASystem6TTrackFPQ28JASystem11TChannelMgrPQ28JASystem11TChannelMgri */
|
||||
int JASystem::TTrack::moveFreeChannel(TChannelMgr* param_1, TChannelMgr* param_2, int param_3) {
|
||||
if (param_3 < 0) {
|
||||
u32 r31 = param_1->field_0x0;
|
||||
u32 r31 = param_1->mManagedChannels;
|
||||
param_2->receiveAllChannels(param_1);
|
||||
return r31;
|
||||
}
|
||||
for (int i = 0; i < param_3; i++) {
|
||||
if (!param_1->field_0x0) {
|
||||
if (!param_1->mManagedChannels) {
|
||||
break;
|
||||
}
|
||||
TChannel* channel = param_1->getListHead(0);
|
||||
if (!channel) {
|
||||
break;
|
||||
}
|
||||
param_1->field_0x0--;
|
||||
param_1->mManagedChannels--;
|
||||
param_2->addListHead(channel, 0);
|
||||
param_2->field_0x0++;
|
||||
param_2->mManagedChannels++;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -283,14 +283,14 @@ void JASystem::TTrack::connectBus(int line, int param_2) {
|
||||
}
|
||||
|
||||
/* 80281258-802814AC .text noteOn__Q28JASystem6TTrackFUclllUl */
|
||||
int JASystem::TTrack::noteOn(u8 param_1, s32 param_2, s32 param_3, s32 param_4, u32 param_5) {
|
||||
int JASystem::TTrack::noteOn(u8 param_1, s32 param_2, s32 param_3, s32 param_4, u32 skipSamples) {
|
||||
if (field_0x386 && (mPauseStatus & 0x40)) {
|
||||
return -1;
|
||||
}
|
||||
noteOff(param_1, 0);
|
||||
TChannelMgr* r31 = &mChannelUpdater;
|
||||
TTrack* parent = mParent;
|
||||
while (r31->field_0x0 == 0 || r31->field_0x8 == 0) {
|
||||
while (r31->mManagedChannels == 0 || r31->field_0x8 == 0) {
|
||||
if (!parent) {
|
||||
r31 = &mChannelUpdater;
|
||||
break;
|
||||
@@ -302,13 +302,13 @@ int JASystem::TTrack::noteOn(u8 param_1, s32 param_2, s32 param_3, s32 param_4,
|
||||
JUT_ASSERT(527, mParent != NULL);
|
||||
if (r31 != &mParent->mChannelUpdater) {
|
||||
if (moveFreeChannel(r31, &mParent->mChannelUpdater, 1) != 1) {
|
||||
OSReport("in Player (NOTE-MODE) ... ボイス借用に失敗しました!! (%d)\n", r31->field_0x0);
|
||||
OSReport("in Player (NOTE-MODE) ... ボイス借用に失敗しました!! (%d)\n", r31->mManagedChannels);
|
||||
}
|
||||
r31 = &mParent->mChannelUpdater;
|
||||
}
|
||||
} else if (r31 != &mChannelUpdater) {
|
||||
if (moveFreeChannel(r31, &mChannelUpdater, 1) != 1) {
|
||||
OSReport("in Player ボイス借用に失敗しました!! (%d)\n", r31->field_0x0);
|
||||
OSReport("in Player ボイス借用に失敗しました!! (%d)\n", r31->mManagedChannels);
|
||||
}
|
||||
r31 = &mChannelUpdater;
|
||||
}
|
||||
@@ -320,7 +320,7 @@ int JASystem::TTrack::noteOn(u8 param_1, s32 param_2, s32 param_3, s32 param_4,
|
||||
return -1;
|
||||
}
|
||||
mNoteMgr.setChannel(param_1, channel);
|
||||
channel->field_0xe8 = param_5;
|
||||
channel->setSkipSamples(skipSamples);
|
||||
channel->setPanPower(mRegisterParam.getPanPowerBank(), mRegisterParam.getPanPowerExt(), mRegisterParam.getPanPowerOsc(), 0.0f);
|
||||
overwriteOsc(channel);
|
||||
if (field_0x374) {
|
||||
|
||||
Reference in New Issue
Block a user