Path: blob/master/RSDKv5/RSDK/Audio/Legacy/AudioLegacy.cpp
1168 views
12int32 RSDK::Legacy::globalSFXCount = 0;3int32 RSDK::Legacy::stageSFXCount = 0;45int32 RSDK::Legacy::musicVolume = 0;6int32 RSDK::Legacy::sfxVolume = 0;7int32 RSDK::Legacy::bgmVolume = 0;8int32 RSDK::Legacy::musicCurrentTrack = 0;9int32 RSDK::Legacy::musicChannel = 0;1011float RSDK::Legacy::v4::musicRatio = 0.0f;1213RSDK::Legacy::TrackInfo RSDK::Legacy::musicTracks[LEGACY_TRACK_COUNT];1415char RSDK::Legacy::v4::sfxNames[SFX_COUNT][0x40];1617void RSDK::Legacy::SetMusicTrack(const char *filePath, uint8 trackID, bool32 loop, uint32 loopPoint)18{19TrackInfo *track = &musicTracks[trackID & 0xF];2021// StrCopy(track->fileName, "Data/Music/");22// StrAdd(track->fileName, filePath);23StrCopy(track->fileName, filePath);24track->trackLoop = loop;25track->loopPoint = loopPoint;26}2728int32 RSDK::Legacy::PlayMusic(int32 trackID)29{30TrackInfo *track = &musicTracks[trackID & 0xF];3132if (!track->fileName[0]) {33StopChannel(musicChannel);34}35else {36uint32 startPos = 0;37if (RSDK::Legacy::v4::musicRatio) {38startPos = (uint32)(GetChannelPos(musicChannel) * RSDK::Legacy::v4::musicRatio);39RSDK::Legacy::v4::musicRatio = 0.0;40}4142int32 loopPoint = track->loopPoint;43if (!loopPoint && track->trackLoop)44loopPoint = 1;4546musicCurrentTrack = trackID;47musicChannel = PlayStream(track->fileName, musicChannel, startPos, loopPoint, true);48musicVolume = 100;49}5051return musicChannel;52}5354void RSDK::Legacy::SetMusicVolume(int32 volume)55{56musicVolume = CLAMP(volume, 0, 100);57SetChannelAttributes(musicChannel, musicVolume * 0.01f, 0.f, 1.f);58}5960void RSDK::Legacy::v4::SwapMusicTrack(const char *filePath, uint8 trackID, uint32 loopPoint, uint32 ratio)61{62TrackInfo *track = &musicTracks[trackID & 0xF];6364if (StrLength(filePath) <= 0) {65StopChannel(musicChannel);66}67else {68// StrCopy(track->fileName, "Data/Music/");69// StrAdd(track->fileName, filePath);70StrCopy(track->fileName, filePath);71track->trackLoop = true;72track->loopPoint = loopPoint;73musicRatio = ratio / 10000.0f;7475PlayMusic(trackID);76}77}7879void RSDK::Legacy::LoadSfx(char *filename, uint8 slot, uint8 scope)80{81if (sfxList[slot].scope == SCOPE_NONE)82LoadSfxToSlot(filename, slot, 1, scope);83}8485void RSDK::Legacy::v3::SetSfxAttributes(int32 channelID, int32 loop, int8 pan)86{87if (channelID < 0 || channelID >= CHANNEL_COUNT)88return;8990if (channels[channelID].state == CHANNEL_SFX) {91RSDK::SetChannelAttributes(channelID, 1.0, pan / 100.0f, 1.0);92if (loop != -1)93channels[channelID].loop = loop ? 0 : -1;94}95}9697void RSDK::Legacy::v4::SetSfxName(const char *sfxName, int32 sfxID)98{99int32 sfxNameID = 0;100int32 soundNameID = 0;101while (sfxName[sfxNameID]) {102if (sfxName[sfxNameID] != ' ')103sfxNames[sfxID][soundNameID++] = sfxName[sfxNameID];104++sfxNameID;105}106sfxNames[sfxID][soundNameID] = 0;107108PrintLog(PRINT_NORMAL, "Set SFX (%d) name to: %s", sfxID, sfxName);109}110111void RSDK::Legacy::v4::SetSfxAttributes(int32 sfxID, int32 loop, int8 pan)112{113for (int32 c = 0; c < CHANNEL_COUNT; ++c) {114if (channels[c].soundID == sfxID && channels[c].state == CHANNEL_SFX) {115RSDK::SetChannelAttributes(c, 1.0, pan / 100.0f, 1.0);116if (loop != -1)117channels[c].loop = loop ? 0 : -1;118}119}120}121122#if RETRO_USE_MOD_LOADER123char RSDK::Legacy::v3::globalSfxNames[SFX_COUNT][0x40];124char RSDK::Legacy::v3::stageSfxNames[SFX_COUNT][0x40];125126void RSDK::Legacy::v3::SetSfxName(const char *sfxName, int32 sfxID, bool32 global)127{128char *sfxNamePtr = global ? globalSfxNames[sfxID] : stageSfxNames[sfxID];129130int32 sfxNamePos = 0;131int32 sfxPtrPos = 0;132uint8 mode = 0;133while (sfxName[sfxNamePos]) {134if (sfxName[sfxNamePos] == '.' && mode == 1)135mode = 2;136else if ((sfxName[sfxNamePos] == '/' || sfxName[sfxNamePos] == '\\') && !mode)137mode = 1;138else if (sfxName[sfxNamePos] != ' ' && mode == 1)139sfxNamePtr[sfxPtrPos++] = sfxName[sfxNamePos];140++sfxNamePos;141}142sfxNamePtr[sfxPtrPos] = 0;143PrintLog(PRINT_NORMAL, "Set %s SFX (%d) name to: %s", (global ? "Global" : "Stage"), sfxID, sfxNamePtr);144}145#endif146147