From: <man...@us...> - 2013-12-18 22:20:30
|
Revision: 3498 http://sourceforge.net/p/modplug/code/3498 Author: manxorist Date: 2013-12-18 22:20:24 +0000 (Wed, 18 Dec 2013) Log Message: ----------- [Fix] libopenmpt: Actually read artist information from module formats that store it (ams, dmf, gdm, mdl). [New] openmpt123: Display artist. Modified Paths: -------------- trunk/OpenMPT/libopenmpt/libopenmpt_impl.cpp trunk/OpenMPT/openmpt123/openmpt123.cpp trunk/OpenMPT/soundlib/Load_ams.cpp trunk/OpenMPT/soundlib/Load_dmf.cpp trunk/OpenMPT/soundlib/Load_gdm.cpp trunk/OpenMPT/soundlib/Load_mdl.cpp trunk/OpenMPT/soundlib/Sndfile.cpp trunk/OpenMPT/soundlib/Sndfile.h Modified: trunk/OpenMPT/libopenmpt/libopenmpt_impl.cpp =================================================================== --- trunk/OpenMPT/libopenmpt/libopenmpt_impl.cpp 2013-12-18 22:13:57 UTC (rev 3497) +++ trunk/OpenMPT/libopenmpt/libopenmpt_impl.cpp 2013-12-18 22:20:24 UTC (rev 3498) @@ -657,6 +657,8 @@ return CSoundFile::ModContainerTypeToTracker( m_sndFile->GetContainerType() ); } else if ( key == std::string("tracker") ) { return m_sndFile->madeWithTracker; + } else if ( key == std::string("artist") ) { + return mod_string_to_utf8( m_sndFile->songArtist ); } else if ( key == std::string("title") ) { return mod_string_to_utf8( m_sndFile->GetTitle() ); } else if ( key == std::string("message") ) { Modified: trunk/OpenMPT/openmpt123/openmpt123.cpp =================================================================== --- trunk/OpenMPT/openmpt123/openmpt123.cpp 2013-12-18 22:13:57 UTC (rev 3497) +++ trunk/OpenMPT/openmpt123/openmpt123.cpp 2013-12-18 22:20:24 UTC (rev 3498) @@ -1233,6 +1233,7 @@ set_field( fields, "Container" ).ostream() << ( mod.get_metadata( "container" ).empty() ? std::string("none") : ( mod.get_metadata( "container" ) + " (" + mod.get_metadata( "container_long" ) + ")" ) ); set_field( fields, "Type" ).ostream() << mod.get_metadata( "type" ) << " (" << mod.get_metadata( "type_long" ) << ")"; set_field( fields, "Tracker" ).ostream() << mod.get_metadata( "tracker" ); + set_field( fields, "Artist" ).ostream() << mod.get_metadata( "artist" ); } if ( true ) { set_field( fields, "Title" ).ostream() << mod.get_metadata( "title" ); Modified: trunk/OpenMPT/soundlib/Load_ams.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_ams.cpp 2013-12-18 22:13:57 UTC (rev 3497) +++ trunk/OpenMPT/soundlib/Load_ams.cpp 2013-12-18 22:20:24 UTC (rev 3498) @@ -889,6 +889,7 @@ file.ReadString<mpt::String::spacePadded>(str, composerLength); str = mpt::To(mpt::CharsetCP437, mpt::CharsetCP437AMS2, str); songMessage.Read(str.c_str(), str.length(), SongMessage::leAutodetect); + songArtist = str; } // Channel names Modified: trunk/OpenMPT/soundlib/Load_dmf.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_dmf.cpp 2013-12-18 22:13:57 UTC (rev 3497) +++ trunk/OpenMPT/soundlib/Load_dmf.cpp 2013-12-18 22:20:24 UTC (rev 3498) @@ -974,6 +974,7 @@ InitializeGlobals(); mpt::String::Read<mpt::String::spacePadded>(songName, fileHeader.songname); + mpt::String::Read<mpt::String::spacePadded>(songArtist, fileHeader.composer); #ifdef MODPLUG_TRACKER if(GetpModDoc() != nullptr) Modified: trunk/OpenMPT/soundlib/Load_gdm.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_gdm.cpp 2013-12-18 22:13:57 UTC (rev 3497) +++ trunk/OpenMPT/soundlib/Load_gdm.cpp 2013-12-18 22:20:24 UTC (rev 3498) @@ -164,6 +164,9 @@ // Song name mpt::String::Read<mpt::String::maybeNullTerminated>(songName, fileHeader.songTitle); + // Artist name + mpt::String::Read<mpt::String::maybeNullTerminated>(songArtist, fileHeader.songMusician); + // Read channel pan map... 0...15 = channel panning, 16 = surround channel, 255 = channel does not exist m_nChannels = 32; for(CHANNELINDEX i = 0; i < 32; i++) Modified: trunk/OpenMPT/soundlib/Load_mdl.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_mdl.cpp 2013-12-18 22:13:57 UTC (rev 3497) +++ trunk/OpenMPT/soundlib/Load_mdl.cpp 2013-12-18 22:20:24 UTC (rev 3498) @@ -339,6 +339,7 @@ #endif pmib = (MDLInfoBlock *)(lpStream+dwMemPos); mpt::String::Read<mpt::String::maybeNullTerminated>(songName, pmib->songname); + mpt::String::Read<mpt::String::maybeNullTerminated>(songArtist, pmib->composer); norders = pmib->norders; if (norders > MAX_ORDERS) norders = MAX_ORDERS; Modified: trunk/OpenMPT/soundlib/Sndfile.cpp =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.cpp 2013-12-18 22:13:57 UTC (rev 3497) +++ trunk/OpenMPT/soundlib/Sndfile.cpp 2013-12-18 22:20:24 UTC (rev 3498) @@ -617,6 +617,7 @@ Patterns.ClearPatterns(); songName.clear(); + songArtist.clear(); songMessage.clear(); madeWithTracker.clear(); } @@ -923,6 +924,7 @@ Patterns.DestroyPatterns(); songName.clear(); + songArtist.clear(); songMessage.clear(); madeWithTracker.clear(); Modified: trunk/OpenMPT/soundlib/Sndfile.h =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.h 2013-12-18 22:13:57 UTC (rev 3497) +++ trunk/OpenMPT/soundlib/Sndfile.h 2013-12-18 22:20:24 UTC (rev 3498) @@ -425,6 +425,7 @@ public: std::string songName; + std::string songArtist; // Song message SongMessage songMessage; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |