From: <sv...@op...> - 2024-11-27 22:18:54
|
Author: sagamusix Date: Wed Nov 27 23:18:46 2024 New Revision: 22328 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22328 Log: [Imp] Enable the "hide volume column for MOD" feature for other imported formats that don't have a volume column, and it is also not used for importing other effects. Modified: trunk/OpenMPT/mptrack/View_pat.cpp trunk/OpenMPT/soundlib/Load_fmt.cpp trunk/OpenMPT/soundlib/Load_ftm.cpp trunk/OpenMPT/soundlib/Load_gmc.cpp trunk/OpenMPT/soundlib/Load_ice.cpp trunk/OpenMPT/soundlib/Load_ims.cpp trunk/OpenMPT/soundlib/Load_kris.cpp trunk/OpenMPT/soundlib/Load_mo3.cpp trunk/OpenMPT/soundlib/Load_mod.cpp trunk/OpenMPT/soundlib/Load_mus_km.cpp trunk/OpenMPT/soundlib/Load_stk.cpp trunk/OpenMPT/soundlib/Load_unic.cpp trunk/OpenMPT/soundlib/Snd_defs.h trunk/OpenMPT/soundlib/Sndfile.cpp trunk/OpenMPT/soundlib/mod_specifications.cpp Modified: trunk/OpenMPT/mptrack/View_pat.cpp ============================================================================== --- trunk/OpenMPT/mptrack/View_pat.cpp Wed Nov 27 15:02:51 2024 (r22327) +++ trunk/OpenMPT/mptrack/View_pat.cpp Wed Nov 27 23:18:46 2024 (r22328) @@ -198,7 +198,7 @@ m_visibleColumns.set(); CModDoc *modDoc = GetDocument(); - if(modDoc->GetModType() == MOD_TYPE_MOD && !modDoc->GetSoundFile().m_SongFlags[SONG_IMPORTED] && TrackerSettings::Instance().autoHideVolumeColumnForMOD) + if(modDoc->GetSoundFile().m_SongFlags[SONG_FORMAT_NO_VOLCOL] && TrackerSettings::Instance().autoHideVolumeColumnForMOD) m_visibleColumns.reset(PatternCursor::volumeColumn); } Modified: trunk/OpenMPT/soundlib/Load_fmt.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_fmt.cpp Wed Nov 27 15:02:51 2024 (r22327) +++ trunk/OpenMPT/soundlib/Load_fmt.cpp Wed Nov 27 23:18:46 2024 (r22328) @@ -89,7 +89,7 @@ m_nSamples = 8; Order().SetDefaultTempo(TEMPO(45.5)); // 18.2 Hz timer m_playBehaviour.set(kOPLNoteStopWith0Hz); - m_SongFlags.set(SONG_IMPORTED); + m_SongFlags.set(SONG_IMPORTED | SONG_FORMAT_NO_VOLCOL); m_songName = mpt::String::ReadBuf(mpt::String::maybeNullTerminated, fileHeader.songName); for(CHANNELINDEX chn = 0; chn < 8; chn++) Modified: trunk/OpenMPT/soundlib/Load_ftm.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_ftm.cpp Wed Nov 27 15:02:51 2024 (r22327) +++ trunk/OpenMPT/soundlib/Load_ftm.cpp Wed Nov 27 23:18:46 2024 (r22328) @@ -108,7 +108,7 @@ ChnSettings[chn].nPan = (chn < 2 || chn > 5) ? 64 : 192; ChnSettings[chn].dwFlags.set(CHN_MUTE, !(fileHeader.muteStatus & (1 << chn))); } - m_SongFlags.set(SONG_LINEARSLIDES | SONG_ISAMIGA | SONG_IMPORTED); + m_SongFlags.set(SONG_LINEARSLIDES | SONG_ISAMIGA | SONG_IMPORTED | SONG_FORMAT_NO_VOLCOL); m_playBehaviour.set(kContinueSampleWithoutInstr); m_playBehaviour.set(kST3NoMutedChannels); m_playBehaviour.set(kApplyUpperPeriodLimit); Modified: trunk/OpenMPT/soundlib/Load_gmc.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_gmc.cpp Wed Nov 27 15:02:51 2024 (r22327) +++ trunk/OpenMPT/soundlib/Load_gmc.cpp Wed Nov 27 23:18:46 2024 (r22328) @@ -115,7 +115,7 @@ m_nMinPeriod = 113 * 4; m_nMaxPeriod = 856 * 4; m_nSamplePreAmp = 64; - m_SongFlags.set(SONG_FASTPORTAS); + m_SongFlags.set(SONG_FASTPORTAS | SONG_IMPORTED | SONG_FORMAT_NO_VOLCOL); Order().SetDefaultTempoInt(125); Order().SetDefaultSpeed(6); Modified: trunk/OpenMPT/soundlib/Load_ice.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_ice.cpp Wed Nov 27 15:02:51 2024 (r22327) +++ trunk/OpenMPT/soundlib/Load_ice.cpp Wed Nov 27 23:18:46 2024 (r22328) @@ -118,7 +118,7 @@ m_nMinPeriod = 14 * 4; m_nMaxPeriod = 3424 * 4; m_nSamplePreAmp = 64; - m_SongFlags.set(SONG_PT_MODE | SONG_IMPORTED); + m_SongFlags.set(SONG_PT_MODE | SONG_IMPORTED | SONG_FORMAT_NO_VOLCOL); m_playBehaviour.reset(kMODOneShotLoops); m_playBehaviour.set(kMODIgnorePanning); m_playBehaviour.set(kMODSampleSwap); // untested Modified: trunk/OpenMPT/soundlib/Load_ims.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_ims.cpp Wed Nov 27 15:02:51 2024 (r22327) +++ trunk/OpenMPT/soundlib/Load_ims.cpp Wed Nov 27 23:18:46 2024 (r22328) @@ -90,7 +90,7 @@ return true; InitializeGlobals(MOD_TYPE_MOD, 4); - m_SongFlags.set(SONG_IMPORTED); + m_SongFlags.set(SONG_IMPORTED | SONG_FORMAT_NO_VOLCOL); Order().SetDefaultTempoInt(125); Order().SetDefaultSpeed(6); Order().SetRestartPos(fileHeader.order.restartPos); Modified: trunk/OpenMPT/soundlib/Load_kris.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_kris.cpp Wed Nov 27 15:02:51 2024 (r22327) +++ trunk/OpenMPT/soundlib/Load_kris.cpp Wed Nov 27 23:18:46 2024 (r22328) @@ -98,7 +98,7 @@ m_nMinPeriod = 113 * 4; m_nMaxPeriod = 856 * 4; m_nSamplePreAmp = 64; - m_SongFlags.set(SONG_PT_MODE | SONG_IMPORTED); + m_SongFlags.set(SONG_PT_MODE | SONG_IMPORTED | SONG_FORMAT_NO_VOLCOL); m_playBehaviour.set(kMODIgnorePanning); m_playBehaviour.set(kMODSampleSwap); Modified: trunk/OpenMPT/soundlib/Load_mo3.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_mo3.cpp Wed Nov 27 15:02:51 2024 (r22327) +++ trunk/OpenMPT/soundlib/Load_mo3.cpp Wed Nov 27 23:18:46 2024 (r22328) @@ -926,6 +926,8 @@ m_nDefaultGlobalVolume = std::min(fileHeader.globalVol.get(), uint8(128)) * 2; else if(m_nType == MOD_TYPE_S3M) m_nDefaultGlobalVolume = std::min(fileHeader.globalVol.get(), uint8(64)) * 4; + else if(m_nType == MOD_TYPE_MOD) + m_SongFlags.set(SONG_FORMAT_NO_VOLCOL); if(fileHeader.sampleVolume < 0) m_nSamplePreAmp = fileHeader.sampleVolume + 52; Modified: trunk/OpenMPT/soundlib/Load_mod.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_mod.cpp Wed Nov 27 15:02:51 2024 (r22327) +++ trunk/OpenMPT/soundlib/Load_mod.cpp Wed Nov 27 23:18:46 2024 (r22328) @@ -298,6 +298,7 @@ } InitializeGlobals(MOD_TYPE_MOD, modMagicResult.numChannels); + m_SongFlags.set(SONG_FORMAT_NO_VOLCOL); bool isNoiseTracker = modMagicResult.isNoiseTracker; bool isStartrekker = modMagicResult.isStartrekker; Modified: trunk/OpenMPT/soundlib/Load_mus_km.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_mus_km.cpp Wed Nov 27 15:02:51 2024 (r22327) +++ trunk/OpenMPT/soundlib/Load_mus_km.cpp Wed Nov 27 23:18:46 2024 (r22328) @@ -170,7 +170,7 @@ return false; InitializeGlobals(MOD_TYPE_MOD, 4); - m_SongFlags = SONG_AMIGALIMITS | SONG_IMPORTED | SONG_ISAMIGA; // Yes, those were not Amiga games but the format fully conforms to Amiga limits, so allow the Amiga Resampler to be used. + m_SongFlags = SONG_AMIGALIMITS | SONG_IMPORTED | SONG_FORMAT_NO_VOLCOL | SONG_ISAMIGA; // Yes, those were not Amiga games but the format fully conforms to Amiga limits, so allow the Amiga Resampler to be used. m_nSamples = 0; static constexpr uint16 MUS_SAMPLE_UNUSED = 255; // Sentinel value to check if a sample needs to be duplicated Modified: trunk/OpenMPT/soundlib/Load_stk.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_stk.cpp Wed Nov 27 15:02:51 2024 (r22327) +++ trunk/OpenMPT/soundlib/Load_stk.cpp Wed Nov 27 23:18:46 2024 (r22328) @@ -227,7 +227,7 @@ m_nMinPeriod = 113 * 4; m_nMaxPeriod = 856 * 4; m_nSamplePreAmp = 64; - m_SongFlags.set(SONG_PT_MODE | SONG_AUTO_VOLSLIDE_STK); + m_SongFlags.set(SONG_PT_MODE | SONG_FORMAT_NO_VOLCOL | SONG_AUTO_VOLSLIDE_STK); m_songName = mpt::String::ReadBuf(mpt::String::spacePadded, fileHeaders.songname); // Setup channel pan positions and volume Modified: trunk/OpenMPT/soundlib/Load_unic.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Load_unic.cpp Wed Nov 27 15:02:51 2024 (r22327) +++ trunk/OpenMPT/soundlib/Load_unic.cpp Wed Nov 27 23:18:46 2024 (r22328) @@ -237,7 +237,7 @@ m_nMinPeriod = 113 * 4; m_nMaxPeriod = 856 * 4; m_nSamplePreAmp = 64; - m_SongFlags.set(SONG_PT_MODE | SONG_IMPORTED); + m_SongFlags.set(SONG_PT_MODE | SONG_IMPORTED | SONG_FORMAT_NO_VOLCOL); m_playBehaviour.reset(kMODOneShotLoops); m_playBehaviour.set(kMODIgnorePanning); m_playBehaviour.set(kMODSampleSwap); // untested Modified: trunk/OpenMPT/soundlib/Snd_defs.h ============================================================================== --- trunk/OpenMPT/soundlib/Snd_defs.h Wed Nov 27 15:02:51 2024 (r22327) +++ trunk/OpenMPT/soundlib/Snd_defs.h Wed Nov 27 23:18:46 2024 (r22328) @@ -305,6 +305,7 @@ SONG_AUTO_VIBRATO = 0x8000, // Vibrato command is continued automatically SONG_AUTO_TREMOLO = 0x1'8000, // Tremolo command is continued automatically SONG_AUTO_VOLSLIDE_STK = 0x2'0000, // Automatic volume slide command is interpreted like in STK files (rather than like in STP files) + SONG_FORMAT_NO_VOLCOL = 0x4'0000, // The original (imported) format has no volume column, so it can be hidden in the pattern editor. }; DECLARE_FLAGSET(SongFlags) Modified: trunk/OpenMPT/soundlib/Sndfile.cpp ============================================================================== --- trunk/OpenMPT/soundlib/Sndfile.cpp Wed Nov 27 15:02:51 2024 (r22327) +++ trunk/OpenMPT/soundlib/Sndfile.cpp Wed Nov 27 23:18:46 2024 (r22328) @@ -225,9 +225,9 @@ // Note: we do not use the Amiga resampler for DBM as it's a multichannel format and can make use of higher-quality Amiga soundcards instead of Paula. if(GetType() & (/*MOD_TYPE_DBM | */MOD_TYPE_DIGI | MOD_TYPE_MED | MOD_TYPE_MOD | MOD_TYPE_OKT | MOD_TYPE_SFX | MOD_TYPE_STP)) - { m_SongFlags.set(SONG_ISAMIGA); - } + if(GetType() & (MOD_TYPE_AMF0 | MOD_TYPE_DIGI | MOD_TYPE_MTM)) + m_SongFlags.set(SONG_FORMAT_NO_VOLCOL); ChnSettings.assign(numChannels, {}); } Modified: trunk/OpenMPT/soundlib/mod_specifications.cpp ============================================================================== --- trunk/OpenMPT/soundlib/mod_specifications.cpp Wed Nov 27 15:02:51 2024 (r22327) +++ trunk/OpenMPT/soundlib/mod_specifications.cpp Wed Nov 27 23:18:46 2024 (r22328) @@ -97,7 +97,7 @@ 31, // SamplesMax 0, // instrumentMax MixLevels::Compatible, // defaultMixLevels - SONG_PT_MODE | SONG_AMIGALIMITS | SONG_ISAMIGA, // Supported song flags + SONG_PT_MODE | SONG_AMIGALIMITS | SONG_ISAMIGA | SONG_FORMAT_NO_VOLCOL, // Supported song flags 0, // Max MIDI mapping directives 0, // No instrument envelopes false, // No notecut. |