From: <sag...@us...> - 2015-06-14 21:14:32
|
Revision: 5318 http://sourceforge.net/p/modplug/code/5318 Author: saga-games Date: 2015-06-14 21:14:26 +0000 (Sun, 14 Jun 2015) Log Message: ----------- [Mod] Tree view: Stop sample / instrument preview using note cut/off/fade keys instead of automatically fading it out [Imp] When loading tempo swing, make sure that its length is the same as the rows per beat. Modified Paths: -------------- trunk/OpenMPT/mptrack/CommandSet.cpp trunk/OpenMPT/mptrack/CommandSet.h trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/View_tre.cpp trunk/OpenMPT/soundlib/Load_it.cpp trunk/OpenMPT/soundlib/pattern.cpp Modified: trunk/OpenMPT/mptrack/CommandSet.cpp =================================================================== --- trunk/OpenMPT/mptrack/CommandSet.cpp 2015-06-14 16:18:43 UTC (rev 5317) +++ trunk/OpenMPT/mptrack/CommandSet.cpp 2015-06-14 21:14:26 UTC (rev 5318) @@ -686,6 +686,7 @@ } // Safety margin if we want to add more cues DefineKeyCommand(kcOrderlistEditCopyOrders, 1950, _T("Copy Orders")); + DefineKeyCommand(kcTreeViewStopPreview, 1951, _T("Stop sample preview"), kcHidden); // Add new key commands here. @@ -1296,8 +1297,7 @@ Remove(newKcInsNoteMap, (CommandID)(kcInsNoteMapStartNotes+noteOffset)); Remove(newKcVSTGUI, (CommandID)(kcVSTGUIStartNotes+noteOffset)); } - } - if (inCmd>=kcVPStartNoteStops && inCmd<=kcVPEndNoteStops) + } else if (inCmd>=kcVPStartNoteStops && inCmd<=kcVPEndNoteStops) { KeyCombination newKcSamp = inKc; KeyCombination newKcIns = inKc; @@ -1330,7 +1330,18 @@ Remove(newKcInsNoteMap, (CommandID)(kcInsNoteMapStartNoteStops+noteOffset)); Remove(newKcVSTGUI, (CommandID)(kcVSTGUIStartNoteStops+noteOffset)); } - + } else if(inCmd == kcNoteCut || inCmd == kcNoteOff || inCmd == kcNoteFade) + { + // Stop preview in instrument browser + KeyCombination newKcTree = inKc; + newKcTree.Context(kCtxViewTree); + if(adding) + { + Add(newKcTree, kcTreeViewStopPreview, false); + } else + { + Remove(newKcTree, kcTreeViewStopPreview); + } } } if (enforceRule[krCheckModifiers]) Modified: trunk/OpenMPT/mptrack/CommandSet.h =================================================================== --- trunk/OpenMPT/mptrack/CommandSet.h 2015-06-14 16:18:43 UTC (rev 5317) +++ trunk/OpenMPT/mptrack/CommandSet.h 2015-06-14 21:14:26 UTC (rev 5318) @@ -1078,6 +1078,8 @@ kcVSTGUINoteStopA_3, kcVSTGUIEndNoteStops=kcVSTGUINoteStopA_3, + kcTreeViewStopPreview, + kcStartVSTGUICommands, kcVSTGUIPrevPreset=kcStartVSTGUICommands, kcVSTGUINextPreset, Modified: trunk/OpenMPT/mptrack/MainFrm.cpp =================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp 2015-06-14 16:18:43 UTC (rev 5317) +++ trunk/OpenMPT/mptrack/MainFrm.cpp 2015-06-14 21:14:26 UTC (rev 5318) @@ -9,7 +9,7 @@ #include "stdafx.h" -#include "mptrack.h" +#include "Mptrack.h" #include "MainFrm.h" #include "../sounddev/SoundDevice.h" #include "../sounddev/SoundDeviceManager.h" @@ -33,7 +33,7 @@ #include "MIDIMappingDialog.h" #include <direct.h> #include "../common/version.h" -#include "ctrl_pat.h" +#include "Ctrl_pat.h" #include "UpdateCheck.h" #include "CloseMainDialog.h" #include "SelectPluginDialog.h" @@ -1601,7 +1601,7 @@ m_WaveFile.m_nTempoMode = tempoModeClassic; m_WaveFile.Order.resize(1); m_WaveFile.Order[0] = 0; - m_WaveFile.Patterns.Insert(0, 80); + m_WaveFile.Patterns.Insert(0, 2); m_WaveFile.m_SongFlags = SONG_LINEARSLIDES; } @@ -1621,15 +1621,11 @@ m[0].note = note; m[0].instr = 1; - if(m_WaveFile.GetNumInstruments() != 0 || m_WaveFile.GetSample(1).uFlags[CHN_LOOP]) - { - m[48 * 2].note = NOTE_KEYOFF; - m[79 * 2].note = NOTE_NOTECUT; - } } - m[79 * 2].command = CMD_POSITIONJUMP; - m[79 * 2 + 1].command = CMD_PATTERNBREAK; - m[79 * 2 + 1].param = 63; + // Infinite loop on second row + m[1 * 2].command = CMD_POSITIONJUMP; + m[1 * 2 + 1].command = CMD_PATTERNBREAK; + m[1 * 2 + 1].param = 1; } } Modified: trunk/OpenMPT/mptrack/View_tre.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_tre.cpp 2015-06-14 16:18:43 UTC (rev 5317) +++ trunk/OpenMPT/mptrack/View_tre.cpp 2015-06-14 21:14:26 UTC (rev 5318) @@ -1377,8 +1377,11 @@ case MODITEM_SAMPLE: if (modDoc) { - if (nParam & 0x80) + if (nParam == NOTE_NOTECUT) { + modDoc->NoteOff(0, true); // cut previous playing samples + } else if (nParam & 0x80) + { modDoc->NoteOff(nParam & 0x7F, true); } else { @@ -1391,8 +1394,11 @@ case MODITEM_INSTRUMENT: if (modDoc) { - if (nParam & 0x80) + if (nParam == NOTE_NOTECUT) { + modDoc->NoteOff(0, true); + } else if (nParam & 0x80) + { modDoc->NoteOff(nParam & 0x7F, true); } else { @@ -1418,29 +1424,36 @@ case MODITEM_INSLIB_SAMPLE: case MODITEM_INSLIB_INSTRUMENT: - if(!m_SongFileName.empty()) + if(nParam != NOTE_NOTECUT) { - // Preview sample / instrument in module - char szName[16]; - mpt::String::CopyN(szName, GetItemText(hItem)); - const size_t n = ConvertStrTo<size_t>(szName); CMainFrame *pMainFrm = CMainFrame::GetMainFrame(); - if (pMainFrm && m_SongFile) + if(!m_SongFileName.empty()) { - if (modItem.type == MODITEM_INSLIB_INSTRUMENT) + // Preview sample / instrument in module + char szName[16]; + mpt::String::CopyN(szName, GetItemText(hItem)); + const size_t n = ConvertStrTo<size_t>(szName); + if (pMainFrm && m_SongFile) { - pMainFrm->PlaySoundFile(*m_SongFile, static_cast<INSTRUMENTINDEX>(n), SAMPLEINDEX_INVALID, nParam); - } else - { - pMainFrm->PlaySoundFile(*m_SongFile, INSTRUMENTINDEX_INVALID, static_cast<SAMPLEINDEX>(n), nParam); + if (modItem.type == MODITEM_INSLIB_INSTRUMENT) + { + pMainFrm->PlaySoundFile(*m_SongFile, static_cast<INSTRUMENTINDEX>(n), SAMPLEINDEX_INVALID, nParam); + } else + { + pMainFrm->PlaySoundFile(*m_SongFile, INSTRUMENTINDEX_INVALID, static_cast<SAMPLEINDEX>(n), nParam); + } } + } else + { + // Preview sample / instrument file + if (pMainFrm) pMainFrm->PlaySoundFile(InsLibGetFullPath(hItem), nParam); } } else { - // Preview sample / instrument file CMainFrame *pMainFrm = CMainFrame::GetMainFrame(); - if (pMainFrm) pMainFrm->PlaySoundFile(InsLibGetFullPath(hItem), nParam); + if (pMainFrm) pMainFrm->StopPreview(); } + return TRUE; case MODITEM_MIDIPERCUSSION: @@ -2084,7 +2097,7 @@ case MODITEM_INSLIB_INSTRUMENT: if(!m_SongFileName.empty()) { - CHAR s[32]; + TCHAR s[32]; mpt::String::CopyN(s, GetItemText(m_hItemDrag)); const uint32 n = ConvertStrTo<uint32>(s); dropInfo.dwDropType = (m_itemDrag.type == MODITEM_INSLIB_SAMPLE) ? DRAGONDROP_SAMPLE : DRAGONDROP_INSTRUMENT; @@ -3546,11 +3559,18 @@ CMainFrame *pMainFrm = CMainFrame::GetMainFrame(); + ModCommand::NOTE note = NOTE_NONE; const bool start = wParam >= kcTreeViewStartNotes && wParam <= kcTreeViewEndNotes, stop = (wParam >= kcTreeViewStartNoteStops && wParam <= kcTreeViewEndNoteStops) && !IsSampleBrowser(); if(start || stop) { - ModCommand::NOTE note = static_cast<ModCommand::NOTE>(wParam - (start ? kcTreeViewStartNotes : kcTreeViewStartNoteStops) + 1 + pMainFrm->GetBaseOctave() * 12); + note = static_cast<ModCommand::NOTE>(wParam - (start ? kcTreeViewStartNotes : kcTreeViewStartNoteStops) + 1 + pMainFrm->GetBaseOctave() * 12); + } else if(wParam == kcTreeViewStopPreview) + { + note = NOTE_NOTECUT; + } + if(note != NOTE_NONE) + { if(stop) note |= 0x80; if(PlayItem(GetSelectedItem(), note)) Modified: trunk/OpenMPT/soundlib/Load_it.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_it.cpp 2015-06-14 16:18:43 UTC (rev 5317) +++ trunk/OpenMPT/soundlib/Load_it.cpp 2015-06-14 21:14:26 UTC (rev 5318) @@ -835,7 +835,7 @@ if(chnMask[ch] & 1) // Note { uint8 note = patternData.ReadUint8(); - if(note < 0x80) note++; + if(note < 0x80) note += NOTE_MIN; if(!(GetType() & MOD_TYPE_MPT)) { if(note > NOTE_MAX && note < 0xFD) note = NOTE_FADE; @@ -1450,7 +1450,7 @@ uint8 vol = 0xFF; uint8 note = m->note; if (note != NOTE_NONE) b |= 1; - if (m->IsNote()) note--; + if (m->IsNote()) note -= NOTE_MIN; if (note == NOTE_FADE && GetType() != MOD_TYPE_MPT) note = 0xF6; if (m->instr) b |= 2; if (m->volcmd != VOLCMD_NONE) @@ -2222,6 +2222,7 @@ LimitMax(m_nDefaultGlobalVolume, MAX_GLOBAL_VOLUME); //m_nRestartPos //m_ModFlags + if(!m_tempoSwing.empty()) m_tempoSwing.resize(m_nDefaultRowsPerMeasure); } Modified: trunk/OpenMPT/soundlib/pattern.cpp =================================================================== --- trunk/OpenMPT/soundlib/pattern.cpp 2015-06-14 16:18:43 UTC (rev 5317) +++ trunk/OpenMPT/soundlib/pattern.cpp 2015-06-14 21:14:26 UTC (rev 5318) @@ -517,6 +517,7 @@ pat.SetSignature(nRPB, nRPM); TempoSwing swing; ssb.ReadItem<TempoSwing>(swing, "SWNG", TempoSwing::Deserialize); + if(!swing.empty()) swing.resize(nRPB); pat.SetTempoSwing(swing); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2015-06-15 16:30:27
|
Revision: 5319 http://sourceforge.net/p/modplug/code/5319 Author: manxorist Date: 2015-06-15 16:30:15 +0000 (Mon, 15 Jun 2015) Log Message: ----------- [Ref] Logging: Rename the type-safe log function from Log to the properly namespaced MPT_LOG. [Imp] Logging: In the default release OpenMPT build, always compile all logging statements and let the compiler optimize them away by dead code elimination. This avoids having Log() calls bitrot over time. Dead code elimination has been verified to work in this case. Bitrot happened for two reason: Log() has either been disabled at least in release builds or a per-file macro has been used which had been explicitely disabled due tue runtime cost. [Imp] Logging: In case the logging is not disabled and the logging level is not configured statically at build time, runtime configuration is now possible. The cost is a single inline conditional per discarded log message. Not even the actual message expression will get evaluated. [Imp] Logging: Add a coarse grained const char* facility parameter to MPT_LOG, which can be used for selective log filtering. Facility filtering has higher cost than level filtering but still not measurable compared to actually printing the message. [Imp] Logging: Add possibility to log to a newly allocated windows console window (disabled by default). [Imp] Logging: Add [Debug]LogLevel, [Debug]LogFacilitySolo, [Debug]LogFacilityBlocked, [Debug]LogFileEnable, [Debug]LogDebuggerEnable and [Debug]LogConsoleEnable hidden settings. [Ref] Logging: Un-deprecate the printf version for now. Causes too many warnings. [Ref] Logging: Flip LogInformation and LogNotification levels. This is a better match to the way the reporting message boxes get displayed (which is the current dominant LogLevel user). [Ref] Logging: Convert Log() to MPT_LOG() for those that broke during conversion. All the (currently disabled) per-file logging primitives as well as almost all Log() calls still need to get converted later though. [Doc] Logging: Roughly document how logging configuration and usage works. [Ref] Cleanup and remove the last remaining user of va_copy. Modified Paths: -------------- trunk/OpenMPT/common/BuildSettings.h trunk/OpenMPT/common/Logging.cpp trunk/OpenMPT/common/Logging.h trunk/OpenMPT/common/typedefs.cpp trunk/OpenMPT/mptrack/Moddoc.cpp trunk/OpenMPT/mptrack/Mptrack.cpp trunk/OpenMPT/mptrack/TrackerSettings.cpp trunk/OpenMPT/mptrack/TrackerSettings.h trunk/OpenMPT/sounddev/SoundDeviceBase.cpp trunk/OpenMPT/sounddev/SoundDeviceManager.cpp trunk/OpenMPT/soundlib/Sndfile.cpp trunk/OpenMPT/soundlib/Sndfile.h trunk/OpenMPT/soundlib/tuning.cpp trunk/OpenMPT/test/test.cpp Modified: trunk/OpenMPT/common/BuildSettings.h =================================================================== --- trunk/OpenMPT/common/BuildSettings.h 2015-06-14 21:14:26 UTC (rev 5318) +++ trunk/OpenMPT/common/BuildSettings.h 2015-06-15 16:30:15 UTC (rev 5319) @@ -85,8 +85,10 @@ //#define MODPLUG_NO_FILESAVE // Disable any debug logging +//#define NO_LOGGING #ifndef _DEBUG -#define NO_LOGGING +#define MPT_LOG_GLOBAL_LEVEL_STATIC +#define MPT_LOG_GLOBAL_LEVEL 0 #endif // Disable all runtime asserts Modified: trunk/OpenMPT/common/Logging.cpp =================================================================== --- trunk/OpenMPT/common/Logging.cpp 2015-06-14 21:14:26 UTC (rev 5318) +++ trunk/OpenMPT/common/Logging.cpp 2015-06-15 16:30:15 UTC (rev 5319) @@ -1,7 +1,7 @@ /* * Logging.cpp * ----------- - * Purpose: General logging and user confirmation support + * Purpose: General logging * Notes : (currently none) * Authors: OpenMPT Devs * The OpenMPT source code is released under the BSD license. Read LICENSE for more details. @@ -28,41 +28,103 @@ OPENMPT_NAMESPACE_BEGIN -//#define LOG_TO_FILE +namespace mpt +{ +namespace log +{ + +#ifndef NO_LOGGING -#if MPT_COMPILER_MSVC || (MPT_COMPILER_GCC && MPT_GCC_AT_LEAST(4,3,0) && MPT_GCC_BEFORE(4,4,0)) -#ifndef va_copy -#define va_copy(dst, src) MPT_DO { (dst) = (src); } MPT_WHILE_0 + + +#if !defined(MPT_LOG_GLOBAL_LEVEL_STATIC) +#if defined(MPT_LOG_GLOBAL_LEVEL) +int GlobalLogLevel = static_cast<int>(MPT_LOG_GLOBAL_LEVEL); +#else +int GlobalLogLevel = static_cast<int>(LogDebug); #endif #endif -namespace mpt -{ -namespace log -{ +#if defined(MODPLUG_TRACKER) && !defined(MPT_LOG_IS_DISABLED) -static const std::size_t LOGBUF_SIZE = 1024; +bool FileEnabled = false; +bool DebuggerEnabled = true; +bool ConsoleEnabled = false; +static char g_FacilitySolo[1024] = {0}; +static char g_FacilityBlocked[1024] = {0}; -#ifndef NO_LOGGING +void SetFacilities(const std::string &solo, const std::string &blocked) +{ + std::strcpy(g_FacilitySolo, solo.c_str()); + std::strcpy(g_FacilityBlocked, blocked.c_str()); +} +bool IsFacilityActive(const char *facility) +{ + if(facility) + { + if(std::strlen(g_FacilitySolo) > 0) + { + if(std::strcmp(facility, g_FacilitySolo) != 0) + { + return false; + } + } + if(std::strlen(g_FacilityBlocked) > 0) + { + if(std::strcmp(facility, g_FacilitySolo) == 0) + { + return false; + } + } + } + return true; +} -static MPT_NOINLINE void DoLog(const mpt::log::Context &context, mpt::ustring message) -//------------------------------------------------------------------------------------ +#endif + + +void Logger::SendLogMessage(const Context &context, LogLevel level, const char *facility, const mpt::ustring &text) +//----------------------------------------------------------------------------------------------------------------- { - // remove eol if already present - message = mpt::String::RTrim(message, MPT_USTRING("\r\n")); +#ifdef MPT_LOG_IS_DISABLED + MPT_UNREFERENCED_PARAMETER(context); + MPT_UNREFERENCED_PARAMETER(level); + MPT_UNREFERENCED_PARAMETER(facility); + MPT_UNREFERENCED_PARAMETER(text); +#else // !MPT_LOG_IS_DISABLED + MPT_MAYBE_CONSTANT_IF(mpt::log::GlobalLogLevel < level) + { + return; + } #if defined(MODPLUG_TRACKER) + if(!IsFacilityActive(facility)) + { + return; + } + #else // !MODPLUG_TRACKER + MPT_UNREFERENCED_PARAMETER(facility); + #endif // MODPLUG_TRACKER + // remove eol if already present and add log level prefix + const mpt::ustring message = LogLevelToString(level) + MPT_USTRING(": ") + mpt::String::RTrim(text, MPT_USTRING("\r\n")); + const mpt::ustring file = mpt::ToUnicode(mpt::CharsetASCII, context.file); + const mpt::ustring function = mpt::ToUnicode(mpt::CharsetASCII, context.function); + const mpt::ustring line = mpt::ufmt::dec(context.line); + #if defined(MODPLUG_TRACKER) #if MPT_OS_WINDOWS static uint64 s_lastlogtime = 0; uint64 cur = mpt::Date::ANSI::Now(); uint64 diff = cur/10000 - s_lastlogtime; s_lastlogtime = cur/10000; +#else + uint64 cur = 0; + uint64 diff = 0; #endif - #ifdef LOG_TO_FILE + if(mpt::log::FileEnabled) { static FILE * s_logfile = nullptr; if(!s_logfile) @@ -71,78 +133,77 @@ } if(s_logfile) { - fprintf(s_logfile, mpt::ToCharset(mpt::CharsetUTF8, mpt::String::Print(MPT_USTRING("%1+%2 %3(%4): %5 [%6]\n" -#if MPT_OS_WINDOWS + fprintf(s_logfile, mpt::ToCharset(mpt::CharsetUTF8, MPT_UFORMAT("%1+%2 %3(%4): %5 [%6]\n" , mpt::Date::ANSI::ToString(cur) , mpt::ufmt::dec<6>(diff) -#else - , 0 - , 0 -#endif - , mpt::ToUnicode(mpt::CharsetASCII, context.file) - , context.line + , file + , line , message - , mpt::ToUnicode(mpt::CharsetASCII, context.function) - ))).c_str()); + , function + )).c_str()); fflush(s_logfile); } } - #endif // LOG_TO_FILE + if(mpt::log::DebuggerEnabled) { - OutputDebugStringW(mpt::String::Print(L"%1(%2): +%3 %4 [%5]\n" - , mpt::ToWide(mpt::CharsetASCII, context.file) - , context.line - , mpt::wfmt::dec<6>(diff) + OutputDebugStringW(mpt::ToWide(MPT_UFORMAT("%1(%2): +%3 %4 [%5]\n" + , file + , line + , mpt::ufmt::dec<6>(diff) , message - , mpt::ToWide(mpt::CharsetASCII, context.function) - ).c_str()); + , function + )).c_str()); } + if(mpt::log::ConsoleEnabled) + { + static bool consoleInited = false; + if(!consoleInited) + { + AllocConsole(); + consoleInited = true; + } + std::wstring consoletext = mpt::ToWide(message); + DWORD dummy = 0; + WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), consoletext.c_str(), consoletext.length(), &dummy, NULL); + } #else // !MODPLUG_TRACKER std::clog - << "openmpt: " - << context.file << "(" << context.line << ")" << ": " + << "libopenmpt: " + << mpt::ToCharset(mpt::CharsetLocaleOrUTF8, file) << "(" << mpt::ToCharset(mpt::CharsetLocaleOrUTF8, line) << ")" << ": " << mpt::ToCharset(mpt::CharsetLocaleOrUTF8, message) - << " [" << context.function << "]" + << " [" << mpt::ToCharset(mpt::CharsetLocaleOrUTF8, function) << "]" << std::endl; #endif // MODPLUG_TRACKER +#endif // MPT_LOG_IS_DISABLED } +void LegacyLogger::operator () (const AnyStringLocale &text) +//---------------------------------------------------------- +{ + SendLogMessage(context, MPT_LEGACY_LOGLEVEL, "", text); +} -static MPT_NOINLINE void DoLog(const mpt::log::Context &context, const char *format, va_list args) -//------------------------------------------------------------------------------------------------ +void LegacyLogger::operator () (const char *format, ...) +//------------------------------------------------------ { + static const std::size_t LOGBUF_SIZE = 1024; char message[LOGBUF_SIZE]; va_list va; - va_copy(va, args); + va_start(va, format); vsnprintf(message, LOGBUF_SIZE, format, va); + va_end(va); message[LOGBUF_SIZE - 1] = '\0'; - va_end(va); - DoLog(context, mpt::ToUnicode(mpt::CharsetLocaleOrUTF8, message)); + SendLogMessage(context, MPT_LEGACY_LOGLEVEL, "", mpt::ToUnicode(mpt::CharsetLocaleOrUTF8, message)); } - -void Logger::operator () (LogLevel level, const mpt::ustring &text) -//----------------------------------------------------------------- +void LegacyLogger::operator () (LogLevel level, const mpt::ustring &text) +//----------------------------------------------------------------------- { - DoLog(context, LogLevelToString(level) + MPT_USTRING(": ") + text); + SendLogMessage(context, level, "", text); } -void Logger::operator () (const AnyStringLocale &text) -//---------------------------------------------------- -{ - DoLog(context, text); -} -void Logger::operator () (const char *format, ...) -//------------------------------------------------ -{ - va_list va; - va_start(va, format); - DoLog(context, format, va); - va_end(va); -} - #endif // !NO_LOGGING Modified: trunk/OpenMPT/common/Logging.h =================================================================== --- trunk/OpenMPT/common/Logging.h 2015-06-14 21:14:26 UTC (rev 5318) +++ trunk/OpenMPT/common/Logging.h 2015-06-15 16:30:15 UTC (rev 5319) @@ -1,7 +1,7 @@ /* * Logging.h * --------- - * Purpose: General logging and user confirmation support + * Purpose: General logging * Notes : (currently none) * Authors: OpenMPT Devs * The OpenMPT source code is released under the BSD license. Read LICENSE for more details. @@ -13,11 +13,56 @@ OPENMPT_NAMESPACE_BEGIN +/* + + +Build time logging configuration (in BuildSettings.h): + + * #define NO_LOGGING + Disables all logging completely. + MPT_LOG calls are not even compiled but instead completely removed via the + preprocessor. + + * #define MPT_LOG_GLOBAL_LEVEL_STATIC + #define MPT_LOG_GLOBAL_LEVEL # + Define the former (to anything) and the latter (to one of the log levels + below) in order to statically select the verbosity of logging at build time. + MPT_LOG calls that exceed the specified logging level will get dead-code + eliminated at compile time. + This especially means that, when setting MPT_LOG_GLOBAL_LEVEL to 0, no + MPT_LOG call (with a constant level parameter) remains in the resulting + binary, however, they still do get parsed and properly type checked by the + compiler. + + +Logging: + +If the context is related to a particular CSoundfile instance, use +CSoundfile::AddToLog. + +Logging a simple message: +MPT_LOG(LogWarning, "sounddev", "some message"); +MPT_LOG(LogWarning, "sounddev", MPT_USTRING("some message")); +Facility is some course grained code section identifier (more coarse grained +than the current file name probably), useful to do some selective logging. + +Logging a more complex message: +MPT_LOG(LogWarning, "sounddev", MPT_UFORMAT("Some message: foo=%1, bar=0x%2", foo, mpt::ufmt::hex0<8>(bar))); + +Note that even with full enabled logging and a runtime configurable logging +level, the runtime overhead of a MPT_LOG(level, facility, text) call is just a +single conditional in case the verbosity does not require logging the respective +message. Even the expression "text" is not evaluated. + + +*/ + + enum LogLevel { LogDebug = 5, - LogNotification = 4, - LogInformation = 3, + LogInformation = 4, + LogNotification = 3, LogWarning = 2, LogError = 1 }; @@ -29,8 +74,8 @@ { case LogError: return MPT_USTRING("error"); break; case LogWarning: return MPT_USTRING("warning"); break; + case LogNotification: return MPT_USTRING("notify"); break; case LogInformation: return MPT_USTRING("info"); break; - case LogNotification: return MPT_USTRING("notify"); break; case LogDebug: return MPT_USTRING("debug"); break; } return MPT_USTRING("unknown"); @@ -53,6 +98,36 @@ { + +#ifndef NO_LOGGING + + +#if defined(MPT_LOG_GLOBAL_LEVEL_STATIC) +#if (MPT_LOG_GLOBAL_LEVEL <= 0) +// Logging framework is enabled (!NO_LOGGING) but all logging has beeen statically disabled. +// All logging code gets compiled and immediately dead-code eliminated. +#define MPT_LOG_IS_DISABLED +#endif +static const int GlobalLogLevel = MPT_LOG_GLOBAL_LEVEL ; +#else +extern int GlobalLogLevel; +#endif + + +#if defined(MODPLUG_TRACKER) && !defined(MPT_LOG_IS_DISABLED) +extern bool FileEnabled; +extern bool DebuggerEnabled; +extern bool ConsoleEnabled; +void SetFacilities(const std::string &solo, const std::string &blocked); +bool IsFacilityActive(const char *facility); +#else +static forceinline bool IsFacilityActive(const char * /*facility*/ ) { return true; } +#endif + + +#endif // !NO_LOGGING + + struct Context { const char * const file; @@ -79,35 +154,67 @@ #ifndef NO_LOGGING + class Logger { +public: + // facility:ASCII + void SendLogMessage(const Context &context, LogLevel level, const char *facility, const mpt::ustring &text); +public: + // facility:ASCII, text:ASCII (only string literals) + template <std::size_t size> forceinline void SendLogMessage(const Context &context, LogLevel level, const char *facility, const char (&text)[size]) + { + SendLogMessage(context, level, facility, mpt::ToUnicode(mpt::CharsetASCII, text)); + } +}; + +#define MPT_LOG(level, facility, text) \ + MPT_DO \ + { \ + MPT_MAYBE_CONSTANT_IF(mpt::log::GlobalLogLevel >= ( level )) \ + { \ + MPT_MAYBE_CONSTANT_IF(mpt::log::IsFacilityActive(( facility ))) \ + { \ + mpt::log::Logger().SendLogMessage( MPT_LOG_CURRENTCONTEXT() , ( level ), ( facility ), ( text )); \ + } \ + } \ + } MPT_WHILE_0 \ +/**/ + + +#define MPT_LEGACY_LOGLEVEL LogDebug + +class LegacyLogger : public Logger +{ private: - const Context &context; + const Context context; public: - Logger(const Context &context) : context(context) {} - MPT_DEPRECATED void MPT_PRINTF_FUNC(2,3) operator () (const char *format, ...); // migrate to type-safe version below, preferably to the one with loglevel - /* MPT_DEPRECATED */ void operator () (const AnyStringLocale &text); - void operator () (LogLevel level, const mpt::ustring &text); + LegacyLogger(const Context &context) : context(context) {} + /* MPT_DEPRECATED */ void MPT_PRINTF_FUNC(2,3) operator () (const char *format, ...); // migrate to type-safe MPT_LOG + /* MPT_DEPRECATED */ void operator () (const AnyStringLocale &text); // migrate to properly namespaced MPT_LOG + /* MPT_DEPRECATED */ void operator () (LogLevel level, const mpt::ustring &text); // migrate to properly namespaced MPT_LOG }; -#define Log mpt::log::Logger(MPT_LOG_CURRENTCONTEXT()) +#define Log MPT_MAYBE_CONSTANT_IF(mpt::log::GlobalLogLevel < MPT_LEGACY_LOGLEVEL) { } else MPT_MAYBE_CONSTANT_IF(!mpt::log::IsFacilityActive("")) { } else mpt::log::LegacyLogger(MPT_LOG_CURRENTCONTEXT()) + #else // !NO_LOGGING -class Logger + +#define MPT_LOG(level, facility, text) MPT_DO { } MPT_WHILE_0 + +struct LegacyLogger { -public: - inline void MPT_PRINTF_FUNC(2,3) operator () (const char * /*format*/, ...) {} + inline void MPT_PRINTF_FUNC(2,3) operator () (const char * /*format*/ , ...) {} inline void operator () (const AnyStringLocale & /*text*/ ) {} inline void operator () (LogLevel /*level*/ , const mpt::ustring & /*text*/ ) {} }; +#define Log MPT_CONSTANT_IF(true) {} else mpt::log::LegacyLogger() // completely compile out arguments to Log() so that they do not even get evaluated -#define Log if(true) {} else mpt::log::Logger() // completely compile out arguments to Log() so that they do not even get evaluated #endif // NO_LOGGING - #if defined(MODPLUG_TRACKER) && MPT_OS_WINDOWS namespace Trace { Modified: trunk/OpenMPT/common/typedefs.cpp =================================================================== --- trunk/OpenMPT/common/typedefs.cpp 2015-06-14 21:14:26 UTC (rev 5318) +++ trunk/OpenMPT/common/typedefs.cpp 2015-06-15 16:30:15 UTC (rev 5319) @@ -23,12 +23,12 @@ { if(msg) { - mpt::log::Logger(mpt::log::Context(file, line, function))(LogError, + mpt::log::Logger().SendLogMessage(mpt::log::Context(file, line, function), LogError, "ASSERT", MPT_USTRING("ASSERTION FAILED: ") + mpt::ToUnicode(mpt::CharsetASCII, msg) + MPT_USTRING(" (") + mpt::ToUnicode(mpt::CharsetASCII, expr) + MPT_USTRING(")") ); } else { - mpt::log::Logger(mpt::log::Context(file, line, function))(LogError, + mpt::log::Logger().SendLogMessage(mpt::log::Context(file, line, function), LogError, "ASSERT", MPT_USTRING("ASSERTION FAILED: ") + mpt::ToUnicode(mpt::CharsetASCII, expr) ); } Modified: trunk/OpenMPT/mptrack/Moddoc.cpp =================================================================== --- trunk/OpenMPT/mptrack/Moddoc.cpp 2015-06-14 21:14:26 UTC (rev 5318) +++ trunk/OpenMPT/mptrack/Moddoc.cpp 2015-06-15 16:30:15 UTC (rev 5319) @@ -909,7 +909,7 @@ LogLevel CModDoc::GetMaxLogLevel() const //-------------------------------------- { - LogLevel retval = LogNotification; + LogLevel retval = LogInformation; // find the most severe loglevel for(std::vector<LogEntry>::const_iterator i=m_Log.begin(); i!=m_Log.end(); ++i) { Modified: trunk/OpenMPT/mptrack/Mptrack.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mptrack.cpp 2015-06-14 21:14:26 UTC (rev 5318) +++ trunk/OpenMPT/mptrack/Mptrack.cpp 2015-06-15 16:30:15 UTC (rev 5319) @@ -911,7 +911,7 @@ mpt::Windows::Version::Init(); mpt::String::InitCharsets(); - Log("OpenMPT Start"); + MPT_LOG(LogInformation, "", MPT_USTRING("OpenMPT Start")); ASSERT(nullptr == m_pDocManager); m_pDocManager = new CModDocManager(); @@ -934,6 +934,23 @@ m_pSettings = new SettingsContainer(m_pSettingsIniFile); m_pTrackerSettings = new TrackerSettings(*m_pSettings); + // enable debug features (as early as possible after reading the settings) + #if !defined(NO_LOGGING) && !defined(MPT_LOG_IS_DISABLED) + #if !defined(MPT_LOG_GLOBAL_LEVEL_STATIC) + mpt::log::GlobalLogLevel = TrackerSettings::Instance().DebugLogLevel; + #endif + mpt::log::SetFacilities(TrackerSettings::Instance().DebugLogFacilitySolo, TrackerSettings::Instance().DebugLogFacilityBlocked); + mpt::log::FileEnabled = TrackerSettings::Instance().DebugLogFileEnable; + mpt::log::DebuggerEnabled = TrackerSettings::Instance().DebugLogDebuggerEnable; + mpt::log::ConsoleEnabled = TrackerSettings::Instance().DebugLogConsoleEnable; + #endif + MPT_LOG(LogInformation, "", MPT_USTRING("OpenMPT settings initialized.")); + if(TrackerSettings::Instance().DebugTraceEnable) + { + mpt::log::Trace::Enable(TrackerSettings::Instance().DebugTraceSize); + } + MPT_TRACE(); + // Create missing diretories if(!TrackerSettings::Instance().PathTunings.GetDefaultDir().IsDirectory()) { @@ -943,13 +960,6 @@ m_pSongSettingsIniFile = new IniFileSettingsBackend(m_szConfigDirectory + MPT_PATHSTRING("SongSettings.ini")); m_pSongSettings = new SettingsContainer(m_pSongSettingsIniFile); - // enable debug features (as early as possible after reading the settings) - if(TrackerSettings::Instance().DebugTraceEnable) - { - mpt::log::Trace::Enable(TrackerSettings::Instance().DebugTraceSize); - } - MPT_TRACE(); - m_pComponentManagerSettings = new ComponentManagerSettings(TrackerSettings::Instance()); m_pPluginCache = new IniFileSettingsContainer(m_szPluginCacheFileName); Modified: trunk/OpenMPT/mptrack/TrackerSettings.cpp =================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.cpp 2015-06-14 21:14:26 UTC (rev 5318) +++ trunk/OpenMPT/mptrack/TrackerSettings.cpp 2015-06-15 16:30:15 UTC (rev 5319) @@ -261,6 +261,14 @@ , UpdateSendGUID(conf, "Update", "SendGUID", CUpdateCheck::GetSendGUID()) , UpdateShowUpdateHint(conf, "Update", "ShowUpdateHint", CUpdateCheck::GetShowUpdateHint()) // Debug +#if !defined(NO_LOGGING) && !defined(MPT_LOG_IS_DISABLED) + , DebugLogLevel(conf, "Debug", "LogLevel", static_cast<int>(mpt::log::GlobalLogLevel)) + , DebugLogFacilitySolo(conf, "Debug", "LogFacilitySolo", std::string()) + , DebugLogFacilityBlocked(conf, "Debug", "LogFacilityBlocked", std::string()) + , DebugLogFileEnable(conf, "Debug", "LogFileEnable", mpt::log::FileEnabled) + , DebugLogDebuggerEnable(conf, "Debug", "LogDebuggerEnable", mpt::log::DebuggerEnabled) + , DebugLogConsoleEnable(conf, "Debug", "LogConsoleEnable", mpt::log::ConsoleEnabled) +#endif , DebugTraceEnable(conf, "Debug", "TraceEnable", false) , DebugTraceSize(conf, "Debug", "TraceSize", 1000000) , DebugTraceAlwaysDump(conf, "Debug", "TraceAlwaysDump", false) Modified: trunk/OpenMPT/mptrack/TrackerSettings.h =================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.h 2015-06-14 21:14:26 UTC (rev 5318) +++ trunk/OpenMPT/mptrack/TrackerSettings.h 2015-06-15 16:30:15 UTC (rev 5319) @@ -11,6 +11,8 @@ #pragma once +#include "../common/Logging.h" +#include "../common/version.h" #include "../soundlib/MixerSettings.h" #include "../soundlib/Resampler.h" #include "../soundlib/SampleFormat.h" @@ -19,7 +21,6 @@ #include "../sounddsp/Reverb.h" #include "../sounddev/SoundDevice.h" #include "StreamEncoder.h" -#include "../common/version.h" #include "Settings.h" #include <bitset> @@ -644,6 +645,15 @@ // Debug +#if !defined(NO_LOGGING) && !defined(MPT_LOG_IS_DISABLED) + Setting<int> DebugLogLevel; + Setting<std::string> DebugLogFacilitySolo; + Setting<std::string> DebugLogFacilityBlocked; + Setting<bool> DebugLogFileEnable; + Setting<bool> DebugLogDebuggerEnable; + Setting<bool> DebugLogConsoleEnable; +#endif + Setting<bool> DebugTraceEnable; Setting<uint32> DebugTraceSize; Setting<bool> DebugTraceAlwaysDump; Modified: trunk/OpenMPT/sounddev/SoundDeviceBase.cpp =================================================================== --- trunk/OpenMPT/sounddev/SoundDeviceBase.cpp 2015-06-14 21:14:26 UTC (rev 5318) +++ trunk/OpenMPT/sounddev/SoundDeviceBase.cpp 2015-06-15 16:30:15 UTC (rev 5319) @@ -219,7 +219,7 @@ //------------------------------------------------------------------- { MPT_TRACE(); - Log(level, str); + MPT_LOG(level, "sounddev", str); if(m_MessageReceiver) { m_MessageReceiver->SoundDeviceMessage(level, str); Modified: trunk/OpenMPT/sounddev/SoundDeviceManager.cpp =================================================================== --- trunk/OpenMPT/sounddev/SoundDeviceManager.cpp 2015-06-14 21:14:26 UTC (rev 5318) +++ trunk/OpenMPT/sounddev/SoundDeviceManager.cpp 2015-06-15 16:30:15 UTC (rev 5319) @@ -153,14 +153,14 @@ } std::stable_sort(m_SoundDevices.begin(), m_SoundDevices.end(), CompareInfo(typePriorities)); - Log(LogDebug, MPT_USTRING("Sound Devices enumerated:")); + MPT_LOG(LogDebug, "sounddev", MPT_USTRING("Sound Devices enumerated:")); for(std::size_t i = 0; i < m_SoundDevices.size(); ++i) { - Log(LogDebug, mpt::String::Print(MPT_USTRING(" Identifier : %1"), m_SoundDevices[i].GetIdentifier())); - Log(LogDebug, mpt::String::Print(MPT_USTRING(" Type : %1"), m_SoundDevices[i].type)); - Log(LogDebug, mpt::String::Print(MPT_USTRING(" InternalID: %1"), m_SoundDevices[i].internalID)); - Log(LogDebug, mpt::String::Print(MPT_USTRING(" API Name : %1"), m_SoundDevices[i].apiName)); - Log(LogDebug, mpt::String::Print(MPT_USTRING(" Name : %1"), m_SoundDevices[i].name)); + MPT_LOG(LogDebug, "sounddev", MPT_UFORMAT(" Identifier : %1", m_SoundDevices[i].GetIdentifier())); + MPT_LOG(LogDebug, "sounddev", MPT_UFORMAT(" Type : %1", m_SoundDevices[i].type)); + MPT_LOG(LogDebug, "sounddev", MPT_UFORMAT(" InternalID: %1", m_SoundDevices[i].internalID)); + MPT_LOG(LogDebug, "sounddev", MPT_UFORMAT(" API Name : %1", m_SoundDevices[i].apiName)); + MPT_LOG(LogDebug, "sounddev", MPT_UFORMAT(" Name : %1", m_SoundDevices[i].name)); for(std::map<mpt::ustring, mpt::ustring>::const_iterator extraIt = m_SoundDevices[i].extraData.begin(); extraIt != m_SoundDevices[i].extraData.end(); ++extraIt) { Log(LogDebug, mpt::String::Print(MPT_USTRING(" Extra Data: %1 = %2"), extraIt->first, extraIt->second)); Modified: trunk/OpenMPT/soundlib/Sndfile.cpp =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.cpp 2015-06-14 21:14:26 UTC (rev 5318) +++ trunk/OpenMPT/soundlib/Sndfile.cpp 2015-06-15 16:30:15 UTC (rev 5319) @@ -153,7 +153,7 @@ #ifdef MODPLUG_TRACKER if(GetpModDoc()) GetpModDoc()->AddToLog(level, text); #else - Log(level, text); + MPT_LOG(level, "soundlib", text); #endif } } Modified: trunk/OpenMPT/soundlib/Sndfile.h =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.h 2015-06-14 21:14:26 UTC (rev 5318) +++ trunk/OpenMPT/soundlib/Sndfile.h 2015-06-15 16:30:15 UTC (rev 5319) @@ -555,7 +555,7 @@ TimingInfo m_TimingInfo; // only valid if !m_bIsRendering private: - // logging and user interaction + // logging ILog *m_pCustomLog; public: @@ -563,10 +563,10 @@ ~CSoundFile(); public: - // logging and user interaction + // logging void SetCustomLog(ILog *pLog) { m_pCustomLog = pLog; } void AddToLog(LogLevel level, const mpt::ustring &text) const; - /*MPT_DEPRECATED*/ void AddToLog(const std::string &text) const { AddToLog(LogInformation, mpt::ToUnicode(mpt::CharsetLocaleOrUTF8, text)); } + /*MPT_DEPRECATED*/ void AddToLog(const AnyStringLocale &text) const { AddToLog(LogInformation, mpt::ToUnicode(text)); } public: Modified: trunk/OpenMPT/soundlib/tuning.cpp =================================================================== --- trunk/OpenMPT/soundlib/tuning.cpp 2015-06-14 21:14:26 UTC (rev 5318) +++ trunk/OpenMPT/soundlib/tuning.cpp 2015-06-15 16:30:15 UTC (rev 5319) @@ -414,7 +414,7 @@ #ifdef MODPLUG_TRACKER Reporting::Error(("Processing loaded data for tuning \"" + pTuning->GetName() + "\" failed.").c_str(), "Tuning load failure"); #else - Log(LogError, MPT_USTRING("Processing loaded data for tuning \"") + mpt::ToUnicode(mpt::CharsetISO8859_1, pTuning->GetName()) + MPT_USTRING("\" failed.")); + MPT_LOG(LogError, "tuning", MPT_USTRING("Processing loaded data for tuning \"") + mpt::ToUnicode(mpt::CharsetISO8859_1, pTuning->GetName()) + MPT_USTRING("\" failed.")); #endif delete pTuning; pTuning = nullptr; } Modified: trunk/OpenMPT/test/test.cpp =================================================================== --- trunk/OpenMPT/test/test.cpp 2015-06-14 21:14:26 UTC (rev 5318) +++ trunk/OpenMPT/test/test.cpp 2015-06-15 16:30:15 UTC (rev 5319) @@ -503,6 +503,7 @@ VERIFY_EQUAL(MPT_FORMAT("%b", "a"), "%b"); #if defined(_MFC_VER) + VERIFY_EQUAL(mpt::ToUString(CString(_T("foobar"))), MPT_USTRING("foobar")); VERIFY_EQUAL(MPT_TFORMAT("%1%2%3",1,2,3), _T("123")); VERIFY_EQUAL(MPT_TFORMAT("%1%2%3",1,mpt::tfmt::dec0<3>(2),3), _T("10023")); #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2015-06-15 16:30:56
|
Revision: 5320 http://sourceforge.net/p/modplug/code/5320 Author: manxorist Date: 2015-06-15 16:30:50 +0000 (Mon, 15 Jun 2015) Log Message: ----------- [Imp] version: Indicate the floatingpoint instruction set used by the current build in the extended version string. [Ref] version: For debug and/or test builds, indicate the required Windows kernel and API versions (gathered/guessed from the compiler version and the _WIN32_WINNT macro). As this is only a rough estimation, it will not be displayed for release builds in order to not confuse anyone. Exact version requirements of course depend on the individual features that are actually used. [Imp] version: In release builds, if no SSE is required and the required Windows kernel and API versions are both below WindowsXP (this is and will be the case for current VS2008 builds as well as has been the case for all Win32 release builds up until now), append the string " for older Windows" to the extended version string. Modified Paths: -------------- trunk/OpenMPT/common/version.cpp trunk/OpenMPT/mptrack/mptrack.rc Modified: trunk/OpenMPT/common/version.cpp =================================================================== --- trunk/OpenMPT/common/version.cpp 2015-06-15 16:30:15 UTC (rev 5319) +++ trunk/OpenMPT/common/version.cpp 2015-06-15 16:30:50 UTC (rev 5320) @@ -349,7 +349,58 @@ retval += GetRevisionString(); } #ifdef MODPLUG_TRACKER - retval += mpt::String::Print(" %1 bit", sizeof(void*) * 8); + retval += MPT_FORMAT(" %1 bit", sizeof(void*) * 8); + int minimumSSEVersion = 0; + int minimumAVXVersion = 0; + #if MPT_COMPILER_MSVC + #if defined(_M_IX86_FP) + #if defined(__AVX2__) + retval += " AVX2"; + minimumSSEVersion = 2; + minimumAVXVersion = 2; + #elif defined(__AVX__) + retval += " AVX"; + minimumSSEVersion = 2; + minimumAVXVersion = 1; + #elif (_M_IX86_FP >= 2) + retval += " SSE2"; + minimumSSEVersion = 2; + #elif (_M_IX86_FP == 1) + retval += " SSE"; + minimumSSEVersion = 1; + #else + retval += " x87"; + #endif + #endif + #endif + uint16 minimumKernelVersion = 0; + #if MPT_COMPILER_MSVC + #if MPT_MSVC_AT_LEAST(2012, 0) + minimumKernelVersion = std::max<uint16>(minimumKernelVersion, mpt::Windows::Version::WinVista); + #elif MPT_MSVC_AT_LEAST(2010, 0) + minimumKernelVersion = std::max<uint16>(minimumKernelVersion, mpt::Windows::Version::Win2000); + #elif MPT_MSVC_AT_LEAST(2008, 0) + minimumKernelVersion = std::max<uint16>(minimumKernelVersion, mpt::Windows::Version::Win98); + #endif + #endif + uint16 minimumApiVersion = 0; + #if defined(_WIN32_WINNT) + minimumApiVersion = std::max<uint16>(minimumApiVersion, _WIN32_WINNT); + #endif + if((minimumSSEVersion <= 0) && (minimumAVXVersion <= 0) && (minimumKernelVersion < mpt::Windows::Version::WinXP) && (minimumApiVersion < mpt::Windows::Version::WinXP)) + { + if(IsDebugBuild() || IsTestBuild() || IsDirty() || HasMixedRevisions()) + { + retval += " OLD"; + } else + { + retval += " for older Windows"; + } + } + if(IsDebugBuild() || IsTestBuild() || IsDirty() || HasMixedRevisions()) + { + retval += MPT_FORMAT(" OS>=0x%1 API>=0x%2", mpt::fmt::hex0<4>(minimumKernelVersion), mpt::fmt::hex0<4>(minimumApiVersion)); + } #endif if(IsDebugBuild() || IsTestBuild() || IsDirty() || HasMixedRevisions()) { Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2015-06-15 16:30:15 UTC (rev 5319) +++ trunk/OpenMPT/mptrack/mptrack.rc 2015-06-15 16:30:50 UTC (rev 5320) @@ -588,8 +588,8 @@ CONTROL "",IDC_BITMAP1,"Static",SS_BLACKRECT | SS_NOTIFY | SS_CENTERIMAGE,47,3,173,81,WS_EX_CLIENTEDGE CTEXT "",IDC_CREDITS,5,116,256,72,0,WS_EX_STATICEDGE DEFPUSHBUTTON "OK",IDOK,5,192,256,14,WS_GROUP - EDITTEXT IDC_EDIT2,15,100,233,12,ES_CENTER | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER - EDITTEXT IDC_EDIT3,26,87,212,12,ES_CENTER | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER + EDITTEXT IDC_EDIT2,6,100,252,12,ES_CENTER | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER + EDITTEXT IDC_EDIT3,6,87,252,12,ES_CENTER | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER END IDD_OPTIONS_PLAYER DIALOGEX 0, 0, 286, 281 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2015-06-16 09:42:05
|
Revision: 5323 http://sourceforge.net/p/modplug/code/5323 Author: manxorist Date: 2015-06-16 09:41:58 +0000 (Tue, 16 Jun 2015) Log Message: ----------- [Ref] Disable MSVC warning C4355 ('this' : used in base member initializer list) globally. Modified Paths: -------------- trunk/OpenMPT/common/BuildSettings.h trunk/OpenMPT/mptrack/TuningDialog.cpp trunk/OpenMPT/soundlib/Sndfile.cpp Modified: trunk/OpenMPT/common/BuildSettings.h =================================================================== --- trunk/OpenMPT/common/BuildSettings.h 2015-06-15 17:18:52 UTC (rev 5322) +++ trunk/OpenMPT/common/BuildSettings.h 2015-06-16 09:41:58 UTC (rev 5323) @@ -502,13 +502,11 @@ #if MPT_COMPILER_MSVC +#pragma warning(disable:4355) // 'this' : used in base member initializer list + // happens for immutable classes (i.e. classes containing const members) #pragma warning(disable:4512) // assignment operator could not be generated -#if MPT_MSVC_BEFORE(2010,0) -#pragma warning(disable:4355) // 'this' : used in base member initializer list -#endif - #if MPT_MSVC_AT_LEAST(2012,0) && MPT_MSVC_BEFORE(2013,0) #pragma warning(disable:4250) // 'mpt::fstream' : inherits 'std::basic_istream<_Elem,_Traits>::std::basic_istream<_Elem,_Traits>::_Add_vtordisp1' via dominance #endif Modified: trunk/OpenMPT/mptrack/TuningDialog.cpp =================================================================== --- trunk/OpenMPT/mptrack/TuningDialog.cpp 2015-06-15 17:18:52 UTC (rev 5322) +++ trunk/OpenMPT/mptrack/TuningDialog.cpp 2015-06-16 09:41:58 UTC (rev 5323) @@ -46,7 +46,6 @@ // CTuningDialog dialog -#pragma warning(disable : 4355) // "'this' : used in base member initializer list" IMPLEMENT_DYNAMIC(CTuningDialog, CDialog) CTuningDialog::CTuningDialog(CWnd* pParent, const TUNINGVECTOR& rVec, CTuning* pTun) : CDialog(CTuningDialog::IDD, pParent), @@ -58,7 +57,6 @@ m_TreeItemTuningItemMap(s_notFoundItemTree, s_notFoundItemTuning), m_TreeCtrlTuning(this), m_DoErrorExit(false) -#pragma warning(default : 4355) // "'this' : used in base member initializer list" //---------------------------------------- { m_pActiveTuning = pTun; Modified: trunk/OpenMPT/soundlib/Sndfile.cpp =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.cpp 2015-06-15 17:18:52 UTC (rev 5322) +++ trunk/OpenMPT/soundlib/Sndfile.cpp 2015-06-16 09:41:58 UTC (rev 5323) @@ -70,9 +70,6 @@ CTuningCollection* CSoundFile::s_pTuningsSharedLocal(0); #endif -#if MPT_COMPILER_MSVC -#pragma warning(disable : 4355) // "'this' : used in base member initializer list" -#endif CSoundFile::CSoundFile() : m_pTuningsTuneSpecific(nullptr), m_pModSpecs(&ModSpecs::itEx), @@ -84,9 +81,6 @@ #endif visitedSongRows(*this), m_pCustomLog(nullptr) -#if MPT_COMPILER_MSVC -#pragma warning(default : 4355) // "'this' : used in base member initializer list" -#endif //---------------------- { MemsetZero(MixSoundBuffer); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sag...@us...> - 2015-06-16 11:03:42
|
Revision: 5324 http://sourceforge.net/p/modplug/code/5324 Author: saga-games Date: 2015-06-16 11:03:37 +0000 (Tue, 16 Jun 2015) Log Message: ----------- [Fix] Tempo swing was not loaded properly. [Imp] Add test case for tempo swing. Modified Paths: -------------- trunk/OpenMPT/soundlib/Load_it.cpp trunk/OpenMPT/test/test.cpp trunk/OpenMPT/test/test.mptm Modified: trunk/OpenMPT/soundlib/Load_it.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_it.cpp 2015-06-16 09:41:58 UTC (rev 5323) +++ trunk/OpenMPT/soundlib/Load_it.cpp 2015-06-16 11:03:37 UTC (rev 5324) @@ -2222,7 +2222,7 @@ LimitMax(m_nDefaultGlobalVolume, MAX_GLOBAL_VOLUME); //m_nRestartPos //m_ModFlags - if(!m_tempoSwing.empty()) m_tempoSwing.resize(m_nDefaultRowsPerMeasure); + if(!m_tempoSwing.empty()) m_tempoSwing.resize(m_nDefaultRowsPerBeat); } Modified: trunk/OpenMPT/test/test.cpp =================================================================== --- trunk/OpenMPT/test/test.cpp 2015-06-16 09:41:58 UTC (rev 5323) +++ trunk/OpenMPT/test/test.cpp 2015-06-16 11:03:37 UTC (rev 5324) @@ -1367,8 +1367,7 @@ // Global Variables VERIFY_EQUAL_NONCONT(sndFile.GetTitle(), "Test Module_____________X"); VERIFY_EQUAL_NONCONT(sndFile.songMessage.at(0), 'O'); - VERIFY_EQUAL_NONCONT(sndFile.m_nDefaultTempo.GetInt(), 139); - VERIFY_EQUAL_NONCONT(sndFile.m_nDefaultTempo.GetFract(), 999); + VERIFY_EQUAL_NONCONT(sndFile.m_nDefaultTempo, TEMPO(139, 999)); VERIFY_EQUAL_NONCONT(sndFile.m_nDefaultSpeed, 5); VERIFY_EQUAL_NONCONT(sndFile.m_nDefaultGlobalVolume, 128); VERIFY_EQUAL_NONCONT(sndFile.m_nVSTiVolume, 42); @@ -1386,6 +1385,13 @@ VERIFY_EQUAL_NONCONT(sndFile.m_nRestartPos, 1); VERIFY_EQUAL_NONCONT(sndFile.m_nResampling, SRCMODE_POLYPHASE); VERIFY_EQUAL_NONCONT(sndFile.songArtist, MPT_USTRING("Tester")); + VERIFY_EQUAL_NONCONT(sndFile.m_tempoSwing.size(), 6); + VERIFY_EQUAL_NONCONT(sndFile.m_tempoSwing[0], 29360125); + VERIFY_EQUAL_NONCONT(sndFile.m_tempoSwing[1], 4194305); + VERIFY_EQUAL_NONCONT(sndFile.m_tempoSwing[2], 29360128); + VERIFY_EQUAL_NONCONT(sndFile.m_tempoSwing[3], 4194305); + VERIFY_EQUAL_NONCONT(sndFile.m_tempoSwing[4], 29360128); + VERIFY_EQUAL_NONCONT(sndFile.m_tempoSwing[5], 4194305); // Edit history VERIFY_EQUAL_NONCONT(sndFile.GetFileHistory().size() > 0, true); @@ -1614,14 +1620,26 @@ VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetOverrideSignature(), true); VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetRowsPerBeat(), 5); VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].GetRowsPerMeasure(), 10); + VERIFY_EQUAL_NONCONT(sndFile.Patterns[0].HasTempoSwing(), true); VERIFY_EQUAL_NONCONT(sndFile.Patterns.IsPatternEmpty(0), true); + { + TempoSwing swing = sndFile.Patterns[0].GetTempoSwing(); + VERIFY_EQUAL_NONCONT(swing.size(), 5); + VERIFY_EQUAL_NONCONT(swing[0], 16770149); + VERIFY_EQUAL_NONCONT(swing[1], 16803696); + VERIFY_EQUAL_NONCONT(swing[2], 16770157); + VERIFY_EQUAL_NONCONT(swing[3], 29347774); + VERIFY_EQUAL_NONCONT(swing[4], 4194304); + } + VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetName(), "Second Pattern"); VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetNumRows(), 32); VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetNumChannels(), 70); VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetOverrideSignature(), false); VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetRowsPerBeat(), 0); VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetRowsPerMeasure(), 0); + VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].HasTempoSwing(), false); VERIFY_EQUAL_NONCONT(sndFile.Patterns.IsPatternEmpty(1), false); VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetpModCommand(0, 0)->IsPcNote(), true); VERIFY_EQUAL_NONCONT(sndFile.Patterns[1].GetpModCommand(0, 0)->note, NOTE_PC); Modified: trunk/OpenMPT/test/test.mptm =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2015-06-17 09:47:33
|
Revision: 5328 http://sourceforge.net/p/modplug/code/5328 Author: manxorist Date: 2015-06-17 09:47:25 +0000 (Wed, 17 Jun 2015) Log Message: ----------- [Mod] About Dialog: Redesign the whole thing. Encoding more and more possible build settings into a single small version string got really difficult. Provide more space to display the build features and requirements in a more readable way and add some more potentially useful information there. [Mod] About Dialog: Show the OpenMPT license. [Mod] About Dialog: Make the credits scroller optional. By default the information is now shown in multiple tabs with read-only multi-line edit controls. [Fix] About Dialog: Wine apparently only generates mouse events when the message queue is completely empty AND mouse hover tracking events have timed out. This causes the mouse cursor to stay invisible for really long periods of time even after leaving the window area of the animated logo. Invisible mouse cursor is evil. Just dont hide it on Wine. [Fix] About Dialog: Use a Timer for the animated ripple bitmap instead of hooking into the global idle processing. This especially avoids having to sleep in the main message loop. This also avoids a synchronous UpdateWindow call in the Animate() codepath. As we do not sleep anymore, we receive way more MouseMove events; appropriately rate-limit new ripple generation. Modified Paths: -------------- trunk/OpenMPT/common/mptCPU.cpp trunk/OpenMPT/common/mptCPU.h trunk/OpenMPT/common/mptOS.cpp trunk/OpenMPT/common/mptOS.h trunk/OpenMPT/common/version.cpp trunk/OpenMPT/common/version.h trunk/OpenMPT/libopenmpt/libopenmpt_impl.cpp trunk/OpenMPT/mptrack/AboutDialog.cpp trunk/OpenMPT/mptrack/AboutDialog.h trunk/OpenMPT/mptrack/Mptrack.cpp trunk/OpenMPT/mptrack/TrackerSettings.cpp trunk/OpenMPT/mptrack/TrackerSettings.h trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/resource.h Modified: trunk/OpenMPT/common/mptCPU.cpp =================================================================== --- trunk/OpenMPT/common/mptCPU.cpp 2015-06-17 08:27:46 UTC (rev 5327) +++ trunk/OpenMPT/common/mptCPU.cpp 2015-06-17 09:47:25 UTC (rev 5328) @@ -124,11 +124,54 @@ #endif // MPT_COMPILER_MSVC && ENABLE_X86 -#else // !ENABLE_ASM +#endif // ENABLE_ASM + +#ifdef MODPLUG_TRACKER + + +int GetMinimumSSEVersion() +//------------------------ +{ + int minimumSSEVersion = 0; + #if MPT_COMPILER_MSVC + #if defined(_M_IX86_FP) + #if (_M_IX86_FP >= 2) + minimumSSEVersion = 2; + #elif (_M_IX86_FP == 1) + minimumSSEVersion = 1; + #endif + #endif + #endif + return minimumSSEVersion; +} + + +int GetMinimumAVXVersion() +//------------------------ +{ + int minimumAVXVersion = 0; + #if MPT_COMPILER_MSVC + #if defined(_M_IX86_FP) + #if defined(__AVX2__) + minimumAVXVersion = 2; + #elif defined(__AVX__) + minimumAVXVersion = 1; + #endif + #endif + #endif + return minimumAVXVersion; +} + + +#endif + + +#if !defined(MODPLUG_TRACKER) && !defined(ENABLE_ASM) + MPT_MSVC_WORKAROUND_LNK4221(mptCPU) -#endif // ENABLE_ASM +#endif OPENMPT_NAMESPACE_END Modified: trunk/OpenMPT/common/mptCPU.h =================================================================== --- trunk/OpenMPT/common/mptCPU.h 2015-06-17 08:27:46 UTC (rev 5327) +++ trunk/OpenMPT/common/mptCPU.h 2015-06-17 09:47:25 UTC (rev 5328) @@ -31,4 +31,10 @@ #endif // ENABLE_ASM +#ifdef MODPLUG_TRACKER +int GetMinimumSSEVersion(); +int GetMinimumAVXVersion(); +#endif + + OPENMPT_NAMESPACE_END Modified: trunk/OpenMPT/common/mptOS.cpp =================================================================== --- trunk/OpenMPT/common/mptOS.cpp 2015-06-17 08:27:46 UTC (rev 5327) +++ trunk/OpenMPT/common/mptOS.cpp 2015-06-17 09:47:25 UTC (rev 5328) @@ -118,6 +118,133 @@ } +mpt::ustring VersionToString(uint16 version) +//------------------------------------------ +{ + mpt::ustring result; + std::vector<std::pair<uint16, mpt::ustring> > versionMapNT; + versionMapNT.push_back(std::make_pair(static_cast<uint16>(mpt::Windows::Version::Win81), MPT_USTRING("Windows 8.1"))); + versionMapNT.push_back(std::make_pair(static_cast<uint16>(mpt::Windows::Version::Win8), MPT_USTRING("Windows 8"))); + versionMapNT.push_back(std::make_pair(static_cast<uint16>(mpt::Windows::Version::Win7), MPT_USTRING("Windows 7"))); + versionMapNT.push_back(std::make_pair(static_cast<uint16>(mpt::Windows::Version::WinVista), MPT_USTRING("Windows Vista"))); + versionMapNT.push_back(std::make_pair(static_cast<uint16>(mpt::Windows::Version::WinXP), MPT_USTRING("Windows XP"))); + versionMapNT.push_back(std::make_pair(static_cast<uint16>(mpt::Windows::Version::Win2000), MPT_USTRING("Windows 2000"))); + versionMapNT.push_back(std::make_pair(static_cast<uint16>(mpt::Windows::Version::WinNT4), MPT_USTRING("Windows NT4"))); + for(std::size_t i = 0; i < versionMapNT.size(); ++i) + { + if(version > versionMapNT[i].first) + { + result = MPT_USTRING("> ") + versionMapNT[i].second; + break; + } else if(version == versionMapNT[i].first) + { + result = versionMapNT[i].second; + break; + } + } + if(result.empty()) + { + result = MPT_UFORMAT("0x%1", mpt::ufmt::dec0<4>(version)); + } + return result; +} + + +mpt::ustring GetName() +//-------------------- +{ + mpt::ustring result; + if(mpt::Windows::Version::IsWine()) + { + result += MPT_USTRING("Wine"); + if(mpt::Wine::GetVersion()) + { + result += MPT_UFORMAT(" %1", mpt::ToUnicode(mpt::CharsetUTF8, mpt::Wine::VersionString(mpt::Wine::GetVersion()))); + } else + { + result += MPT_UFORMAT(" (unknown version: '%1')", mpt::ToUnicode(mpt::CharsetUTF8, mpt::Wine::RawGetVersion())); + } + } + if(mpt::Windows::Version::IsWine()) + { + result += MPT_USTRING(" ("); + } + if(mpt::Windows::Version::IsNT()) + { + if(mpt::Windows::Version::IsAtLeast(mpt::Windows::Version::Win81)) + { + result += MPT_USTRING("Windows 8.1 (or newer)"); + } else if(mpt::Windows::Version::IsAtLeast(mpt::Windows::Version::Win8)) + { + result += MPT_USTRING("Windows 8"); + } else if(mpt::Windows::Version::IsAtLeast(mpt::Windows::Version::Win7)) + { + result += MPT_USTRING("Windows 7"); + } else if(mpt::Windows::Version::IsAtLeast(mpt::Windows::Version::WinVista)) + { + result += MPT_USTRING("Windows Vista"); + } else if(mpt::Windows::Version::IsAtLeast(mpt::Windows::Version::WinXP)) + { + result += MPT_USTRING("Windows XP"); + } else if(mpt::Windows::Version::IsAtLeast(mpt::Windows::Version::Win2000)) + { + result += MPT_USTRING("Windows 2000"); + } else if(mpt::Windows::Version::IsAtLeast(mpt::Windows::Version::WinNT4)) + { + result += MPT_USTRING("Windows NT4"); + } else + { + result += MPT_USTRING("Generic Windows NT"); + } + } else + { + if(mpt::Windows::Version::IsAtLeast(mpt::Windows::Version::WinME)) + { + result += MPT_USTRING("Windows ME (or newer)"); + } else if(mpt::Windows::Version::IsAtLeast(mpt::Windows::Version::Win98)) + { + result += MPT_USTRING("Windows 98"); + } else + { + result += MPT_USTRING("Generic Windows 9x"); + } + } + if(mpt::Windows::Version::IsWine()) + { + result += MPT_USTRING(")"); + } + return result; +} + + +uint16 GetMinimumKernelLevel() +//---------------------------- +{ + uint16 minimumKernelVersion = 0; + #if MPT_COMPILER_MSVC + #if MPT_MSVC_AT_LEAST(2012, 0) + minimumKernelVersion = std::max<uint16>(minimumKernelVersion, mpt::Windows::Version::WinVista); + #elif MPT_MSVC_AT_LEAST(2010, 0) + minimumKernelVersion = std::max<uint16>(minimumKernelVersion, mpt::Windows::Version::Win2000); + #elif MPT_MSVC_AT_LEAST(2008, 0) + minimumKernelVersion = std::max<uint16>(minimumKernelVersion, mpt::Windows::Version::Win98); + #endif + #endif + return minimumKernelVersion; +} + + +uint16 GetMinimumAPILevel() +//------------------------- +{ + uint16 minimumApiVersion = 0; + #if defined(_WIN32_WINNT) + minimumApiVersion = std::max<uint16>(minimumApiVersion, _WIN32_WINNT); + #endif + return minimumApiVersion; +} + + #else // !MODPLUG_TRACKER Modified: trunk/OpenMPT/common/mptOS.h =================================================================== --- trunk/OpenMPT/common/mptOS.h 2015-06-17 08:27:46 UTC (rev 5327) +++ trunk/OpenMPT/common/mptOS.h 2015-06-17 09:47:25 UTC (rev 5328) @@ -61,6 +61,14 @@ bool IsOriginal(); bool IsWine(); +mpt::ustring VersionToString(uint16 version); + +mpt::ustring GetName(); + +uint16 GetMinimumKernelLevel(); + +uint16 GetMinimumAPILevel(); + #else // !MPT_OS_WINDOWS static inline void Init() { return; } @@ -76,6 +84,13 @@ static inline bool IsOriginal() { return false; } static inline bool IsWine() { return false; } +static inline mpt::ustring VersionToString(uint16 version) { return mpt::ufmt::hex0(<4>(version)); } + +static inline mpt::ustring GetName() { return MPT_USTRING(""); } + +static inline uint16 GetMinimumKernelLevel() { return 0; } +static inline uint16 GetMinimumAPILevel() { return 0; } + #endif // MPT_OS_WINDOWS #else // !MODPLUG_TRACKER Modified: trunk/OpenMPT/common/version.cpp =================================================================== --- trunk/OpenMPT/common/version.cpp 2015-06-17 08:27:46 UTC (rev 5327) +++ trunk/OpenMPT/common/version.cpp 2015-06-17 09:47:25 UTC (rev 5328) @@ -254,12 +254,12 @@ std::string GetBuildFlagsString() { std::string retval; -#ifdef MODPLUG_TRACKER - if(IsTestBuild()) - { - retval += " TEST"; - } -#endif // MODPLUG_TRACKER + #ifdef MODPLUG_TRACKER + if(IsTestBuild()) + { + retval += " TEST"; + } + #endif // MODPLUG_TRACKER if(IsDebugBuild()) { retval += " DEBUG"; @@ -305,6 +305,10 @@ #endif #endif #ifdef MODPLUG_TRACKER + if(IsForOlderWindows()) + { + retval += " OLDWIN"; + } #ifdef NO_VST retval += " NO_VST"; #endif @@ -341,77 +345,56 @@ return result; } -std::string GetVersionStringExtended() +bool IsForOlderWindows() { + #ifdef MODPLUG_TRACKER + return true + && (GetMinimumSSEVersion() <= 0) + && (GetMinimumAVXVersion() <= 0) + && (mpt::Windows::Version::GetMinimumKernelLevel() < mpt::Windows::Version::WinXP) + && (mpt::Windows::Version::GetMinimumAPILevel() < mpt::Windows::Version::WinXP) + ; + #else + return false; + #endif +} + +static std::string GetVersionString(bool verbose) +{ std::string retval = MPT_VERSION_STR; if(IsDebugBuild() || IsTestBuild() || IsDirty() || HasMixedRevisions()) { retval += GetRevisionString(); } #ifdef MODPLUG_TRACKER - retval += MPT_FORMAT(" %1 bit", sizeof(void*) * 8); - int minimumSSEVersion = 0; - int minimumAVXVersion = 0; - #if MPT_COMPILER_MSVC - #if defined(_M_IX86_FP) - #if defined(__AVX2__) - retval += " AVX2"; - minimumSSEVersion = 2; - minimumAVXVersion = 2; - #elif defined(__AVX__) - retval += " AVX"; - minimumSSEVersion = 2; - minimumAVXVersion = 1; - #elif (_M_IX86_FP >= 2) - retval += " SSE2"; - minimumSSEVersion = 2; - #elif (_M_IX86_FP == 1) - retval += " SSE"; - minimumSSEVersion = 1; - #else - retval += " x87"; - #endif - #endif - #endif - uint16 minimumKernelVersion = 0; - #if MPT_COMPILER_MSVC - #if MPT_MSVC_AT_LEAST(2012, 0) - minimumKernelVersion = std::max<uint16>(minimumKernelVersion, mpt::Windows::Version::WinVista); - #elif MPT_MSVC_AT_LEAST(2010, 0) - minimumKernelVersion = std::max<uint16>(minimumKernelVersion, mpt::Windows::Version::Win2000); - #elif MPT_MSVC_AT_LEAST(2008, 0) - minimumKernelVersion = std::max<uint16>(minimumKernelVersion, mpt::Windows::Version::Win98); - #endif - #endif - uint16 minimumApiVersion = 0; - #if defined(_WIN32_WINNT) - minimumApiVersion = std::max<uint16>(minimumApiVersion, _WIN32_WINNT); - #endif - if((minimumSSEVersion <= 0) && (minimumAVXVersion <= 0) && (minimumKernelVersion < mpt::Windows::Version::WinXP) && (minimumApiVersion < mpt::Windows::Version::WinXP)) + if(verbose) { - if(IsDebugBuild() || IsTestBuild() || IsDirty() || HasMixedRevisions()) - { - retval += " OLD"; - } else - { - retval += " for older Windows"; - } + retval += MPT_FORMAT(" %1 bit", sizeof(void*) * 8); } - if(IsDebugBuild() || IsTestBuild() || IsDirty() || HasMixedRevisions()) - { - retval += MPT_FORMAT(" OS>=0x%1 API>=0x%2", mpt::fmt::hex0<4>(minimumKernelVersion), mpt::fmt::hex0<4>(minimumApiVersion)); - } #endif if(IsDebugBuild() || IsTestBuild() || IsDirty() || HasMixedRevisions()) { retval += GetBuildFlagsString(); - #ifdef MODPLUG_TRACKER + } + #ifdef MODPLUG_TRACKER + if(verbose) + { retval += GetBuildFeaturesString(); - #endif - } + } + #endif return retval; } +std::string GetVersionStringSimple() +{ + return GetVersionString(false); +} + +std::string GetVersionStringExtended() +{ + return GetVersionString(true); +} + std::string GetVersionUrlString() { if(GetRevision() == 0) @@ -433,22 +416,24 @@ std::string GetContactString() { - return "Contact / Discussion:\n" + return + "Contact / Discussion:\n" "http://forum.openmpt.org/\n" "\n" "Updates:\n" - "http://openmpt.org/download"; + "http://openmpt.org/download\n" + ; } std::string GetFullCreditsString() { return - "\n" #ifdef MODPLUG_TRACKER "OpenMPT / ModPlug Tracker\n" #else "libopenmpt (based on OpenMPT / ModPlug Tracker)\n" #endif + "\n" "Copyright \xC2\xA9 2004-2015 Contributors\n" "Copyright \xC2\xA9 1997-2003 Olivier Lapicque\n" "\n" @@ -566,7 +551,39 @@ "\n" #endif ; +} +std::string GetLicenseString() +{ + return + "The OpenMPT code is licensed under the BSD license." "\n" + "" "\n" + "Copyright (c) 2004-2015, OpenMPT contributors" "\n" + "Copyright (c) 1997-2003, Olivier Lapicque" "\n" + "All rights reserved." "\n" + "" "\n" + "Redistribution and use in source and binary forms, with or without" "\n" + "modification, are permitted provided that the following conditions are met:" "\n" + " * Redistributions of source code must retain the above copyright" "\n" + " notice, this list of conditions and the following disclaimer." "\n" + " * Redistributions in binary form must reproduce the above copyright" "\n" + " notice, this list of conditions and the following disclaimer in the" "\n" + " documentation and/or other materials provided with the distribution." "\n" + " * Neither the name of the OpenMPT project nor the" "\n" + " names of its contributors may be used to endorse or promote products" "\n" + " derived from this software without specific prior written permission." "\n" + "" "\n" + "THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY" "\n" + "EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED" "\n" + "WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE" "\n" + "DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY" "\n" + "DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES" "\n" + "(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;" "\n" + "LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND" "\n" + "ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT" "\n" + "(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS" "\n" + "SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." "\n" + ; } } // namespace MptVersion Modified: trunk/OpenMPT/common/version.h =================================================================== --- trunk/OpenMPT/common/version.h 2015-06-17 08:27:46 UTC (rev 5327) +++ trunk/OpenMPT/common/version.h 2015-06-17 09:47:25 UTC (rev 5328) @@ -66,6 +66,9 @@ // Return whether the build was done from packaged source code (i.e. from the genertaed .zip or .tar source) bool IsPackage(); + // Returns true if the build will run on ancient Windows versions. + bool IsForOlderWindows(); + // Return a string decribing the working copy state (dirty and/or mixed revisions) (if built from a svn working copy and tsvn was available during build) std::string GetStateString(); // e.g. "" or "+mixed" or "+mixed+dirty" or "+dirty" @@ -81,7 +84,10 @@ // Return a string decribing the revision of the svn working copy and if it was dirty (+) or had mixed revisions (!) (if built from a svn working copy and tsvn was available during build) std::string GetRevisionString(); // e.g. "-r1234+" - // Returns MptVersion::str if the build is a clean release build straight from the repository or an extended strin otherwise (if built from a svn working copy and tsvn was available during build) + // Returns a simple version string + std::string GetVersionStringSimple(); // e.g. "1.17.02.08-r1234+ 32 bit" + + // Returns MptVersion::str if the build is a clean release build straight from the repository or an extended string otherwise (if built from a svn working copy and tsvn was available during build) std::string GetVersionStringExtended(); // e.g. "1.17.02.08-r1234+ 32 bit DEBUG" // Returns a string combining the repository url and the revision, suitable for checkout if the working copy was clean (if built from a svn working copy and tsvn was available during build) @@ -93,6 +99,9 @@ // Returns a multi-line string containing developer contact and community addresses std::string GetContactString(); + // Returns the OpenMPT license text + std::string GetLicenseString(); + } //namespace MptVersion Modified: trunk/OpenMPT/libopenmpt/libopenmpt_impl.cpp =================================================================== --- trunk/OpenMPT/libopenmpt/libopenmpt_impl.cpp 2015-06-17 08:27:46 UTC (rev 5327) +++ trunk/OpenMPT/libopenmpt/libopenmpt_impl.cpp 2015-06-17 09:47:25 UTC (rev 5328) @@ -38,36 +38,6 @@ namespace version { -static const char * const license = -"The OpenMPT code is licensed under the BSD license." "\n" -" " "\n" -"Copyright (c) 2004-2015, OpenMPT contributors" "\n" -"Copyright (c) 1997-2003, Olivier Lapicque" "\n" -"All rights reserved." "\n" -"" "\n" -"Redistribution and use in source and binary forms, with or without" "\n" -"modification, are permitted provided that the following conditions are met:" "\n" -" * Redistributions of source code must retain the above copyright" "\n" -" notice, this list of conditions and the following disclaimer." "\n" -" * Redistributions in binary form must reproduce the above copyright" "\n" -" notice, this list of conditions and the following disclaimer in the" "\n" -" documentation and/or other materials provided with the distribution." "\n" -" * Neither the name of the OpenMPT project nor the" "\n" -" names of its contributors may be used to endorse or promote products" "\n" -" derived from this software without specific prior written permission." "\n" -"" "\n" -"THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY" "\n" -"EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED" "\n" -"WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE" "\n" -"DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY" "\n" -"DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES" "\n" -"(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;" "\n" -"LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND" "\n" -"ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT" "\n" -"(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS" "\n" -"SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." "\n" -; - std::uint32_t get_library_version() { return OPENMPT_API_VERSION | ( MptVersion::GetRevision() & 0xffff ); } @@ -127,7 +97,7 @@ } static std::string get_license_string() { - return license; + return MptVersion::GetLicenseString(); } std::string get_string( const std::string & key ) { Modified: trunk/OpenMPT/mptrack/AboutDialog.cpp =================================================================== --- trunk/OpenMPT/mptrack/AboutDialog.cpp 2015-06-17 08:27:46 UTC (rev 5327) +++ trunk/OpenMPT/mptrack/AboutDialog.cpp 2015-06-17 09:47:25 UTC (rev 5328) @@ -2,16 +2,16 @@ #include "resource.h" #include "AboutDialog.h" #include "PNG.h" +#include "Mptrack.h" +#include "TrackerSettings.h" #include "../common/version.h" OPENMPT_NAMESPACE_BEGIN -CRippleBitmap *CRippleBitmap::instance = nullptr; CAboutDlg *CAboutDlg::instance = nullptr; - BEGIN_MESSAGE_MAP(CRippleBitmap, CWnd) ON_WM_PAINT() ON_WM_ERASEBKGND() @@ -54,7 +54,6 @@ bi.biCompression = BI_RGB; bi.biSizeImage = bitmapSrc->width * bitmapSrc->height * 4; - instance = this; } @@ -67,13 +66,19 @@ } delete bitmapSrc; delete bitmapTarget; - if(instance == this) instance = nullptr; } void CRippleBitmap::OnMouseMove(UINT nFlags, CPoint point) //-------------------------------------------------------- { + + // Rate limit in order to avoid too may ripples. + DWORD now = timeGetTime(); + if(now - lastRipple < UPDATE_INTERVAL) + return; + lastRipple = now; + // Initiate ripples at cursor location Limit(point.x, 1, int(bitmapSrc->width) - 2); Limit(point.y, 2, int(bitmapSrc->height) - 3); @@ -91,10 +96,21 @@ damp = !(nFlags & MK_RBUTTON); activity = true; + // Wine will only ever generate MouseLeave message when the message + // queue is completely empty and the hover timeout has expired. + // This results in a hidden mouse cursor long after it had already left the + // control. + // Avoid hiding the mouse cursor on Wine. Interferring with the users input + // methods is an absolute no-go. + if(mpt::Windows::Version::IsWine()) + { + return; + } + TRACKMOUSEEVENT me; me.cbSize = sizeof(TRACKMOUSEEVENT); + me.hwndTrack = m_hWnd; me.dwFlags = TME_LEAVE | TME_HOVER; - me.hwndTrack = m_hWnd; me.dwHoverTime = 1500; if(TrackMouseEvent(&me) && showMouse) @@ -139,7 +155,7 @@ return false; DWORD now = timeGetTime(); - if(now - lastFrame < 15) + if(now - lastFrame < UPDATE_INTERVAL) return true; lastFrame = now; activity = false; @@ -198,23 +214,35 @@ frame = !frame; InvalidateRect(NULL, FALSE); - UpdateWindow(); - Sleep(10); //give away some CPU return true; } +CAboutDlg::CAboutDlg() +//-------------------- +{ + m_TimerID = 0; + +} + + CAboutDlg::~CAboutDlg() //--------------------- { instance = NULL; } + void CAboutDlg::OnOK() //-------------------- { instance = NULL; + if(m_TimerID != 0) + { + KillTimer(m_TimerID); + m_TimerID = 0; + } DestroyWindow(); delete this; } @@ -232,21 +260,185 @@ { CDialog::OnInitDialog(); + mpt::ustring app; + app += MPT_UFORMAT("OpenMPT %1 bit", sizeof(void*) * 8) + + (MptVersion::IsForOlderWindows() ? MPT_USTRING(" for older Windows") : MPT_USTRING("")) + + MPT_USTRING("\n"); + app += MPT_USTRING("Version ") + mpt::ToUnicode(mpt::CharsetUTF8, MptVersion::GetVersionStringSimple()) + MPT_USTRING("\n"); + app += MPT_USTRING("\n"); + app += MPT_USTRING("http://openmpt.org/\n"); + SetDlgItemText(IDC_EDIT3, mpt::ToCString(mpt::String::Replace(app, MPT_USTRING("\n"), MPT_USTRING("\r\n")))); + m_bmp.SubclassDlgItem(IDC_BITMAP1, this); - SetDlgItemText(IDC_EDIT2, mpt::ToCString(mpt::CharsetASCII, std::string("Build Date: ") + MptVersion::GetBuildDateString())); - SetDlgItemText(IDC_EDIT3, mpt::ToCString(mpt::CharsetASCII, std::string("OpenMPT ") + MptVersion::GetVersionStringExtended())); m_static.SubclassDlgItem(IDC_CREDITS, this); - m_static.SetCredits(mpt::ToCString(mpt::CharsetUTF8, mpt::String::Replace(MptVersion::GetFullCreditsString(), "\n", "|") + "|" + mpt::String::Replace(MptVersion::GetContactString(), "\n", "|" ) + "||||||")); - m_static.SetSpeed(DISPLAY_SLOW); - m_static.SetColor(BACKGROUND_COLOR, RGB(138, 165, 219)); // Background Colour - m_static.SetTransparent(); // Set parts of bitmaps with RGB(192,192,192) transparent - m_static.SetGradient(GRADIENT_LEFT_DARK); // Background goes from blue to black from left to right - // m_static.SetBkImage(IDB_BITMAP1); // Background image + m_static.SetSpeed(DISPLAY_MEDIUM); + m_static.SetColor(BACKGROUND_COLOR, RGB(83, 107, 163)); // Background Colour +// m_static.SetColor(BACKGROUND_COLOR, RGB(43, 69, 130)); // Background Colour + m_static.SetGradient(GRADIENT_RIGHT_DARK); // Background goes from blue to black from left to right + + m_Tab.SubclassDlgItem(IDC_TABABOUT, this); + + m_Tab.InsertItem(TCIF_TEXT, 0, _T("OpenMPT"), 0, 0, 0, 0); + m_Tab.InsertItem(TCIF_TEXT, 1, _T("Credits"), 0, 0, 0, 0); + m_Tab.InsertItem(TCIF_TEXT, 2, _T("License"), 0, 0, 0, 0); + m_Tab.InsertItem(TCIF_TEXT, 3, _T("Contact"), 0, 0, 0, 0); + m_Tab.SetCurSel(0); + + m_CheckScroll.SetCheck(TrackerSettings::Instance().MiscAboutScrollText ? BST_CHECKED : BST_UNCHECKED); + + OnTabChange(nullptr, nullptr); + OnCheckScroll(); + + mpt::ustring text; + text += GetTabText(0); + text += MPT_USTRING("\n\n\n"); + text += GetTabText(1); + text += MPT_USTRING("\n\n\n"); + text += GetTabText(3); + text += MPT_USTRING("\n\n\n"); + text += GetTabText(2); + text += MPT_USTRING("\n\n\n"); + m_static.SetCredits(mpt::ToCString(mpt::String::Replace(text, MPT_USTRING("\n"), MPT_USTRING("|")))); m_static.StartScrolling(); + + if(m_TimerID != 0) + { + KillTimer(m_TimerID); + m_TimerID = 0; + } + m_TimerID = SetTimer(TIMERID_ABOUT_DEFAULT, CRippleBitmap::UPDATE_INTERVAL, nullptr); + return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } +void CAboutDlg::OnTimer(UINT_PTR nIDEvent) +//---------------------------------------- +{ + if(nIDEvent == m_TimerID) + { + m_bmp.Animate(); + } +} + + +void CAboutDlg::OnCheckScroll() +{ + if(m_CheckScroll.GetCheck() == BST_CHECKED) + { + m_Tab.ShowWindow(SW_HIDE); + m_TabEdit.ShowWindow(SW_HIDE); + m_static.ShowWindow(SW_SHOW); + TrackerSettings::Instance().MiscAboutScrollText = true; + } else + { + m_Tab.ShowWindow(SW_SHOW); + m_TabEdit.ShowWindow(SW_SHOW); + m_static.ShowWindow(SW_HIDE); + TrackerSettings::Instance().MiscAboutScrollText = false; + } +} + + +void CAboutDlg::OnTabChange(NMHDR * /*pNMHDR*/ , LRESULT * /*pResult*/ ) +{ + m_TabEdit.SetWindowText(mpt::ToCString(mpt::String::Replace(GetTabText(m_Tab.GetCurSel()), MPT_USTRING("\n"), MPT_USTRING("\r\n")))); +} + + +mpt::ustring CAboutDlg::GetTabText(int tab) +{ + const mpt::ustring lf = MPT_USTRING("\n"); + mpt::ustring text; + switch(tab) + { + case 0: + text += MPT_USTRING("OpenMPT - Open ModPlug Tracker") + lf; + text += lf; + text += MPT_UFORMAT("Version: %1", mpt::ToUnicode(mpt::CharsetUTF8, MptVersion::GetVersionStringExtended())) + lf; + text += MPT_UFORMAT("Source Code URL: %1", mpt::ToUnicode(mpt::CharsetUTF8, MptVersion::GetUrl())) + lf; + text += MPT_UFORMAT("Build Date: %1", mpt::ToUnicode(mpt::CharsetUTF8, MptVersion::GetBuildDateString())) + lf; + text += MPT_UFORMAT("Required Windows Kernel Level: %1", mpt::Windows::Version::VersionToString(mpt::Windows::Version::GetMinimumKernelLevel())) + lf; + text += MPT_UFORMAT("Required Windows API Level: %1", mpt::Windows::Version::VersionToString(mpt::Windows::Version::GetMinimumAPILevel())) + lf; + { + text += MPT_USTRING("Required CPU features: "); + std::vector<mpt::ustring> features; + if(GetMinimumSSEVersion() <= 0 && GetMinimumAVXVersion() <= 0 ) features.push_back(MPT_USTRING("FPU")); + if(GetMinimumSSEVersion() >= 1) features.push_back(MPT_USTRING("SSE")); + if(GetMinimumSSEVersion() >= 2) features.push_back(MPT_USTRING("SSE2")); + if(GetMinimumAVXVersion() >= 1) features.push_back(MPT_USTRING("AVX")); + if(GetMinimumAVXVersion() >= 2) features.push_back(MPT_USTRING("AVX2")); + text += mpt::String::Combine(features, MPT_USTRING(" ")); + text += lf; + } + { + text += MPT_USTRING("Optional CPU features used: "); + std::vector<mpt::ustring> features; + #if MPT_COMPILER_MSVC && defined(ENABLE_ASM) + #if defined(ENABLE_X86) + features.push_back(MPT_USTRING("x86-32")); + #endif + #if defined(ENABLE_X64) + features.push_back(MPT_USTRING("x86-64")); + #endif + #if defined(ENABLE_MMX) + if(GetProcSupport() & PROCSUPPORT_MMX) features.push_back(MPT_USTRING("MMX")); + #endif + #if defined(ENABLE_SSE) + if(GetProcSupport() & PROCSUPPORT_SSE) features.push_back(MPT_USTRING("SSE")); + #endif + #if defined(ENABLE_SSE2) + if(GetProcSupport() & PROCSUPPORT_SSE2) features.push_back(MPT_USTRING("SSE2")); + #endif + #if defined(ENABLE_SSE3) + if(GetProcSupport() & PROCSUPPORT_SSE3) features.push_back(MPT_USTRING("SSE3")); + #endif + #if defined(ENABLE_X86_AMD) + if(GetProcSupport() & PROCSUPPORT_AMD_MMXEXT) features.push_back(MPT_USTRING("AMD-MMXEXT")); + if(GetProcSupport() & PROCSUPPORT_AMD_3DNOW) features.push_back(MPT_USTRING("AMD-3DNOW")); + if(GetProcSupport() & PROCSUPPORT_AMD_3DNOW2) features.push_back(MPT_USTRING("AMD-3DNOW2")); + #endif + #endif + text += mpt::String::Combine(features, MPT_USTRING(" ")); + text += lf; + } + text += lf; + text += MPT_UFORMAT("Operating System: %1", mpt::Windows::Version::GetName()) + lf; + text += lf; + text += MPT_UFORMAT("OpenMPT Path%2: %1", theApp.GetAppDirPath(), theApp.IsPortableMode() ? MPT_USTRING(" (portable)") : MPT_USTRING("")) + lf; + text += MPT_UFORMAT("Settings%2: %1", theApp.GetConfigFileName(), theApp.IsPortableMode() ? MPT_USTRING(" (portable)") : MPT_USTRING("")) + lf; + break; + case 1: + text += mpt::ToUnicode(mpt::CharsetUTF8, MptVersion::GetFullCreditsString()); + break; + case 2: + text += mpt::ToUnicode(mpt::CharsetUTF8, MptVersion::GetLicenseString()); + break; + case 3: + text += mpt::ToUnicode(mpt::CharsetUTF8, MptVersion::GetContactString()); + break; + } + return text; +} + + +void CAboutDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + DDX_Control(pDX, IDC_CHECK_ABOUTSCROLL, m_CheckScroll); + DDX_Control(pDX, IDC_TABABOUT, m_Tab); + DDX_Control(pDX, IDC_EDITABOUT, m_TabEdit); +} + + +BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) + ON_WM_TIMER() + ON_NOTIFY(TCN_SELCHANGE, IDC_TABABOUT, &CAboutDlg::OnTabChange) + ON_COMMAND(IDC_CHECK_ABOUTSCROLL, &CAboutDlg::OnCheckScroll) +END_MESSAGE_MAP() + + + OPENMPT_NAMESPACE_END Modified: trunk/OpenMPT/mptrack/AboutDialog.h =================================================================== --- trunk/OpenMPT/mptrack/AboutDialog.h 2015-06-17 08:27:46 UTC (rev 5327) +++ trunk/OpenMPT/mptrack/AboutDialog.h 2015-06-17 09:47:25 UTC (rev 5328) @@ -10,19 +10,25 @@ class CRippleBitmap: public CWnd //=============================== { + +public: + + static const DWORD UPDATE_INTERVAL = 15; // milliseconds + protected: + BITMAPINFOHEADER bi; PNG::Bitmap *bitmapSrc, *bitmapTarget; std::vector<int32_t> offset1, offset2; int32_t *frontBuf, *backBuf; DWORD lastFrame; // Time of last frame + DWORD lastRipple; // Time of last added ripple bool frame; // Backbuffer toggle bool damp; // Ripple damping status bool activity; // There are actually some ripples bool showMouse; public: - static CRippleBitmap *instance; CRippleBitmap(); ~CRippleBitmap(); @@ -46,10 +52,16 @@ protected: CRippleBitmap m_bmp; CCreditStatic m_static; + CTabCtrl m_Tab; + CEdit m_TabEdit; + CButton m_CheckScroll; + UINT_PTR m_TimerID; + static const UINT_PTR TIMERID_ABOUT_DEFAULT = 3; public: static CAboutDlg *instance; + CAboutDlg(); ~CAboutDlg(); // Implementation @@ -57,6 +69,12 @@ virtual BOOL OnInitDialog(); virtual void OnOK(); virtual void OnCancel(); + DECLARE_MESSAGE_MAP(); + virtual void DoDataExchange(CDataExchange* pDX); + afx_msg void OnTabChange(NMHDR *pNMHDR, LRESULT *pResult); + void OnTimer(UINT_PTR nIDEvent); + void OnCheckScroll(); + mpt::ustring GetTabText(int tab); }; OPENMPT_NAMESPACE_END Modified: trunk/OpenMPT/mptrack/Mptrack.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mptrack.cpp 2015-06-17 08:27:46 UTC (rev 5327) +++ trunk/OpenMPT/mptrack/Mptrack.cpp 2015-06-17 09:47:25 UTC (rev 5328) @@ -1479,11 +1479,6 @@ CMainFrame::GetMainFrame()->IdleHandlerSounddevice(); } - if (CRippleBitmap::instance) - { - if (CRippleBitmap::instance->Animate()) return TRUE; - } - // Call plugins idle routine for open editor if (m_pPluginManager) { Modified: trunk/OpenMPT/mptrack/TrackerSettings.cpp =================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.cpp 2015-06-17 08:27:46 UTC (rev 5327) +++ trunk/OpenMPT/mptrack/TrackerSettings.cpp 2015-06-17 09:47:25 UTC (rev 5328) @@ -221,6 +221,7 @@ , autoApplySmoothFT2Ramping(conf, "Misc", "SmoothFT2Ramping", false) , MiscITCompressionStereo(conf, "Misc", "ITCompressionStereo", 0) , MiscITCompressionMono(conf, "Misc", "ITCompressionMono", 0) + , MiscAboutScrollText(conf, "Misc", "AboutScrollText", false) // Sound Settings , m_SoundSampleRates(conf, "Sound Settings", "SampleRates", GetDefaultSampleRates()) , m_MorePortaudio(conf, "Sound Settings", "MorePortaudio", false) Modified: trunk/OpenMPT/mptrack/TrackerSettings.h =================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.h 2015-06-17 08:27:46 UTC (rev 5327) +++ trunk/OpenMPT/mptrack/TrackerSettings.h 2015-06-17 09:47:25 UTC (rev 5328) @@ -526,6 +526,7 @@ Setting<bool> autoApplySmoothFT2Ramping; Setting<uint32> MiscITCompressionStereo; // Mask: bit0: IT, bit1: Compat IT, bit2: MPTM Setting<uint32> MiscITCompressionMono; // Mask: bit0: IT, bit1: Compat IT, bit2: MPTM + Setting<bool> MiscAboutScrollText; // Sound Settings Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2015-06-17 08:27:46 UTC (rev 5327) +++ trunk/OpenMPT/mptrack/mptrack.rc 2015-06-17 09:47:25 UTC (rev 5328) @@ -580,16 +580,18 @@ // Dialog // -IDD_ABOUTBOX DIALOGEX 0, 0, 267, 210 +IDD_ABOUTBOX DIALOGEX 0, 0, 340, 254 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "About OpenMPT" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - CONTROL "",IDC_BITMAP1,"Static",SS_BLACKRECT | SS_NOTIFY | SS_CENTERIMAGE,47,3,173,81,WS_EX_CLIENTEDGE - CTEXT "",IDC_CREDITS,5,116,256,72,0,WS_EX_STATICEDGE - DEFPUSHBUTTON "OK",IDOK,5,192,256,14,WS_GROUP - EDITTEXT IDC_EDIT2,6,100,252,12,ES_CENTER | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER - EDITTEXT IDC_EDIT3,6,87,252,12,ES_CENTER | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER + DEFPUSHBUTTON "OK",IDOK,264,78,66,14,WS_GROUP + CONTROL "",IDC_BITMAP1,"Static",SS_BLACKRECT | SS_NOTIFY | SS_CENTERIMAGE,6,6,173,81,WS_EX_CLIENTEDGE + EDITTEXT IDC_EDIT3,186,12,144,60,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER + CONTROL "",IDC_TABABOUT,"SysTabControl32",0x0,6,96,330,150 + EDITTEXT IDC_EDITABOUT,12,114,318,126,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL + CTEXT "",IDC_CREDITS,6,96,330,150,0,WS_EX_STATICEDGE + CONTROL "&Scroll Text",IDC_CHECK_ABOUTSCROLL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,192,78,54,12 END IDD_OPTIONS_PLAYER DIALOGEX 0, 0, 286, 281 @@ -1748,8 +1750,8 @@ BEGIN IDD_ABOUTBOX, DIALOG BEGIN - RIGHTMARGIN, 261 - BOTTOMMARGIN, 205 + RIGHTMARGIN, 334 + BOTTOMMARGIN, 249 END IDD_OPTIONS_PLAYER, DIALOG Modified: trunk/OpenMPT/mptrack/resource.h =================================================================== --- trunk/OpenMPT/mptrack/resource.h 2015-06-17 08:27:46 UTC (rev 5327) +++ trunk/OpenMPT/mptrack/resource.h 2015-06-17 09:47:25 UTC (rev 5328) @@ -133,7 +133,7 @@ #define IDD_RESAMPLE 537 #define IDD_MISSINGSAMPLES 538 #define IDD_WECLOME 539 -#define IDD_TEMPO_SWING 540 +#define IDD_TEMPO_SWING 540 #define IDC_BUTTON1 1001 #define IDC_BUTTON2 1002 #define IDC_BUTTON3 1003 @@ -960,6 +960,9 @@ #define IDC_STATIC_CHANNELMAPPING 2480 #define IDC_STATIC_LATENCY 2481 #define IDC_STATIC_FORMAT 2482 +#define IDC_TABABOUT 2483 +#define IDC_EDITABOUT 2484 +#define IDC_CHECK_ABOUTSCROLL 2485 #define ID_FILE_NEWMOD 32771 #define ID_FILE_NEWXM 32772 #define ID_FILE_NEWS3M 32773 @@ -1258,7 +1261,7 @@ #define _APS_3D_CONTROLS 1 #define _APS_NEXT_RESOURCE_VALUE 541 #define _APS_NEXT_COMMAND_VALUE 44645 -#define _APS_NEXT_CONTROL_VALUE 2483 +#define _APS_NEXT_CONTROL_VALUE 2486 #define _APS_NEXT_SYMED_VALUE 901 #endif #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2015-06-18 07:45:58
|
Revision: 5332 http://sourceforge.net/p/modplug/code/5332 Author: manxorist Date: 2015-06-18 07:45:52 +0000 (Thu, 18 Jun 2015) Log Message: ----------- [Ref] More mpt::ustring. Modified Paths: -------------- trunk/OpenMPT/common/version.cpp trunk/OpenMPT/common/version.h trunk/OpenMPT/libopenmpt/libopenmpt_impl.cpp trunk/OpenMPT/mptrack/AboutDialog.cpp Modified: trunk/OpenMPT/common/version.cpp =================================================================== --- trunk/OpenMPT/common/version.cpp 2015-06-17 18:13:55 UTC (rev 5331) +++ trunk/OpenMPT/common/version.cpp 2015-06-18 07:45:52 UTC (rev 5332) @@ -417,20 +417,20 @@ return url + "@" + mpt::ToString(GetRevision()) + GetStateString(); } -std::string GetContactString() +mpt::ustring GetContactString() { - return + return MPT_UTF8( "Contact / Discussion:\n" "http://forum.openmpt.org/\n" "\n" "Updates:\n" "http://openmpt.org/download\n" - ; + ); } -std::string GetFullCreditsString() +mpt::ustring GetFullCreditsString() { - return + return mpt::ToUnicode(mpt::CharsetUTF8, #ifdef MODPLUG_TRACKER "OpenMPT / ModPlug Tracker\n" #else @@ -553,12 +553,12 @@ "ASIO Technology by Steinberg Media Technologies GmbH\n" "\n" #endif - ; + ); } -std::string GetLicenseString() +mpt::ustring GetLicenseString() { - return + return MPT_UTF8( "The OpenMPT code is licensed under the BSD license." "\n" "" "\n" "Copyright (c) 2004-2015, OpenMPT contributors" "\n" @@ -586,7 +586,7 @@ "ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT" "\n" "(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS" "\n" "SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." "\n" - ; + ); } } // namespace MptVersion Modified: trunk/OpenMPT/common/version.h =================================================================== --- trunk/OpenMPT/common/version.h 2015-06-17 18:13:55 UTC (rev 5331) +++ trunk/OpenMPT/common/version.h 2015-06-18 07:45:52 UTC (rev 5332) @@ -94,13 +94,13 @@ std::string GetVersionUrlString(); // e.g. "https://svn.code.sf.net/p/modplug/code/trunk/OpenMPT@1234+dirty" // Returns a multi-line string containing the full credits for the code base - std::string GetFullCreditsString(); + mpt::ustring GetFullCreditsString(); // Returns a multi-line string containing developer contact and community addresses - std::string GetContactString(); + mpt::ustring GetContactString(); // Returns the OpenMPT license text - std::string GetLicenseString(); + mpt::ustring GetLicenseString(); } //namespace MptVersion Modified: trunk/OpenMPT/libopenmpt/libopenmpt_impl.cpp =================================================================== --- trunk/OpenMPT/libopenmpt/libopenmpt_impl.cpp 2015-06-17 18:13:55 UTC (rev 5331) +++ trunk/OpenMPT/libopenmpt/libopenmpt_impl.cpp 2015-06-18 07:45:52 UTC (rev 5332) @@ -89,15 +89,15 @@ } static std::string get_credits_string() { - return MptVersion::GetFullCreditsString(); + return mpt::ToCharset(mpt::CharsetUTF8, MptVersion::GetFullCreditsString()); } static std::string get_contact_string() { - return MptVersion::GetContactString(); + return mpt::ToCharset(mpt::CharsetUTF8, MptVersion::GetContactString()); } static std::string get_license_string() { - return MptVersion::GetLicenseString(); + return mpt::ToCharset(mpt::CharsetUTF8, MptVersion::GetLicenseString()); } std::string get_string( const std::string & key ) { Modified: trunk/OpenMPT/mptrack/AboutDialog.cpp =================================================================== --- trunk/OpenMPT/mptrack/AboutDialog.cpp 2015-06-17 18:13:55 UTC (rev 5331) +++ trunk/OpenMPT/mptrack/AboutDialog.cpp 2015-06-18 07:45:52 UTC (rev 5332) @@ -478,13 +478,13 @@ } break; case 2: - text += mpt::ToUnicode(mpt::CharsetUTF8, MptVersion::GetFullCreditsString()); + text += MptVersion::GetFullCreditsString(); break; case 3: - text += mpt::ToUnicode(mpt::CharsetUTF8, MptVersion::GetLicenseString()); + text += MptVersion::GetLicenseString(); break; case 4: - text += mpt::ToUnicode(mpt::CharsetUTF8, MptVersion::GetContactString()); + text += MptVersion::GetContactString(); break; } return text; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2015-06-19 17:19:41
|
Revision: 5340 http://sourceforge.net/p/modplug/code/5340 Author: manxorist Date: 2015-06-19 17:19:34 +0000 (Fri, 19 Jun 2015) Log Message: ----------- [Mod] Add applicatiopn manifest compatibility section to both OpenMPT and PluginBridge. Since Windows 7, programs without this section will only get a Windows Vista compatiblity environment. OpenMPT does not want to stay behind and works just fine with modern behaviour (the differences as documented do not seem to apply to OpenMPT anyway). Since Windows 8.1, this also affects version information via GetVersionEx (which returns Win8 on Win8.1 and Win10 without a compatibility manifest). Windows versions before Windows 7 do ignore this setting. As this change might, in some remote theoretical case, affect plugin compatibility, bump the OpenMPT version. Note: mt.exe from both VS2008 and VS2010 does not know about the compatiblity manifest element and issues a warning. The manifest gets properly added to the .exe nevertheless. Unfortunately, there is nothing we can do about the warning. [Mod] OpenMPT: Version is now 1.25.00.15 Modified Paths: -------------- trunk/OpenMPT/build/premake/mpt-PluginBridge.lua trunk/OpenMPT/build/vs2008/PluginBridge.vcproj trunk/OpenMPT/build/vs2010/PluginBridge.vcxproj trunk/OpenMPT/build/vs2012/PluginBridge.vcxproj trunk/OpenMPT/build/vs2013/PluginBridge.vcxproj trunk/OpenMPT/build/vs2015/PluginBridge.vcxproj trunk/OpenMPT/common/versionNumber.h trunk/OpenMPT/mptrack/res/OpenMPT.manifest trunk/OpenMPT/mptrack/res/rt_manif.bin trunk/OpenMPT/pluginBridge/PluginBridge.vcxproj Added Paths: ----------- trunk/OpenMPT/pluginBridge/PluginBridge.manifest Modified: trunk/OpenMPT/build/premake/mpt-PluginBridge.lua =================================================================== --- trunk/OpenMPT/build/premake/mpt-PluginBridge.lua 2015-06-19 17:13:30 UTC (rev 5339) +++ trunk/OpenMPT/build/premake/mpt-PluginBridge.lua 2015-06-19 17:19:34 UTC (rev 5340) @@ -16,8 +16,13 @@ "../../pluginBridge/Bridge.h", "../../pluginBridge/BridgeCommon.h", "../../pluginBridge/BridgeOpCodes.h", + } + files { "../../pluginBridge/PluginBridge.rc", } + files { + "../../pluginBridge/PluginBridge.manifest", + } defines { "MODPLUG_TRACKER" } flags { "SEH", "Unicode", "WinMain", "ExtraWarnings" } prebuildcommands { "..\\..\\build\\svn_version\\update_svn_version_vs_premake.cmd $(IntDir)" } Modified: trunk/OpenMPT/build/vs2008/PluginBridge.vcproj =================================================================== --- trunk/OpenMPT/build/vs2008/PluginBridge.vcproj 2015-06-19 17:13:30 UTC (rev 5339) +++ trunk/OpenMPT/build/vs2008/PluginBridge.vcproj 2015-06-19 17:19:34 UTC (rev 5340) @@ -82,6 +82,7 @@ /> <Tool Name="VCManifestTool" + AdditionalManifestFiles="../../pluginBridge/PluginBridge.manifest" /> <Tool Name="VCXDCMakeTool" @@ -164,6 +165,7 @@ /> <Tool Name="VCManifestTool" + AdditionalManifestFiles="../../pluginBridge/PluginBridge.manifest" /> <Tool Name="VCXDCMakeTool" @@ -248,6 +250,7 @@ /> <Tool Name="VCManifestTool" + AdditionalManifestFiles="../../pluginBridge/PluginBridge.manifest" /> <Tool Name="VCXDCMakeTool" @@ -333,6 +336,7 @@ /> <Tool Name="VCManifestTool" + AdditionalManifestFiles="../../pluginBridge/PluginBridge.manifest" /> <Tool Name="VCXDCMakeTool" @@ -414,6 +418,7 @@ /> <Tool Name="VCManifestTool" + AdditionalManifestFiles="../../pluginBridge/PluginBridge.manifest" /> <Tool Name="VCXDCMakeTool" @@ -496,6 +501,7 @@ /> <Tool Name="VCManifestTool" + AdditionalManifestFiles="../../pluginBridge/PluginBridge.manifest" /> <Tool Name="VCXDCMakeTool" @@ -581,6 +587,7 @@ /> <Tool Name="VCManifestTool" + AdditionalManifestFiles="../../pluginBridge/PluginBridge.manifest" /> <Tool Name="VCXDCMakeTool" @@ -667,6 +674,7 @@ /> <Tool Name="VCManifestTool" + AdditionalManifestFiles="../../pluginBridge/PluginBridge.manifest" /> <Tool Name="VCXDCMakeTool" @@ -710,6 +718,10 @@ > </File> <File + RelativePath="..\..\pluginBridge\PluginBridge.manifest" + > + </File> + <File RelativePath="..\..\pluginBridge\PluginBridge.rc" > </File> Modified: trunk/OpenMPT/build/vs2010/PluginBridge.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010/PluginBridge.vcxproj 2015-06-19 17:13:30 UTC (rev 5339) +++ trunk/OpenMPT/build/vs2010/PluginBridge.vcxproj 2015-06-19 17:19:34 UTC (rev 5340) @@ -187,6 +187,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -216,6 +219,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -253,6 +259,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -290,6 +299,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -318,6 +330,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -346,6 +361,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -383,6 +401,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -420,6 +441,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -438,6 +462,9 @@ <ClCompile Include="..\..\pluginBridge\Bridge.cpp" /> </ItemGroup> <ItemGroup> + <None Include="..\..\pluginBridge\PluginBridge.manifest" /> + </ItemGroup> + <ItemGroup> <ResourceCompile Include="..\..\pluginBridge\PluginBridge.rc" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> Modified: trunk/OpenMPT/build/vs2012/PluginBridge.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012/PluginBridge.vcxproj 2015-06-19 17:13:30 UTC (rev 5339) +++ trunk/OpenMPT/build/vs2012/PluginBridge.vcxproj 2015-06-19 17:19:34 UTC (rev 5340) @@ -195,6 +195,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -224,6 +227,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -261,6 +267,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -298,6 +307,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -326,6 +338,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -354,6 +369,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -391,6 +409,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -428,6 +449,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -446,6 +470,9 @@ <ClCompile Include="..\..\pluginBridge\Bridge.cpp" /> </ItemGroup> <ItemGroup> + <None Include="..\..\pluginBridge\PluginBridge.manifest" /> + </ItemGroup> + <ItemGroup> <ResourceCompile Include="..\..\pluginBridge\PluginBridge.rc" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> Modified: trunk/OpenMPT/build/vs2013/PluginBridge.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2013/PluginBridge.vcxproj 2015-06-19 17:13:30 UTC (rev 5339) +++ trunk/OpenMPT/build/vs2013/PluginBridge.vcxproj 2015-06-19 17:19:34 UTC (rev 5340) @@ -196,6 +196,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -225,6 +228,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -262,6 +268,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -299,6 +308,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -327,6 +339,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -355,6 +370,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -392,6 +410,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -429,6 +450,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -447,6 +471,9 @@ <ClCompile Include="..\..\pluginBridge\Bridge.cpp" /> </ItemGroup> <ItemGroup> + <None Include="..\..\pluginBridge\PluginBridge.manifest" /> + </ItemGroup> + <ItemGroup> <ResourceCompile Include="..\..\pluginBridge\PluginBridge.rc" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> Modified: trunk/OpenMPT/build/vs2015/PluginBridge.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2015/PluginBridge.vcxproj 2015-06-19 17:13:30 UTC (rev 5339) +++ trunk/OpenMPT/build/vs2015/PluginBridge.vcxproj 2015-06-19 17:19:34 UTC (rev 5340) @@ -196,6 +196,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -225,6 +228,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -262,6 +268,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -299,6 +308,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -327,6 +339,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -355,6 +370,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -392,6 +410,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -429,6 +450,9 @@ <DataExecutionPrevention>false</DataExecutionPrevention> <LargeAddressAware>true</LargeAddressAware> </Link> + <Manifest> + <AdditionalManifestFiles>../../pluginBridge/PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> <PreBuildEvent> <Command>..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)</Command> </PreBuildEvent> @@ -447,6 +471,9 @@ <ClCompile Include="..\..\pluginBridge\Bridge.cpp" /> </ItemGroup> <ItemGroup> + <None Include="..\..\pluginBridge\PluginBridge.manifest" /> + </ItemGroup> + <ItemGroup> <ResourceCompile Include="..\..\pluginBridge\PluginBridge.rc" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> Modified: trunk/OpenMPT/common/versionNumber.h =================================================================== --- trunk/OpenMPT/common/versionNumber.h 2015-06-19 17:13:30 UTC (rev 5339) +++ trunk/OpenMPT/common/versionNumber.h 2015-06-19 17:19:34 UTC (rev 5340) @@ -19,7 +19,7 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 25 #define VER_MINOR 00 -#define VER_MINORMINOR 14 +#define VER_MINORMINOR 15 //Version string. For example "1.17.02.28" #define MPT_VERSION_STR VER_STRINGIZE(VER_MAJORMAJOR) "." VER_STRINGIZE(VER_MAJOR) "." VER_STRINGIZE(VER_MINOR) "." VER_STRINGIZE(VER_MINORMINOR) Modified: trunk/OpenMPT/mptrack/res/OpenMPT.manifest =================================================================== --- trunk/OpenMPT/mptrack/res/OpenMPT.manifest 2015-06-19 17:13:30 UTC (rev 5339) +++ trunk/OpenMPT/mptrack/res/OpenMPT.manifest 2015-06-19 17:19:34 UTC (rev 5340) @@ -6,4 +6,21 @@ version="1.0.0.0" /> <description>OpenMPT / ModPlug Tracker</description> -</assembly> \ No newline at end of file + <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> + <!-- VS2008 and VS2010 mt.exe will warn with a --> + <!-- 'manifest authoring warning 81010002: Unrecognized Element' --> + <!-- here. There is nothing we can do about that. --> + <application> + <!-- Windows 10 --> + <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> + <!-- Windows 8.1 --> + <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> + <!-- Windows 8 --> + <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> + <!-- Windows 7 --> + <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> + <!-- Windows Vista --> + <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> + </application> + </compatibility> +</assembly> Modified: trunk/OpenMPT/mptrack/res/rt_manif.bin =================================================================== --- trunk/OpenMPT/mptrack/res/rt_manif.bin 2015-06-19 17:13:30 UTC (rev 5339) +++ trunk/OpenMPT/mptrack/res/rt_manif.bin 2015-06-19 17:19:34 UTC (rev 5340) @@ -8,4 +8,21 @@ type="win32" name="mptrack.exe"/> <description>OpenMPT</description> + <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> + <!-- VS2008 and VS2010 mt.exe will warn with a --> + <!-- 'manifest authoring warning 81010002: Unrecognized Element' --> + <!-- here. There is nothing we can do about that. --> + <application> + <!-- Windows 10 --> + <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> + <!-- Windows 8.1 --> + <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> + <!-- Windows 8 --> + <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> + <!-- Windows 7 --> + <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> + <!-- Windows Vista --> + <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> + </application> + </compatibility> </assembly> \ No newline at end of file Added: trunk/OpenMPT/pluginBridge/PluginBridge.manifest =================================================================== --- trunk/OpenMPT/pluginBridge/PluginBridge.manifest (rev 0) +++ trunk/OpenMPT/pluginBridge/PluginBridge.manifest 2015-06-19 17:19:34 UTC (rev 5340) @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> + <assemblyIdentity + type="win32" + name="OpenMPT.PluginBridge" + version="1.0.0.0" + /> + <description>OpenMPT PluginBridge</description> + <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> + <!-- VS2008 and VS2010 mt.exe will warn with a --> + <!-- 'manifest authoring warning 81010002: Unrecognized Element' --> + <!-- here. There is nothing we can do about that. --> + <application> + <!-- Windows 10 --> + <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> + <!-- Windows 8.1 --> + <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> + <!-- Windows 8 --> + <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> + <!-- Windows 7 --> + <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> + <!-- Windows Vista --> + <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> + </application> + </compatibility> +</assembly> Modified: trunk/OpenMPT/pluginBridge/PluginBridge.vcxproj =================================================================== --- trunk/OpenMPT/pluginBridge/PluginBridge.vcxproj 2015-06-19 17:13:30 UTC (rev 5339) +++ trunk/OpenMPT/pluginBridge/PluginBridge.vcxproj 2015-06-19 17:19:34 UTC (rev 5340) @@ -112,6 +112,9 @@ <Command>if not exist "$(TargetDir)..\x64-Debug" mkdir "$(TargetDir)..\x64-Debug" copy /y "$(TargetDir)$(TargetFileName)" "$(TargetDir)..\x64-Debug\$(TargetFileName)"</Command> </PostBuildEvent> + <Manifest> + <AdditionalManifestFiles>PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ClCompile> @@ -138,6 +141,9 @@ <Command>if not exist "$(TargetDir)..\Win32-Debug" mkdir "$(TargetDir)..\Win32-Debug" copy /y "$(TargetDir)$(TargetFileName)" "$(TargetDir)..\Win32-Debug\$(TargetFileName)"</Command> </PostBuildEvent> + <Manifest> + <AdditionalManifestFiles>PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <ClCompile> @@ -168,6 +174,10 @@ <Command>if not exist "$(TargetDir)..\x64" mkdir "$(TargetDir)..\x64" copy /y "$(TargetDir)$(TargetFileName)" "$(TargetDir)..\x64\$(TargetFileName)"</Command> </PostBuildEvent> + <Manifest /> + <Manifest> + <AdditionalManifestFiles>PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ClCompile> @@ -198,6 +208,9 @@ <Command>if not exist "$(TargetDir)..\Win32" mkdir "$(TargetDir)..\Win32" copy /y "$(TargetDir)$(TargetFileName)" "$(TargetDir)..\Win32\$(TargetFileName)"</Command> </PostBuildEvent> + <Manifest> + <AdditionalManifestFiles>PluginBridge.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles> + </Manifest> </ItemDefinitionGroup> <ItemGroup> <ClCompile Include="Bridge.cpp" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2015-06-19 18:43:55
|
Revision: 5346 http://sourceforge.net/p/modplug/code/5346 Author: manxorist Date: 2015-06-19 18:43:50 +0000 (Fri, 19 Jun 2015) Log Message: ----------- [Ref] std::getenv is cumbersome. Provide a wrapper, mpt::getenv, with a saner interface. Modified Paths: -------------- trunk/OpenMPT/common/misc_util.cpp trunk/OpenMPT/common/misc_util.h trunk/OpenMPT/mptrack/TrackerSettings.cpp trunk/OpenMPT/test/test.cpp Modified: trunk/OpenMPT/common/misc_util.cpp =================================================================== --- trunk/OpenMPT/common/misc_util.cpp 2015-06-19 18:20:20 UTC (rev 5345) +++ trunk/OpenMPT/common/misc_util.cpp 2015-06-19 18:43:50 UTC (rev 5346) @@ -131,4 +131,21 @@ } // namespace Util +namespace mpt +{ + +std::string getenv(const std::string &env_var, const std::string &def) +//-------------------------------------------------------------------- +{ + const char *val = std::getenv(env_var.c_str()); + if(!val) + { + return def; + } + return val; +} + +} // namespace mpt + + OPENMPT_NAMESPACE_END Modified: trunk/OpenMPT/common/misc_util.h =================================================================== --- trunk/OpenMPT/common/misc_util.h 2015-06-19 18:20:20 UTC (rev 5345) +++ trunk/OpenMPT/common/misc_util.h 2015-06-19 18:43:50 UTC (rev 5346) @@ -607,4 +607,15 @@ } // namespace Util +namespace mpt +{ + +// Wrapper around std::getenv. +// Instead of returning null pointer if the environment variable is not set, +// this wrapper returns the provided default value. +std::string getenv(const std::string &env_var, const std::string &def = std::string()); + +} // namespace mpt + + OPENMPT_NAMESPACE_END Modified: trunk/OpenMPT/mptrack/TrackerSettings.cpp =================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.cpp 2015-06-19 18:20:20 UTC (rev 5345) +++ trunk/OpenMPT/mptrack/TrackerSettings.cpp 2015-06-19 18:43:50 UTC (rev 5346) @@ -300,7 +300,7 @@ , PathUserTemplates(theApp.GetConfigPath() + MPT_PATHSTRING("TemplateModules\\")) // Default template , defaultTemplateFile(conf, "Paths", "DefaultTemplate", mpt::PathString()) - , defaultArtist(conf, "Misc", "DefaultArtist", mpt::ToUnicode(mpt::CharsetLocale, std::getenv("USERNAME") ? std::getenv("USERNAME") : std::string())) + , defaultArtist(conf, "Misc", "DefaultArtist", mpt::ToUnicode(mpt::CharsetLocale, mpt::getenv("USERNAME"))) // MRU List , mruListLength(conf, "Misc", "MRUListLength", 10) // Plugins Modified: trunk/OpenMPT/test/test.cpp =================================================================== --- trunk/OpenMPT/test/test.cpp 2015-06-19 18:20:20 UTC (rev 5345) +++ trunk/OpenMPT/test/test.cpp 2015-06-19 18:43:50 UTC (rev 5346) @@ -122,7 +122,7 @@ std::string pathprefix = std::string(); // set path prefix for test files (if provided) - std::string env_srcdir = std::getenv( "srcdir" ) ? std::getenv( "srcdir" ) : std::string(); + std::string env_srcdir = mpt::getenv( "srcdir" ); if ( !env_srcdir.empty() ) { pathprefix = env_srcdir; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sag...@us...> - 2015-06-26 13:51:30
|
Revision: 5356 http://sourceforge.net/p/modplug/code/5356 Author: saga-games Date: 2015-06-26 13:51:21 +0000 (Fri, 26 Jun 2015) Log Message: ----------- [Mod] Move MIDI record option to MIDI config tab. [Mod] OpenMPT: Version is now 1.25.00.16 Modified Paths: -------------- trunk/OpenMPT/common/versionNumber.h trunk/OpenMPT/mptrack/GeneralConfigDlg.cpp trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/Mpdlgs.cpp trunk/OpenMPT/mptrack/TrackerSettings.cpp trunk/OpenMPT/mptrack/TrackerSettings.h trunk/OpenMPT/mptrack/mptrack.rc Modified: trunk/OpenMPT/common/versionNumber.h =================================================================== --- trunk/OpenMPT/common/versionNumber.h 2015-06-26 12:51:11 UTC (rev 5355) +++ trunk/OpenMPT/common/versionNumber.h 2015-06-26 13:51:21 UTC (rev 5356) @@ -19,7 +19,7 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 25 #define VER_MINOR 00 -#define VER_MINORMINOR 15 +#define VER_MINORMINOR 16 //Version string. For example "1.17.02.28" #define MPT_VERSION_STR VER_STRINGIZE(VER_MAJORMAJOR) "." VER_STRINGIZE(VER_MAJOR) "." VER_STRINGIZE(VER_MINOR) "." VER_STRINGIZE(VER_MINORMINOR) Modified: trunk/OpenMPT/mptrack/GeneralConfigDlg.cpp =================================================================== --- trunk/OpenMPT/mptrack/GeneralConfigDlg.cpp 2015-06-26 12:51:11 UTC (rev 5355) +++ trunk/OpenMPT/mptrack/GeneralConfigDlg.cpp 2015-06-26 13:51:21 UTC (rev 5356) @@ -53,7 +53,6 @@ {PATTERN_CONTSCROLL, "Continuous scroll", "Jumps to the next pattern when moving past the end of a pattern"}, {PATTERN_KBDNOTEOFF, "Record note off", "Record note off when a key is released on the PC keyboard."}, {PATTERN_FOLLOWSONGOFF, "Follow song off by default", "Ensure follow song is off when opening or starting a new song."}, - {PATTERN_MIDIRECORD, "MIDI record", "Enable MIDI in record by default."}, {PATTERN_OLDCTXMENUSTYLE, "Old style pattern context menu", "Check this option to hide unavailable items in the pattern editor context menu. Uncheck to grey-out unavailable items instead."}, {PATTERN_SYNCMUTE, "Maintain sample sync on mute", "Samples continue to be processed when channels are muted (like in IT2 and FT2)"}, {PATTERN_SYNCSAMPLEPOS, "Maintain sample sync on seek", "Sample that are still active from previous patterns are continued to be played after seeking.\nNote: Some pattern commands may prevent samples from being synced. This feature may slow down seeking."}, Modified: trunk/OpenMPT/mptrack/MainFrm.cpp =================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp 2015-06-26 12:51:11 UTC (rev 5355) +++ trunk/OpenMPT/mptrack/MainFrm.cpp 2015-06-26 13:51:21 UTC (rev 5356) @@ -340,7 +340,7 @@ UpdateColors(); - if(TrackerSettings::Instance().m_dwPatternSetup & PATTERN_MIDIRECORD) midiOpenDevice(false); + if(TrackerSettings::Instance().m_dwMidiSetup & MIDISETUP_ENABLE_RECORD_DEFAULT) midiOpenDevice(false); HtmlHelpW(m_hWnd, nullptr, HH_INITIALIZE, reinterpret_cast<DWORD_PTR>(&helpCookie)); Modified: trunk/OpenMPT/mptrack/Mpdlgs.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mpdlgs.cpp 2015-06-26 12:51:11 UTC (rev 5355) +++ trunk/OpenMPT/mptrack/Mpdlgs.cpp 2015-06-26 13:51:21 UTC (rev 5356) @@ -1711,6 +1711,7 @@ ON_CBN_SELCHANGE(IDC_COMBO2, OnSettingsChanged) ON_COMMAND(IDC_CHECK1, OnSettingsChanged) ON_COMMAND(IDC_CHECK2, OnSettingsChanged) + ON_COMMAND(IDC_CHECK3, OnSettingsChanged) ON_COMMAND(IDC_CHECK4, OnSettingsChanged) ON_COMMAND(IDC_MIDI_TO_PLUGIN, OnSettingsChanged) ON_COMMAND(IDC_MIDI_MACRO_CONTROL, OnSettingsChanged) @@ -1745,6 +1746,7 @@ // Flags if (m_dwMidiSetup & MIDISETUP_RECORDVELOCITY) CheckDlgButton(IDC_CHECK1, BST_CHECKED); if (m_dwMidiSetup & MIDISETUP_RECORDNOTEOFF) CheckDlgButton(IDC_CHECK2, BST_CHECKED); + if (m_dwMidiSetup & MIDISETUP_ENABLE_RECORD_DEFAULT) CheckDlgButton(IDC_CHECK3, BST_CHECKED); if (m_dwMidiSetup & MIDISETUP_TRANSPOSEKEYBOARD) CheckDlgButton(IDC_CHECK4, BST_CHECKED); if (m_dwMidiSetup & MIDISETUP_MIDITOPLUG) CheckDlgButton(IDC_MIDI_TO_PLUGIN, BST_CHECKED); if (m_dwMidiSetup & MIDISETUP_MIDIMACROCONTROL) CheckDlgButton(IDC_MIDI_MACRO_CONTROL, BST_CHECKED); @@ -1812,6 +1814,7 @@ m_nMidiDevice = MIDI_MAPPER; if (IsDlgButtonChecked(IDC_CHECK1)) m_dwMidiSetup |= MIDISETUP_RECORDVELOCITY; if (IsDlgButtonChecked(IDC_CHECK2)) m_dwMidiSetup |= MIDISETUP_RECORDNOTEOFF; + if (IsDlgButtonChecked(IDC_CHECK3)) m_dwMidiSetup |= MIDISETUP_ENABLE_RECORD_DEFAULT; if (IsDlgButtonChecked(IDC_CHECK4)) m_dwMidiSetup |= MIDISETUP_TRANSPOSEKEYBOARD; if (IsDlgButtonChecked(IDC_MIDI_TO_PLUGIN)) m_dwMidiSetup |= MIDISETUP_MIDITOPLUG; if (IsDlgButtonChecked(IDC_MIDI_MACRO_CONTROL)) m_dwMidiSetup |= MIDISETUP_MIDIMACROCONTROL; Modified: trunk/OpenMPT/mptrack/TrackerSettings.cpp =================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.cpp 2015-06-26 12:51:11 UTC (rev 5355) +++ trunk/OpenMPT/mptrack/TrackerSettings.cpp 2015-06-26 13:51:21 UTC (rev 5356) @@ -590,11 +590,16 @@ patternFont = FontSetting((m_dwPatternSetup & 0x08) ? PATTERNFONT_SMALL : PATTERNFONT_LARGE, 0); m_dwPatternSetup &= ~(0x08 | 0x02); } - if(storedVersion < MAKE_VERSION_NUMERIC(1,25,00,08)) { glGeneralWindowHeight += 44; } + if(storedVersion < MAKE_VERSION_NUMERIC(1,25,00,16) && (m_dwPatternSetup & 0x100000)) + { + // Move MIDI recording to MIDI setup + m_dwPatternSetup &= ~0x100000; + m_dwMidiSetup |= MIDISETUP_ENABLE_RECORD_DEFAULT; + } // Effects #ifndef NO_EQ Modified: trunk/OpenMPT/mptrack/TrackerSettings.h =================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.h 2015-06-26 12:51:11 UTC (rev 5355) +++ trunk/OpenMPT/mptrack/TrackerSettings.h 2015-06-26 13:51:21 UTC (rev 5356) @@ -96,7 +96,7 @@ #define PATTERN_CONTSCROLL 0x20000 // continous pattern scrolling #define PATTERN_KBDNOTEOFF 0x40000 // Record note-off events #define PATTERN_FOLLOWSONGOFF 0x80000 // follow song off by default -#define PATTERN_MIDIRECORD 0x100000 // MIDI Record on by default +//#define PATTERN_MIDIRECORD 0x100000 // MIDI Record on by default #define PATTERN_NOCLOSEDIALOG 0x200000 // Don't use OpenMPT's custom close dialog with a list of saved files when closing the main window #define PATTERN_DBLCLICKSELECT 0x400000 // Double-clicking pattern selects whole channel #define PATTERN_OLDCTXMENUSTYLE 0x800000 // Hide pattern context menu entries instead of greying them out. @@ -112,7 +112,7 @@ #define PATTERNFONT_SMALL "@1" #define PATTERNFONT_LARGE "@2" -// Midi Setup +// MIDI Setup #define MIDISETUP_RECORDVELOCITY 0x01 // Record MIDI velocity #define MIDISETUP_TRANSPOSEKEYBOARD 0x02 // Apply transpose value to MIDI Notes #define MIDISETUP_MIDITOPLUG 0x04 // Pass MIDI messages to plugins @@ -121,6 +121,7 @@ #define MIDISETUP_RESPONDTOPLAYCONTROLMSGS 0x20 // Respond to Restart/Continue/Stop MIDI commands #define MIDISETUP_MIDIMACROCONTROL 0x80 // Record MIDI controller changes a MIDI macro changes in pattern #define MIDISETUP_PLAYPATTERNONMIDIIN 0x100 // Play pattern if MIDI Note is received and playback is paused +#define MIDISETUP_ENABLE_RECORD_DEFAULT 0x200 // Enable MIDI recording by default // EQ Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2015-06-26 12:51:11 UTC (rev 5355) +++ trunk/OpenMPT/mptrack/mptrack.rc 2015-06-26 13:51:21 UTC (rev 5356) @@ -811,7 +811,6 @@ CAPTION "MIDI" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN - GROUPBOX "MIDI Recording",IDC_STATIC,6,6,276,108 LTEXT "MIDI Input Device:",IDC_STATIC,18,18,67,8 COMBOBOX IDC_COMBO1,18,30,252,74,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP CONTROL "Apply Octave Transpose to incoming MIDI Notes",IDC_CHECK4, @@ -823,27 +822,30 @@ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,84,237,12 CONTROL "Pass MIDI to active instrument plugin",IDC_MIDI_TO_PLUGIN, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,96,237,12 - GROUPBOX "MIDI Recording - Volume and Controllers",IDC_STATIC,6,120,276,90 + CONTROL "Enable MIDI recording when launching OpenMPT",IDC_CHECK3, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,108,240,12 CONTROL "Record MIDI Note Velocity, amplify by",IDC_CHECK1, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,138,144,10 - EDITTEXT IDC_EDIT3,162,137,42,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "",IDC_SPIN3,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,186,132,11,14 - LTEXT "%",IDC_STATIC,207,139,48,8 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,150,144,10 + EDITTEXT IDC_EDIT3,162,150,42,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "",IDC_SPIN3,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,186,145,11,14 + LTEXT "%",IDC_STATIC,207,151,48,8 CONTROL "Combine MIDI Volume (CC#07) to Note Velocity",IDC_MIDIVOL_TO_NOTEVOL, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,150,237,12 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,162,237,12 CONTROL "Record MIDI Controller changes as MIDI Macro changes in pattern",IDC_MIDI_MACRO_CONTROL, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,162,237,12 - LTEXT "Ignore CCs (e.g. 1,123,127)",IDC_STATIC,30,176,108,8 - EDITTEXT IDC_EDIT4,138,174,132,12,ES_AUTOHSCROLL - LTEXT "Record Aftertouch Messages",IDC_STATIC,30,192,108,12,SS_CENTERIMAGE - COMBOBOX IDC_COMBO2,138,192,132,12,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - GROUPBOX "MIDI File Import",IDC_STATIC,6,216,276,36 - LTEXT "Speed:",IDC_STATIC,18,234,24,8 - EDITTEXT IDC_EDIT1,48,232,39,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "Spin1",IDC_SPIN1,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,78,234,11,14 - LTEXT "Pattern Size:",IDC_STATIC,102,234,56,8 - EDITTEXT IDC_EDIT2,156,232,39,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "Spin1",IDC_SPIN2,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,180,234,11,14 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,174,237,12 + LTEXT "Ignore CCs (e.g. 1,123,127)",IDC_STATIC,30,188,108,8 + EDITTEXT IDC_EDIT4,138,186,132,12,ES_AUTOHSCROLL + LTEXT "Record Aftertouch Messages",IDC_STATIC,30,204,108,12,SS_CENTERIMAGE + COMBOBOX IDC_COMBO2,138,204,132,12,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Speed:",IDC_STATIC,18,246,24,8 + EDITTEXT IDC_EDIT1,48,244,39,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "Spin1",IDC_SPIN1,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,78,246,11,14 + LTEXT "Pattern Size:",IDC_STATIC,102,246,56,8 + EDITTEXT IDC_EDIT2,156,244,39,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "Spin1",IDC_SPIN2,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,180,246,11,14 + GROUPBOX "MIDI Recording",IDC_STATIC,6,6,276,120 + GROUPBOX "MIDI Recording - Volume and Controllers",IDC_STATIC,6,132,276,90 + GROUPBOX "MIDI File Import",IDC_STATIC,6,228,276,36 END IDD_LOADRAWSAMPLE DIALOGEX 0, 0, 178, 95 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sag...@us...> - 2015-06-26 21:48:12
|
Revision: 5361 http://sourceforge.net/p/modplug/code/5361 Author: saga-games Date: 2015-06-26 21:48:05 +0000 (Fri, 26 Jun 2015) Log Message: ----------- [New] Pattern tab: Added option for smooth (tick-by-tick) pattern scrolling. Modified Paths: -------------- trunk/OpenMPT/mptrack/Draw_pat.cpp trunk/OpenMPT/mptrack/GeneralConfigDlg.cpp trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/Notification.h trunk/OpenMPT/mptrack/TrackerSettings.h trunk/OpenMPT/mptrack/View_pat.cpp trunk/OpenMPT/mptrack/View_pat.h trunk/OpenMPT/soundlib/Sndfile.h Modified: trunk/OpenMPT/mptrack/Draw_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/Draw_pat.cpp 2015-06-26 21:03:11 UTC (rev 5360) +++ trunk/OpenMPT/mptrack/Draw_pat.cpp 2015-06-26 21:48:05 UTC (rev 5361) @@ -157,6 +157,13 @@ } +int CViewPattern::GetSmoothScrollOffset() const +//--------------------------------------------- +{ + return Util::muldivr_unsigned(m_szCell.cy, m_nPlayTick, std::max(1u, m_nTicksOnRow)); +} + + void CViewPattern::UpdateView(UpdateHint hint, CObject *pObj) //----------------------------------------------------------- { @@ -242,6 +249,12 @@ int yofs = GetYScrollPos(); int x = xofs + (pt.x - m_szHeader.cx) / GetColumnWidth(); if (pt.x < m_szHeader.cx) x = (xofs) ? xofs - 1 : 0; + + if((TrackerSettings::Instance().m_dwPatternSetup & PATTERN_SMOOTHSCROLL) != 0 && (m_Status & (psFollowSong | psDragActive)) == psFollowSong && IsLiveRecord()) + { + pt.y += GetSmoothScrollOffset(); + } + int y = yofs - m_nMidRow + (pt.y - m_szHeader.cy) / m_szCell.cy; if (y < 0) y = 0; int xx = (pt.x - m_szHeader.cx) % GetColumnWidth(), dx = 0; @@ -288,12 +301,10 @@ srcx = pfnt->nAlphaAM_X; srcy = pfnt->nAlphaAM_Y + 13 * pfnt->spacingY; break; - //rewbs.smoothVST case '\\': srcx = pfnt->nAlphaNZ_X; srcy = pfnt->nAlphaNZ_Y + 14 * pfnt->spacingY; break; - //end rewbs.smoothVST case ':': srcx = pfnt->nAlphaNZ_X; srcy = pfnt->nAlphaNZ_Y + 15 * pfnt->spacingY; @@ -461,14 +472,8 @@ { CMainFrame *pMainFrm = CMainFrame::GetMainFrame(); CHAR s[256]; - HPEN oldpen; CRect rcClient, rect, rc; const CModDoc *pModDoc; - HDC hdc; - CHANNELINDEX xofs; - ROWINDEX yofs; - UINT nColumnWidth, ncols, ncolhdr; - int xpaint, ypaint, mixPlug; ASSERT(pDC); UpdateSizes(); @@ -477,106 +482,44 @@ const int vuHeight = MulDiv(VUMETERS_HEIGHT, m_nDPIy, 96); const int colHeight = MulDiv(COLHDR_HEIGHT, m_nDPIy, 96); const int recordInsX = MulDiv(3, m_nDPIx, 96); + const bool liveRecord = IsLiveRecord(); + const bool doSmoothScroll = (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_SMOOTHSCROLL) != 0; GetClientRect(&rcClient); - hdc = pDC->m_hDC; - oldpen = SelectPen(hdc, CMainFrame::penDarkGray); - xofs = static_cast<CHANNELINDEX>(GetXScrollPos()); - yofs = static_cast<ROWINDEX>(GetYScrollPos()); - const CSoundFile &sndFile = pModDoc->GetrSoundFile(); - nColumnWidth = m_szCell.cx; - ncols = sndFile.GetNumChannels(); - xpaint = m_szHeader.cx; - ypaint = rcClient.top; - ncolhdr = xofs; - rect.SetRect(0, rcClient.top, rcClient.right, rcClient.top + m_szHeader.cy); - if (::RectVisible(hdc, &rect)) + + HDC hdc; + HBITMAP oldBitmap; + if(doSmoothScroll) { - wsprintf(s, "#%d", m_nPattern); - rect.right = m_szHeader.cx; - DrawButtonRect(hdc, &rect, s, FALSE, - ((m_bInItemRect) && ((m_nDragItem & DRAGITEM_MASK) == DRAGITEM_PATTERNHEADER)) ? TRUE : FALSE); - - // Drawing Channel Headers - while (xpaint < rcClient.right) + if(rcClient != m_oldClient) { - rect.SetRect(xpaint, ypaint, xpaint+nColumnWidth, ypaint + m_szHeader.cy); - if (ncolhdr < ncols) - { - const char *pszfmt = sndFile.m_bChannelMuteTogglePending[ncolhdr]? "[Channel %d]" : "Channel %d"; - if ((sndFile.GetType() & (MOD_TYPE_XM | MOD_TYPE_IT | MOD_TYPE_MPT)) && sndFile.ChnSettings[ncolhdr].szName[0] != 0) - pszfmt = sndFile.m_bChannelMuteTogglePending[ncolhdr] ? "%d: [%s]" : "%d: %s"; - else if (m_nDetailLevel < PatternCursor::volumeColumn) pszfmt = sndFile.m_bChannelMuteTogglePending[ncolhdr] ? "[Ch%d]" : "Ch%d"; - else if (m_nDetailLevel < PatternCursor::effectColumn) pszfmt = sndFile.m_bChannelMuteTogglePending[ncolhdr] ? "[Chn %d]" : "Chn %d"; - wsprintf(s, pszfmt, ncolhdr + 1, sndFile.ChnSettings[ncolhdr].szName); - DrawButtonRect(hdc, &rect, s, - sndFile.ChnSettings[ncolhdr].dwFlags[CHN_MUTE] ? TRUE : FALSE, - ((m_bInItemRect) && ((m_nDragItem & DRAGITEM_MASK) == DRAGITEM_CHNHEADER) && ((m_nDragItem & DRAGITEM_VALUEMASK) == ncolhdr)) ? TRUE : FALSE, - pModDoc->IsChannelRecord(static_cast<CHANNELINDEX>(ncolhdr)) ? DT_RIGHT : DT_CENTER); + m_offScreenBitmap.DeleteObject(); + m_offScreenDC.DeleteDC(); + m_offScreenDC.CreateCompatibleDC(pDC); + m_offScreenBitmap.CreateCompatibleBitmap(pDC, rcClient.Width(), rcClient.Height()); + m_oldClient = rcClient; + } + hdc = m_offScreenDC; + oldBitmap = SelectBitmap(hdc, m_offScreenBitmap); + } else + { + hdc = pDC->m_hDC; + } - // When dragging around channel headers, mark insertion position - if(m_Status[psDragging] && !m_bInItemRect - && (m_nDragItem & DRAGITEM_MASK) == DRAGITEM_CHNHEADER - && (m_nDropItem & DRAGITEM_MASK) == DRAGITEM_CHNHEADER - && (m_nDropItem & DRAGITEM_VALUEMASK) == ncolhdr) - { - RECT r; - r.top = rect.top; - r.bottom = rect.bottom; - // Drop position depends on whether hovered channel is left or right of dragged item. - r.left = ((m_nDropItem & DRAGITEM_VALUEMASK) < (m_nDragItem & DRAGITEM_VALUEMASK) || m_Status[psShiftDragging]) ? rect.left : rect.right - 2; - r.right = r.left + 2; - ::FillRect(hdc, &r, CMainFrame::brushText); - } + HPEN oldpen = SelectPen(hdc, CMainFrame::penDarkGray); + CHANNELINDEX xofs = static_cast<CHANNELINDEX>(GetXScrollPos()); + ROWINDEX yofs = static_cast<ROWINDEX>(GetYScrollPos()); + const CSoundFile &sndFile = pModDoc->GetrSoundFile(); + UINT nColumnWidth = m_szCell.cx; + UINT ncols = sndFile.GetNumChannels(); + int xpaint = m_szHeader.cx; + int ypaint = rcClient.top + m_szHeader.cy; - rect.bottom = rect.top + colHeight; - - CRect insRect; - insRect.SetRect(xpaint, ypaint, xpaint + nColumnWidth / 8 + recordInsX, ypaint + colHeight); - if (pModDoc->IsChannelRecord1(static_cast<CHANNELINDEX>(ncolhdr))) - { - FrameRect(hdc,&rect,CMainFrame::brushGray); - InvertRect(hdc, &rect); - s[0] = '1'; - s[1] = '\0'; - DrawButtonRect(hdc, &insRect, s, FALSE, FALSE, DT_CENTER); - FrameRect(hdc,&insRect,CMainFrame::brushBlack); - } else if (pModDoc->IsChannelRecord2(static_cast<CHANNELINDEX>(ncolhdr))) - { - FrameRect(hdc,&rect,CMainFrame::brushGray); - InvertRect(hdc, &rect); - s[0] = '2'; - s[1] = '\0'; - DrawButtonRect(hdc, &insRect, s, FALSE, FALSE, DT_CENTER); - FrameRect(hdc,&insRect,CMainFrame::brushBlack); - } - - if(m_Status[psShowVUMeters]) - { - OldVUMeters[ncolhdr] = 0; - DrawChannelVUMeter(hdc, rect.left + 1, rect.bottom, ncolhdr); - rect.top += vuHeight; - rect.bottom += vuHeight; - } - if(m_Status[psShowPluginNames]) - { - rect.top += m_szPluginHeader.cy; - rect.bottom += m_szPluginHeader.cy; - mixPlug = sndFile.ChnSettings[ncolhdr].nMixPlugin; - if (mixPlug) - wsprintf(s, "%d: %s", mixPlug, (sndFile.m_MixPlugins[mixPlug - 1]).pMixPlugin ? (sndFile.m_MixPlugins[mixPlug - 1]).GetName() : "[empty]"); - else - wsprintf(s, "---"); - DrawButtonRect(hdc, &rect, s, FALSE, - ((m_bInItemRect) && ((m_nDragItem & DRAGITEM_MASK) == DRAGITEM_PLUGNAME) && ((m_nDragItem & DRAGITEM_VALUEMASK) == ncolhdr)) ? TRUE : FALSE, DT_CENTER); - } - - } else break; - ncolhdr++; - xpaint += nColumnWidth; - } + // Scroll tick by tick (always if active row is centered, otherwise only if the top row isn't the first one) + if(doSmoothScroll && liveRecord && (m_Status & (psFollowSong | psDragActive)) == psFollowSong && (m_nMidRow != 0 || yofs > 0)) + { + ypaint -= GetSmoothScrollOffset(); } - ypaint += m_szHeader.cy; if (m_nMidRow) { @@ -677,8 +620,108 @@ { DrawDragSel(hdc); } + + UINT ncolhdr = xofs; + xpaint = m_szHeader.cx; + ypaint = rcClient.top; + rect.SetRect(0, rcClient.top, rcClient.right, rcClient.top + m_szHeader.cy); + if (::RectVisible(hdc, &rect)) + { + sprintf(s, "#%u", m_nPattern); + rect.right = m_szHeader.cx; + DrawButtonRect(hdc, &rect, s, FALSE, + ((m_bInItemRect) && ((m_nDragItem & DRAGITEM_MASK) == DRAGITEM_PATTERNHEADER)) ? TRUE : FALSE); + + // Drawing Channel Headers + while (xpaint < rcClient.right) + { + rect.SetRect(xpaint, ypaint, xpaint + nColumnWidth, ypaint + m_szHeader.cy); + if (ncolhdr < ncols) + { + const char *pszfmt = sndFile.m_bChannelMuteTogglePending[ncolhdr]? "[Channel %u]" : "Channel %u"; + if ((sndFile.GetType() & (MOD_TYPE_XM | MOD_TYPE_IT | MOD_TYPE_MPT)) && sndFile.ChnSettings[ncolhdr].szName[0] != 0) + pszfmt = sndFile.m_bChannelMuteTogglePending[ncolhdr] ? "%u: [%s]" : "%u: %s"; + else if (m_nDetailLevel < PatternCursor::volumeColumn) pszfmt = sndFile.m_bChannelMuteTogglePending[ncolhdr] ? "[Ch%u]" : "Ch%u"; + else if (m_nDetailLevel < PatternCursor::effectColumn) pszfmt = sndFile.m_bChannelMuteTogglePending[ncolhdr] ? "[Chn %u]" : "Chn %u"; + sprintf(s, pszfmt, ncolhdr + 1, sndFile.ChnSettings[ncolhdr].szName); + DrawButtonRect(hdc, &rect, s, + sndFile.ChnSettings[ncolhdr].dwFlags[CHN_MUTE] ? TRUE : FALSE, + ((m_bInItemRect) && ((m_nDragItem & DRAGITEM_MASK) == DRAGITEM_CHNHEADER) && ((m_nDragItem & DRAGITEM_VALUEMASK) == ncolhdr)) ? TRUE : FALSE, + pModDoc->IsChannelRecord(static_cast<CHANNELINDEX>(ncolhdr)) ? DT_RIGHT : DT_CENTER); + + // When dragging around channel headers, mark insertion position + if(m_Status[psDragging] && !m_bInItemRect + && (m_nDragItem & DRAGITEM_MASK) == DRAGITEM_CHNHEADER + && (m_nDropItem & DRAGITEM_MASK) == DRAGITEM_CHNHEADER + && (m_nDropItem & DRAGITEM_VALUEMASK) == ncolhdr) + { + RECT r; + r.top = rect.top; + r.bottom = rect.bottom; + // Drop position depends on whether hovered channel is left or right of dragged item. + r.left = ((m_nDropItem & DRAGITEM_VALUEMASK) < (m_nDragItem & DRAGITEM_VALUEMASK) || m_Status[psShiftDragging]) ? rect.left : rect.right - 2; + r.right = r.left + 2; + ::FillRect(hdc, &r, CMainFrame::brushText); + } + + rect.bottom = rect.top + colHeight; + + CRect insRect; + insRect.SetRect(xpaint, ypaint, xpaint + nColumnWidth / 8 + recordInsX, ypaint + colHeight); + if (pModDoc->IsChannelRecord1(static_cast<CHANNELINDEX>(ncolhdr))) + { + FrameRect(hdc,&rect,CMainFrame::brushGray); + InvertRect(hdc, &rect); + s[0] = '1'; + s[1] = '\0'; + DrawButtonRect(hdc, &insRect, s, FALSE, FALSE, DT_CENTER); + FrameRect(hdc,&insRect,CMainFrame::brushBlack); + } else if (pModDoc->IsChannelRecord2(static_cast<CHANNELINDEX>(ncolhdr))) + { + FrameRect(hdc,&rect,CMainFrame::brushGray); + InvertRect(hdc, &rect); + s[0] = '2'; + s[1] = '\0'; + DrawButtonRect(hdc, &insRect, s, FALSE, FALSE, DT_CENTER); + FrameRect(hdc,&insRect,CMainFrame::brushBlack); + } + + if(m_Status[psShowVUMeters]) + { + OldVUMeters[ncolhdr] = 0; + DrawChannelVUMeter(hdc, rect.left + 1, rect.bottom, ncolhdr); + rect.top += vuHeight; + rect.bottom += vuHeight; + } + if(m_Status[psShowPluginNames]) + { + rect.top += m_szPluginHeader.cy; + rect.bottom += m_szPluginHeader.cy; + PLUGINDEX mixPlug = sndFile.ChnSettings[ncolhdr].nMixPlugin; + if (mixPlug) + sprintf(s, "%u: %s", mixPlug, (sndFile.m_MixPlugins[mixPlug - 1]).pMixPlugin ? (sndFile.m_MixPlugins[mixPlug - 1]).GetName() : "[empty]"); + else + sprintf(s, "---"); + DrawButtonRect(hdc, &rect, s, FALSE, + ((m_bInItemRect) && ((m_nDragItem & DRAGITEM_MASK) == DRAGITEM_PLUGNAME) && ((m_nDragItem & DRAGITEM_VALUEMASK) == ncolhdr)) ? TRUE : FALSE, DT_CENTER); + } + + } else break; + ncolhdr++; + xpaint += nColumnWidth; + } + } + if (oldpen) SelectPen(hdc, oldpen); + if(doSmoothScroll) + { + CRect clipRect; + pDC->GetClipBox(clipRect); + pDC->BitBlt(clipRect.left, clipRect.top, clipRect.Width(), clipRect.Height(), &m_offScreenDC, clipRect.left, clipRect.top, SRCCOPY); + SelectBitmap(m_offScreenDC, oldBitmap); + } + //rewbs.fxVis if (m_pEffectVis) { Modified: trunk/OpenMPT/mptrack/GeneralConfigDlg.cpp =================================================================== --- trunk/OpenMPT/mptrack/GeneralConfigDlg.cpp 2015-06-26 21:03:11 UTC (rev 5360) +++ trunk/OpenMPT/mptrack/GeneralConfigDlg.cpp 2015-06-26 21:48:05 UTC (rev 5361) @@ -42,6 +42,7 @@ {PATTERN_PLAYNEWNOTE, "Play new notes while recording", "When this option is enabled, notes entered in the pattern editor will always be played (If not checked, notes won't be played in record mode)."}, {PATTERN_PLAYEDITROW, "Play whole row while recording", "When this option is enabled, all notes on the current row are played when entering notes in the pattern editor."}, {PATTERN_CENTERROW, "Always center active row", "Turn on this option to have the active row always centered in the pattern editor."}, + {PATTERN_SMOOTHSCROLL, "Smooth pattern scrolling", "Scroll patterns tick by tick rather than row by row at the expense of an increased CPU load."}, {PATTERN_HEXDISPLAY, "Display rows in hex", "With this option enabled, row numbers and sequence numbers will be displayed in hexadecimal."}, {PATTERN_WRAP, "Cursor wrap in pattern editor", "When this option is active, going past the end of a pattern row or channel will move the cursor to the beginning. When \"Continuous scroll\"-option is enabled, row wrap is disabled."}, {PATTERN_DRAGNDROPEDIT, "Drag and Drop Editing", "Enable moving a selection in the pattern editor (copying if pressing shift while dragging)"}, Modified: trunk/OpenMPT/mptrack/MainFrm.cpp =================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp 2015-06-26 21:03:11 UTC (rev 5360) +++ trunk/OpenMPT/mptrack/MainFrm.cpp 2015-06-26 21:48:05 UTC (rev 5361) @@ -921,7 +921,7 @@ // Add an entry to the notification history - Notification notification(notifyType, notifyItem, streamPosition, m_pSndFile->m_PlayState.m_nRow, m_pSndFile->m_PlayState.m_nTickCount, m_pSndFile->m_PlayState.m_nCurrentOrder, m_pSndFile->m_PlayState.m_nPattern, m_pSndFile->GetMixStat(), static_cast<uint8>(m_pSndFile->m_MixerSettings.gnChannels)); + Notification notification(notifyType, notifyItem, streamPosition, m_pSndFile->m_PlayState.m_nRow, m_pSndFile->m_PlayState.m_nTickCount, m_pSndFile->GetNumTicksOnCurrentRow(), m_pSndFile->m_PlayState.m_nCurrentOrder, m_pSndFile->m_PlayState.m_nPattern, m_pSndFile->GetMixStat(), static_cast<uint8>(m_pSndFile->m_MixerSettings.gnChannels)); m_pSndFile->ResetMixStat(); Modified: trunk/OpenMPT/mptrack/Notification.h =================================================================== --- trunk/OpenMPT/mptrack/Notification.h 2015-06-26 21:03:11 UTC (rev 5360) +++ trunk/OpenMPT/mptrack/Notification.h 2015-06-26 21:48:05 UTC (rev 5361) @@ -3,8 +3,7 @@ * -------------- * Purpose: GUI update notification struct * Notes : (currently none) - * Authors: Olivier Lapicque - * OpenMPT Devs + * Authors: OpenMPT Devs * The OpenMPT source code is released under the BSD license. Read LICENSE for more details. */ @@ -39,7 +38,7 @@ FlagSet<Notification::Type> type; Item item; // Sample or instrument number, depending on type ROWINDEX row; // Always valid - uint32 tick; // ditto + uint32 tick, ticksOnRow; // ditto ORDERINDEX order; // ditto PATTERNINDEX pattern; // ditto uint32 mixedChannels; // ditto @@ -47,7 +46,7 @@ uint8 masterVUchannels; // ditto SmpLength pos[MAX_CHANNELS]; // Sample / envelope pos for each channel if != PosInvalid, or pattern channel VUs - Notification(FlagSet<Notification::Type> t = Default, Item i = 0, int64 s = 0, ROWINDEX r = 0, uint32 ti = 0, ORDERINDEX o = 0, PATTERNINDEX p = 0, uint32 x = 0, uint8 outChannels = 0) : timestampSamples(s), type(t), item(i), row(r), tick(ti), order(o), pattern(p), mixedChannels(x), masterVUchannels(outChannels) + Notification(FlagSet<Notification::Type> t = Default, Item i = 0, int64 s = 0, ROWINDEX r = 0, uint32 ti = 0, uint32 tir = 0, ORDERINDEX o = 0, PATTERNINDEX p = 0, uint32 x = 0, uint8 outChannels = 0) : timestampSamples(s), type(t), item(i), row(r), tick(ti), ticksOnRow(tir), order(o), pattern(p), mixedChannels(x), masterVUchannels(outChannels) { MemsetZero(masterVU); } Modified: trunk/OpenMPT/mptrack/TrackerSettings.h =================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.h 2015-06-26 21:03:11 UTC (rev 5360) +++ trunk/OpenMPT/mptrack/TrackerSettings.h 2015-06-26 21:48:05 UTC (rev 5361) @@ -77,7 +77,7 @@ // Feel free to replace the deprecated flags by new flags, but be sure to // update TrackerSettings::TrackerSettings() as well. #define PATTERN_PLAYNEWNOTE 0x01 // play new notes while recording -//#define PATTERN_LARGECOMMENTS 0x02 // use large font in comments +#define PATTERN_SMOOTHSCROLL 0x02 // scroll tick by tick, not row by row #define PATTERN_STDHIGHLIGHT 0x04 // enable primary highlight (measures) //#define PATTERN_SMALLFONT 0x08 // use small font in pattern editor #define PATTERN_CENTERROW 0x10 // always center active row Modified: trunk/OpenMPT/mptrack/View_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_pat.cpp 2015-06-26 21:03:11 UTC (rev 5360) +++ trunk/OpenMPT/mptrack/View_pat.cpp 2015-06-26 21:48:05 UTC (rev 5361) @@ -170,6 +170,14 @@ } +CViewPattern::~CViewPattern() +//--------------------------- +{ + m_offScreenBitmap.DeleteObject(); + m_offScreenDC.DeleteDC(); +} + + void CViewPattern::OnInitialUpdate() //---------------------------------- { @@ -182,6 +190,7 @@ m_nPlayPat = PATTERNINDEX_INVALID; m_nPlayRow = 0; m_nPlayTick = 0; + m_nTicksOnRow = 1; m_nMidRow = 0; m_nDragItem = 0; m_bInItemRect = false; @@ -610,18 +619,22 @@ } -bool CViewPattern::SetPlayCursor(PATTERNINDEX pat, ROWINDEX row) -//-------------------------------------------------------------- +bool CViewPattern::SetPlayCursor(PATTERNINDEX pat, ROWINDEX row, uint32 tick) +//--------------------------------------------------------------------------- { PATTERNINDEX oldPat = m_nPlayPat; ROWINDEX oldRow = m_nPlayRow; + uint32 oldTick = m_nPlayTick; m_nPlayPat = pat; m_nPlayRow = row; + m_nPlayTick = tick; - if (oldPat == m_nPattern) + if(m_nPlayTick != oldTick && (TrackerSettings::Instance().m_dwPatternSetup & PATTERN_SMOOTHSCROLL)) + InvalidatePattern(true); + else if (oldPat == m_nPattern) InvalidateRow(oldRow); - if (m_nPlayPat == m_nPattern) + else if (m_nPlayPat == m_nPattern) InvalidateRow(m_nPlayRow); return true; @@ -634,6 +647,7 @@ return SendCtrlMessage(CTRLMSG_GETCURRENTINSTRUMENT); } + bool CViewPattern::ShowEditWindow() //--------------------------------- { @@ -3747,6 +3761,8 @@ } // Don't follow song if user drags selections or scrollbars. + m_nTicksOnRow = pnotify->ticksOnRow; + SetPlayCursor(nPat, nRow, pnotify->tick); if((m_Status & (psFollowSong | psDragActive)) == psFollowSong) { if (nPat < pSndFile->Patterns.Size()) @@ -3770,8 +3786,6 @@ updateOrderList = false; } } - SetPlayCursor(nPat, nRow); - m_nPlayTick = pnotify->tick; } } @@ -3785,7 +3799,7 @@ MemsetZero(ChnVUMeters); // Also zero all non-visible VU meters if((m_Status & (psFollowSong | psDragActive)) == psFollowSong) { - SetPlayCursor(PATTERNINDEX_INVALID, ROWINDEX_INVALID); + SetPlayCursor(PATTERNINDEX_INVALID, ROWINDEX_INVALID, 0); } } @@ -5371,7 +5385,7 @@ newcmd.command = CMD_S3MCMDEX; if(!sndFile.GetModSpecifications().HasCommand(CMD_S3MCMDEX)) newcmd.command = CMD_MODCMDEX; UINT maxSpeed = 0x0F; - if(sndFile.m_PlayState.m_nMusicSpeed > 0) maxSpeed = MIN(0x0F, sndFile.m_PlayState.m_nMusicSpeed - 1); + if(m_nTicksOnRow > 0) maxSpeed = MIN(0x0F, m_nTicksOnRow - 1); newcmd.param = static_cast<ModCommand::PARAM>(0xD0 | MIN(maxSpeed, m_nPlayTick)); } } @@ -5821,8 +5835,8 @@ return; } - const ROWINDEX currentTick = sndFile->m_PlayState.m_nMusicSpeed * row + m_nPlayTick; - const ROWINDEX ticksPerNote = TrackerSettings::Instance().recordQuantizeRows * sndFile->m_PlayState.m_nMusicSpeed; + const ROWINDEX currentTick = m_nTicksOnRow * row + m_nPlayTick; + const ROWINDEX ticksPerNote = TrackerSettings::Instance().recordQuantizeRows * m_nTicksOnRow; // Previous quantization step const ROWINDEX quantLow = (currentTick / ticksPerNote) * ticksPerNote; @@ -5831,10 +5845,10 @@ if(currentTick - quantLow < quantHigh - currentTick) { - row = quantLow / sndFile->m_PlayState.m_nMusicSpeed; + row = quantLow / m_nTicksOnRow; } else { - row = quantHigh / sndFile->m_PlayState.m_nMusicSpeed; + row = quantHigh / m_nTicksOnRow; } if(!sndFile->Patterns[pat].IsValidRow(row)) Modified: trunk/OpenMPT/mptrack/View_pat.h =================================================================== --- trunk/OpenMPT/mptrack/View_pat.h 2015-06-26 21:03:11 UTC (rev 5360) +++ trunk/OpenMPT/mptrack/View_pat.h 2015-06-26 21:48:05 UTC (rev 5361) @@ -157,13 +157,16 @@ protected: CFastBitmap m_Dib; + CDC m_offScreenDC; + CBitmap m_offScreenBitmap; CEditCommand *m_pEditWnd; CPatternGotoDialog *m_pGotoWnd; CSize m_szHeader, m_szPluginHeader, m_szCell; + CRect m_oldClient; UINT m_nMidRow, m_nSpacing, m_nAccelChar, m_nLastPlayedRow, m_nLastPlayedOrder; FlagSet<PatternStatus> m_Status; ROWINDEX m_nPlayRow; - uint32 m_nPlayTick; + uint32 m_nPlayTick, m_nTicksOnRow; PATTERNINDEX m_nPattern, m_nPlayPat; ORDERINDEX m_nOrder; int32 m_nTransposeAmount; @@ -210,6 +213,7 @@ CEffectVis *m_pEffectVis; //rewbs.fxVis CViewPattern(); + ~CViewPattern(); DECLARE_SERIAL(CViewPattern) public: @@ -230,6 +234,7 @@ int GetYScrollPos() const { return m_nYScroll; } int GetColumnWidth() const { return m_szCell.cx; } int GetColumnHeight() const { return m_szCell.cy; } + int GetSmoothScrollOffset() const; PATTERNINDEX GetCurrentPattern() const { return m_nPattern; } ROWINDEX GetCurrentRow() const { return m_Cursor.GetRow(); } @@ -271,7 +276,7 @@ // This should be used instead of consecutive calls to SetCurrentRow() then SetCurrentColumn() bool SetCursorPosition(const PatternCursor &cursor, bool wrap = false); bool DragToSel(const PatternCursor &cursor, bool scrollHorizontal, bool scrollVertical, bool noMove = false); - bool SetPlayCursor(PATTERNINDEX pat, ROWINDEX row); + bool SetPlayCursor(PATTERNINDEX pat, ROWINDEX row, uint32 tick); bool UpdateScrollbarPositions(bool updateHorizontalScrollbar = true); BYTE EnterNote(UINT nNote, UINT nIns=0, BOOL bCheck=FALSE, int vol=-1, BOOL bMultiCh=FALSE); bool ShowEditWindow(); Modified: trunk/OpenMPT/soundlib/Sndfile.h =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.h 2015-06-26 21:03:11 UTC (rev 5360) +++ trunk/OpenMPT/soundlib/Sndfile.h 2015-06-26 21:48:05 UTC (rev 5361) @@ -872,12 +872,12 @@ void DoFreqSlide(ModChannel *pChn, int32 nFreqSlide) const; void UpdateTimeSignature(); +public: uint32 GetNumTicksOnCurrentRow() const { return (m_PlayState.m_nMusicSpeed + m_PlayState.m_nFrameDelay) * MAX(m_PlayState.m_nPatternDelay, 1); } -public: bool DestroySample(SAMPLEINDEX nSample); bool DestroySampleThreadsafe(SAMPLEINDEX nSample); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2015-06-27 14:42:01
|
Revision: 5369 http://sourceforge.net/p/modplug/code/5369 Author: manxorist Date: 2015-06-27 14:41:53 +0000 (Sat, 27 Jun 2015) Log Message: ----------- [Fix] Be more defensive with CPUID detection code. In particular, only query AMD extended feature flags (cpuid(eax=0x80000000)) if the function is actually documented for a CPU that old. It's not known whether this is actually required by real silicon; the docs are ambigouos and contradictional. Anyway, the more defensive check surely will not hurt any known CPU. (affected CPUs are AMD K5 and AMD K6-1) (not tested because I have no hardware available) [Fix] In the last round of CPUID cleanups, when we introduced AMD vendor string checking, 3DNow! detection on other vendor's CPUs was lost. Reintroduce it for all those that we know about and also only query the function on CPUs new enough to have it actually documented (supposedly fixes 3DNow! detection on IDT WinChip 2, Cyrix MediaGXm, VIA Cyrix III, VIA C3 and National Semiconductor Geode GX2) (not tested because I have no hardware available) [Fix] The extended feature flags are actually different from vendor to vendor, in particular the ones that AMD uses for MMXEXT and 3DNOWEXT have different meanings on other vendors. We should only ever check the one single bit for 3DNOW, and only on the other vendors CPUs that support it. (not tested because I have no hardware available) [Ref] Add TSC, CMOV and SSE4 detection while at it. Modified Paths: -------------- trunk/OpenMPT/common/BuildSettings.h trunk/OpenMPT/common/mptCPU.cpp trunk/OpenMPT/common/mptCPU.h trunk/OpenMPT/mptrack/AboutDialog.cpp Modified: trunk/OpenMPT/common/BuildSettings.h =================================================================== --- trunk/OpenMPT/common/BuildSettings.h 2015-06-27 14:14:12 UTC (rev 5368) +++ trunk/OpenMPT/common/BuildSettings.h 2015-06-27 14:41:53 UTC (rev 5369) @@ -50,6 +50,9 @@ // Generate inline assembly using SSE3 instructions (only used when the CPU supports it). #define ENABLE_SSE3 +// Generate inline assembly using SSE4 instructions (only used when the CPU supports it). +#define ENABLE_SSE4 + // Generate inline assembly using AMD specific instruction set extensions (only used when the CPU supports it). #define ENABLE_X86_AMD @@ -64,6 +67,9 @@ // Generate inline assembly using SSE3 instructions (only used when the CPU supports it). #define ENABLE_SSE3 +// Generate inline assembly using SSE4 instructions (only used when the CPU supports it). +#define ENABLE_SSE4 + #endif #endif // ENABLE_ASM Modified: trunk/OpenMPT/common/mptCPU.cpp =================================================================== --- trunk/OpenMPT/common/mptCPU.cpp 2015-06-27 14:14:12 UTC (rev 5368) +++ trunk/OpenMPT/common/mptCPU.cpp 2015-06-27 14:41:53 UTC (rev 5369) @@ -19,6 +19,10 @@ uint32 ProcSupport = 0; +char ProcVendorID[16+1] = ""; +uint16 ProcFamily = 0; +uint8 ProcModel = 0; +uint8 ProcStepping = 0; #if MPT_COMPILER_MSVC && (defined(ENABLE_X86) || defined(ENABLE_X64)) @@ -69,46 +73,197 @@ } -static bool has_cpuid() -//--------------------- +static cpuid_result cpuidex(uint32 function_a, uint32 function_c) +//--------------------------------------------------------------- { - const size_t eflags_cpuid = 1 << 21; - size_t old_eflags = __readeflags(); - __writeeflags(old_eflags ^ eflags_cpuid); - bool result = ((__readeflags() ^ old_eflags) & eflags_cpuid) != 0; - __writeeflags(old_eflags); + cpuid_result result; + #if MPT_MSVC_AT_LEAST(2010,0) + int CPUInfo[4]; + __cpuidex(CPUInfo, function_a, function_c); + result.a = CPUInfo[0]; + result.b = CPUInfo[1]; + result.c = CPUInfo[2]; + result.d = CPUInfo[3]; + #else + // just do not test modern cpuid features with older compiler + result.a = 0; + result.b = 0; + result.c = 0; + result.d = 0; + #endif return result; } +static MPT_NOINLINE bool has_cpuid() +//---------------------------------- +{ + const size_t eflags_cpuid = 1 << 21; + size_t eflags_old = __readeflags(); + size_t eflags_flipped = eflags_old ^ eflags_cpuid; + __writeeflags(eflags_flipped); + size_t eflags_testchanged = __readeflags(); + __writeeflags(eflags_old); + return ((eflags_testchanged ^ eflags_old) & eflags_cpuid) != 0; +} + + void InitProcSupport() //-------------------- { ProcSupport = 0; + MemsetZero(ProcVendorID); + ProcFamily = 0; + ProcModel = 0; + ProcStepping = 0; if(has_cpuid()) { + + ProcSupport |= PROCSUPPORT_CPUID; + cpuid_result VendorString = cpuid(0x00000000u); + std::strcpy(ProcVendorID, VendorString.as_string().c_str()); - cpuid_result StandardFeatureFlags = cpuid(0x00000001u); - if(StandardFeatureFlags.d & (1<<23)) ProcSupport |= PROCSUPPORT_MMX; - if(StandardFeatureFlags.d & (1<<25)) ProcSupport |= PROCSUPPORT_SSE; - if(StandardFeatureFlags.d & (1<<26)) ProcSupport |= PROCSUPPORT_SSE2; - if(StandardFeatureFlags.c & (1<< 0)) ProcSupport |= PROCSUPPORT_SSE3; - - if(VendorString.as_string() == "AuthenticAMD") + // Cyrix 6x86 and 6x86MX do not specify the value returned in eax. + // They both support 0x00000001u however. + if((VendorString.as_string() == "CyrixInstead") || (VendorString.a >= 0x00000001u)) { - cpuid_result ExtendedVendorString = cpuid(0x80000000u); - if(ExtendedVendorString.a >= 0x80000001u) + cpuid_result StandardFeatureFlags = cpuid(0x00000001u); + uint32 Stepping = (StandardFeatureFlags.a >> 0) & 0x0f; + uint32 BaseModel = (StandardFeatureFlags.a >> 4) & 0x0f; + uint32 BaseFamily = (StandardFeatureFlags.a >> 8) & 0x0f; + uint32 ExtModel = (StandardFeatureFlags.a >> 16) & 0x0f; + uint32 ExtFamily = (StandardFeatureFlags.a >> 20) & 0xff; + if(BaseFamily < 0xf) { - cpuid_result ExtendedFeatureFlags = cpuid(0x80000001u); - if(ExtendedFeatureFlags.d & (1<<22)) ProcSupport |= PROCSUPPORT_AMD_MMXEXT; - if(ExtendedFeatureFlags.d & (1<<31)) ProcSupport |= PROCSUPPORT_AMD_3DNOW; - if(ExtendedFeatureFlags.d & (1<<30)) ProcSupport |= PROCSUPPORT_AMD_3DNOW2; + ProcFamily = static_cast<uint16>(BaseFamily); + ProcModel = static_cast<uint8>(BaseModel); + ProcStepping = static_cast<uint8>(Stepping); + } else + { + ProcFamily = static_cast<uint16>(ExtFamily + BaseFamily); + ProcModel = static_cast<uint8>((ExtModel << 4) | (BaseModel << 0)); + ProcStepping = static_cast<uint8>(Stepping); } + if(StandardFeatureFlags.d & (1<< 4)) ProcSupport |= PROCSUPPORT_TSC; + if(StandardFeatureFlags.d & (1<<15)) ProcSupport |= PROCSUPPORT_CMOV; + if(StandardFeatureFlags.d & (1<< 0)) ProcSupport |= PROCSUPPORT_FPU; + if(StandardFeatureFlags.d & (1<<23)) ProcSupport |= PROCSUPPORT_MMX; + if(StandardFeatureFlags.d & (1<<25)) ProcSupport |= PROCSUPPORT_SSE; + if(StandardFeatureFlags.d & (1<<26)) ProcSupport |= PROCSUPPORT_SSE2; + if(StandardFeatureFlags.c & (1<< 0)) ProcSupport |= PROCSUPPORT_SSE3; + if(StandardFeatureFlags.c & (1<< 9)) ProcSupport |= PROCSUPPORT_SSSE3; + if(StandardFeatureFlags.c & (1<<19)) ProcSupport |= PROCSUPPORT_SSE4_1; + if(StandardFeatureFlags.c & (1<<20)) ProcSupport |= PROCSUPPORT_SSE4_2; } + + // 3DNow! manual recommends to just execute 0x80000000u. + // It is totally unknown how earlier CPUs from other vendors + // would behave. + // Thus we only execute 0x80000000u on other vendors CPUs for the earliest + // that we found it documented for and that actually supports 3DNow!. + // We only need 0x80000000u in order to detect 3DNow!. + // Thus, this is enough for us. + if((VendorString.as_string() == "AuthenticAMD") || (VendorString.as_string() == "AMDisbetter!")) + { // AMD + + if((ProcFamily > 5) || ((ProcFamily == 5) && (ProcModel >= 8))) + { // >= K6-2 (K6 = Family 5, K6-2 = Model 8) + // Not sure if earlier AMD CPUs support 0x80000000u. + // AMD 5k86 and AMD K5 manuals do not mention it. + cpuid_result ExtendedVendorString = cpuid(0x80000000u); + if(ExtendedVendorString.a >= 0x80000001u) + { + cpuid_result ExtendedFeatureFlags = cpuid(0x80000001u); + if(ExtendedFeatureFlags.d & (1<< 4)) ProcSupport |= PROCSUPPORT_TSC; + if(ExtendedFeatureFlags.d & (1<<15)) ProcSupport |= PROCSUPPORT_CMOV; + if(ExtendedFeatureFlags.d & (1<< 0)) ProcSupport |= PROCSUPPORT_FPU; + if(ExtendedFeatureFlags.d & (1<<23)) ProcSupport |= PROCSUPPORT_MMX; + if(ExtendedFeatureFlags.d & (1<<22)) ProcSupport |= PROCSUPPORT_AMD_MMXEXT; + if(ExtendedFeatureFlags.d & (1<<31)) ProcSupport |= PROCSUPPORT_AMD_3DNOW; + if(ExtendedFeatureFlags.d & (1<<30)) ProcSupport |= PROCSUPPORT_AMD_3DNOWEXT; + } + } + + } else if(VendorString.as_string() == "CentaurHauls") + { // Centaur (IDT WinChip or VIA C3) + + if(ProcFamily == 5) + { // IDT + + if(ProcModel >= 8) + { // >= WinChip 2 + cpuid_result ExtendedVendorString = cpuid(0x80000000u); + if(ExtendedVendorString.a >= 0x80000001u) + { + cpuid_result ExtendedFeatureFlags = cpuid(0x80000001u); + if(ExtendedFeatureFlags.d & (1<<31)) ProcSupport |= PROCSUPPORT_AMD_3DNOW; + } + } + + } else if(ProcFamily >= 6) + { // VIA + + if((ProcFamily >= 7) || ((ProcFamily == 6) && (ProcModel >= 7))) + { // >= C3 Samuel 2 + cpuid_result ExtendedVendorString = cpuid(0x80000000u); + if(ExtendedVendorString.a >= 0x80000001u) + { + cpuid_result ExtendedFeatureFlags = cpuid(0x80000001u); + if(ExtendedFeatureFlags.d & (1<<31)) ProcSupport |= PROCSUPPORT_AMD_3DNOW; + } + } + + } + + } else if(VendorString.as_string() == "CyrixInstead") + { // Cyrix + + // 6x86 : 5.2.x + // 6x86L : 5.2.x + // MediaGX : 4.4.x + // 6x86MX : 6.0.x + // MII : 6.0.x + // MediaGXm: 5.4.x + // well, doh ... + + if((ProcFamily == 5) && (ProcModel >= 4)) + { // Cyrix MediaGXm + cpuid_result ExtendedVendorString = cpuid(0x80000000u); + if(ExtendedVendorString.a >= 0x80000001u) + { + cpuid_result ExtendedFeatureFlags = cpuid(0x80000001u); + if(ExtendedFeatureFlags.d & (1<<31)) ProcSupport |= PROCSUPPORT_AMD_3DNOW; + } + } + + } else if(VendorString.as_string() == "Geode by NSC") + { // National Semiconductor + + if((ProcFamily > 5) || ((ProcFamily == 5) && (ProcModel >= 5))) + { // >= Geode GX2 + cpuid_result ExtendedVendorString = cpuid(0x80000000u); + if(ExtendedVendorString.a >= 0x80000001u) + { + cpuid_result ExtendedFeatureFlags = cpuid(0x80000001u); + if(ExtendedFeatureFlags.d & (1<<31)) ProcSupport |= PROCSUPPORT_AMD_3DNOW; + } + } + + } + + } else + { + + ProcSupport |= PROCSUPPORT_FPU; // We assume FPU because we require it. + } + + // We do not have to check if SSE got enabled by the OS because we only do + // support Windows >= 98 SE which will always enable SSE if available. + } Modified: trunk/OpenMPT/common/mptCPU.h =================================================================== --- trunk/OpenMPT/common/mptCPU.h 2015-06-27 14:14:12 UTC (rev 5368) +++ trunk/OpenMPT/common/mptCPU.h 2015-06-27 14:41:53 UTC (rev 5369) @@ -15,14 +15,25 @@ #ifdef ENABLE_ASM -#define PROCSUPPORT_MMX 0x00001 // Processor supports MMX instructions -#define PROCSUPPORT_SSE 0x00010 // Processor supports SSE instructions -#define PROCSUPPORT_SSE2 0x00020 // Processor supports SSE2 instructions -#define PROCSUPPORT_SSE3 0x00040 // Processor supports SSE3 instructions -#define PROCSUPPORT_AMD_MMXEXT 0x10000 // Processor supports AMD MMX extensions -#define PROCSUPPORT_AMD_3DNOW 0x20000 // Processor supports AMD 3DNow! instructions -#define PROCSUPPORT_AMD_3DNOW2 0x40000 // Processor supports AMD 3DNow!2 instructions +#define PROCSUPPORT_CPUID 0x00001 // Processor supports CPUID instruction (i586) +#define PROCSUPPORT_TSC 0x00002 // Processor supports RDTSC instruction (i586) +#define PROCSUPPORT_CMOV 0x00004 // Processor supports conditional move instructions (i686) +#define PROCSUPPORT_FPU 0x00008 // Processor supports x87 instructions +#define PROCSUPPORT_MMX 0x00010 // Processor supports MMX instructions +#define PROCSUPPORT_AMD_MMXEXT 0x00020 // Processor supports AMD MMX extensions +#define PROCSUPPORT_AMD_3DNOW 0x00040 // Processor supports AMD 3DNow! instructions +#define PROCSUPPORT_AMD_3DNOWEXT 0x00080 // Processor supports AMD 3DNow!2 instructions +#define PROCSUPPORT_SSE 0x00100 // Processor supports SSE instructions +#define PROCSUPPORT_SSE2 0x00200 // Processor supports SSE2 instructions +#define PROCSUPPORT_SSE3 0x00400 // Processor supports SSE3 instructions +#define PROCSUPPORT_SSSE3 0x00800 // Processor supports SSSE3 instructions +#define PROCSUPPORT_SSE4_1 0x01000 // Processor supports SSE4.1 instructions +#define PROCSUPPORT_SSE4_2 0x02000 // Processor supports SSE4.2 instructions extern uint32 ProcSupport; +extern char ProcVendorID[16+1]; +extern uint16 ProcFamily; +extern uint8 ProcModel; +extern uint8 ProcStepping; void InitProcSupport(); static inline uint32 GetProcSupport() { Modified: trunk/OpenMPT/mptrack/AboutDialog.cpp =================================================================== --- trunk/OpenMPT/mptrack/AboutDialog.cpp 2015-06-27 14:14:12 UTC (rev 5368) +++ trunk/OpenMPT/mptrack/AboutDialog.cpp 2015-06-27 14:41:53 UTC (rev 5369) @@ -364,11 +364,12 @@ { text += MPT_USTRING("Required CPU features: "); std::vector<mpt::ustring> features; - if(GetMinimumSSEVersion() <= 0 && GetMinimumAVXVersion() <= 0 ) features.push_back(MPT_USTRING("FPU")); - if(GetMinimumSSEVersion() >= 1) features.push_back(MPT_USTRING("SSE")); - if(GetMinimumSSEVersion() >= 2) features.push_back(MPT_USTRING("SSE2")); - if(GetMinimumAVXVersion() >= 1) features.push_back(MPT_USTRING("AVX")); - if(GetMinimumAVXVersion() >= 2) features.push_back(MPT_USTRING("AVX2")); + if(GetMinimumSSEVersion() <= 0 && GetMinimumAVXVersion() <= 0 ) features.push_back(MPT_USTRING("fpu")); + if(GetMinimumSSEVersion() >= 1) features.push_back(MPT_USTRING("cmov")); + if(GetMinimumSSEVersion() >= 1) features.push_back(MPT_USTRING("sse")); + if(GetMinimumSSEVersion() >= 2) features.push_back(MPT_USTRING("sse2")); + if(GetMinimumAVXVersion() >= 1) features.push_back(MPT_USTRING("avx")); + if(GetMinimumAVXVersion() >= 2) features.push_back(MPT_USTRING("avx2")); text += mpt::String::Combine(features, MPT_USTRING(" ")); text += lf; } @@ -377,33 +378,52 @@ std::vector<mpt::ustring> features; #if MPT_COMPILER_MSVC && defined(ENABLE_ASM) #if defined(ENABLE_X86) - features.push_back(MPT_USTRING("x86-32")); + features.push_back(MPT_USTRING("x86")); + if(GetProcSupport() & PROCSUPPORT_FPU) features.push_back(MPT_USTRING("fpu")); + if(GetProcSupport() & PROCSUPPORT_CMOV) features.push_back(MPT_USTRING("cmov")); #endif #if defined(ENABLE_X64) features.push_back(MPT_USTRING("x86-64")); #endif #if defined(ENABLE_MMX) - if(GetProcSupport() & PROCSUPPORT_MMX) features.push_back(MPT_USTRING("MMX")); + if(GetProcSupport() & PROCSUPPORT_MMX) features.push_back(MPT_USTRING("mmx")); #endif #if defined(ENABLE_SSE) - if(GetProcSupport() & PROCSUPPORT_SSE) features.push_back(MPT_USTRING("SSE")); + if(GetProcSupport() & PROCSUPPORT_SSE) features.push_back(MPT_USTRING("sse")); #endif #if defined(ENABLE_SSE2) - if(GetProcSupport() & PROCSUPPORT_SSE2) features.push_back(MPT_USTRING("SSE2")); + if(GetProcSupport() & PROCSUPPORT_SSE2) features.push_back(MPT_USTRING("sse2")); #endif #if defined(ENABLE_SSE3) - if(GetProcSupport() & PROCSUPPORT_SSE3) features.push_back(MPT_USTRING("SSE3")); + if(GetProcSupport() & PROCSUPPORT_SSE3) features.push_back(MPT_USTRING("sse3")); + if(GetProcSupport() & PROCSUPPORT_SSSE3) features.push_back(MPT_USTRING("ssse3")); #endif + #if defined(ENABLE_SSE4) + if(GetProcSupport() & PROCSUPPORT_SSE4_1) features.push_back(MPT_USTRING("sse4.1")); + if(GetProcSupport() & PROCSUPPORT_SSE4_2) features.push_back(MPT_USTRING("sse4.2")); + #endif #if defined(ENABLE_X86_AMD) - if(GetProcSupport() & PROCSUPPORT_AMD_MMXEXT) features.push_back(MPT_USTRING("AMD-MMXEXT")); - if(GetProcSupport() & PROCSUPPORT_AMD_3DNOW) features.push_back(MPT_USTRING("AMD-3DNOW")); - if(GetProcSupport() & PROCSUPPORT_AMD_3DNOW2) features.push_back(MPT_USTRING("AMD-3DNOW2")); + if(GetProcSupport() & PROCSUPPORT_AMD_MMXEXT) features.push_back(MPT_USTRING("mmxext")); + if(GetProcSupport() & PROCSUPPORT_AMD_3DNOW) features.push_back(MPT_USTRING("3dnow")); + if(GetProcSupport() & PROCSUPPORT_AMD_3DNOWEXT) features.push_back(MPT_USTRING("3dnowext")); #endif #endif text += mpt::String::Combine(features, MPT_USTRING(" ")); text += lf; } text += lf; + if(GetProcSupport() & PROCSUPPORT_CPUID) + { + text += MPT_UFORMAT("CPU: %1, Family %2, Model %3, Stepping %4" + , mpt::ToUnicode(mpt::CharsetASCII, (std::strlen(ProcVendorID) > 0) ? std::string(ProcVendorID) : std::string("Generic")) + , ProcFamily + , ProcModel + , ProcStepping + ) + lf; + } else + { + text += MPT_USTRING("Generic without CPUID") + lf; + } text += MPT_UFORMAT("Operating System: %1", mpt::Windows::Version::GetName()) + lf; text += lf; text += MPT_UFORMAT("OpenMPT Path%2: %1", theApp.GetAppDirPath(), theApp.IsPortableMode() ? MPT_USTRING(" (portable)") : MPT_USTRING("")) + lf; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sag...@us...> - 2015-07-10 21:34:12
|
Revision: 5401 http://sourceforge.net/p/modplug/code/5401 Author: saga-games Date: 2015-07-10 21:34:06 +0000 (Fri, 10 Jul 2015) Log Message: ----------- [Fix] Preview revision introduced crashes when entering note cut/fade/off in the pattern editor [Imp] Also instantly preview the effect of note cut/off/fade in the pattern editor (i.e. kill notes) [Mod] OpenMPT: Version is now 1.25.00.17 Modified Paths: -------------- trunk/OpenMPT/common/versionNumber.h trunk/OpenMPT/mptrack/Moddoc.cpp trunk/OpenMPT/mptrack/Moddoc.h trunk/OpenMPT/mptrack/View_ins.cpp trunk/OpenMPT/mptrack/View_pat.cpp Modified: trunk/OpenMPT/common/versionNumber.h =================================================================== --- trunk/OpenMPT/common/versionNumber.h 2015-07-10 20:21:25 UTC (rev 5400) +++ trunk/OpenMPT/common/versionNumber.h 2015-07-10 21:34:06 UTC (rev 5401) @@ -19,7 +19,7 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 25 #define VER_MINOR 00 -#define VER_MINORMINOR 16 +#define VER_MINORMINOR 17 //Version string. For example "1.17.02.28" #define MPT_VERSION_STR VER_STRINGIZE(VER_MAJORMAJOR) "." VER_STRINGIZE(VER_MAJOR) "." VER_STRINGIZE(VER_MINOR) "." VER_STRINGIZE(VER_MINORMINOR) Modified: trunk/OpenMPT/mptrack/Moddoc.cpp =================================================================== --- trunk/OpenMPT/mptrack/Moddoc.cpp 2015-07-10 20:21:25 UTC (rev 5400) +++ trunk/OpenMPT/mptrack/Moddoc.cpp 2015-07-10 21:34:06 UTC (rev 5401) @@ -1158,7 +1158,17 @@ } else { CriticalSection cs; + // Apply note cut / off / fade (also on preview channels) m_SndFile.NoteChange(&m_SndFile.m_PlayState.Chn[nChn], note); + for(CHANNELINDEX c = m_SndFile.GetNumChannels(); c < MAX_CHANNELS; c++) + { + ModChannel &chn = m_SndFile.m_PlayState.Chn[c]; + if(chn.nMasterChn == 0) + { + m_SndFile.NoteChange(&chn, note); + } + } + if (pause) m_SndFile.m_SongFlags.set(SONG_PAUSED); } return nChn; @@ -1216,11 +1226,11 @@ } -// Apply DNA/NNA settings for note preview -void CModDoc::CheckNNA(ModCommand::NOTE note, INSTRUMENTINDEX ins, const std::bitset<128> &playingNotes) -//------------------------------------------------------------------------------------------------------ +// Apply DNA/NNA settings for note preview. It will also set the specified note to be playing in the playingNotes set. +void CModDoc::CheckNNA(ModCommand::NOTE note, INSTRUMENTINDEX ins, std::bitset<128> &playingNotes) +//------------------------------------------------------------------------------------------------ { - if(ins > GetNumInstruments() || m_SndFile.Instruments[ins] == nullptr) + if(ins > GetNumInstruments() || m_SndFile.Instruments[ins] == nullptr || note >= playingNotes.size()) { return; } @@ -1256,6 +1266,7 @@ } } } + playingNotes.set(note); } Modified: trunk/OpenMPT/mptrack/Moddoc.h =================================================================== --- trunk/OpenMPT/mptrack/Moddoc.h 2015-07-10 20:21:25 UTC (rev 5400) +++ trunk/OpenMPT/mptrack/Moddoc.h 2015-07-10 21:34:06 UTC (rev 5401) @@ -211,7 +211,7 @@ void ProcessMIDI(uint32 midiData, INSTRUMENTINDEX ins, IMixPlugin *plugin, InputTargetContext ctx); CHANNELINDEX PlayNote(UINT note, INSTRUMENTINDEX nins, SAMPLEINDEX nsmp, bool pause, LONG nVol=-1, SmpLength loopStart = 0, SmpLength loopEnd = 0, CHANNELINDEX nCurrentChn = CHANNELINDEX_INVALID, const SmpLength sampleOffset = 0); bool NoteOff(UINT note, bool fade = false, INSTRUMENTINDEX ins = INSTRUMENTINDEX_INVALID, CHANNELINDEX currentChn = CHANNELINDEX_INVALID, CHANNELINDEX stopChn = CHANNELINDEX_INVALID); //rewbs.vstiLive: add params - void CheckNNA(ModCommand::NOTE note, INSTRUMENTINDEX ins, const std::bitset<128> &playingNotes); + void CheckNNA(ModCommand::NOTE note, INSTRUMENTINDEX ins, std::bitset<128> &playingNotes); bool IsNotePlaying(UINT note, SAMPLEINDEX nsmp = 0, INSTRUMENTINDEX nins = 0); bool MuteChannel(CHANNELINDEX nChn, bool bMute); Modified: trunk/OpenMPT/mptrack/View_ins.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_ins.cpp 2015-07-10 20:21:25 UTC (rev 5400) +++ trunk/OpenMPT/mptrack/View_ins.cpp 2015-07-10 21:34:06 UTC (rev 5401) @@ -1934,8 +1934,12 @@ { CMainFrame *pMainFrm = CMainFrame::GetMainFrame(); CModDoc *pModDoc = GetDocument(); - if ((pModDoc) && (pMainFrm) && (note > 0) && (note<128)) + if (pModDoc == nullptr || pMainFrm == nullptr) { + return; + } + if (note > 0 && note<128) + { CHAR s[64]; if (note >= NOTE_MIN_SPECIAL) { @@ -1956,7 +1960,6 @@ } CriticalSection cs; pModDoc->CheckNNA(note, m_nInstrument, m_baPlayingNote); - m_baPlayingNote[note] = true; pModDoc->PlayNote(note, m_nInstrument, 0, false); } s[0] = 0; @@ -1967,6 +1970,9 @@ } pMainFrm->SetInfoText(s); } + } else + { + pModDoc->PlayNote(note, m_nInstrument, 0, false); } } Modified: trunk/OpenMPT/mptrack/View_pat.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_pat.cpp 2015-07-10 20:21:25 UTC (rev 5400) +++ trunk/OpenMPT/mptrack/View_pat.cpp 2015-07-10 21:34:06 UTC (rev 5401) @@ -5456,7 +5456,6 @@ } bool isPlaying = ((pMainFrm->GetModPlaying() == pModDoc) && (pMainFrm->IsPlaying())); pModDoc->CheckNNA(newcmd.note, nPlayIns, m_baPlayingNote); - m_baPlayingNote.set(newcmd.note); pModDoc->PlayNote(newcmd.note, nPlayIns, 0, !isPlaying, 4 * vol, 0, 0, nChn); } } @@ -5733,7 +5732,6 @@ for(int i = 0; i < numNotes; i++) { pModDoc->CheckNNA(note, nPlayIns, m_baPlayingNote); - m_baPlayingNote.set(note); pModDoc->PlayNote(chordNotes[i], nPlayIns, 0, !isPlaying && i == 0, -1, 0, 0, chn); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2015-07-12 06:37:49
|
Revision: 5406 http://sourceforge.net/p/modplug/code/5406 Author: manxorist Date: 2015-07-12 06:37:37 +0000 (Sun, 12 Jul 2015) Log Message: ----------- [Mod] build: Enable SSE2 for VS2010 or later Release and ReleaseLTCG build configurations. [Mod] build: Bump Windows header version to Windows 7 level for VS2010 or later. [Mod] OpenMPT: Version is now 1.25.00.18 Modified Paths: -------------- trunk/OpenMPT/build/premake/premake-defaults.lua trunk/OpenMPT/build/vs2010/OpenMPT.vcxproj trunk/OpenMPT/build/vs2010/PluginBridge.vcxproj trunk/OpenMPT/build/vs2010/VST MIDI Input Output.vcxproj trunk/OpenMPT/build/vs2010/foo_openmpt.vcxproj trunk/OpenMPT/build/vs2010/in_openmpt.vcxproj trunk/OpenMPT/build/vs2010/libopenmpt.vcxproj trunk/OpenMPT/build/vs2010/libopenmptDLL.vcxproj trunk/OpenMPT/build/vs2010/libopenmpt_example_c.vcxproj trunk/OpenMPT/build/vs2010/libopenmpt_example_c_mem.vcxproj trunk/OpenMPT/build/vs2010/libopenmpt_example_cxx.vcxproj trunk/OpenMPT/build/vs2010/libopenmpt_modplug.vcxproj trunk/OpenMPT/build/vs2010/libopenmpt_test.vcxproj trunk/OpenMPT/build/vs2010/openmpt123.vcxproj trunk/OpenMPT/build/vs2010/xmp-openmpt.vcxproj trunk/OpenMPT/build/vs2010-ext/UnRAR.vcxproj trunk/OpenMPT/build/vs2010-ext/flac.vcxproj trunk/OpenMPT/build/vs2010-ext/lhasa.vcxproj trunk/OpenMPT/build/vs2010-ext/miniz-shared.vcxproj trunk/OpenMPT/build/vs2010-ext/miniz.vcxproj trunk/OpenMPT/build/vs2010-ext/minizip.vcxproj trunk/OpenMPT/build/vs2010-ext/ogg.vcxproj trunk/OpenMPT/build/vs2010-ext/portaudio.vcxproj trunk/OpenMPT/build/vs2010-ext/portmidi.vcxproj trunk/OpenMPT/build/vs2010-ext/pugixml.vcxproj trunk/OpenMPT/build/vs2010-ext/r8brain.vcxproj trunk/OpenMPT/build/vs2010-ext/smbPitchShift.vcxproj trunk/OpenMPT/build/vs2010-ext/soundtouch.vcxproj trunk/OpenMPT/build/vs2010-ext/zlib.vcxproj trunk/OpenMPT/build/vs2012/OpenMPT.vcxproj trunk/OpenMPT/build/vs2012/PluginBridge.vcxproj trunk/OpenMPT/build/vs2012/VST MIDI Input Output.vcxproj trunk/OpenMPT/build/vs2012/in_openmpt.vcxproj trunk/OpenMPT/build/vs2012/libopenmpt.vcxproj trunk/OpenMPT/build/vs2012/libopenmptDLL.vcxproj trunk/OpenMPT/build/vs2012/libopenmpt_example_c.vcxproj trunk/OpenMPT/build/vs2012/libopenmpt_example_c_mem.vcxproj trunk/OpenMPT/build/vs2012/libopenmpt_example_cxx.vcxproj trunk/OpenMPT/build/vs2012/libopenmpt_modplug.vcxproj trunk/OpenMPT/build/vs2012/libopenmpt_test.vcxproj trunk/OpenMPT/build/vs2012/openmpt123.vcxproj trunk/OpenMPT/build/vs2012/xmp-openmpt.vcxproj trunk/OpenMPT/build/vs2012-ext/UnRAR.vcxproj trunk/OpenMPT/build/vs2012-ext/flac.vcxproj trunk/OpenMPT/build/vs2012-ext/lhasa.vcxproj trunk/OpenMPT/build/vs2012-ext/miniz-shared.vcxproj trunk/OpenMPT/build/vs2012-ext/miniz.vcxproj trunk/OpenMPT/build/vs2012-ext/minizip.vcxproj trunk/OpenMPT/build/vs2012-ext/ogg.vcxproj trunk/OpenMPT/build/vs2012-ext/portaudio.vcxproj trunk/OpenMPT/build/vs2012-ext/portmidi.vcxproj trunk/OpenMPT/build/vs2012-ext/pugixml.vcxproj trunk/OpenMPT/build/vs2012-ext/r8brain.vcxproj trunk/OpenMPT/build/vs2012-ext/smbPitchShift.vcxproj trunk/OpenMPT/build/vs2012-ext/soundtouch.vcxproj trunk/OpenMPT/build/vs2012-ext/zlib.vcxproj trunk/OpenMPT/build/vs2013/OpenMPT.vcxproj trunk/OpenMPT/build/vs2013/PluginBridge.vcxproj trunk/OpenMPT/build/vs2013/VST MIDI Input Output.vcxproj trunk/OpenMPT/build/vs2013/in_openmpt.vcxproj trunk/OpenMPT/build/vs2013/libopenmpt.vcxproj trunk/OpenMPT/build/vs2013/libopenmptDLL.vcxproj trunk/OpenMPT/build/vs2013/libopenmpt_example_c.vcxproj trunk/OpenMPT/build/vs2013/libopenmpt_example_c_mem.vcxproj trunk/OpenMPT/build/vs2013/libopenmpt_example_cxx.vcxproj trunk/OpenMPT/build/vs2013/libopenmpt_modplug.vcxproj trunk/OpenMPT/build/vs2013/libopenmpt_test.vcxproj trunk/OpenMPT/build/vs2013/openmpt123.vcxproj trunk/OpenMPT/build/vs2013/xmp-openmpt.vcxproj trunk/OpenMPT/build/vs2013-ext/UnRAR.vcxproj trunk/OpenMPT/build/vs2013-ext/flac.vcxproj trunk/OpenMPT/build/vs2013-ext/lhasa.vcxproj trunk/OpenMPT/build/vs2013-ext/miniz-shared.vcxproj trunk/OpenMPT/build/vs2013-ext/miniz.vcxproj trunk/OpenMPT/build/vs2013-ext/minizip.vcxproj trunk/OpenMPT/build/vs2013-ext/ogg.vcxproj trunk/OpenMPT/build/vs2013-ext/portaudio.vcxproj trunk/OpenMPT/build/vs2013-ext/portmidi.vcxproj trunk/OpenMPT/build/vs2013-ext/pugixml.vcxproj trunk/OpenMPT/build/vs2013-ext/r8brain.vcxproj trunk/OpenMPT/build/vs2013-ext/smbPitchShift.vcxproj trunk/OpenMPT/build/vs2013-ext/soundtouch.vcxproj trunk/OpenMPT/build/vs2013-ext/zlib.vcxproj trunk/OpenMPT/build/vs2015/OpenMPT.vcxproj trunk/OpenMPT/build/vs2015/PluginBridge.vcxproj trunk/OpenMPT/build/vs2015/VST MIDI Input Output.vcxproj trunk/OpenMPT/build/vs2015/in_openmpt.vcxproj trunk/OpenMPT/build/vs2015/libopenmpt.vcxproj trunk/OpenMPT/build/vs2015/libopenmptDLL.vcxproj trunk/OpenMPT/build/vs2015/libopenmpt_example_c.vcxproj trunk/OpenMPT/build/vs2015/libopenmpt_example_c_mem.vcxproj trunk/OpenMPT/build/vs2015/libopenmpt_example_cxx.vcxproj trunk/OpenMPT/build/vs2015/libopenmpt_modplug.vcxproj trunk/OpenMPT/build/vs2015/libopenmpt_test.vcxproj trunk/OpenMPT/build/vs2015/openmpt123.vcxproj trunk/OpenMPT/build/vs2015/xmp-openmpt.vcxproj trunk/OpenMPT/build/vs2015-ext/UnRAR.vcxproj trunk/OpenMPT/build/vs2015-ext/flac.vcxproj trunk/OpenMPT/build/vs2015-ext/lhasa.vcxproj trunk/OpenMPT/build/vs2015-ext/miniz-shared.vcxproj trunk/OpenMPT/build/vs2015-ext/miniz.vcxproj trunk/OpenMPT/build/vs2015-ext/minizip.vcxproj trunk/OpenMPT/build/vs2015-ext/ogg.vcxproj trunk/OpenMPT/build/vs2015-ext/portaudio.vcxproj trunk/OpenMPT/build/vs2015-ext/portmidi.vcxproj trunk/OpenMPT/build/vs2015-ext/pugixml.vcxproj trunk/OpenMPT/build/vs2015-ext/r8brain.vcxproj trunk/OpenMPT/build/vs2015-ext/smbPitchShift.vcxproj trunk/OpenMPT/build/vs2015-ext/soundtouch.vcxproj trunk/OpenMPT/build/vs2015-ext/zlib.vcxproj trunk/OpenMPT/common/BuildSettings.h trunk/OpenMPT/common/versionNumber.h Modified: trunk/OpenMPT/build/premake/premake-defaults.lua =================================================================== --- trunk/OpenMPT/build/premake/premake-defaults.lua 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/premake/premake-defaults.lua 2015-07-12 06:37:37 UTC (rev 5406) @@ -78,6 +78,12 @@ optimize "Speed" floatingpoint "Fast" + filter { "configurations:Release", "not action:vs2008" } + vectorextensions "SSE2" + + filter { "configurations:ReleaseLTCG", "not action:vs2008" } + vectorextensions "SSE2" + filter {} defines { "WIN32", "_CRT_SECURE_NO_WARNINGS", "_CRT_NONSTDC_NO_DEPRECATE", "_CRT_SECURE_NO_DEPRECATE", "_CRT_NONSTDC_NO_WARNINGS" } Modified: trunk/OpenMPT/build/vs2010/OpenMPT.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010/OpenMPT.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010/OpenMPT.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -290,6 +290,7 @@ <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <ExceptionHandling>Async</ExceptionHandling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <ResourceCompile> @@ -424,6 +425,7 @@ <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <ExceptionHandling>Async</ExceptionHandling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <ResourceCompile> Modified: trunk/OpenMPT/build/vs2010/PluginBridge.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010/PluginBridge.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010/PluginBridge.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -283,6 +283,7 @@ <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <ExceptionHandling>Async</ExceptionHandling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <ResourceCompile> @@ -425,6 +426,7 @@ <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <ExceptionHandling>Async</ExceptionHandling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <ResourceCompile> Modified: trunk/OpenMPT/build/vs2010/VST MIDI Input Output.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010/VST MIDI Input Output.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010/VST MIDI Input Output.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -258,6 +258,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> @@ -352,6 +353,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2010/foo_openmpt.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010/foo_openmpt.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010/foo_openmpt.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -104,6 +104,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2010/in_openmpt.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010/in_openmpt.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010/in_openmpt.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -109,6 +109,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <ResourceCompile> Modified: trunk/OpenMPT/build/vs2010/libopenmpt.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010/libopenmpt.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010/libopenmpt.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -170,6 +170,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2010/libopenmptDLL.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010/libopenmptDLL.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010/libopenmptDLL.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -175,6 +175,7 @@ <MinimalRebuild>false</MinimalRebuild> <StringPooling>true</StringPooling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2010/libopenmpt_example_c.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010/libopenmpt_example_c.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010/libopenmpt_example_c.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -176,6 +176,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> Modified: trunk/OpenMPT/build/vs2010/libopenmpt_example_c_mem.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010/libopenmpt_example_c_mem.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010/libopenmpt_example_c_mem.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -176,6 +176,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> Modified: trunk/OpenMPT/build/vs2010/libopenmpt_example_cxx.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010/libopenmpt_example_cxx.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010/libopenmpt_example_cxx.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -174,6 +174,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2010/libopenmpt_modplug.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010/libopenmpt_modplug.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010/libopenmpt_modplug.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -175,6 +175,7 @@ <MinimalRebuild>false</MinimalRebuild> <StringPooling>true</StringPooling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2010/libopenmpt_test.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010/libopenmpt_test.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010/libopenmpt_test.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -178,6 +178,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2010/openmpt123.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010/openmpt123.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010/openmpt123.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -180,6 +180,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2010/xmp-openmpt.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010/xmp-openmpt.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010/xmp-openmpt.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -109,6 +109,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <ResourceCompile> Modified: trunk/OpenMPT/build/vs2010-ext/UnRAR.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010-ext/UnRAR.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010-ext/UnRAR.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -238,6 +238,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> @@ -312,6 +313,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2010-ext/flac.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010-ext/flac.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010-ext/flac.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -242,6 +242,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <AdditionalOptions>/wd4244 /wd4267 /wd4334 %(AdditionalOptions)</AdditionalOptions> <CompileAs>CompileAsC</CompileAs> @@ -324,6 +325,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <AdditionalOptions>/wd4244 /wd4267 /wd4334 %(AdditionalOptions)</AdditionalOptions> <CompileAs>CompileAsC</CompileAs> Modified: trunk/OpenMPT/build/vs2010-ext/lhasa.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010-ext/lhasa.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010-ext/lhasa.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -242,6 +242,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <AdditionalOptions>/wd4244 /wd4267 %(AdditionalOptions)</AdditionalOptions> <CompileAs>CompileAsC</CompileAs> @@ -324,6 +325,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <AdditionalOptions>/wd4244 /wd4267 %(AdditionalOptions)</AdditionalOptions> <CompileAs>CompileAsC</CompileAs> Modified: trunk/OpenMPT/build/vs2010-ext/miniz-shared.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010-ext/miniz-shared.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010-ext/miniz-shared.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -234,6 +234,7 @@ <MinimalRebuild>false</MinimalRebuild> <StringPooling>true</StringPooling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> @@ -306,6 +307,7 @@ <MinimalRebuild>false</MinimalRebuild> <StringPooling>true</StringPooling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> Modified: trunk/OpenMPT/build/vs2010-ext/miniz.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010-ext/miniz.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010-ext/miniz.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -237,6 +237,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> @@ -311,6 +312,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> Modified: trunk/OpenMPT/build/vs2010-ext/minizip.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010-ext/minizip.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010-ext/minizip.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -240,6 +240,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> @@ -318,6 +319,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> Modified: trunk/OpenMPT/build/vs2010-ext/ogg.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010-ext/ogg.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010-ext/ogg.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -240,6 +240,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> @@ -318,6 +319,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> Modified: trunk/OpenMPT/build/vs2010-ext/portaudio.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010-ext/portaudio.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010-ext/portaudio.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -242,6 +242,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <AdditionalOptions>/wd4018 /wd4267 %(AdditionalOptions)</AdditionalOptions> <CompileAs>CompileAsC</CompileAs> @@ -324,6 +325,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <AdditionalOptions>/wd4018 /wd4267 %(AdditionalOptions)</AdditionalOptions> <CompileAs>CompileAsC</CompileAs> Modified: trunk/OpenMPT/build/vs2010-ext/portmidi.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010-ext/portmidi.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010-ext/portmidi.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -240,6 +240,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> @@ -318,6 +319,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> Modified: trunk/OpenMPT/build/vs2010-ext/pugixml.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010-ext/pugixml.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010-ext/pugixml.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -235,6 +235,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> @@ -305,6 +306,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2010-ext/r8brain.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010-ext/r8brain.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010-ext/r8brain.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -238,6 +238,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> @@ -312,6 +313,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2010-ext/smbPitchShift.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010-ext/smbPitchShift.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010-ext/smbPitchShift.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -235,6 +235,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> @@ -305,6 +306,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2010-ext/soundtouch.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010-ext/soundtouch.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010-ext/soundtouch.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -250,6 +250,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> @@ -328,6 +329,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2010-ext/zlib.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010-ext/zlib.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2010-ext/zlib.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -240,6 +240,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> @@ -318,6 +319,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> Modified: trunk/OpenMPT/build/vs2012/OpenMPT.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012/OpenMPT.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012/OpenMPT.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -300,6 +300,7 @@ <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <ExceptionHandling>Async</ExceptionHandling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <ResourceCompile> @@ -434,6 +435,7 @@ <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <ExceptionHandling>Async</ExceptionHandling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <ResourceCompile> Modified: trunk/OpenMPT/build/vs2012/PluginBridge.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012/PluginBridge.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012/PluginBridge.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -293,6 +293,7 @@ <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <ExceptionHandling>Async</ExceptionHandling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <ResourceCompile> @@ -435,6 +436,7 @@ <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <ExceptionHandling>Async</ExceptionHandling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <ResourceCompile> Modified: trunk/OpenMPT/build/vs2012/VST MIDI Input Output.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012/VST MIDI Input Output.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012/VST MIDI Input Output.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -268,6 +268,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> @@ -362,6 +363,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2012/in_openmpt.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012/in_openmpt.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012/in_openmpt.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -112,6 +112,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <ResourceCompile> Modified: trunk/OpenMPT/build/vs2012/libopenmpt.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012/libopenmpt.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012/libopenmpt.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -176,6 +176,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2012/libopenmptDLL.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012/libopenmptDLL.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012/libopenmptDLL.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -181,6 +181,7 @@ <MinimalRebuild>false</MinimalRebuild> <StringPooling>true</StringPooling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2012/libopenmpt_example_c.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012/libopenmpt_example_c.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012/libopenmpt_example_c.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -182,6 +182,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> Modified: trunk/OpenMPT/build/vs2012/libopenmpt_example_c_mem.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012/libopenmpt_example_c_mem.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012/libopenmpt_example_c_mem.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -182,6 +182,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> Modified: trunk/OpenMPT/build/vs2012/libopenmpt_example_cxx.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012/libopenmpt_example_cxx.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012/libopenmpt_example_cxx.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -180,6 +180,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2012/libopenmpt_modplug.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012/libopenmpt_modplug.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012/libopenmpt_modplug.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -181,6 +181,7 @@ <MinimalRebuild>false</MinimalRebuild> <StringPooling>true</StringPooling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2012/libopenmpt_test.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012/libopenmpt_test.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012/libopenmpt_test.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -184,6 +184,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2012/openmpt123.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012/openmpt123.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012/openmpt123.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -186,6 +186,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2012/xmp-openmpt.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012/xmp-openmpt.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012/xmp-openmpt.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -112,6 +112,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <ResourceCompile> Modified: trunk/OpenMPT/build/vs2012-ext/UnRAR.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012-ext/UnRAR.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012-ext/UnRAR.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -248,6 +248,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> @@ -322,6 +323,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2012-ext/flac.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012-ext/flac.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012-ext/flac.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -252,6 +252,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <AdditionalOptions>/wd4244 /wd4267 /wd4334 %(AdditionalOptions)</AdditionalOptions> <CompileAs>CompileAsC</CompileAs> @@ -334,6 +335,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <AdditionalOptions>/wd4244 /wd4267 /wd4334 %(AdditionalOptions)</AdditionalOptions> <CompileAs>CompileAsC</CompileAs> Modified: trunk/OpenMPT/build/vs2012-ext/lhasa.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012-ext/lhasa.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012-ext/lhasa.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -252,6 +252,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <AdditionalOptions>/wd4244 /wd4267 %(AdditionalOptions)</AdditionalOptions> <CompileAs>CompileAsC</CompileAs> @@ -334,6 +335,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <AdditionalOptions>/wd4244 /wd4267 %(AdditionalOptions)</AdditionalOptions> <CompileAs>CompileAsC</CompileAs> Modified: trunk/OpenMPT/build/vs2012-ext/miniz-shared.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012-ext/miniz-shared.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012-ext/miniz-shared.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -244,6 +244,7 @@ <MinimalRebuild>false</MinimalRebuild> <StringPooling>true</StringPooling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> @@ -316,6 +317,7 @@ <MinimalRebuild>false</MinimalRebuild> <StringPooling>true</StringPooling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> Modified: trunk/OpenMPT/build/vs2012-ext/miniz.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012-ext/miniz.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012-ext/miniz.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -247,6 +247,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> @@ -321,6 +322,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> Modified: trunk/OpenMPT/build/vs2012-ext/minizip.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012-ext/minizip.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012-ext/minizip.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -250,6 +250,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> @@ -328,6 +329,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> Modified: trunk/OpenMPT/build/vs2012-ext/ogg.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012-ext/ogg.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012-ext/ogg.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -250,6 +250,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> @@ -328,6 +329,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> Modified: trunk/OpenMPT/build/vs2012-ext/portaudio.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012-ext/portaudio.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012-ext/portaudio.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -252,6 +252,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <AdditionalOptions>/wd4018 /wd4267 %(AdditionalOptions)</AdditionalOptions> <CompileAs>CompileAsC</CompileAs> @@ -334,6 +335,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <AdditionalOptions>/wd4018 /wd4267 %(AdditionalOptions)</AdditionalOptions> <CompileAs>CompileAsC</CompileAs> Modified: trunk/OpenMPT/build/vs2012-ext/portmidi.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012-ext/portmidi.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012-ext/portmidi.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -250,6 +250,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> @@ -328,6 +329,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> Modified: trunk/OpenMPT/build/vs2012-ext/pugixml.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012-ext/pugixml.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012-ext/pugixml.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -245,6 +245,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> @@ -315,6 +316,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2012-ext/r8brain.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012-ext/r8brain.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012-ext/r8brain.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -248,6 +248,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> @@ -322,6 +323,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2012-ext/smbPitchShift.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012-ext/smbPitchShift.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012-ext/smbPitchShift.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -245,6 +245,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> @@ -315,6 +316,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2012-ext/soundtouch.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012-ext/soundtouch.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012-ext/soundtouch.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -260,6 +260,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> @@ -338,6 +339,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> Modified: trunk/OpenMPT/build/vs2012-ext/zlib.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012-ext/zlib.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2012-ext/zlib.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -250,6 +250,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> @@ -328,6 +329,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> <CompileAs>CompileAsC</CompileAs> </ClCompile> Modified: trunk/OpenMPT/build/vs2013/OpenMPT.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2013/OpenMPT.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2013/OpenMPT.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -301,6 +301,7 @@ <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <ExceptionHandling>Async</ExceptionHandling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <ResourceCompile> @@ -435,6 +436,7 @@ <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <ExceptionHandling>Async</ExceptionHandling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <ResourceCompile> Modified: trunk/OpenMPT/build/vs2013/PluginBridge.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2013/PluginBridge.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2013/PluginBridge.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -294,6 +294,7 @@ <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <ExceptionHandling>Async</ExceptionHandling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <ResourceCompile> @@ -436,6 +437,7 @@ <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <ExceptionHandling>Async</ExceptionHandling> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <ResourceCompile> Modified: trunk/OpenMPT/build/vs2013/VST MIDI Input Output.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2013/VST MIDI Input Output.vcxproj 2015-07-12 06:26:02 UTC (rev 5405) +++ trunk/OpenMPT/build/vs2013/VST MIDI Input Output.vcxproj 2015-07-12 06:37:37 UTC (rev 5406) @@ -269,6 +269,7 @@ <StringPooling>true</StringPooling> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <FloatingPointModel>Fast</FloatingPointModel> + <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet> <MultiProcessorCompilation>true</MultiProcessorCompilation> </ClCompile> <Link> @@ -363,6 +364,7 @@ <StringPooling>true</StringPoolin... [truncated message content] |
From: <man...@us...> - 2015-07-12 08:46:44
|
Revision: 5407 http://sourceforge.net/p/modplug/code/5407 Author: manxorist Date: 2015-07-12 08:46:37 +0000 (Sun, 12 Jul 2015) Log Message: ----------- [Imp] in_openmpt: Support VS2008. [Imp] xmp-openmpt: Support VS2008. Modified Paths: -------------- trunk/OpenMPT/build/auto/build_libopenmpt.cmd trunk/OpenMPT/build/premake/mpt-in_openmpt.lua trunk/OpenMPT/build/premake/mpt-xmp-openmpt.lua trunk/OpenMPT/build/regenerate_vs_projects.cmd trunk/OpenMPT/libopenmpt/in_openmpt.cpp trunk/OpenMPT/libopenmpt/xmp-openmpt.cpp Added Paths: ----------- trunk/OpenMPT/build/vs2008/in_openmpt.sln trunk/OpenMPT/build/vs2008/in_openmpt.vcproj trunk/OpenMPT/build/vs2008/xmp-openmpt.sln trunk/OpenMPT/build/vs2008/xmp-openmpt.vcproj Modified: trunk/OpenMPT/build/auto/build_libopenmpt.cmd =================================================================== --- trunk/OpenMPT/build/auto/build_libopenmpt.cmd 2015-07-12 06:37:37 UTC (rev 5406) +++ trunk/OpenMPT/build/auto/build_libopenmpt.cmd 2015-07-12 08:46:37 UTC (rev 5407) @@ -21,25 +21,21 @@ devenv libopenmpt.sln /clean "ReleaseNoSSE2|%MPT_ARCH%" || goto error devenv openmpt123.sln /clean "ReleaseNoSSE2|%MPT_ARCH%" || goto error if "%MPT_ARCH%" == "Win32" ( - if not "%MPT_VSVER%" == "vs2008" ( - devenv in_openmpt.sln /clean "ReleaseNoSSE2|%MPT_ARCH%" || goto error - devenv xmp-openmpt.sln /clean "ReleaseNoSSE2|%MPT_ARCH%" || goto error - ) + devenv in_openmpt.sln /clean "ReleaseNoSSE2|%MPT_ARCH%" || goto error + devenv xmp-openmpt.sln /clean "ReleaseNoSSE2|%MPT_ARCH%" || goto error if "%MPT_VSVER%" == "vs2010" ( devenv foo_openmpt.sln /clean "ReleaseNoSSE2|%MPT_ARCH%" || goto error - ) + ) ) devenv libopenmpt.sln /build "ReleaseNoSSE2|%MPT_ARCH%" || goto error devenv openmpt123.sln /build "ReleaseNoSSE2|%MPT_ARCH%" || goto error if "%MPT_ARCH%" == "Win32" ( - if not "%MPT_VSVER%" == "vs2008" ( - devenv in_openmpt.sln /build "ReleaseNoSSE2|%MPT_ARCH%" || goto error - devenv xmp-openmpt.sln /build "ReleaseNoSSE2|%MPT_ARCH%" || goto error - ) + devenv in_openmpt.sln /build "ReleaseNoSSE2|%MPT_ARCH%" || goto error + devenv xmp-openmpt.sln /build "ReleaseNoSSE2|%MPT_ARCH%" || goto error if "%MPT_VSVER%" == "vs2010" ( devenv foo_openmpt.sln /build "ReleaseNoSSE2|%MPT_ARCH%" || goto error - ) + ) ) cd ..\.. || goto error Modified: trunk/OpenMPT/build/premake/mpt-in_openmpt.lua =================================================================== --- trunk/OpenMPT/build/premake/mpt-in_openmpt.lua 2015-07-12 06:37:37 UTC (rev 5406) +++ trunk/OpenMPT/build/premake/mpt-in_openmpt.lua 2015-07-12 08:46:37 UTC (rev 5407) @@ -1,6 +1,4 @@ -if _ACTION ~= "vs2008" then - project "in_openmpt" uuid "D75AEB78-5537-49BD-9085-F92DEEFA84E8" language "C++" @@ -24,5 +22,3 @@ prebuildcommands { "..\\..\\build\\svn_version\\update_svn_version_vs_premake.cmd $(IntDir)" } dofile "../../build/premake/premake-defaults-DLL.lua" dofile "../../build/premake/premake-defaults.lua" - -end Modified: trunk/OpenMPT/build/premake/mpt-xmp-openmpt.lua =================================================================== --- trunk/OpenMPT/build/premake/mpt-xmp-openmpt.lua 2015-07-12 06:37:37 UTC (rev 5406) +++ trunk/OpenMPT/build/premake/mpt-xmp-openmpt.lua 2015-07-12 08:46:37 UTC (rev 5407) @@ -1,6 +1,4 @@ -if _ACTION ~= "vs2008" then - project "xmp-openmpt" uuid "AEA14F53-ADB0-45E5-9823-81F4F36886C2" language "C++" @@ -25,5 +23,3 @@ prebuildcommands { "..\\..\\build\\svn_version\\update_svn_version_vs_premake.cmd $(IntDir)" } dofile "../../build/premake/premake-defaults-DLL.lua" dofile "../../build/premake/premake-defaults.lua" - -end Modified: trunk/OpenMPT/build/regenerate_vs_projects.cmd =================================================================== --- trunk/OpenMPT/build/regenerate_vs_projects.cmd 2015-07-12 06:37:37 UTC (rev 5406) +++ trunk/OpenMPT/build/regenerate_vs_projects.cmd 2015-07-12 08:46:37 UTC (rev 5407) @@ -17,6 +17,8 @@ %PREMAKE% --group=libopenmpt_test vs2008 || goto err %PREMAKE% --group=libopenmpt vs2008 || goto err +%PREMAKE% --group=in_openmpt vs2008 || goto err +%PREMAKE% --group=xmp-openmpt vs2008 || goto err %PREMAKE% --group=openmpt123 vs2008 || goto err %PREMAKE% --group=PluginBridge vs2008 || goto err %PREMAKE% --group=OpenMPT-VSTi vs2008 || goto err Added: trunk/OpenMPT/build/vs2008/in_openmpt.sln =================================================================== --- trunk/OpenMPT/build/vs2008/in_openmpt.sln (rev 0) +++ trunk/OpenMPT/build/vs2008/in_openmpt.sln 2015-07-12 08:46:37 UTC (rev 5407) @@ -0,0 +1,46 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "in_openmpt", "in_openmpt.vcproj", "{D75AEB78-5537-49BD-9085-F92DEEFA84E8}" + ProjectSection(ProjectDependencies) = postProject + {9C5101EF-3E20-4558-809B-277FDD50E878} = {9C5101EF-3E20-4558-809B-277FDD50E878} + {B5E0C06B-8121-426A-8FFB-4293ECAAE29C} = {B5E0C06B-8121-426A-8FFB-4293ECAAE29C} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libopenmpt", "libopenmpt.vcproj", "{9C5101EF-3E20-4558-809B-277FDD50E878}" + ProjectSection(ProjectDependencies) = postProject + {B5E0C06B-8121-426A-8FFB-4293ECAAE29C} = {B5E0C06B-8121-426A-8FFB-4293ECAAE29C} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniz", "..\vs2008-ext\miniz.vcproj", "{B5E0C06B-8121-426A-8FFB-4293ECAAE29C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + ReleaseNoSSE2|Win32 = ReleaseNoSSE2|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D75AEB78-5537-49BD-9085-F92DEEFA84E8}.Debug|Win32.ActiveCfg = Debug|Win32 + {D75AEB78-5537-49BD-9085-F92DEEFA84E8}.Debug|Win32.Build.0 = Debug|Win32 + {D75AEB78-5537-49BD-9085-F92DEEFA84E8}.ReleaseNoSSE2|Win32.ActiveCfg = ReleaseNoSSE2|Win32 + {D75AEB78-5537-49BD-9085-F92DEEFA84E8}.ReleaseNoSSE2|Win32.Build.0 = ReleaseNoSSE2|Win32 + {D75AEB78-5537-49BD-9085-F92DEEFA84E8}.Release|Win32.ActiveCfg = Release|Win32 + {D75AEB78-5537-49BD-9085-F92DEEFA84E8}.Release|Win32.Build.0 = Release|Win32 + {9C5101EF-3E20-4558-809B-277FDD50E878}.Debug|Win32.ActiveCfg = Debug|Win32 + {9C5101EF-3E20-4558-809B-277FDD50E878}.Debug|Win32.Build.0 = Debug|Win32 + {9C5101EF-3E20-4558-809B-277FDD50E878}.ReleaseNoSSE2|Win32.ActiveCfg = ReleaseNoSSE2|Win32 + {9C5101EF-3E20-4558-809B-277FDD50E878}.ReleaseNoSSE2|Win32.Build.0 = ReleaseNoSSE2|Win32 + {9C5101EF-3E20-4558-809B-277FDD50E878}.Release|Win32.ActiveCfg = Release|Win32 + {9C5101EF-3E20-4558-809B-277FDD50E878}.Release|Win32.Build.0 = Release|Win32 + {B5E0C06B-8121-426A-8FFB-4293ECAAE29C}.Debug|Win32.ActiveCfg = Debug|Win32 + {B5E0C06B-8121-426A-8FFB-4293ECAAE29C}.Debug|Win32.Build.0 = Debug|Win32 + {B5E0C06B-8121-426A-8FFB-4293ECAAE29C}.ReleaseNoSSE2|Win32.ActiveCfg = ReleaseNoSSE2|Win32 + {B5E0C06B-8121-426A-8FFB-4293ECAAE29C}.ReleaseNoSSE2|Win32.Build.0 = ReleaseNoSSE2|Win32 + {B5E0C06B-8121-426A-8FFB-4293ECAAE29C}.Release|Win32.ActiveCfg = Release|Win32 + {B5E0C06B-8121-426A-8FFB-4293ECAAE29C}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Property changes on: trunk/OpenMPT/build/vs2008/in_openmpt.sln ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/x-ms-sln \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +CRLF \ No newline at end of property Added: trunk/OpenMPT/build/vs2008/in_openmpt.vcproj =================================================================== --- trunk/OpenMPT/build/vs2008/in_openmpt.vcproj (rev 0) +++ trunk/OpenMPT/build/vs2008/in_openmpt.vcproj 2015-07-12 08:46:37 UTC (rev 5407) @@ -0,0 +1,297 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="9.00" + Name="in_openmpt" + ProjectGUID="{D75AEB78-5537-49BD-9085-F92DEEFA84E8}" + RootNamespace="in_openmpt" + Keyword="Win32Proj" + TargetFrameworkVersion="0" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="..\..\bin\Win32-Debug" + IntermediateDirectory="..\obj\in_openmpt\x86\Debug" + ConfigurationType="2" + UseOfMFC="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + CommandLine="..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\..;..\..\include;$(IntDir)\svn_version;..\svn_version;..\..\include\msinttypes\stdint" + PreprocessorDefinitions="DEBUG;WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="DEBUG;WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" + AdditionalIncludeDirectories="..\..;..\..\include;$(IntDir)\svn_version;..\svn_version;..\..\include\msinttypes\stdint" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + OutputFile="$(OutDir)\in_openmpt.dll" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="2" + ImportLibrary="..\..\bin\Win32-Debug\in_openmpt.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="..\..\bin\Win32" + IntermediateDirectory="..\obj\in_openmpt\x86\Release" + ConfigurationType="2" + UseOfMFC="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + CommandLine="..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalOptions="/MP" + Optimization="2" + AdditionalIncludeDirectories="..\..;..\..\include;$(IntDir)\svn_version;..\svn_version;..\..\include\msinttypes\stdint" + PreprocessorDefinitions="NDEBUG;WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + FloatingPointModel="2" + UsePrecompiledHeader="0" + WarningLevel="3" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG;WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" + AdditionalIncludeDirectories="..\..;..\..\include;$(IntDir)\svn_version;..\svn_version;..\..\include\msinttypes\stdint" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + OutputFile="$(OutDir)\in_openmpt.dll" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="2" + OptimizeReferences="2" + EnableCOMDATFolding="2" + ImportLibrary="..\..\bin\Win32\in_openmpt.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="ReleaseNoSSE2|Win32" + OutputDirectory="..\..\bin\Win32" + IntermediateDirectory="..\obj\in_openmpt\x86\ReleaseNoSSE2" + ConfigurationType="2" + UseOfMFC="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + CommandLine="..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalOptions="/MP" + Optimization="2" + AdditionalIncludeDirectories="..\..;..\..\include;$(IntDir)\svn_version;..\svn_version;..\..\include\msinttypes\stdint" + PreprocessorDefinitions="NDEBUG;WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + FloatingPointModel="2" + UsePrecompiledHeader="0" + WarningLevel="3" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG;WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" + AdditionalIncludeDirectories="..\..;..\..\include;$(IntDir)\svn_version;..\svn_version;..\..\include\msinttypes\stdint" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + OutputFile="$(OutDir)\in_openmpt.dll" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="2" + OptimizeReferences="2" + EnableCOMDATFolding="2" + ImportLibrary="..\..\bin\Win32\in_openmpt.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + <ProjectReference + ReferencedProjectIdentifier="{9C5101EF-3E20-4558-809B-277FDD50E878}" + RelativePathToProject=".\libopenmpt.vcproj" + /> + <ProjectReference + ReferencedProjectIdentifier="{B5E0C06B-8121-426A-8FFB-4293ECAAE29C}" + RelativePathToProject="..\vs2008-ext\miniz.vcproj" + /> + </References> + <Files> + <File + RelativePath="..\..\libopenmpt\in_openmpt.cpp" + > + </File> + <File + RelativePath="..\..\libopenmpt\libopenmpt_settings.cpp" + > + </File> + <File + RelativePath="..\..\libopenmpt\libopenmpt_settings.hpp" + > + </File> + <File + RelativePath="..\..\libopenmpt\libopenmpt_settings.rc" + > + </File> + <File + RelativePath="..\..\libopenmpt\resource.h" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Property changes on: trunk/OpenMPT/build/vs2008/in_openmpt.vcproj ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/x-ms-vcproj \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +CRLF \ No newline at end of property Added: trunk/OpenMPT/build/vs2008/xmp-openmpt.sln =================================================================== --- trunk/OpenMPT/build/vs2008/xmp-openmpt.sln (rev 0) +++ trunk/OpenMPT/build/vs2008/xmp-openmpt.sln 2015-07-12 08:46:37 UTC (rev 5407) @@ -0,0 +1,55 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xmp-openmpt", "xmp-openmpt.vcproj", "{AEA14F53-ADB0-45E5-9823-81F4F36886C2}" + ProjectSection(ProjectDependencies) = postProject + {9C5101EF-3E20-4558-809B-277FDD50E878} = {9C5101EF-3E20-4558-809B-277FDD50E878} + {B5E0C06B-8121-426A-8FFB-4293ECAAE29C} = {B5E0C06B-8121-426A-8FFB-4293ECAAE29C} + {07B89124-7C71-42CC-81AB-62B09BB61F9B} = {07B89124-7C71-42CC-81AB-62B09BB61F9B} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libopenmpt", "libopenmpt.vcproj", "{9C5101EF-3E20-4558-809B-277FDD50E878}" + ProjectSection(ProjectDependencies) = postProject + {B5E0C06B-8121-426A-8FFB-4293ECAAE29C} = {B5E0C06B-8121-426A-8FFB-4293ECAAE29C} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniz", "..\vs2008-ext\miniz.vcproj", "{B5E0C06B-8121-426A-8FFB-4293ECAAE29C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pugixml", "..\vs2008-ext\pugixml.vcproj", "{07B89124-7C71-42CC-81AB-62B09BB61F9B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + ReleaseNoSSE2|Win32 = ReleaseNoSSE2|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AEA14F53-ADB0-45E5-9823-81F4F36886C2}.Debug|Win32.ActiveCfg = Debug|Win32 + {AEA14F53-ADB0-45E5-9823-81F4F36886C2}.Debug|Win32.Build.0 = Debug|Win32 + {AEA14F53-ADB0-45E5-9823-81F4F36886C2}.ReleaseNoSSE2|Win32.ActiveCfg = ReleaseNoSSE2|Win32 + {AEA14F53-ADB0-45E5-9823-81F4F36886C2}.ReleaseNoSSE2|Win32.Build.0 = ReleaseNoSSE2|Win32 + {AEA14F53-ADB0-45E5-9823-81F4F36886C2}.Release|Win32.ActiveCfg = Release|Win32 + {AEA14F53-ADB0-45E5-9823-81F4F36886C2}.Release|Win32.Build.0 = Release|Win32 + {9C5101EF-3E20-4558-809B-277FDD50E878}.Debug|Win32.ActiveCfg = Debug|Win32 + {9C5101EF-3E20-4558-809B-277FDD50E878}.Debug|Win32.Build.0 = Debug|Win32 + {9C5101EF-3E20-4558-809B-277FDD50E878}.ReleaseNoSSE2|Win32.ActiveCfg = ReleaseNoSSE2|Win32 + {9C5101EF-3E20-4558-809B-277FDD50E878}.ReleaseNoSSE2|Win32.Build.0 = ReleaseNoSSE2|Win32 + {9C5101EF-3E20-4558-809B-277FDD50E878}.Release|Win32.ActiveCfg = Release|Win32 + {9C5101EF-3E20-4558-809B-277FDD50E878}.Release|Win32.Build.0 = Release|Win32 + {B5E0C06B-8121-426A-8FFB-4293ECAAE29C}.Debug|Win32.ActiveCfg = Debug|Win32 + {B5E0C06B-8121-426A-8FFB-4293ECAAE29C}.Debug|Win32.Build.0 = Debug|Win32 + {B5E0C06B-8121-426A-8FFB-4293ECAAE29C}.ReleaseNoSSE2|Win32.ActiveCfg = ReleaseNoSSE2|Win32 + {B5E0C06B-8121-426A-8FFB-4293ECAAE29C}.ReleaseNoSSE2|Win32.Build.0 = ReleaseNoSSE2|Win32 + {B5E0C06B-8121-426A-8FFB-4293ECAAE29C}.Release|Win32.ActiveCfg = Release|Win32 + {B5E0C06B-8121-426A-8FFB-4293ECAAE29C}.Release|Win32.Build.0 = Release|Win32 + {07B89124-7C71-42CC-81AB-62B09BB61F9B}.Debug|Win32.ActiveCfg = Debug|Win32 + {07B89124-7C71-42CC-81AB-62B09BB61F9B}.Debug|Win32.Build.0 = Debug|Win32 + {07B89124-7C71-42CC-81AB-62B09BB61F9B}.ReleaseNoSSE2|Win32.ActiveCfg = ReleaseNoSSE2|Win32 + {07B89124-7C71-42CC-81AB-62B09BB61F9B}.ReleaseNoSSE2|Win32.Build.0 = ReleaseNoSSE2|Win32 + {07B89124-7C71-42CC-81AB-62B09BB61F9B}.Release|Win32.ActiveCfg = Release|Win32 + {07B89124-7C71-42CC-81AB-62B09BB61F9B}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal Property changes on: trunk/OpenMPT/build/vs2008/xmp-openmpt.sln ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/x-ms-sln \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +CRLF \ No newline at end of property Added: trunk/OpenMPT/build/vs2008/xmp-openmpt.vcproj =================================================================== --- trunk/OpenMPT/build/vs2008/xmp-openmpt.vcproj (rev 0) +++ trunk/OpenMPT/build/vs2008/xmp-openmpt.vcproj 2015-07-12 08:46:37 UTC (rev 5407) @@ -0,0 +1,301 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="9.00" + Name="xmp-openmpt" + ProjectGUID="{AEA14F53-ADB0-45E5-9823-81F4F36886C2}" + RootNamespace="xmp-openmpt" + Keyword="Win32Proj" + TargetFrameworkVersion="0" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="..\..\bin\Win32-Debug" + IntermediateDirectory="..\obj\xmp-openmpt\x86\Debug" + ConfigurationType="2" + UseOfMFC="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + CommandLine="..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="..\..;..\..\include;..\..\include\pugixml\src;$(IntDir)\svn_version;..\svn_version;..\..\include\msinttypes\stdint" + PreprocessorDefinitions="DEBUG;WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="1" + EnableFunctionLevelLinking="true" + UsePrecompiledHeader="0" + WarningLevel="3" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="DEBUG;WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" + AdditionalIncludeDirectories="..\..;..\..\include;..\..\include\pugixml\src;$(IntDir)\svn_version;..\svn_version;..\..\include\msinttypes\stdint" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + OutputFile="$(OutDir)\xmp-openmpt.dll" + LinkIncremental="2" + GenerateDebugInformation="true" + SubSystem="2" + ImportLibrary="..\..\bin\Win32-Debug\xmp-openmpt.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="..\..\bin\Win32" + IntermediateDirectory="..\obj\xmp-openmpt\x86\Release" + ConfigurationType="2" + UseOfMFC="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + CommandLine="..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalOptions="/MP" + Optimization="2" + AdditionalIncludeDirectories="..\..;..\..\include;..\..\include\pugixml\src;$(IntDir)\svn_version;..\svn_version;..\..\include\msinttypes\stdint" + PreprocessorDefinitions="NDEBUG;WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + FloatingPointModel="2" + UsePrecompiledHeader="0" + WarningLevel="3" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG;WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" + AdditionalIncludeDirectories="..\..;..\..\include;..\..\include\pugixml\src;$(IntDir)\svn_version;..\svn_version;..\..\include\msinttypes\stdint" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + OutputFile="$(OutDir)\xmp-openmpt.dll" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="2" + OptimizeReferences="2" + EnableCOMDATFolding="2" + ImportLibrary="..\..\bin\Win32\xmp-openmpt.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="ReleaseNoSSE2|Win32" + OutputDirectory="..\..\bin\Win32" + IntermediateDirectory="..\obj\xmp-openmpt\x86\ReleaseNoSSE2" + ConfigurationType="2" + UseOfMFC="1" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + CommandLine="..\..\build\svn_version\update_svn_version_vs_premake.cmd $(IntDir)" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalOptions="/MP" + Optimization="2" + AdditionalIncludeDirectories="..\..;..\..\include;..\..\include\pugixml\src;$(IntDir)\svn_version;..\svn_version;..\..\include\msinttypes\stdint" + PreprocessorDefinitions="NDEBUG;WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" + StringPooling="true" + RuntimeLibrary="0" + EnableFunctionLevelLinking="true" + FloatingPointModel="2" + UsePrecompiledHeader="0" + WarningLevel="3" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="NDEBUG;WIN32;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS" + AdditionalIncludeDirectories="..\..;..\..\include;..\..\include\pugixml\src;$(IntDir)\svn_version;..\svn_version;..\..\include\msinttypes\stdint" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLinkerTool" + OutputFile="$(OutDir)\xmp-openmpt.dll" + LinkIncremental="1" + GenerateDebugInformation="true" + SubSystem="2" + OptimizeReferences="2" + EnableCOMDATFolding="2" + ImportLibrary="..\..\bin\Win32\xmp-openmpt.lib" + TargetMachine="1" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCManifestTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCAppVerifierTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + <ProjectReference + ReferencedProjectIdentifier="{9C5101EF-3E20-4558-809B-277FDD50E878}" + RelativePathToProject=".\libopenmpt.vcproj" + /> + <ProjectReference + ReferencedProjectIdentifier="{B5E0C06B-8121-426A-8FFB-4293ECAAE29C}" + RelativePathToProject="..\vs2008-ext\miniz.vcproj" + /> + <ProjectReference + ReferencedProjectIdentifier="{07B89124-7C71-42CC-81AB-62B09BB61F9B}" + RelativePathToProject="..\vs2008-ext\pugixml.vcproj" + /> + </References> + <Files> + <File + RelativePath="..\..\libopenmpt\libopenmpt_settings.cpp" + > + </File> + <File + RelativePath="..\..\libopenmpt\libopenmpt_settings.hpp" + > + </File> + <File + RelativePath="..\..\libopenmpt\libopenmpt_settings.rc" + > + </File> + <File + RelativePath="..\..\libopenmpt\resource.h" + > + </File> + <File + RelativePath="..\..\libopenmpt\xmp-openmpt.cpp" + > + </File> + </Files> + <Globals> + </Globals> +</VisualStudioProject> Property changes on: trunk/OpenMPT/build/vs2008/xmp-openmpt.vcproj ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +text/x-ms-vcproj \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +CRLF \ No newline at end of property Modified: trunk/OpenMPT/libopenmpt/in_openmpt.cpp =================================================================== --- trunk/OpenMPT/libopenmpt/in_openmpt.cpp 2015-07-12 06:37:37 UTC (rev 5406) +++ trunk/OpenMPT/libopenmpt/in_openmpt.cpp 2015-07-12 08:46:37 UTC (rev 5407) @@ -71,19 +71,19 @@ static std::string StringEncode( const std::wstring &src, UINT codepage ) { - int required_size = WideCharToMultiByte( codepage, 0, src.c_str(), -1, nullptr, 0, nullptr, nullptr ); + int required_size = WideCharToMultiByte( codepage, 0, src.c_str(), -1, NULL, 0, NULL, NULL ); if(required_size <= 0) { return std::string(); } std::vector<CHAR> encoded_string( required_size ); - WideCharToMultiByte( codepage, 0, src.c_str(), -1, &encoded_string[0], encoded_string.size(), nullptr, nullptr ); + WideCharToMultiByte( codepage, 0, src.c_str(), -1, &encoded_string[0], encoded_string.size(), NULL, NULL ); return &encoded_string[0]; } static std::wstring StringDecode( const std::string & src, UINT codepage ) { - int required_size = MultiByteToWideChar( codepage, 0, src.c_str(), -1, nullptr, 0 ); + int required_size = MultiByteToWideChar( codepage, 0, src.c_str(), -1, NULL, 0 ); if(required_size <= 0) { return std::wstring(); @@ -200,7 +200,7 @@ LIBOPENMPT_SETTINGS_LOAD(); if ( !self ) { self = new self_winamp_t(); - inmod.FileExtensions = self->filetypes_string.data(); + inmod.FileExtensions = &(self->filetypes_string[0]); } } @@ -382,20 +382,20 @@ int frames = 0; switch ( self->channels ) { case 1: - frames = self->mod->read( self->samplerate, WINAMP_BUFFER_SIZE_FRAMES, self->buffer.data()+0*WINAMP_BUFFER_SIZE_FRAMES ); + frames = self->mod->read( self->samplerate, WINAMP_BUFFER_SIZE_FRAMES, (&(self->buffer[0]))+0*WINAMP_BUFFER_SIZE_FRAMES ); for ( int frame = 0; frame < frames; frame++ ) { self->interleaved_buffer[frame*1+0] = self->buffer[0*WINAMP_BUFFER_SIZE_FRAMES+frame]; } break; case 2: - frames = self->mod->read( self->samplerate, WINAMP_BUFFER_SIZE_FRAMES, self->buffer.data()+0*WINAMP_BUFFER_SIZE_FRAMES, self->buffer.data()+1*WINAMP_BUFFER_SIZE_FRAMES ); + frames = self->mod->read( self->samplerate, WINAMP_BUFFER_SIZE_FRAMES, (&(self->buffer[0]))+0*WINAMP_BUFFER_SIZE_FRAMES, (&(self->buffer[0]))+1*WINAMP_BUFFER_SIZE_FRAMES ); for ( int frame = 0; frame < frames; frame++ ) { self->interleaved_buffer[frame*2+0] = self->buffer[0*WINAMP_BUFFER_SIZE_FRAMES+frame]; self->interleaved_buffer[frame*2+1] = self->buffer[1*WINAMP_BUFFER_SIZE_FRAMES+frame]; } break; case 4: - frames = self->mod->read( self->samplerate, WINAMP_BUFFER_SIZE_FRAMES, self->buffer.data()+0*WINAMP_BUFFER_SIZE_FRAMES, self->buffer.data()+1*WINAMP_BUFFER_SIZE_FRAMES, self->buffer.data()+2*WINAMP_BUFFER_SIZE_FRAMES, self->buffer.data()+3*WINAMP_BUFFER_SIZE_FRAMES ); + frames = self->mod->read( self->samplerate, WINAMP_BUFFER_SIZE_FRAMES, (&(self->buffer[0]))+0*WINAMP_BUFFER_SIZE_FRAMES, (&(self->buffer[0]))+1*WINAMP_BUFFER_SIZE_FRAMES, (&(self->buffer[0]))+2*WINAMP_BUFFER_SIZE_FRAMES, (&(self->buffer[0]))+3*WINAMP_BUFFER_SIZE_FRAMES ); for ( int frame = 0; frame < frames; frame++ ) { self->interleaved_buffer[frame*4+0] = self->buffer[0*WINAMP_BUFFER_SIZE_FRAMES+frame]; self->interleaved_buffer[frame*4+1] = self->buffer[1*WINAMP_BUFFER_SIZE_FRAMES+frame]; @@ -409,13 +409,13 @@ } else { self->decode_position_frames += frames; std::int64_t decode_pos_ms = (self->decode_position_frames * 1000 / self->samplerate ); - inmod.SAAddPCMData( self->interleaved_buffer.data(), self->channels, BPS, (int)decode_pos_ms ); - inmod.VSAAddPCMData( self->interleaved_buffer.data(), self->channels, BPS, (int)decode_pos_ms ); + inmod.SAAddPCMData( &( self->interleaved_buffer[0] ), self->channels, BPS, (int)decode_pos_ms ); + inmod.VSAAddPCMData( &( self->interleaved_buffer[0] ), self->channels, BPS, (int)decode_pos_ms ); if ( dsp_active ) { - frames = inmod.dsp_dosamples( self->interleaved_buffer.data(), frames, BPS, self->channels, self->samplerate ); + frames = inmod.dsp_dosamples( &( self->interleaved_buffer[0] ), frames, BPS, self->channels, self->samplerate ); } int bytes = frames * self->channels * sizeof( signed short ); - inmod.outMod->Write( (char*)self->interleaved_buffer.data(), bytes ); + inmod.outMod->Write( (char*)&( self->interleaved_buffer[0] ), bytes ); } } else { Sleep( 10 ); Modified: trunk/OpenMPT/libopenmpt/xmp-openmpt.cpp =================================================================== --- trunk/OpenMPT/libopenmpt/xmp-openmpt.cpp 2015-07-12 06:37:37 UTC (rev 5406) +++ trunk/OpenMPT/libopenmpt/xmp-openmpt.cpp 2015-07-12 08:46:37 UTC (rev 5407) @@ -90,6 +90,8 @@ #include <sstream> #include <string> +#include <cmath> + #include <pugixml.hpp> #define SHORT_TITLE "xmp-openmpt" @@ -116,7 +118,7 @@ struct self_xmplay_t; -static self_xmplay_t * self = nullptr; +static self_xmplay_t * self = 0; static void save_options(); @@ -135,8 +137,8 @@ : samplerate(48000) , num_channels(2) , settings(TEXT(SHORT_TITLE), false) - , mod(nullptr) - , pattern_vis(nullptr) + , mod(0) + , pattern_vis(0) , tempo_factor(0) , pitch_factor(0) , single_subsong_mode(false) @@ -149,9 +151,9 @@ } void delete_mod() { if ( mod ) { - pattern_vis = nullptr; + pattern_vis = 0; delete mod; - mod = nullptr; + mod = 0; } } ~self_xmplay_t() { @@ -164,26 +166,26 @@ std::string result = native_string ? native_string : ""; if ( native_string ) { xmpfmisc->Free( native_string ); - native_string = nullptr; + native_string = 0; } return result; } static std::string StringEncode( const std::wstring &src, UINT codepage ) { - int required_size = WideCharToMultiByte( codepage, 0, src.c_str(), -1, nullptr, 0, nullptr, nullptr ); + int required_size = WideCharToMultiByte( codepage, 0, src.c_str(), -1, NULL, 0, NULL, NULL ); if(required_size <= 0) { return std::string(); } std::vector<CHAR> encoded_string( required_size ); - WideCharToMultiByte( codepage, 0, src.c_str(), -1, &encoded_string[0], encoded_string.size(), nullptr, nullptr ); + WideCharToMultiByte( codepage, 0, src.c_str(), -1, &encoded_string[0], encoded_string.size(), NULL, NULL ); return &encoded_string[0]; } static std::wstring StringDecode( const std::string & src, UINT codepage ) { - int required_size = MultiByteToWideChar( codepage, 0, src.c_str(), -1, nullptr, 0 ); + int required_size = MultiByteToWideChar( codepage, 0, src.c_str(), -1, NULL, 0 ); if(required_size <= 0) { return std::wstring(); @@ -304,7 +306,7 @@ } static void WINAPI ShortcutHandler( DWORD id ) { - if ( self->mod == nullptr ) { + if ( !self->mod ) { return; } @@ -323,7 +325,7 @@ if ( tempo_changed ) { std::ostringstream s; - s << "Tempo: " << static_cast<std::int_fast32_t>( 100.0 * tempo_factor ) << "%"; + s << "Tempo: " << static_cast<std::int32_t>( 100.0 * tempo_factor ) << "%"; xmpfmisc->ShowBubble( s.str().c_str(), 0 ); } else if ( pitch_changed) { std::ostringstream s; @@ -1296,9 +1298,9 @@ static BOOL WINAPI VisOpen(DWORD colors[3]) { xmpopenmpt_lock guard; - visDC = nullptr; - visbitmap = nullptr; - visfont = nullptr; + visDC = 0; + visbitmap = 0; + visfont = 0; viscolors[col_background].dw = colors[0]; viscolors[col_unknown].dw = colors[1]; @@ -1366,11 +1368,11 @@ return pattern_width; } -static BOOL WINAPI VisRenderDC(HDC dc, SIZE size, DWORD flags) { +static BOOL WINAPI VisRenderDC( HDC dc, SIZE size, DWORD flags ) { xmpopenmpt_lock guard; RECT rect; - if( visfont == nullptr ) { + if ( !visfont ) { // Force usage of a nice monospace font LOGFONT logfont; GetObject ( GetCurrentObject( dc, OBJ_FONT ), sizeof(logfont), &logfont ); @@ -1383,8 +1385,7 @@ return FALSE; } - if(flags & XMPIN_VIS_INIT) - { + if ( flags & XMPIN_VIS_INIT ) { last_pattern = -1; } @@ -1440,7 +1441,7 @@ int pattern_width = get_pattern_width( chars_per_channel, spaces_per_channel, num_cols, text_size.cx, channels ); int pattern_height = rows * text_size.cy; - if ( visDC == nullptr || last_pattern != pattern ) { + if ( !visDC || last_pattern != pattern ) { DeleteBitmap( visbitmap ); DeleteDC( visDC ); @@ -1682,7 +1683,7 @@ filetypes_string.push_back('\0'); file_formats = (char*)HeapAlloc( GetProcessHeap(), 0, filetypes_string.size() ); if ( file_formats ) { - std::copy( filetypes_string.data(), filetypes_string.data() + filetypes_string.size(), file_formats ); + std::copy( filetypes_string.begin(), filetypes_string.end(), file_formats ); xmpin.exts = file_formats; } else { xmpin.exts = xmp_openmpt_default_exts; @@ -1693,7 +1694,7 @@ static void xmp_openmpt_on_dll_unload() { delete self; - self = nullptr; + self = 0; LIBOPENMPT_SETTINGS_UNLOAD(); if ( !xmpin.exts ) { return; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <man...@us...> - 2015-07-12 09:10:05
|
Revision: 5410 http://sourceforge.net/p/modplug/code/5410 Author: manxorist Date: 2015-07-12 09:10:00 +0000 (Sun, 12 Jul 2015) Log Message: ----------- [Doc] libopenmpt: Update changelog. [Doc] libopenmpt: Lower requirements for in_openmpt and xmp-openmpt. Modified Paths: -------------- trunk/OpenMPT/README.md trunk/OpenMPT/libopenmpt/dox/changelog.md Modified: trunk/OpenMPT/README.md =================================================================== --- trunk/OpenMPT/README.md 2015-07-12 09:00:47 UTC (rev 5409) +++ trunk/OpenMPT/README.md 2015-07-12 09:10:00 UTC (rev 5410) @@ -112,9 +112,9 @@ - foo_openmpt: Requires VS2010 because the foobar2000 SDK uses VS2010. - - in_openmpt: Requires VS2010 or later with MFC. + - in_openmpt: Requires Visual Studio with MFC. - - xmp-openmpt: Requires VS2010 or later with MFC. + - xmp-openmpt: Requires Visual Studio with MFC. - You will need the Winamp 5 SDK and the xmplay SDK if you want to compile the plugins for these 2 players: Modified: trunk/OpenMPT/libopenmpt/dox/changelog.md =================================================================== --- trunk/OpenMPT/libopenmpt/dox/changelog.md 2015-07-12 09:00:47 UTC (rev 5409) +++ trunk/OpenMPT/libopenmpt/dox/changelog.md 2015-07-12 09:10:00 UTC (rev 5410) @@ -9,14 +9,18 @@ * [**Change**] The MSVC build system has been redone. Solutions are now located in `build/vsVERSION/`. + + * [**Bug**] get_current_channel_vu_left and get_current_channel_vu_right only + return the volume of the front left and right channels now. + get_current_channel_vu_rear_left and get_current_channel_vu_rear_right + do now actually work and return non-zero values. + + * Completed C and C++ documentation * Added new key for openmpt::module::get_metadata, "message_raw", which returns an empty string if there is no song message rather than a list of instrument names. - * [**Change**] get_current_channel_vu_left and get_current_channel_vu_right - only return the volume of the front left and right channels now. - get_current_channel_vu_rear_left and get_current_channel_vu_rear_right - do now actually work and return non-zero values. - * Completed C and C++ documentation + * in_openmpt: Support for compiling with VS2008. + * xmp-openmpt: Support for compiling with VS2008. ### libopenmpt 0.2-beta12 (2015-04-19) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sag...@us...> - 2015-07-13 20:44:27
|
Revision: 5413 http://sourceforge.net/p/modplug/code/5413 Author: saga-games Date: 2015-07-13 20:44:21 +0000 (Mon, 13 Jul 2015) Log Message: ----------- [Imp] Song Properties: Show current tempo swing config in tempo swing button context menu. [Fix] IT Compatiblity: Position jump effect on the same row as a pattern loop end immediately cuts the pattern loop. Test case: LoopBreak.it [Fix] Song length estimation: Pattern breaks leading to a row greater than the current pattern's size were not computed correctly. Modified Paths: -------------- trunk/OpenMPT/mptrack/dlg_misc.cpp trunk/OpenMPT/soundlib/Snd_fx.cpp Modified: trunk/OpenMPT/mptrack/dlg_misc.cpp =================================================================== --- trunk/OpenMPT/mptrack/dlg_misc.cpp 2015-07-12 11:46:40 UTC (rev 5412) +++ trunk/OpenMPT/mptrack/dlg_misc.cpp 2015-07-13 20:44:21 UTC (rev 5413) @@ -465,6 +465,22 @@ if(!GetDlgItem(IDC_BUTTON1)->IsWindowEnabled()) { text = _T("Tempo swing is only available in modern tempo mode."); + } else + { + CString s = _T("Swing setting: "); + if(m_tempoSwing.empty()) + { + s += _T("Default"); + } else + { + for(size_t i = 0; i < m_tempoSwing.size(); i++) + { + if(i > 0) s += _T(" / "); + s.AppendFormat(_T("%u%%"), Util::muldivr(m_tempoSwing[i], 100, TempoSwing::Unity)); + } + } + mpt::String::CopyN(pTTT->szText, s); + return TRUE; } } Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp =================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp 2015-07-12 11:46:40 UTC (rev 5412) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2015-07-13 20:44:21 UTC (rev 5413) @@ -741,7 +741,7 @@ } } - if(memory.state.m_nNextRow >= Patterns[memory.state.m_nPattern].GetNumRows()) + if(memory.state.m_nNextOrder > Order.size() || Order[memory.state.m_nNextOrder] > Patterns.Size() || memory.state.m_nNextRow >= Patterns[Order[memory.state.m_nNextOrder]].GetNumRows()) { memory.state.m_nNextOrder = memory.state.m_nCurrentOrder + 1; memory.state.m_nNextRow = 0; @@ -930,7 +930,13 @@ } oldTickDuration = tickDuration; - if(patternLoopEndedOnThisRow) + // Pattern loop is not executed in FT2 if there are any position jump or pattern break commands on the same row. + // Pattern loop is not executed in IT if there are any position jump commands on the same row. + // Test case for FT2 exception: PatLoop-Jumps.xm, PatLoop-Various.xm + // Test case for IT: exception: LoopBreak.it + if(patternLoopEndedOnThisRow + && (!IsCompatibleMode(TRK_FASTTRACKER2) || !(positionJumpOnThisRow || patternBreakOnThisRow)) + && (!IsCompatibleMode(TRK_IMPULSETRACKER) || !positionJumpOnThisRow)) { std::map<double, int> startTimes; // This is really just a simple estimation for nested pattern loops. It should handle cases correctly where all parallel loops start and end on the same row. @@ -3087,6 +3093,8 @@ if(m_SongFlags[SONG_FIRSTTICK]) { const bool doPatternLoop = (nPatLoopRow != ROWINDEX_INVALID); + const bool doBreakRow = (nBreakRow != ROWINDEX_INVALID); + const bool doPosJump = (nPosJump != ORDERINDEX_INVALID); // Pattern Loop if(doPatternLoop) @@ -3103,12 +3111,14 @@ } // Pattern Break / Position Jump only if no loop running + // Exception: FastTracker 2 in all cases, Impulse Tracker in case of position jump // Test case for FT2 exception: PatLoop-Jumps.xm, PatLoop-Various.xm - if((nBreakRow != ROWINDEX_INVALID || nPosJump != ORDERINDEX_INVALID) - && (!doPatternLoop || IsCompatibleMode(TRK_FASTTRACKER2))) + // Test case for IT: exception: LoopBreak.it + if((doBreakRow || doPosJump) + && (!doPatternLoop || IsCompatibleMode(TRK_FASTTRACKER2) || (IsCompatibleMode(TRK_IMPULSETRACKER) && doPosJump))) { - if(nPosJump == ORDERINDEX_INVALID) nPosJump = m_PlayState.m_nCurrentOrder + 1; - if(nBreakRow == ROWINDEX_INVALID) nBreakRow = 0; + if(!doPosJump) nPosJump = m_PlayState.m_nCurrentOrder + 1; + if(!doBreakRow) nBreakRow = 0; m_SongFlags.set(SONG_BREAKTOROW); if(nPosJump >= Order.size()) @@ -3128,7 +3138,6 @@ m_PlayState.m_nNextOrder = nPosJump; m_PlayState.m_nNextRow = nBreakRow; m_PlayState.m_bPatternTransitionOccurred = true; - } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sag...@us...> - 2015-07-14 20:30:10
|
Revision: 5414 http://sourceforge.net/p/modplug/code/5414 Author: saga-games Date: 2015-07-14 20:30:01 +0000 (Tue, 14 Jul 2015) Log Message: ----------- [Fix] VST: HERCs Abakos stopped working in r1846 / OpenMPT 1.22.02 [Mod] OpenMPT: Version is now 1.25.00.19 Revision Links: -------------- http://sourceforge.net/p/modplug/code/1846 Modified Paths: -------------- trunk/OpenMPT/common/versionNumber.h trunk/OpenMPT/mptrack/Vstplug.cpp Modified: trunk/OpenMPT/common/versionNumber.h =================================================================== --- trunk/OpenMPT/common/versionNumber.h 2015-07-13 20:44:21 UTC (rev 5413) +++ trunk/OpenMPT/common/versionNumber.h 2015-07-14 20:30:01 UTC (rev 5414) @@ -19,7 +19,7 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 25 #define VER_MINOR 00 -#define VER_MINORMINOR 18 +#define VER_MINORMINOR 19 //Version string. For example "1.17.02.28" #define MPT_VERSION_STR VER_STRINGIZE(VER_MAJORMAJOR) "." VER_STRINGIZE(VER_MAJOR) "." VER_STRINGIZE(VER_MINOR) "." VER_STRINGIZE(VER_MINORMINOR) Modified: trunk/OpenMPT/mptrack/Vstplug.cpp =================================================================== --- trunk/OpenMPT/mptrack/Vstplug.cpp 2015-07-13 20:44:21 UTC (rev 5413) +++ trunk/OpenMPT/mptrack/Vstplug.cpp 2015-07-14 20:30:01 UTC (rev 5414) @@ -245,6 +245,10 @@ if(pVstPlugin) { return pVstPlugin->m_nSampleRate; + } else + { + // HERCs Abakos queries the sample rate while the plugin is being created and then never again... + return TrackerSettings::Instance().GetMixerSettings().gdwMixingFreq; } case audioMasterGetBlockSize: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sag...@us...> - 2015-07-16 16:14:46
|
Revision: 5415 http://sourceforge.net/p/modplug/code/5415 Author: saga-games Date: 2015-07-16 16:14:37 +0000 (Thu, 16 Jul 2015) Log Message: ----------- [Mod] Remove ugly scroll text from about dialog. Modified Paths: -------------- trunk/OpenMPT/build/vs2008/OpenMPT.vcproj trunk/OpenMPT/build/vs2010/OpenMPT.vcxproj trunk/OpenMPT/build/vs2010/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2012/OpenMPT.vcxproj trunk/OpenMPT/build/vs2012/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2013/OpenMPT.vcxproj trunk/OpenMPT/build/vs2013/OpenMPT.vcxproj.filters trunk/OpenMPT/build/vs2015/OpenMPT.vcxproj trunk/OpenMPT/build/vs2015/OpenMPT.vcxproj.filters trunk/OpenMPT/common/version.cpp trunk/OpenMPT/mptrack/AboutDialog.cpp trunk/OpenMPT/mptrack/AboutDialog.h trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/mptrack_10.vcxproj trunk/OpenMPT/mptrack/mptrack_10.vcxproj.filters trunk/OpenMPT/mptrack/resource.h Removed Paths: ------------- trunk/OpenMPT/mptrack/CreditStatic.cpp trunk/OpenMPT/mptrack/CreditStatic.h Modified: trunk/OpenMPT/build/vs2008/OpenMPT.vcproj =================================================================== --- trunk/OpenMPT/build/vs2008/OpenMPT.vcproj 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/build/vs2008/OpenMPT.vcproj 2015-07-16 16:14:37 UTC (rev 5415) @@ -1153,14 +1153,6 @@ > </File> <File - RelativePath="..\..\mptrack\CreditStatic.cpp" - > - </File> - <File - RelativePath="..\..\mptrack\CreditStatic.h" - > - </File> - <File RelativePath="..\..\mptrack\Ctrl_com.cpp" > </File> Modified: trunk/OpenMPT/build/vs2010/OpenMPT.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2010/OpenMPT.vcxproj 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/build/vs2010/OpenMPT.vcxproj 2015-07-16 16:14:37 UTC (rev 5415) @@ -494,7 +494,6 @@ <ClInclude Include="..\..\mptrack\ColorConfigDlg.h" /> <ClInclude Include="..\..\mptrack\ColourEdit.h" /> <ClInclude Include="..\..\mptrack\CommandSet.h" /> - <ClInclude Include="..\..\mptrack\CreditStatic.h" /> <ClInclude Include="..\..\mptrack\Ctrl_com.h" /> <ClInclude Include="..\..\mptrack\Ctrl_gen.h" /> <ClInclude Include="..\..\mptrack\Ctrl_ins.h" /> @@ -681,7 +680,6 @@ <ClCompile Include="..\..\mptrack\ColorConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\ColourEdit.cpp" /> <ClCompile Include="..\..\mptrack\CommandSet.cpp" /> - <ClCompile Include="..\..\mptrack\CreditStatic.cpp" /> <ClCompile Include="..\..\mptrack\Ctrl_com.cpp" /> <ClCompile Include="..\..\mptrack\Ctrl_gen.cpp" /> <ClCompile Include="..\..\mptrack\Ctrl_ins.cpp" /> Modified: trunk/OpenMPT/build/vs2010/OpenMPT.vcxproj.filters =================================================================== --- trunk/OpenMPT/build/vs2010/OpenMPT.vcxproj.filters 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/build/vs2010/OpenMPT.vcxproj.filters 2015-07-16 16:14:37 UTC (rev 5415) @@ -230,9 +230,6 @@ <ClInclude Include="..\..\mptrack\CommandSet.h"> <Filter>mptrack</Filter> </ClInclude> - <ClInclude Include="..\..\mptrack\CreditStatic.h"> - <Filter>mptrack</Filter> - </ClInclude> <ClInclude Include="..\..\mptrack\Ctrl_com.h"> <Filter>mptrack</Filter> </ClInclude> @@ -760,9 +757,6 @@ <ClCompile Include="..\..\mptrack\CommandSet.cpp"> <Filter>mptrack</Filter> </ClCompile> - <ClCompile Include="..\..\mptrack\CreditStatic.cpp"> - <Filter>mptrack</Filter> - </ClCompile> <ClCompile Include="..\..\mptrack\Ctrl_com.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2012/OpenMPT.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2012/OpenMPT.vcxproj 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/build/vs2012/OpenMPT.vcxproj 2015-07-16 16:14:37 UTC (rev 5415) @@ -502,7 +502,6 @@ <ClInclude Include="..\..\mptrack\ColorConfigDlg.h" /> <ClInclude Include="..\..\mptrack\ColourEdit.h" /> <ClInclude Include="..\..\mptrack\CommandSet.h" /> - <ClInclude Include="..\..\mptrack\CreditStatic.h" /> <ClInclude Include="..\..\mptrack\Ctrl_com.h" /> <ClInclude Include="..\..\mptrack\Ctrl_gen.h" /> <ClInclude Include="..\..\mptrack\Ctrl_ins.h" /> @@ -689,7 +688,6 @@ <ClCompile Include="..\..\mptrack\ColorConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\ColourEdit.cpp" /> <ClCompile Include="..\..\mptrack\CommandSet.cpp" /> - <ClCompile Include="..\..\mptrack\CreditStatic.cpp" /> <ClCompile Include="..\..\mptrack\Ctrl_com.cpp" /> <ClCompile Include="..\..\mptrack\Ctrl_gen.cpp" /> <ClCompile Include="..\..\mptrack\Ctrl_ins.cpp" /> Modified: trunk/OpenMPT/build/vs2012/OpenMPT.vcxproj.filters =================================================================== --- trunk/OpenMPT/build/vs2012/OpenMPT.vcxproj.filters 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/build/vs2012/OpenMPT.vcxproj.filters 2015-07-16 16:14:37 UTC (rev 5415) @@ -230,9 +230,6 @@ <ClInclude Include="..\..\mptrack\CommandSet.h"> <Filter>mptrack</Filter> </ClInclude> - <ClInclude Include="..\..\mptrack\CreditStatic.h"> - <Filter>mptrack</Filter> - </ClInclude> <ClInclude Include="..\..\mptrack\Ctrl_com.h"> <Filter>mptrack</Filter> </ClInclude> @@ -760,9 +757,6 @@ <ClCompile Include="..\..\mptrack\CommandSet.cpp"> <Filter>mptrack</Filter> </ClCompile> - <ClCompile Include="..\..\mptrack\CreditStatic.cpp"> - <Filter>mptrack</Filter> - </ClCompile> <ClCompile Include="..\..\mptrack\Ctrl_com.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2013/OpenMPT.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2013/OpenMPT.vcxproj 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/build/vs2013/OpenMPT.vcxproj 2015-07-16 16:14:37 UTC (rev 5415) @@ -503,7 +503,6 @@ <ClInclude Include="..\..\mptrack\ColorConfigDlg.h" /> <ClInclude Include="..\..\mptrack\ColourEdit.h" /> <ClInclude Include="..\..\mptrack\CommandSet.h" /> - <ClInclude Include="..\..\mptrack\CreditStatic.h" /> <ClInclude Include="..\..\mptrack\Ctrl_com.h" /> <ClInclude Include="..\..\mptrack\Ctrl_gen.h" /> <ClInclude Include="..\..\mptrack\Ctrl_ins.h" /> @@ -690,7 +689,6 @@ <ClCompile Include="..\..\mptrack\ColorConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\ColourEdit.cpp" /> <ClCompile Include="..\..\mptrack\CommandSet.cpp" /> - <ClCompile Include="..\..\mptrack\CreditStatic.cpp" /> <ClCompile Include="..\..\mptrack\Ctrl_com.cpp" /> <ClCompile Include="..\..\mptrack\Ctrl_gen.cpp" /> <ClCompile Include="..\..\mptrack\Ctrl_ins.cpp" /> Modified: trunk/OpenMPT/build/vs2013/OpenMPT.vcxproj.filters =================================================================== --- trunk/OpenMPT/build/vs2013/OpenMPT.vcxproj.filters 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/build/vs2013/OpenMPT.vcxproj.filters 2015-07-16 16:14:37 UTC (rev 5415) @@ -230,9 +230,6 @@ <ClInclude Include="..\..\mptrack\CommandSet.h"> <Filter>mptrack</Filter> </ClInclude> - <ClInclude Include="..\..\mptrack\CreditStatic.h"> - <Filter>mptrack</Filter> - </ClInclude> <ClInclude Include="..\..\mptrack\Ctrl_com.h"> <Filter>mptrack</Filter> </ClInclude> @@ -760,9 +757,6 @@ <ClCompile Include="..\..\mptrack\CommandSet.cpp"> <Filter>mptrack</Filter> </ClCompile> - <ClCompile Include="..\..\mptrack\CreditStatic.cpp"> - <Filter>mptrack</Filter> - </ClCompile> <ClCompile Include="..\..\mptrack\Ctrl_com.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/build/vs2015/OpenMPT.vcxproj =================================================================== --- trunk/OpenMPT/build/vs2015/OpenMPT.vcxproj 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/build/vs2015/OpenMPT.vcxproj 2015-07-16 16:14:37 UTC (rev 5415) @@ -503,7 +503,6 @@ <ClInclude Include="..\..\mptrack\ColorConfigDlg.h" /> <ClInclude Include="..\..\mptrack\ColourEdit.h" /> <ClInclude Include="..\..\mptrack\CommandSet.h" /> - <ClInclude Include="..\..\mptrack\CreditStatic.h" /> <ClInclude Include="..\..\mptrack\Ctrl_com.h" /> <ClInclude Include="..\..\mptrack\Ctrl_gen.h" /> <ClInclude Include="..\..\mptrack\Ctrl_ins.h" /> @@ -690,7 +689,6 @@ <ClCompile Include="..\..\mptrack\ColorConfigDlg.cpp" /> <ClCompile Include="..\..\mptrack\ColourEdit.cpp" /> <ClCompile Include="..\..\mptrack\CommandSet.cpp" /> - <ClCompile Include="..\..\mptrack\CreditStatic.cpp" /> <ClCompile Include="..\..\mptrack\Ctrl_com.cpp" /> <ClCompile Include="..\..\mptrack\Ctrl_gen.cpp" /> <ClCompile Include="..\..\mptrack\Ctrl_ins.cpp" /> Modified: trunk/OpenMPT/build/vs2015/OpenMPT.vcxproj.filters =================================================================== --- trunk/OpenMPT/build/vs2015/OpenMPT.vcxproj.filters 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/build/vs2015/OpenMPT.vcxproj.filters 2015-07-16 16:14:37 UTC (rev 5415) @@ -230,9 +230,6 @@ <ClInclude Include="..\..\mptrack\CommandSet.h"> <Filter>mptrack</Filter> </ClInclude> - <ClInclude Include="..\..\mptrack\CreditStatic.h"> - <Filter>mptrack</Filter> - </ClInclude> <ClInclude Include="..\..\mptrack\Ctrl_com.h"> <Filter>mptrack</Filter> </ClInclude> @@ -760,9 +757,6 @@ <ClCompile Include="..\..\mptrack\CommandSet.cpp"> <Filter>mptrack</Filter> </ClCompile> - <ClCompile Include="..\..\mptrack\CreditStatic.cpp"> - <Filter>mptrack</Filter> - </ClCompile> <ClCompile Include="..\..\mptrack\Ctrl_com.cpp"> <Filter>mptrack</Filter> </ClCompile> Modified: trunk/OpenMPT/common/version.cpp =================================================================== --- trunk/OpenMPT/common/version.cpp 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/common/version.cpp 2015-07-16 16:14:37 UTC (rev 5415) @@ -30,7 +30,7 @@ std::string GetOpenMPTVersionStr() { - return std::string("OpenMPT ") + std::string(MPT_VERSION_STR); + return std::string("OpenMPT " MPT_VERSION_STR); } struct version @@ -148,7 +148,7 @@ std::istringstream s( svnversion ); s.imbue(std::locale::classic()); s >> revision; - return revision; + return revision; #else #if MPT_COMPILER_MSVC #pragma message("SVN revision unknown. Please check your build system.") @@ -166,7 +166,7 @@ bool IsDirty() { #if defined(OPENMPT_VERSION_DIRTY) - return OPENMPT_VERSION_DIRTY ? true : false; + return OPENMPT_VERSION_DIRTY != 0; #elif defined(OPENMPT_VERSION_SVNVERSION) std::string svnversion = OPENMPT_VERSION_SVNVERSION; if(svnversion.length() == 0) @@ -186,7 +186,7 @@ bool HasMixedRevisions() { #if defined(OPENMPT_VERSION_MIXEDREVISIONS) - return OPENMPT_VERSION_MIXEDREVISIONS ? true : false; + return OPENMPT_VERSION_MIXEDREVISIONS != 0; #elif defined(OPENMPT_VERSION_SVNVERSION) std::string svnversion = OPENMPT_VERSION_SVNVERSION; if(svnversion.length() == 0) @@ -218,7 +218,7 @@ bool IsPackage() { #if defined(OPENMPT_VERSION_IS_PACKAGE) - return OPENMPT_VERSION_IS_PACKAGE ? true : false; + return OPENMPT_VERSION_IS_PACKAGE != 0; #else return false; #endif @@ -494,7 +494,7 @@ #endif #ifndef NO_MINIZ "Rich Geldreich for miniz\n" - "http://code.google.com/p/miniz/\n" + "https://github.com/richgel999/miniz\n" "\n" #endif #ifndef NO_ARCHIVE_SUPPORT @@ -530,9 +530,6 @@ "http://schismtracker.org/\n" "\n" #ifdef MODPLUG_TRACKER - "Pel K. Txnder for the scrolling credits control :)\n" - "http://tinyurl.com/4yze8\n" - "\n" "Nobuyuki for application and file icon\n" "http://twitter.com/nobuyukinyuu\n" "\n" Modified: trunk/OpenMPT/mptrack/AboutDialog.cpp =================================================================== --- trunk/OpenMPT/mptrack/AboutDialog.cpp 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/mptrack/AboutDialog.cpp 2015-07-16 16:14:37 UTC (rev 5415) @@ -271,12 +271,6 @@ m_bmp.SubclassDlgItem(IDC_BITMAP1, this); - m_static.SubclassDlgItem(IDC_CREDITS, this); - m_static.SetSpeed(DISPLAY_MEDIUM); - m_static.SetColor(BACKGROUND_COLOR, RGB(83, 107, 163)); // Background Colour -// m_static.SetColor(BACKGROUND_COLOR, RGB(43, 69, 130)); // Background Colour - m_static.SetGradient(GRADIENT_RIGHT_DARK); // Background goes from blue to black from left to right - m_Tab.InsertItem(TCIF_TEXT, 0, _T("OpenMPT"), 0, 0, 0, 0); m_Tab.InsertItem(TCIF_TEXT, 1, _T("Components"), 0, 0, 0, 0); m_Tab.InsertItem(TCIF_TEXT, 2, _T("Credits"), 0, 0, 0, 0); @@ -284,23 +278,8 @@ m_Tab.InsertItem(TCIF_TEXT, 4, _T("Contact"), 0, 0, 0, 0); m_Tab.SetCurSel(0); - m_CheckScroll.SetCheck(TrackerSettings::Instance().MiscAboutScrollText ? BST_CHECKED : BST_UNCHECKED); - OnTabChange(nullptr, nullptr); - OnCheckScroll(); - mpt::ustring text; - text += GetTabText(0); - text += MPT_USTRING("\n\n\n"); - text += GetTabText(2); - text += MPT_USTRING("\n\n\n"); - text += GetTabText(4); - text += MPT_USTRING("\n\n\n"); - text += GetTabText(3); - text += MPT_USTRING("\n\n\n"); - m_static.SetCredits(mpt::ToCString(mpt::String::Replace(text, MPT_USTRING("\n"), MPT_USTRING("|")))); - m_static.StartScrolling(); - if(m_TimerID != 0) { KillTimer(m_TimerID); @@ -323,24 +302,6 @@ } -void CAboutDlg::OnCheckScroll() -{ - if(m_CheckScroll.GetCheck() == BST_CHECKED) - { - m_Tab.ShowWindow(SW_HIDE); - m_TabEdit.ShowWindow(SW_HIDE); - m_static.ShowWindow(SW_SHOW); - TrackerSettings::Instance().MiscAboutScrollText = true; - } else - { - m_Tab.ShowWindow(SW_SHOW); - m_TabEdit.ShowWindow(SW_SHOW); - m_static.ShowWindow(SW_HIDE); - TrackerSettings::Instance().MiscAboutScrollText = false; - } -} - - void CAboutDlg::OnTabChange(NMHDR * /*pNMHDR*/ , LRESULT * /*pResult*/ ) { m_TabEdit.SetWindowText(mpt::ToCString(mpt::String::Replace(GetTabText(m_Tab.GetCurSel()), MPT_USTRING("\n"), MPT_USTRING("\r\n")))); @@ -512,7 +473,6 @@ void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); - DDX_Control(pDX, IDC_CHECK_ABOUTSCROLL, m_CheckScroll); DDX_Control(pDX, IDC_TABABOUT, m_Tab); DDX_Control(pDX, IDC_EDITABOUT, m_TabEdit); } @@ -521,7 +481,6 @@ BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) ON_WM_TIMER() ON_NOTIFY(TCN_SELCHANGE, IDC_TABABOUT, &CAboutDlg::OnTabChange) - ON_COMMAND(IDC_CHECK_ABOUTSCROLL, &CAboutDlg::OnCheckScroll) END_MESSAGE_MAP() Modified: trunk/OpenMPT/mptrack/AboutDialog.h =================================================================== --- trunk/OpenMPT/mptrack/AboutDialog.h 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/mptrack/AboutDialog.h 2015-07-16 16:14:37 UTC (rev 5415) @@ -1,7 +1,5 @@ #pragma once -#include "CreditStatic.h" - OPENMPT_NAMESPACE_BEGIN namespace PNG { struct Bitmap; } @@ -51,10 +49,8 @@ { protected: CRippleBitmap m_bmp; - CCreditStatic m_static; CTabCtrl m_Tab; CEdit m_TabEdit; - CButton m_CheckScroll; UINT_PTR m_TimerID; static const UINT_PTR TIMERID_ABOUT_DEFAULT = 3; @@ -73,7 +69,6 @@ virtual void DoDataExchange(CDataExchange* pDX); afx_msg void OnTabChange(NMHDR *pNMHDR, LRESULT *pResult); void OnTimer(UINT_PTR nIDEvent); - void OnCheckScroll(); mpt::ustring GetTabText(int tab); }; Deleted: trunk/OpenMPT/mptrack/CreditStatic.cpp =================================================================== --- trunk/OpenMPT/mptrack/CreditStatic.cpp 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/mptrack/CreditStatic.cpp 2015-07-16 16:14:37 UTC (rev 5415) @@ -1,954 +0,0 @@ -/* - * CreditStatic.cpp - * ---------------- - * Purpose: Implementation of scrolling credits control. - * Notes : Ugly! :) - * Authors: Pel K. Txnder, http://www.codeguru.com/cpp/controls/staticctrl/article.php/c2903 - */ - - -#include "stdafx.h" -#include "CreditStatic.h" -#include "MPTrackUtil.h" - - -OPENMPT_NAMESPACE_BEGIN - - -#define DISPLAY_TIMER_ID 150 // timer id -///////////////////////////////////////////////////////////////////////////// -// CCreditStatic - -CCreditStatic::CCreditStatic() -{ - - m_Colors[0] = RGB(0,0,0); // Black - m_Colors[1] = RGB(255,0,0); // Red - m_Colors[2] = RGB(255,255,0); // Yellow - m_Colors[3] = RGB(0,255,255); // Turquoise - m_Colors[4] = RGB(255,255,255); // White - - m_TextHeights[0] = 21; - m_TextHeights[1] = 19; - m_TextHeights[2] = 17; - m_TextHeights[3] = MulDiv(15, Util::GetDPIy(m_hWnd), 96); - m_nCurrentFontHeight = m_TextHeights[NORMAL_TEXT_HEIGHT]; - - - m_Escapes[0] = '\t'; - m_Escapes[1] = '\n'; - m_Escapes[2] = '\r'; - m_Escapes[3] = '^'; - - m_DisplaySpeed[0] = 70; - m_DisplaySpeed[1] = 40; - m_DisplaySpeed[2] = 10; - - m_CurrentSpeed = 1; - m_ScrollAmount = -1; - m_bProcessingBitmap = FALSE; - - m_ArrIndex = NULL; - m_nCounter = 1; - m_nClip = 0; - - m_bFirstTime = TRUE; - m_bDrawText = FALSE; - m_bFirstTurn = TRUE; - m_Gradient = GRADIENT_NONE; - m_bTransparent = FALSE; - n_MaxWidth = 0; - TimerOn = 0; -} - -CCreditStatic::~CCreditStatic() -{ -} - - -BEGIN_MESSAGE_MAP(CCreditStatic, CStatic) - //{{AFX_MSG_MAP(CCreditStatic) - ON_WM_PAINT() - ON_WM_ERASEBKGND() - ON_WM_TIMER() - ON_WM_DESTROY() - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CCreditStatic message handlers - -BOOL CCreditStatic::StartScrolling() -{ - if(m_ArrCredit.IsEmpty()) - return FALSE; - - if(m_BmpMain.m_hObject != NULL) { - m_BmpMain.DeleteObject(); - m_BmpMain.m_hObject = NULL; - } - - TimerOn = SetTimer(DISPLAY_TIMER_ID,m_DisplaySpeed[m_CurrentSpeed],NULL); - ASSERT(TimerOn != 0); - - m_ArrIndex = m_ArrCredit.GetHeadPosition(); - m_nCounter = 1; - m_nClip = 0; - - m_bFirstTime = TRUE; - m_bDrawText = FALSE; - - return TRUE; -} - -void CCreditStatic::EndScrolling() -{ - KillTimer(DISPLAY_TIMER_ID); - TimerOn = 0; - - if(m_BmpMain.m_hObject != NULL) { - m_BmpMain.DeleteObject(); - m_BmpMain.m_hObject = NULL; - } -} - -void CCreditStatic::SetCredits(LPCTSTR credits,TCHAR delimiter) -{ - TCHAR *str,*ptr1,*ptr2; - - ASSERT(credits); - - if((str = _tcsdup(credits)) == NULL) - return; - - m_ArrCredit.RemoveAll(); - - ptr1 = str; - while((ptr2 = _tcschr(ptr1,delimiter)) != NULL) { - *ptr2 = '\0'; - m_ArrCredit.AddTail(ptr1); - ptr1 = ptr2+1; - } - m_ArrCredit.AddTail(ptr1); - - free(str); - - m_ArrIndex = m_ArrCredit.GetHeadPosition(); - m_nCounter = 1; - m_nClip = 0; - - m_bFirstTime = TRUE; - m_bDrawText = FALSE; -} - -void CCreditStatic::SetCredits(UINT nID,TCHAR delimiter) -{ - CString credits; - if(!credits.LoadString(nID)) - return; - - SetCredits((LPCTSTR)credits, delimiter); -} - -void CCreditStatic::SetSpeed(UINT index, int speed) -{ - ASSERT(index <= DISPLAY_FAST); - - if(speed) - m_DisplaySpeed[index] = speed; - - m_CurrentSpeed = index; -} - -void CCreditStatic::SetColor(UINT index, COLORREF col) -{ - ASSERT(index <= NORMAL_TEXT_COLOR); - - m_Colors[index] = col; -} - -void CCreditStatic::SetTextHeight(UINT index, int height) -{ - ASSERT(index <= NORMAL_TEXT_HEIGHT); - - m_TextHeights[index] = height; -} - -void CCreditStatic::SetEscape(UINT index, TCHAR escape) -{ - ASSERT(index <= DISPLAY_BITMAP); - - m_Escapes[index] = escape; -} - -void CCreditStatic::SetGradient(UINT value) -{ - ASSERT(value <= GRADIENT_LEFT_LIGHT); - - m_Gradient = value; -} - -void CCreditStatic::SetTransparent(BOOL bTransparent) -{ - m_bTransparent = bTransparent; -} - -void CCreditStatic::OnPaint() -{ - CPaintDC dc(this); // device context for painting - - if(TimerOn) return; - - CDC memDC; - memDC.CreateCompatibleDC(&dc); - - CBitmap *pOldMemDCBitmap = NULL; - CRect m_ScrollRect; - GetClientRect(&m_ScrollRect); - - if(m_BmpMain.m_hObject == NULL) { - - CDC memDC2; - CBitmap bitmap; - memDC2.CreateCompatibleDC(&dc); - bitmap.CreateCompatibleBitmap( &dc, m_ScrollRect.Width(), m_ScrollRect.Height() ); - CBitmap *pOldMemDC2Bitmap = (CBitmap*)memDC2.SelectObject(&bitmap); - - DrawCredit(&memDC2, m_ScrollRect); - AddBackGround(&memDC2, m_ScrollRect, m_ScrollRect); - - pOldMemDCBitmap = (CBitmap*)memDC.SelectObject(&m_BmpMain); - memDC.BitBlt( 0, 0, m_ScrollRect.Width(), m_ScrollRect.Height(), - &memDC2, 0, 0, SRCCOPY ); - memDC2.SelectObject(pOldMemDC2Bitmap); - } - else - pOldMemDCBitmap = (CBitmap*)memDC.SelectObject(&m_BmpMain); - - dc.BitBlt( 0, 0, m_ScrollRect.Width(), m_ScrollRect.Height(), - &memDC, 0, 0, SRCCOPY ); -} - -BOOL CCreditStatic::OnEraseBkgnd(CDC* pDC) -{ - MPT_UNREFERENCED_PARAMETER(pDC); - return TRUE; - -// return CStatic::OnEraseBkgnd(pDC); -} - -//************************************************************************ -// OnTimer -// -// On each of the display timers, scroll the window 1 unit. Each 20 -// units, fetch the next array element and load into work string. Call -// Invalidate and UpdateWindow to invoke the OnPaint which will paint -// the contents of the newly updated work string. -//************************************************************************ -void CCreditStatic::OnTimer(UINT_PTR nIDEvent) -{ - if (nIDEvent != DISPLAY_TIMER_ID) - { - CStatic::OnTimer(nIDEvent); - return; - } - - BOOL bCheck = FALSE; - - if (!m_bProcessingBitmap) { - if (m_nCounter++ % m_nCurrentFontHeight == 0) // every x timer events, show new line - { - m_nCounter=1; - m_szWork = m_ArrCredit.GetNext(m_ArrIndex); - if(m_bFirstTurn) - bCheck = TRUE; - if(m_ArrIndex == NULL) { - m_bFirstTurn = FALSE; - m_ArrIndex = m_ArrCredit.GetHeadPosition(); - } - m_nClip = 0; - m_bDrawText=TRUE; - } - } - - CClientDC dc(this); - CRect m_ScrollRect; - GetClientRect(&m_ScrollRect); - - CRect m_ClientRect(m_ScrollRect); - m_ClientRect.left = (m_ClientRect.Width()-n_MaxWidth)/2; - m_ClientRect.right = m_ClientRect.left + n_MaxWidth; - - MoveCredit(&dc, m_ScrollRect, m_ClientRect, bCheck); - - AddBackGround(&dc, m_ScrollRect, m_ClientRect); - - CStatic::OnTimer(nIDEvent); -} - -void CCreditStatic::AddBackGround(CDC* pDC, CRect& m_ScrollRect, CRect& m_ClientRect) -{ - CDC memDC; - memDC.CreateCompatibleDC( pDC ); - - if( m_bitmap.m_hObject == NULL ) - { - CBitmap* pOldBitmap = memDC.SelectObject( &m_BmpMain ); - pDC->BitBlt( 0, 0, m_ScrollRect.Width(), m_ScrollRect.Height(), - &memDC, 0, 0, SRCCOPY ); - memDC.SelectObject(pOldBitmap); - return; - } - - // Draw bitmap in the background if one has been set - // Now create a mask - CBitmap bitmap; - bitmap.CreateCompatibleBitmap( pDC, m_ClientRect.Width(), m_ClientRect.Height() ); - CBitmap* pOldMemDCBitmap = memDC.SelectObject( &bitmap ); - - CDC tempDC; - tempDC.CreateCompatibleDC(pDC); - CBitmap* pOldTempDCBitmap = tempDC.SelectObject( &m_BmpMain ); - - memDC.BitBlt( 0, 0, m_ClientRect.Width(), m_ClientRect.Height(), &tempDC, - m_ClientRect.left, m_ClientRect.top, SRCCOPY ); - CDC maskDC; - maskDC.CreateCompatibleDC(pDC); - CBitmap maskBitmap; - - // Create monochrome bitmap for the mask - maskBitmap.CreateBitmap( m_ClientRect.Width(), m_ClientRect.Height(), 1, 1, NULL ); - CBitmap* pOldMaskDCBitmap = maskDC.SelectObject( &maskBitmap ); - memDC.SetBkColor(m_bTransparent? RGB(192,192,192): m_Colors[BACKGROUND_COLOR]); - - // Create the mask from the memory DC - maskDC.BitBlt( 0, 0, m_ClientRect.Width(), m_ClientRect.Height(), &memDC, 0, 0, SRCCOPY ); - - tempDC.SelectObject(pOldTempDCBitmap); - pOldTempDCBitmap = tempDC.SelectObject( &m_bitmap ); - - CDC imageDC; - CBitmap bmpImage; - imageDC.CreateCompatibleDC( pDC ); - bmpImage.CreateCompatibleBitmap( pDC, m_ScrollRect.Width(), m_ScrollRect.Height() ); - CBitmap* pOldImageDCBitmap = imageDC.SelectObject( &bmpImage ); - - if( pDC->GetDeviceCaps(RASTERCAPS) & RC_PALETTE && m_pal.m_hObject != NULL ) - { - pDC->SelectPalette( &m_pal, FALSE ); - pDC->RealizePalette(); - - imageDC.SelectPalette( &m_pal, FALSE ); - } - // Get x and y offset - // Draw bitmap in tiled manner to imageDC - for( int i = 0; i < m_ScrollRect.right; i += m_cxBitmap ) - for( int j = 0; j < m_ScrollRect.bottom; j += m_cyBitmap ) - imageDC.BitBlt( i, j, m_cxBitmap, m_cyBitmap, &tempDC, 0, 0, SRCCOPY ); - - // Set the background in memDC to black. Using SRCPAINT with black and any other - // color results in the other color, thus making black the transparent color - memDC.SetBkColor(RGB(0,0,0)); - memDC.SetTextColor(RGB(255,255,255)); - memDC.BitBlt(0, 0, m_ClientRect.Width(), m_ClientRect.Height(), &maskDC, 0, 0, SRCAND); - - // Set the foreground to black. See comment above. - imageDC.SetBkColor(RGB(255,255,255)); - imageDC.SetTextColor(RGB(0,0,0)); - imageDC.BitBlt(m_ClientRect.left, m_ClientRect.top, m_ClientRect.Width(), m_ClientRect.Height(), - &maskDC, 0, 0, SRCAND); - - // Combine the foreground with the background - imageDC.BitBlt(m_ClientRect.left, m_ClientRect.top, m_ClientRect.Width(), m_ClientRect.Height(), - &memDC, 0, 0,SRCPAINT); - - // Draw the final image to the screen - pDC->BitBlt( 0, 0, m_ScrollRect.Width(), m_ScrollRect.Height(), - &imageDC, 0, 0, SRCCOPY ); - - imageDC.SelectObject(pOldImageDCBitmap); - maskDC.SelectObject(pOldMaskDCBitmap); - tempDC.SelectObject(pOldTempDCBitmap); - memDC.SelectObject(pOldMemDCBitmap); -} - -void CCreditStatic::DrawBitmap(CDC* pDC, CDC* pDC2, CRect *rBitmap) -{ - if(!m_bTransparent || m_bitmap.m_hObject != NULL) { - pDC->BitBlt( rBitmap->left, rBitmap->top, rBitmap->Width(), rBitmap->Height(), - pDC2, 0, 0, SRCCOPY ); - return; - } - - CDC memDC; - memDC.CreateCompatibleDC( pDC ); - - // Now create a mask - CBitmap bitmap; - bitmap.CreateCompatibleBitmap( pDC, rBitmap->Width(), rBitmap->Height() ); - CBitmap* pOldMemDCBitmap = memDC.SelectObject( &bitmap ); - - memDC.BitBlt( 0, 0, rBitmap->Width(), rBitmap->Height(), pDC2, 0, 0, SRCCOPY ); - - CDC maskDC; - maskDC.CreateCompatibleDC(pDC); - - // Create monochrome bitmap for the mask - CBitmap maskBitmap; - maskBitmap.CreateBitmap( rBitmap->Width(), rBitmap->Height(), 1, 1, NULL ); - CBitmap* pOldMaskDCBitmap = maskDC.SelectObject( &maskBitmap ); - memDC.SetBkColor(RGB(192,192,192)); - - // Create the mask from the memory DC - maskDC.BitBlt( 0, 0, rBitmap->Width(), rBitmap->Height(), &memDC, 0, 0, SRCCOPY ); - - - CDC imageDC; - CBitmap bmpImage; - imageDC.CreateCompatibleDC( pDC ); - bmpImage.CreateCompatibleBitmap( pDC, rBitmap->Width(), rBitmap->Height() ); - CBitmap* pOldImageDCBitmap = imageDC.SelectObject( &bmpImage ); - - imageDC.BitBlt(0, 0, rBitmap->Width(), rBitmap->Height(), pDC, rBitmap->left, rBitmap->top, SRCCOPY); - - // Set the background in memDC to black. Using SRCPAINT with black and any other - // color results in the other color, thus making black the transparent color - memDC.SetBkColor(RGB(0,0,0)); - memDC.SetTextColor(RGB(255,255,255)); - memDC.BitBlt(0, 0, rBitmap->Width(), rBitmap->Height(), &maskDC, 0, 0, SRCAND); - - // Set the foreground to black. See comment above. - imageDC.SetBkColor(RGB(255,255,255)); - imageDC.SetTextColor(RGB(0,0,0)); - imageDC.BitBlt(0, 0, rBitmap->Width(), rBitmap->Height(), &maskDC, 0, 0, SRCAND); - - // Combine the foreground with the background - imageDC.BitBlt(0, 0, rBitmap->Width(), rBitmap->Height(), &memDC, 0, 0,SRCPAINT); - - // Draw the final image to the screen - pDC->BitBlt( rBitmap->left, rBitmap->top, rBitmap->Width(), rBitmap->Height(), - &imageDC, 0, 0, SRCCOPY ); - - imageDC.SelectObject(pOldImageDCBitmap); - maskDC.SelectObject(pOldMaskDCBitmap); - memDC.SelectObject(pOldMemDCBitmap); -} - -void CCreditStatic::FillGradient(CDC *pDC, CRect *m_ScrollRect, CRect *m_FillRect, COLORREF color) -{ - float fStep,fRStep,fGStep,fBStep; // How large is each band? - int iOnBand; // Loop index - - WORD R = GetRValue(color); - WORD G = GetGValue(color); - WORD B = GetBValue(color); - - // Determine how large each band should be in order to cover the - // client with 256 bands (one for every color intensity level) - if(m_Gradient % 2) { - fRStep = (float)R / 255.0f; - fGStep = (float)G / 255.0f; - fBStep = (float)B / 255.0f; - } else { - fRStep = (float)(255-R) / 255.0f; - fGStep = (float)(255-G) / 255.0f; - fBStep = (float)(255-B) / 255.0f; - } - - COLORREF OldCol = pDC->GetBkColor(); - // Start filling bands - fStep = (float)m_ScrollRect->Width() / 256.0f; - for(iOnBand = (256*m_FillRect->left)/m_ScrollRect->Width(); - (int)(iOnBand*fStep) < m_FillRect->right && iOnBand < 256; iOnBand++) { - CRect r((int)(iOnBand * fStep), m_FillRect->top, - (int)((iOnBand+1) * fStep), m_FillRect->bottom+1); - COLORREF col; - - switch(m_Gradient) { - case GRADIENT_RIGHT_DARK: - col = RGB((int)(R-iOnBand*fRStep),(int)(G-iOnBand*fGStep),(int)(B-iOnBand*fBStep)); - break; - case GRADIENT_RIGHT_LIGHT: - col = RGB((int)(R+iOnBand*fRStep),(int)(G+iOnBand*fGStep),(int)(B+iOnBand*fBStep)); - break; - case GRADIENT_LEFT_DARK: - col = RGB((int)(iOnBand*fRStep),(int)(iOnBand*fGStep),(int)(iOnBand*fBStep)); - break; - case GRADIENT_LEFT_LIGHT: - col = RGB(255-(int)(iOnBand*fRStep),255-(int)(iOnBand*fGStep),255-(int)(iOnBand*fBStep)); - break; - default: - return; - } - pDC->FillSolidRect(&r, col); - } - pDC->SetBkColor(OldCol); -} - -#define SCROLLDC - -void CCreditStatic::MoveCredit(CDC* pDC, CRect& m_ScrollRect, CRect& m_ClientRect, BOOL bCheck) -{ - CDC memDC,memDC2; - memDC.CreateCompatibleDC(pDC); - memDC2.CreateCompatibleDC(pDC); - - COLORREF BackColor = (m_bTransparent && m_bitmap.m_hObject != NULL)? RGB(192,192,192) : m_Colors[BACKGROUND_COLOR]; - CBitmap *pOldMemDCBitmap = NULL; - CBitmap *pOldMemDC2Bitmap = NULL; - -#ifdef SCROLLDC - CRect r1; -#endif - - if(m_BmpMain.m_hObject == NULL) { - m_BmpMain.CreateCompatibleBitmap( pDC, m_ScrollRect.Width(), m_ScrollRect.Height() ); - pOldMemDCBitmap = (CBitmap*)memDC.SelectObject(&m_BmpMain); - if(m_Gradient && m_bitmap.m_hObject == NULL) - FillGradient(&memDC, &m_ScrollRect, &m_ScrollRect,m_Colors[BACKGROUND_COLOR]); - else - memDC.FillSolidRect(&m_ScrollRect,BackColor); - } else - pOldMemDCBitmap = (CBitmap*)memDC.SelectObject(&m_BmpMain); - - if(m_ClientRect.Width() > 0) { -#ifndef SCROLLDC - CBitmap bitmap; - bitmap.CreateCompatibleBitmap( pDC, m_ClientRect.Width(), m_ClientRect.Height() ); - pOldMemDC2Bitmap = memDC2.SelectObject(&bitmap); - - memDC2.BitBlt( 0, 0, m_ClientRect.Width(), m_ClientRect.Height()-abs(m_ScrollAmount), - &memDC, m_ClientRect.left, abs(m_ScrollAmount), SRCCOPY ); - memDC.BitBlt( m_ClientRect.left, 0, m_ClientRect.Width(), m_ClientRect.Height(), - &memDC2, 0, 0, SRCCOPY ); - - - memDC2.SelectObject(pOldMemDC2Bitmap); - pOldMemDC2Bitmap = NULL; -#else - CRgn RgnUpdate; - memDC.ScrollDC(0,m_ScrollAmount,(LPCRECT)m_ScrollRect,(LPCRECT)m_ClientRect,&RgnUpdate, - (LPRECT)r1); - } - else { - r1 = m_ScrollRect; - r1.top = r1.bottom-abs(m_ScrollAmount); -#endif - } - - m_nClip = m_nClip + abs(m_ScrollAmount); - - - //********************************************************************* - // FONT SELECTION - CFont m_fntArial; - CFont* pOldFont = NULL; - BOOL bSuccess = FALSE; - - BYTE bUnderline; - BYTE bItalic; - int rmcode = 0; - - if (!m_szWork.IsEmpty()) { - TCHAR c = m_szWork[m_szWork.GetLength()-1]; - if(c == m_Escapes[TOP_LEVEL_GROUP]) { - rmcode = 1; - bItalic = FALSE; - bUnderline = FALSE; - m_nCurrentFontHeight = m_TextHeights[TOP_LEVEL_GROUP_HEIGHT]; - bSuccess = m_fntArial.CreateFont(m_TextHeights[TOP_LEVEL_GROUP_HEIGHT], 0, 0, 0, - FW_BOLD, bItalic, bUnderline, 0, - ANSI_CHARSET, - OUT_DEFAULT_PRECIS, - CLIP_DEFAULT_PRECIS, - ANTIALIASED_QUALITY, - VARIABLE_PITCH | 0x04 | FF_DONTCARE, - _T("Arial")); - memDC.SetTextColor(m_Colors[TOP_LEVEL_GROUP_COLOR]); - if (pOldFont != NULL) memDC.SelectObject(pOldFont); - pOldFont = memDC.SelectObject(&m_fntArial); - - } - else if(c == m_Escapes[GROUP_TITLE]) { - rmcode = 1; - bItalic = FALSE; - bUnderline = FALSE; - m_nCurrentFontHeight = m_TextHeights[GROUP_TITLE_HEIGHT]; - bSuccess = m_fntArial.CreateFont(m_TextHeights[GROUP_TITLE_HEIGHT], 0, 0, 0, - FW_BOLD, bItalic, bUnderline, 0, - ANSI_CHARSET, - OUT_DEFAULT_PRECIS, - CLIP_DEFAULT_PRECIS, - ANTIALIASED_QUALITY, - VARIABLE_PITCH | 0x04 | FF_DONTCARE, - _T("Arial")); - memDC.SetTextColor(m_Colors[GROUP_TITLE_COLOR]); - if (pOldFont != NULL) memDC.SelectObject(pOldFont); - pOldFont = memDC.SelectObject(&m_fntArial); - } - else if(c == m_Escapes[TOP_LEVEL_TITLE]) { - rmcode = 1; - bItalic = FALSE; -// bUnderline = TRUE; - bUnderline = FALSE; - m_nCurrentFontHeight = m_TextHeights[TOP_LEVEL_TITLE_HEIGHT]; - bSuccess = m_fntArial.CreateFont(m_TextHeights[TOP_LEVEL_TITLE_HEIGHT], 0, 0, 0, - FW_BOLD, bItalic, bUnderline, 0, - ANSI_CHARSET, - OUT_DEFAULT_PRECIS, - CLIP_DEFAULT_PRECIS, - ANTIALIASED_QUALITY, - VARIABLE_PITCH | 0x04 | FF_DONTCARE, - _T("Arial")); - memDC.SetTextColor(m_Colors[TOP_LEVEL_TITLE_COLOR]); - if (pOldFont != NULL) memDC.SelectObject(pOldFont); - pOldFont = memDC.SelectObject(&m_fntArial); - } - else if(c == m_Escapes[DISPLAY_BITMAP]) { - if (!m_bProcessingBitmap) - { - CString szBitmap = m_szWork.Left(m_szWork.GetLength()-1); - if(m_bmpWork.LoadBitmap(szBitmap)) { - BITMAP m_bmpInfo; - - m_bmpWork.GetObject(sizeof(BITMAP), &m_bmpInfo); - - m_size.cx = m_bmpInfo.bmWidth; // width of dest rect - m_size.cy = m_bmpInfo.bmHeight; - // upper left point of dest - m_pt.x = (m_ClientRect.right - - ((m_ClientRect.Width())/2) - (m_size.cx/2)); - m_pt.y = m_ClientRect.bottom; - - m_bProcessingBitmap = TRUE; - if (pOldMemDC2Bitmap != NULL) memDC2.SelectObject(pOldMemDC2Bitmap); - pOldMemDC2Bitmap = memDC2.SelectObject(&m_bmpWork); - } - else - c = ' '; - } - else { - if (pOldMemDC2Bitmap != NULL) memDC2.SelectObject(pOldMemDC2Bitmap); - pOldMemDC2Bitmap = memDC2.SelectObject(&m_bmpWork); - } - } - else { - bItalic = FALSE; - bUnderline = FALSE; - m_nCurrentFontHeight = m_TextHeights[NORMAL_TEXT_HEIGHT]; - bSuccess = m_fntArial.CreateFont(m_TextHeights[NORMAL_TEXT_HEIGHT], 0, 0, 0, - FW_THIN, bItalic, bUnderline, 0, - ANSI_CHARSET, - OUT_DEFAULT_PRECIS, - CLIP_DEFAULT_PRECIS, - ANTIALIASED_QUALITY, - VARIABLE_PITCH | 0x04 | FF_DONTCARE, - _T("Arial")); - memDC.SetTextColor(m_Colors[NORMAL_TEXT_COLOR]); - if (pOldFont != NULL) memDC.SelectObject(pOldFont); - pOldFont = memDC.SelectObject(&m_fntArial); - } - } - -#ifndef SCROLLDC - CRect r1(m_ScrollRect); - r1.top = r1.bottom-abs(m_ScrollAmount); -#endif - - if(m_Gradient && m_bitmap.m_hObject == NULL) - FillGradient(&memDC, &m_ScrollRect, &r1, m_Colors[BACKGROUND_COLOR]); - else - memDC.FillSolidRect(&r1,BackColor); - memDC.SetBkMode(TRANSPARENT); - - if (!m_bProcessingBitmap) - { - if(bCheck) { - CSize size = memDC.GetTextExtent((LPCTSTR)m_szWork,m_szWork.GetLength()-rmcode); - if(size.cx > n_MaxWidth) { - n_MaxWidth = (size.cx > m_ScrollRect.Width())? m_ScrollRect.Width():size.cx; - m_ClientRect.left = (m_ScrollRect.Width()-n_MaxWidth)/2; - m_ClientRect.right = m_ClientRect.left + n_MaxWidth; - } - - } - CRect r(m_ClientRect); - r.top = r.bottom-m_nClip; - memDC.DrawText(m_szWork,m_szWork.GetLength()-rmcode,&r,DT_TOP|DT_CENTER| - DT_NOPREFIX | DT_SINGLELINE); - m_bDrawText=FALSE; - } - else - { - if(bCheck) { - CSize size = memDC.GetTextExtent((LPCTSTR)m_szWork,m_szWork.GetLength()-rmcode); - if(m_size.cx > n_MaxWidth) { - n_MaxWidth = (m_size.cx > m_ScrollRect.Width())? m_ScrollRect.Width():m_size.cx; - m_ClientRect.left = (m_ScrollRect.Width()-n_MaxWidth)/2; - m_ClientRect.right = m_ClientRect.left + n_MaxWidth; - } - } - CRect r( m_pt.x, m_pt.y-m_nClip, m_pt.x+ m_size.cx, m_pt.y); - DrawBitmap(&memDC, &memDC2, &r); -// memDC.BitBlt( m_pt.x, m_pt.y-m_nClip, m_size.cx, m_nClip, -// &memDC2, 0, 0, SRCCOPY ); - if (m_nClip >= m_size.cy) - { - m_bmpWork.DeleteObject(); - m_bProcessingBitmap = FALSE; - m_nClip=0; - m_szWork.Empty(); - m_nCounter=1; - } - } - - if (pOldMemDC2Bitmap != NULL) memDC2.SelectObject(pOldMemDC2Bitmap); - if (pOldFont != NULL) memDC.SelectObject(pOldFont); - memDC.SelectObject(pOldMemDCBitmap); -} - -void CCreditStatic::DrawCredit(CDC* pDC, CRect& m_ScrollRect) -{ - if(m_BmpMain.m_hObject != NULL) return; - - CDC memDC,memDC2; - memDC.CreateCompatibleDC(pDC); - memDC2.CreateCompatibleDC(pDC); - COLORREF BackColor = (m_bTransparent && m_bitmap.m_hObject != NULL)? RGB(192,192,192) : m_Colors[BACKGROUND_COLOR]; - - CBitmap *pOldMemDCBitmap = NULL; - - m_BmpMain.CreateCompatibleBitmap( pDC, m_ScrollRect.Width(), m_ScrollRect.Height() ); - pOldMemDCBitmap = (CBitmap*)memDC.SelectObject(&m_BmpMain); - - if(m_Gradient && m_bitmap.m_hObject == NULL) - FillGradient(&memDC, &m_ScrollRect, &m_ScrollRect, m_Colors[BACKGROUND_COLOR]); - else - memDC.FillSolidRect(&m_ScrollRect, BackColor); - - POSITION pos = m_ArrCredit.GetHeadPosition(); - int height = 0; - while(pos != NULL && height <= m_ScrollRect.Height()) { - CString m_szWork = m_ArrCredit.GetNext(pos); - CFont m_fntArial; - CFont *pOldFont = NULL; - CBitmap *pOldMemDC2Bitmap = NULL; - - CDC memDC2; - memDC2.CreateCompatibleDC(pDC); - //********************************************************************* - // FONT SELECTION - - - BOOL bSuccess = FALSE; - BOOL bIsBitmap = FALSE; - - BYTE bUnderline; - BYTE bItalic; - int rmcode = 0; - CBitmap bitmap; - - if (!m_szWork.IsEmpty()) { - TCHAR c = m_szWork[m_szWork.GetLength()-1]; - if(c == m_Escapes[TOP_LEVEL_GROUP]) { - rmcode = 1; - bItalic = FALSE; - bUnderline = FALSE; - m_nCurrentFontHeight = m_TextHeights[TOP_LEVEL_GROUP_HEIGHT]; - bSuccess = m_fntArial.CreateFont(m_TextHeights[TOP_LEVEL_GROUP_HEIGHT], 0, 0, 0, - FW_BOLD, bItalic, bUnderline, 0, - ANSI_CHARSET, - OUT_DEFAULT_PRECIS, - CLIP_DEFAULT_PRECIS, - PROOF_QUALITY, - VARIABLE_PITCH | 0x04 | FF_DONTCARE, - _T("Arial")); - memDC.SetTextColor(m_Colors[TOP_LEVEL_GROUP_COLOR]); - pOldFont = memDC.SelectObject(&m_fntArial); - - } - else if(c == m_Escapes[GROUP_TITLE]) { - rmcode = 1; - bItalic = FALSE; - bUnderline = FALSE; - m_nCurrentFontHeight = m_TextHeights[GROUP_TITLE_HEIGHT]; - bSuccess = m_fntArial.CreateFont(m_TextHeights[GROUP_TITLE_HEIGHT], 0, 0, 0, - FW_BOLD, bItalic, bUnderline, 0, - ANSI_CHARSET, - OUT_DEFAULT_PRECIS, - CLIP_DEFAULT_PRECIS, - PROOF_QUALITY, - VARIABLE_PITCH | 0x04 | FF_DONTCARE, - _T("Arial")); - memDC.SetTextColor(m_Colors[GROUP_TITLE_COLOR]); - pOldFont = memDC.SelectObject(&m_fntArial); - } - else if(c == m_Escapes[TOP_LEVEL_TITLE]) { - rmcode = 1; - bItalic = FALSE; - // bUnderline = TRUE; - bUnderline = FALSE; - m_nCurrentFontHeight = m_TextHeights[TOP_LEVEL_TITLE_HEIGHT]; - bSuccess = m_fntArial.CreateFont(m_TextHeights[TOP_LEVEL_TITLE_HEIGHT], 0, 0, 0, - FW_BOLD, bItalic, bUnderline, 0, - ANSI_CHARSET, - OUT_DEFAULT_PRECIS, - CLIP_DEFAULT_PRECIS, - PROOF_QUALITY, - VARIABLE_PITCH | 0x04 | FF_DONTCARE, - _T("Arial")); - memDC.SetTextColor(m_Colors[TOP_LEVEL_TITLE_COLOR]); - pOldFont = memDC.SelectObject(&m_fntArial); - } - else if(c == m_Escapes[DISPLAY_BITMAP]) { - CString szBitmap = m_szWork.Left(m_szWork.GetLength()-1); - if(bitmap.LoadBitmap(szBitmap)) { - BITMAP m_bmpInfo; - - bitmap.GetObject(sizeof(BITMAP), &m_bmpInfo); - - m_size.cx = m_bmpInfo.bmWidth; // width of dest rect - m_size.cy = m_bmpInfo.bmHeight; - // upper left point of dest - m_pt.x = (m_ScrollRect.right - - ((m_ScrollRect.Width())/2) - (m_size.cx/2)); - m_pt.y = height; - pOldMemDC2Bitmap = memDC2.SelectObject(&bitmap); - bIsBitmap = TRUE; - } - else - c = ' '; - } - else { - bItalic = FALSE; - bUnderline = FALSE; - m_nCurrentFontHeight = m_TextHeights[NORMAL_TEXT_HEIGHT]; - bSuccess = m_fntArial.CreateFont(m_TextHeights[NORMAL_TEXT_HEIGHT], 0, 0, 0, - FW_THIN, bItalic, bUnderline, 0, - ANSI_CHARSET, - OUT_DEFAULT_PRECIS, - CLIP_DEFAULT_PRECIS, - PROOF_QUALITY, - VARIABLE_PITCH | 0x04 | FF_DONTCARE, - _T("Arial")); - memDC.SetTextColor(m_Colors[NORMAL_TEXT_COLOR]); - pOldFont = memDC.SelectObject(&m_fntArial); - } - } - - memDC.SetBkMode(TRANSPARENT); - - if (!bIsBitmap) - { - CRect r(m_ScrollRect); - r.top = height; - CSize size; - if(m_szWork.GetLength()-rmcode != 0) - { - memDC.DrawText(m_szWork,m_szWork.GetLength()-rmcode,&r,DT_TOP|DT_CENTER| - DT_NOPREFIX | DT_SINGLELINE); - size = memDC.GetTextExtent((LPCTSTR)m_szWork,m_szWork.GetLength()-rmcode); - } - else - size = memDC.GetTextExtent((LPCTSTR)"W",1); - height += size.cy; - } - else - { - CRect r( m_pt.x, m_pt.y, m_pt.x + m_size.cx, m_pt.y + m_size.cy); - DrawBitmap(&memDC, &memDC2, &r); -// memDC.BitBlt( m_pt.x, m_pt.y, m_size.cx, m_size.cy, &memDC2, 0, 0, SRCCOPY ); - height += m_size.cy; - } - if (pOldMemDC2Bitmap != NULL) memDC2.SelectObject(pOldMemDC2Bitmap); - if (pOldFont != NULL) memDC.SelectObject(pOldFont); - } - memDC.SelectObject(pOldMemDCBitmap); -} - -void CCreditStatic::OnDestroy() -{ - CStatic::OnDestroy(); - - m_ArrCredit.RemoveAll(); - - if(TimerOn) - ASSERT(KillTimer(DISPLAY_TIMER_ID)); -} - -BOOL CCreditStatic::SetBkImage(UINT nIDResource) -{ - return SetBkImage( (LPCTSTR)nIDResource ); -} - -BOOL CCreditStatic::SetBkImage(LPCTSTR lpszResourceName) -{ - - // If this is not the first call then Delete GDI objects - if( m_bitmap.m_hObject != NULL ) - m_bitmap.DeleteObject(); - if( m_pal.m_hObject != NULL ) - m_pal.DeleteObject(); - - - HBITMAP hBmp = (HBITMAP)::LoadImage( AfxGetInstanceHandle(), - lpszResourceName, IMAGE_BITMAP, 0,0, LR_CREATEDIBSECTION ); - - if( hBmp == NULL ) - return FALSE; - - m_bitmap.Attach( hBmp ); - BITMAP bm; - m_bitmap.GetBitmap( &bm ); - m_cxBitmap = bm.bmWidth; - m_cyBitmap = bm.bmHeight; - - // Create a logical palette for the bitmap - DIBSECTION ds; - BITMAPINFOHEADER &bmInfo = ds.dsBmih; - m_bitmap.GetObject( sizeof(ds), &ds ); - - int nColors = bmInfo.biClrUsed ? bmInfo.biClrUsed : 1 << bmInfo.biBitCount; - - // Create a halftone palette if colors > 256. - CClientDC dc(NULL); // Desktop DC - if( nColors > 256 ) - m_pal.CreateHalftonePalette( &dc ); - else - { - // Create the palette - - RGBQUAD *pRGB = new RGBQUAD[nColors]; - CDC memDC; - memDC.CreateCompatibleDC(&dc); - - CBitmap* pOldMemDCBitmap = memDC.SelectObject( &m_bitmap ); - ::GetDIBColorTable( memDC, 0, nColors, pRGB ); - - UINT nSize = sizeof(LOGPALETTE) + (sizeof(PALETTEENTRY) * nColors); - LOGPALETTE *pLP = (LOGPALETTE *) new BYTE[nSize]; - - pLP->palVersion = 0x300; - pLP->palNumEntries = (WORD)nColors; - - for( int i=0; i < nColors; i++) - { - pLP->palPalEntry[i].peRed = pRGB[i].rgbRed; - pLP->palPalEntry[i].peGreen = pRGB[i].rgbGreen; - pLP->palPalEntry[i].peBlue = pRGB[i].rgbBlue; - pLP->palPalEntry[i].peFlags = 0; - } - - m_pal.CreatePalette( pLP ); - - memDC.SelectObject(pOldMemDCBitmap); - delete[] pLP; - delete[] pRGB; - } -// Invalidate(); - - return TRUE; -} - - -OPENMPT_NAMESPACE_END Deleted: trunk/OpenMPT/mptrack/CreditStatic.h =================================================================== --- trunk/OpenMPT/mptrack/CreditStatic.h 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/mptrack/CreditStatic.h 2015-07-16 16:14:37 UTC (rev 5415) @@ -1,124 +0,0 @@ -/* - * CreditStatic.h - * -------------- - * Purpose: Implementation of scrolling credits control. - * Notes : Ugly! :) - * Authors: Pel K. Txnder, http://www.codeguru.com/cpp/controls/staticctrl/article.php/c2903 - */ - - -#pragma once - -OPENMPT_NAMESPACE_BEGIN - -#define DISPLAY_SLOW 0 -#define DISPLAY_MEDIUM 1 -#define DISPLAY_FAST 2 - -#define BACKGROUND_COLOR 0 -#define TOP_LEVEL_TITLE_COLOR 1 -#define TOP_LEVEL_GROUP_COLOR 2 -#define GROUP_TITLE_COLOR 3 -#define NORMAL_TEXT_COLOR 4 - -#define TOP_LEVEL_TITLE_HEIGHT 0 -#define TOP_LEVEL_GROUP_HEIGHT 1 -#define GROUP_TITLE_HEIGHT 2 -#define NORMAL_TEXT_HEIGHT 3 - -#define TOP_LEVEL_TITLE 0 // '\t' -#define TOP_LEVEL_GROUP 1 // '\n' -#define GROUP_TITLE 2 // '\r' -#define DISPLAY_BITMAP 3 // '^' - -#define GRADIENT_NONE 0 -#define GRADIENT_RIGHT_DARK 1 -#define GRADIENT_RIGHT_LIGHT 2 -#define GRADIENT_LEFT_DARK 3 -#define GRADIENT_LEFT_LIGHT 4 - -class CCreditStatic : public CStatic -{ -protected: - COLORREF m_Colors[5]; - int m_TextHeights[4]; - TCHAR m_Escapes[4]; - int m_DisplaySpeed[3],m_CurrentSpeed; -// CRect m_ScrollRect; // rect of Static Text frame - CStringList m_ArrCredit; - CString m_szWork; - int m_nCounter; // work ints - POSITION m_ArrIndex; - BOOL m_bFirstTime; - BOOL m_bDrawText; - int m_nClip,m_ScrollAmount; - int m_nCurrentFontHeight; - - CBitmap m_bmpWork; // bitmap holder - CBitmap m_BmpMain; // bitmap holder - - CSize m_size; // drawing helpers - CPoint m_pt; - BOOL m_bProcessingBitmap; - CPalette m_pal; - CBitmap m_bitmap; - int m_cxBitmap, m_cyBitmap; - BOOL m_bFirstTurn; - UINT m_Gradient; - BOOL m_bTransparent; - int n_MaxWidth; - UINT_PTR TimerOn; -// Construction -public: - CCreditStatic(); - -// Attributes -public: - -// Operations -public: - BOOL StartScrolling(); - void EndScrolling(); - void SetCredits(LPCTSTR credits, TCHAR delimiter = _T('|')); - void SetCredits(UINT nID, TCHAR delimiter = _T('|')); - void SetSpeed(UINT index, int speed = 0); - void SetColor(UINT index, COLORREF col); - void SetTextHeight(UINT index, int height); - void SetEscape(UINT index, TCHAR escape); - void SetGradient(UINT value = GRADIENT_RIGHT_DARK); - BOOL SetBkImage(UINT nIDResource); - BOOL SetBkImage(LPCTSTR lpszResourceName); - void SetTransparent(BOOL bTransparent = TRUE); -// Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CCreditStatic) - //}}AFX_VIRTUAL - -// Implementation -public: - virtual ~CCreditStatic(); - - // Generated message map functions -protected: - void MoveCredit(CDC *pDC, CRect& r, CRect& r2, BOOL bCheck); - void AddBackGround(CDC* pDC, CRect& m_ScrollRect, CRect& m_ClientRect); - void DrawCredit(CDC* pDC, CRect& m_ScrollRect); - void FillGradient(CDC *pDC, CRect *m_ScrollRect, CRect *m_FillRect, COLORREF color); - void DrawBitmap(CDC* pDC, CDC* pDC2, CRect *rBitmap); - - //{{AFX_MSG(CCreditStatic) - afx_msg void OnPaint(); - afx_msg BOOL OnEraseBkgnd(CDC* pDC); - afx_msg void OnTimer(UINT_PTR nIDEvent); - afx_msg void OnDestroy(); - //}}AFX_MSG - - DECLARE_MESSAGE_MAP() -}; - -///////////////////////////////////////////////////////////////////////////// - -//{{AFX_INSERT_LOCATION}} -// Microsoft Developer Studio will insert additional declarations immediately before the previous line. - -OPENMPT_NAMESPACE_END Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/mptrack/mptrack.rc 2015-07-16 16:14:37 UTC (rev 5415) @@ -597,8 +597,6 @@ EDITTEXT IDC_EDIT3,186,12,144,60,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER CONTROL "",IDC_TABABOUT,"SysTabControl32",0x0,6,96,330,150 EDITTEXT IDC_EDITABOUT,12,114,318,126,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL - CTEXT "",IDC_CREDITS,6,96,330,150,0,WS_EX_STATICEDGE - CONTROL "&Scroll Text",IDC_CHECK_ABOUTSCROLL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,192,78,54,12 END IDD_OPTIONS_PLAYER DIALOGEX 0, 0, 286, 281 Modified: trunk/OpenMPT/mptrack/mptrack_10.vcxproj =================================================================== --- trunk/OpenMPT/mptrack/mptrack_10.vcxproj 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/mptrack/mptrack_10.vcxproj 2015-07-16 16:14:37 UTC (rev 5415) @@ -829,7 +829,6 @@ <ClCompile Include="ColorConfigDlg.cpp" /> <ClCompile Include="ColourEdit.cpp" /> <ClCompile Include="CommandSet.cpp" /> - <ClCompile Include="CreditStatic.cpp" /> <ClCompile Include="Ctrl_com.cpp" /> <ClCompile Include="Ctrl_gen.cpp" /> <ClCompile Include="Ctrl_ins.cpp" /> @@ -1064,7 +1063,6 @@ <ClInclude Include="ColorConfigDlg.h" /> <ClInclude Include="ColourEdit.h" /> <ClInclude Include="CommandSet.h" /> - <ClInclude Include="CreditStatic.h" /> <ClInclude Include="CTreeCtrl.h" /> <ClInclude Include="Ctrl_com.h" /> <ClInclude Include="Ctrl_gen.h" /> Modified: trunk/OpenMPT/mptrack/mptrack_10.vcxproj.filters =================================================================== --- trunk/OpenMPT/mptrack/mptrack_10.vcxproj.filters 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/mptrack/mptrack_10.vcxproj.filters 2015-07-16 16:14:37 UTC (rev 5415) @@ -286,9 +286,6 @@ <ClCompile Include="CommandSet.cpp"> <Filter>Source Files\mptrack</Filter> </ClCompile> - <ClCompile Include="CreditStatic.cpp"> - <Filter>Source Files\mptrack</Filter> - </ClCompile> <ClCompile Include="Ctrl_com.cpp"> <Filter>Source Files\mptrack</Filter> </ClCompile> @@ -822,9 +819,6 @@ <ClInclude Include="CommandSet.h"> <Filter>Header Files\mptrack</Filter> </ClInclude> - <ClInclude Include="CreditStatic.h"> - <Filter>Header Files\mptrack</Filter> - </ClInclude> <ClInclude Include="Ctrl_com.h"> <Filter>Header Files\mptrack</Filter> </ClInclude> Modified: trunk/OpenMPT/mptrack/resource.h =================================================================== --- trunk/OpenMPT/mptrack/resource.h 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/mptrack/resource.h 2015-07-16 16:14:37 UTC (rev 5415) @@ -713,7 +713,6 @@ #define IDC_MS_LENGTH_NEW 2216 #define IDC_TEMPO 2217 #define IDC_SPEED 2218 -#define IDC_CREDITS 2218 #define IDC_MS_LENGTH_ORIGINAL2 2219 #define IDC_RICHEDIT21 2219 #define IDC_AUTOSAVE_PATH 2220 @@ -962,7 +961,6 @@ #define IDC_STATIC_FORMAT 2482 #define IDC_TABABOUT 2483 #define IDC_EDITABOUT 2484 -#define IDC_CHECK_ABOUTSCROLL 2485 #define ID_FILE_NEWMOD 32771 #define ID_FILE_NEWXM 32772 #define ID_FILE_NEWS3M 32773 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sag...@us...> - 2015-07-25 23:43:13
|
Revision: 5415 http://sourceforge.net/p/modplug/code/5415 Author: saga-games Date: 2015-07-25 23:43:06 +0000 (Sat, 25 Jul 2015) Log Message: ----------- [Imp] XM: Detect files made with latest MilkyTracker versions and enable FT2 pan law for them. [Fix] S3M: In S3M files not made with OpenMPT or Scream Tracker, support portamento between different samples again like in old versions of ModPlug Tracker (fixes k_vision.s3m, made in IT) [Fix] Pattern tab: Since OpenMPT 1.24.03.00, jumping to a pattern through the order list would still execute the last row of the previous pattern in some cases. [Fix] Main bar: Changing the rows per beat didn't update the tempo global swing. [Mod] OpenMPT: Version is now 1.25.00.20 Modified Paths: -------------- trunk/OpenMPT/common/versionNumber.h trunk/OpenMPT/mptrack/Mainbar.cpp trunk/OpenMPT/soundlib/Load_xm.cpp trunk/OpenMPT/soundlib/Snd_fx.cpp Modified: trunk/OpenMPT/common/versionNumber.h =================================================================== --- trunk/OpenMPT/common/versionNumber.h 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/common/versionNumber.h 2015-07-25 23:43:06 UTC (rev 5415) @@ -19,7 +19,7 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 25 #define VER_MINOR 00 -#define VER_MINORMINOR 19 +#define VER_MINORMINOR 20 //Version string. For example "1.17.02.28" #define MPT_VERSION_STR VER_STRINGIZE(VER_MAJORMAJOR) "." VER_STRINGIZE(VER_MAJOR) "." VER_STRINGIZE(VER_MINOR) "." VER_STRINGIZE(VER_MINORMINOR) Modified: trunk/OpenMPT/mptrack/Mainbar.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mainbar.cpp 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/mptrack/Mainbar.cpp 2015-07-25 23:43:06 UTC (rev 5415) @@ -657,8 +657,11 @@ { pSndFile->Patterns[nPat].SetSignature(nNewRPB, pSndFile->Patterns[nPat].GetRowsPerMeasure()); TempoSwing swing = pSndFile->Patterns[nPat].GetTempoSwing(); - swing.resize(nNewRPB); - pSndFile->Patterns[nPat].SetTempoSwing(swing); + if(!swing.empty()) + { + swing.resize(nNewRPB); + pSndFile->Patterns[nPat].SetTempoSwing(swing); + } pModDoc->SetModified(); } } else @@ -666,6 +669,7 @@ if(nNewRPB <= pSndFile->m_nDefaultRowsPerMeasure) { pSndFile->m_nDefaultRowsPerBeat = nNewRPB; + if(!pSndFile->m_tempoSwing.empty()) pSndFile->m_tempoSwing.resize(nNewRPB); pModDoc->SetModified(); } } Modified: trunk/OpenMPT/soundlib/Load_xm.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_xm.cpp 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/soundlib/Load_xm.cpp 2015-07-25 23:43:06 UTC (rev 5415) @@ -314,6 +314,16 @@ madeWith = verUnknown | verConfirmed; mpt::String::Read<mpt::String::spacePadded>(madeWithTracker, fileHeader.trackerName); + + if(!memcmp(fileHeader.trackerName, "MilkyTracker ", 12)) + { + // MilkyTracker prior to version 0.90.86 doesn't set a version string. + // Luckily, starting with v0.90.86, MilkyTracker also implements the FT2 panning scheme. + if(memcmp(fileHeader.trackerName + 12, " ", 8)) + { + m_nMixLevels = mixLevelsCompatibleFT2; + } + } } mpt::String::Read<mpt::String::spacePadded>(songName, fileHeader.songName); Modified: trunk/OpenMPT/soundlib/Snd_fx.cpp =================================================================== --- trunk/OpenMPT/soundlib/Snd_fx.cpp 2015-07-14 20:30:01 UTC (rev 5414) +++ trunk/OpenMPT/soundlib/Snd_fx.cpp 2015-07-25 23:43:06 UTC (rev 5415) @@ -1010,6 +1010,7 @@ // Target found, or there is no target (i.e. play whole song)... m_PlayState = memory.state; m_PlayState.m_nFrameDelay = m_PlayState.m_nPatternDelay = 0; + m_PlayState.m_nTickCount = Util::MaxValueOfType(m_PlayState.m_nTickCount) - 1; m_PlayState.m_bPositionChanged = true; for(CHANNELINDEX n = 0; n < GetNumChannels(); n++) { @@ -1108,10 +1109,11 @@ pSmp = pChn->pModSample; } - // Special XM hack (also applies to MOD / S3M) + // Special XM hack (also applies to MOD / S3M, except when playing IT-style S3Ms, such as k_vision.s3m) // Test case: PortaSmpChange.mod, PortaSmpChange.s3m if((!instrumentChanged && (GetType() & (MOD_TYPE_XM | MOD_TYPE_MT2)) && pIns) - || (GetType() & (MOD_TYPE_MOD | MOD_TYPE_S3M | MOD_TYPE_PLM))) + || (GetType() & (MOD_TYPE_MOD | MOD_TYPE_PLM)) + || IsCompatibleMode(TRK_SCREAMTRACKER)) { // FT2 doesn't change the sample in this case, // but still uses the sample info from the old one (bug?) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |