From: <man...@us...> - 2014-02-04 20:25:05
|
Revision: 3659 http://sourceforge.net/p/modplug/code/3659 Author: manxorist Date: 2014-02-04 20:24:58 +0000 (Tue, 04 Feb 2014) Log Message: ----------- [New] libopenmpt: Remember the module packer type in the container type field. Modified Paths: -------------- trunk/OpenMPT/libopenmpt/foo_openmpt.cpp trunk/OpenMPT/soundlib/Snd_defs.h trunk/OpenMPT/soundlib/Sndfile.cpp trunk/OpenMPT/soundlib/Tables.cpp Modified: trunk/OpenMPT/libopenmpt/foo_openmpt.cpp =================================================================== --- trunk/OpenMPT/libopenmpt/foo_openmpt.cpp 2014-02-04 20:13:54 UTC (rev 3658) +++ trunk/OpenMPT/libopenmpt/foo_openmpt.cpp 2014-02-04 20:24:58 UTC (rev 3659) @@ -165,4 +165,7 @@ "*.j2b" ";" "*.gdm" ";" "*.umx" ";" - "*.mo3" ); + "*.mo3" ";" + "*.xpk" ";" + "*.ppm" ";" + "*.mmcmp" ); Modified: trunk/OpenMPT/soundlib/Snd_defs.h =================================================================== --- trunk/OpenMPT/soundlib/Snd_defs.h 2014-02-04 20:13:54 UTC (rev 3658) +++ trunk/OpenMPT/soundlib/Snd_defs.h 2014-02-04 20:24:58 UTC (rev 3659) @@ -114,6 +114,9 @@ MOD_CONTAINERTYPE_MO3 = 0x1, MOD_CONTAINERTYPE_GDM = 0x2, MOD_CONTAINERTYPE_UMX = 0x3, + MOD_CONTAINERTYPE_XPK = 0x4, + MOD_CONTAINERTYPE_PP20 = 0x5, + MOD_CONTAINERTYPE_MMCMP= 0x6, }; Modified: trunk/OpenMPT/soundlib/Sndfile.cpp =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.cpp 2014-02-04 20:13:54 UTC (rev 3658) +++ trunk/OpenMPT/soundlib/Sndfile.cpp 2014-02-04 20:24:58 UTC (rev 3659) @@ -761,12 +761,12 @@ } #endif - bool packed = false; + MODCONTAINERTYPE packedContainerType = MOD_CONTAINERTYPE_NONE; std::vector<char> unpackedData; - if(!packed && UnpackXPK(unpackedData, file)) packed = true; - if(!packed && UnpackPP20(unpackedData, file)) packed = true; - if(!packed && UnpackMMCMP(unpackedData, file)) packed = true; - if(packed) + if(packedContainerType == MOD_CONTAINERTYPE_NONE && UnpackXPK(unpackedData, file)) packedContainerType = MOD_CONTAINERTYPE_XPK; + if(packedContainerType == MOD_CONTAINERTYPE_NONE && UnpackPP20(unpackedData, file)) packedContainerType = MOD_CONTAINERTYPE_PP20; + if(packedContainerType == MOD_CONTAINERTYPE_NONE && UnpackMMCMP(unpackedData, file)) packedContainerType = MOD_CONTAINERTYPE_MMCMP; + if(packedContainerType != MOD_CONTAINERTYPE_NONE) { file = FileReader(&(unpackedData[0]), unpackedData.size()); lpStream = (LPCBYTE)file.GetRawData(); @@ -820,6 +820,11 @@ m_ContainerType = MOD_CONTAINERTYPE_NONE; } + if(packedContainerType != MOD_CONTAINERTYPE_NONE && m_ContainerType == MOD_CONTAINERTYPE_NONE) + { + m_ContainerType = packedContainerType; + } + if(madeWithTracker.empty()) { madeWithTracker = ModTypeToTracker(GetType()); Modified: trunk/OpenMPT/soundlib/Tables.cpp =================================================================== --- trunk/OpenMPT/soundlib/Tables.cpp 2014-02-04 20:13:54 UTC (rev 3658) +++ trunk/OpenMPT/soundlib/Tables.cpp 2014-02-04 20:24:58 UTC (rev 3659) @@ -98,11 +98,14 @@ static const ModContainerInfo modContainerInfo[] = { // Container formats - { MOD_CONTAINERTYPE_GDM, "General Digital Music", "gdm" }, - { MOD_CONTAINERTYPE_UMX, "Unreal Music", "umx" }, + { MOD_CONTAINERTYPE_GDM, "General Digital Music", "gdm" }, + { MOD_CONTAINERTYPE_UMX, "Unreal Music", "umx" }, #ifndef NO_MO3 - { MOD_CONTAINERTYPE_MO3, "Un4seen MO3", "mo3" }, + { MOD_CONTAINERTYPE_MO3, "Un4seen MO3", "mo3" }, #endif // NO_MO3 + { MOD_CONTAINERTYPE_XPK, "XPK packed", "xpk" }, + { MOD_CONTAINERTYPE_PP20, "PowerPack PP20", "ppm" }, + { MOD_CONTAINERTYPE_MMCMP, "Music Module Compressor", "mmcmp" } }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |