From: <sag...@us...> - 2015-05-25 16:47:46
|
Revision: 5179 http://sourceforge.net/p/modplug/code/5179 Author: saga-games Date: 2015-05-25 16:47:39 +0000 (Mon, 25 May 2015) Log Message: ----------- [New] General tab: Can now set song artist and song-specific resampling mode [Reg] General tab: Remove button leading to mixer settings. This was mostly useful for quickly changing the resampling mode, which can now be done directly on the general tab. [New] Hidden setting: Misc.DefaultArtist sets the default artist (will be editable in GUI soon) [Mod] OpenMPT: Version is now 1.25.00.08 Modified Paths: -------------- trunk/OpenMPT/common/versionNumber.h trunk/OpenMPT/mptrack/Ctrl_gen.cpp trunk/OpenMPT/mptrack/Ctrl_gen.h trunk/OpenMPT/mptrack/MPTHacks.cpp trunk/OpenMPT/mptrack/ModConvert.cpp trunk/OpenMPT/mptrack/ModConvert.h trunk/OpenMPT/mptrack/Moddoc.cpp 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 trunk/OpenMPT/soundlib/Load_it.cpp trunk/OpenMPT/soundlib/Sndfile.h Modified: trunk/OpenMPT/common/versionNumber.h =================================================================== --- trunk/OpenMPT/common/versionNumber.h 2015-05-25 16:18:21 UTC (rev 5178) +++ trunk/OpenMPT/common/versionNumber.h 2015-05-25 16:47:39 UTC (rev 5179) @@ -19,7 +19,7 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 25 #define VER_MINOR 00 -#define VER_MINORMINOR 07 +#define VER_MINORMINOR 08 //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/Ctrl_gen.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_gen.cpp 2015-05-25 16:18:21 UTC (rev 5178) +++ trunk/OpenMPT/mptrack/Ctrl_gen.cpp 2015-05-25 16:47:39 UTC (rev 5179) @@ -29,10 +29,9 @@ ON_WM_VSCROLL() ON_COMMAND(IDC_BUTTON1, OnTapTempo) ON_COMMAND(IDC_BUTTON_MODTYPE, OnSongProperties) - ON_COMMAND(IDC_EDIT_MODTYPE, OnSongProperties) - ON_COMMAND(IDC_BUTTON_PLAYERPROPS, OnPlayerProperties) ON_COMMAND(IDC_CHECK_LOOPSONG, OnLoopSongChanged) ON_EN_CHANGE(IDC_EDIT_SONGTITLE, OnTitleChanged) + ON_EN_CHANGE(IDC_EDIT_ARTIST, OnArtistChanged) ON_EN_CHANGE(IDC_EDIT_TEMPO, OnTempoChanged) ON_EN_CHANGE(IDC_EDIT_SPEED, OnSpeedChanged) ON_EN_CHANGE(IDC_EDIT_GLOBALVOL, OnGlobalVolChanged) @@ -41,6 +40,7 @@ ON_EN_CHANGE(IDC_EDIT_SAMPLEPA, OnSamplePAChanged) ON_MESSAGE(WM_MOD_UPDATEPOSITION, OnUpdatePosition) ON_EN_SETFOCUS(IDC_EDIT_SONGTITLE, OnEnSetfocusEditSongtitle) + ON_CBN_SELCHANGE(IDC_COMBO1, OnResamplingChanged) //}}AFX_MSG_MAP END_MESSAGE_MAP() @@ -50,6 +50,7 @@ CModControlDlg::DoDataExchange(pDX); //{{AFX_DATA_MAP(CCtrlGeneral) DDX_Control(pDX, IDC_EDIT_SONGTITLE, m_EditTitle); + DDX_Control(pDX, IDC_EDIT_ARTIST, m_EditArtist); DDX_Control(pDX, IDC_EDIT_TEMPO, m_EditTempo); DDX_Control(pDX, IDC_SPIN_TEMPO, m_SpinTempo); DDX_Control(pDX, IDC_EDIT_SPEED, m_EditSpeed); @@ -69,9 +70,11 @@ DDX_Control(pDX, IDC_SLIDER_GLOBALVOL, m_SliderGlobalVol); DDX_Control(pDX, IDC_SLIDER_SAMPLEPREAMP, m_SliderSamplePreAmp); - DDX_Control(pDX, IDC_EDIT_MODTYPE, m_EditModType); + DDX_Control(pDX, IDC_BUTTON_MODTYPE, m_BtnModType); DDX_Control(pDX, IDC_VUMETER_LEFT, m_VuMeterLeft); DDX_Control(pDX, IDC_VUMETER_RIGHT, m_VuMeterRight); + + DDX_Control(pDX, IDC_COMBO1, m_CbnResampling); //}}AFX_DATA_MAP } @@ -208,6 +211,32 @@ if (pHint == this) return; FlagSet<HintType> hintType = hint.GetType(); const bool updateAll = hintType[HINT_MODTYPE]; + if (hintType == HINT_MPTOPTIONS || updateAll) + { + m_CbnResampling.ResetContent(); + const struct + { + const TCHAR *name; + ResamplingMode mode; + } interpolationTypes[] = + { + { _T("No Interpolation"), SRCMODE_NEAREST }, + { _T("Linear"), SRCMODE_LINEAR }, + { _T("Cubic Spline"), SRCMODE_SPLINE }, + { _T("Polyphase"), SRCMODE_POLYPHASE }, + { _T("XMMS-ModPlug"), SRCMODE_FIRFILTER }, + }; + m_CbnResampling.SetItemData(m_CbnResampling.AddString(_T("Default (") + CString(interpolationTypes[TrackerSettings::Instance().ResamplerMode].name) + _T(")")), SRCMODE_DEFAULT); + int selection = 0; + for(int i = 0; i < CountOf(interpolationTypes); i++) + { + if(m_sndFile.m_nResampling == interpolationTypes[i].mode) selection = i + 1; + m_CbnResampling.SetItemData(m_CbnResampling.AddString(interpolationTypes[i].name), interpolationTypes[i].mode); + } + + m_CbnResampling.SetCurSel(selection); + m_CbnResampling.Invalidate(FALSE); + } if (updateAll || (hint.GetCategory() == HINTCAT_SEQUENCE && hintType[HINT_MODSEQUENCE])) { // Set max valid restart position @@ -218,6 +247,7 @@ if (!m_bEditsLocked) { m_EditTitle.SetWindowText(m_sndFile.GetTitle().c_str()); + ::SetWindowTextW(m_EditArtist.m_hWnd, mpt::ToWide(m_sndFile.songArtist).c_str()); SetDlgItemInt(IDC_EDIT_TEMPO, m_sndFile.m_nDefaultTempo, FALSE); SetDlgItemInt(IDC_EDIT_SPEED, m_sndFile.m_nDefaultSpeed, FALSE); SetDlgItemInt(IDC_EDIT_GLOBALVOL, m_sndFile.m_nDefaultGlobalVolume / GetGlobalVolumeFactor(), FALSE); @@ -241,6 +271,7 @@ const BOOL bIsNotMOD = (m_sndFile.GetType() != MOD_TYPE_MOD); const BOOL bIsNotMOD_S3M = ((bIsNotMOD) && (m_sndFile.GetType() != MOD_TYPE_S3M)); const BOOL bIsNotMOD_XM = ((bIsNotMOD) && (m_sndFile.GetType() != MOD_TYPE_XM)); + m_EditArtist.EnableWindow(bIsNotMOD_S3M); m_EditTempo.EnableWindow(bIsNotMOD); m_SpinTempo.EnableWindow(bIsNotMOD); GetDlgItem(IDC_BUTTON1)->EnableWindow(bIsNotMOD); @@ -274,7 +305,7 @@ } TCHAR s[256]; wsprintf(s, _T("%s, %d channel%s"), modType, m_sndFile.GetNumChannels(), (m_sndFile.GetNumChannels() != 1) ? _T("s") : _T("")); - m_EditModType.SetWindowText(s); + m_BtnModType.SetWindowText(s); } CheckDlgButton(IDC_CHECK_LOOPSONG, (TrackerSettings::Instance().gbLoopSong) ? TRUE : FALSE); if (hintType[HINT_MPTOPTIONS]) @@ -367,6 +398,25 @@ } +void CCtrlGeneral::OnArtistChanged() +//---------------------------------- +{ + if (!m_EditArtist.m_hWnd || !m_EditArtist.GetModify()) return; + + CStringW artist; + int len = ::GetWindowTextLengthW(m_EditArtist.m_hWnd); + ::GetWindowTextW(m_EditArtist.m_hWnd, artist.GetBufferSetLength(len), len + 1); + artist.ReleaseBuffer(); + if(artist != m_sndFile.songArtist.c_str()) + { + m_EditArtist.SetModify(FALSE); + m_sndFile.songArtist = artist; + m_modDoc.SetModified(); + m_modDoc.UpdateAllViews(NULL, GeneralHint().General(), this); + } +} + + void CCtrlGeneral::OnTempoChanged() //--------------------------------- { @@ -523,15 +573,9 @@ } } -void CCtrlGeneral::OnPlayerProperties() -//------------------------------------- -{ - CMainFrame::m_nLastOptionsPage = OPTIONS_PAGE_MIXER; - CMainFrame::GetMainFrame()->OnViewOptions(); -} void CCtrlGeneral::OnSongProperties() -//---------------------------------- +//----------------------------------- { m_modDoc.SongProperties(); } @@ -569,15 +613,15 @@ switch(uId) { case IDC_SLIDER_SAMPLEPREAMP: - (displayDBValues) ? setAsDecibels(pszText, m_sndFile.m_nSamplePreAmp, m_sndFile.GetPlayConfig().getNormalSamplePreAmp()) : wsprintf(pszText, moreRecentMixModeNote); + (displayDBValues) ? setAsDecibels(pszText, m_sndFile.m_nSamplePreAmp, m_sndFile.GetPlayConfig().getNormalSamplePreAmp()) : strcpy(pszText, moreRecentMixModeNote); return TRUE; break; case IDC_SLIDER_VSTIVOL: - (displayDBValues) ? setAsDecibels(pszText, m_sndFile.m_nVSTiVolume, m_sndFile.GetPlayConfig().getNormalVSTiVol()) : wsprintf(pszText, moreRecentMixModeNote); + (displayDBValues) ? setAsDecibels(pszText, m_sndFile.m_nVSTiVolume, m_sndFile.GetPlayConfig().getNormalVSTiVol()) : strcpy(pszText, moreRecentMixModeNote); return TRUE; break; case IDC_SLIDER_GLOBALVOL: - (displayDBValues) ? setAsDecibels(pszText, m_sndFile.m_PlayState.m_nGlobalVolume, m_sndFile.GetPlayConfig().getNormalGlobalVol()) : wsprintf(pszText, moreRecentMixModeNote); + (displayDBValues) ? setAsDecibels(pszText, m_sndFile.m_PlayState.m_nGlobalVolume, m_sndFile.GetPlayConfig().getNormalGlobalVol()) : strcpy(pszText, moreRecentMixModeNote); return TRUE; break; } @@ -612,7 +656,21 @@ } +void CCtrlGeneral::OnResamplingChanged() +//-------------------------------------- +{ + int sel = m_CbnResampling.GetCurSel(); + if(sel >= 0) + { + m_sndFile.m_nResampling = static_cast<ResamplingMode>(m_CbnResampling.GetItemData(sel)); + if(m_sndFile.GetType() == MOD_TYPE_MPT) + { + m_modDoc.SetModified(); + } + } +} + //////////////////////////////////////////////////////////////////////////////// // // CVuMeter Modified: trunk/OpenMPT/mptrack/Ctrl_gen.h =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_gen.h 2015-05-25 16:18:21 UTC (rev 5178) +++ trunk/OpenMPT/mptrack/Ctrl_gen.h 2015-05-25 16:47:39 UTC (rev 5179) @@ -62,12 +62,13 @@ public: bool m_bEditsLocked; //{{AFX_DATA(CCtrlGeneral) - CEdit m_EditTitle; - CStatic m_EditModType; + CEdit m_EditTitle, m_EditArtist; CEdit m_EditTempo, m_EditSpeed, m_EditGlobalVol, m_EditRestartPos, m_EditSamplePA, m_EditVSTiVol; + CButton m_BtnModType; CSpinButtonCtrl m_SpinTempo, m_SpinSpeed, m_SpinGlobalVol, m_SpinRestartPos, m_SpinSamplePA, m_SpinVSTiVol; + CComboBox m_CbnResampling; CSliderCtrl m_SliderTempo, m_SliderSamplePreAmp, m_SliderGlobalVol, m_SliderVSTiVol; CVuMeter m_VuMeterLeft, m_VuMeterRight; @@ -88,6 +89,7 @@ afx_msg void OnVScroll(UINT, UINT, CScrollBar *); afx_msg void OnTapTempo(); afx_msg void OnTitleChanged(); + afx_msg void OnArtistChanged(); afx_msg void OnTempoChanged(); afx_msg void OnSpeedChanged(); afx_msg void OnGlobalVolChanged(); @@ -95,9 +97,9 @@ afx_msg void OnSamplePAChanged(); afx_msg void OnRestartPosChanged(); afx_msg void OnSongProperties(); - afx_msg void OnPlayerProperties(); afx_msg void OnLoopSongChanged(); afx_msg void OnEnSetfocusEditSongtitle(); + afx_msg void OnResamplingChanged(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; Modified: trunk/OpenMPT/mptrack/MPTHacks.cpp =================================================================== --- trunk/OpenMPT/mptrack/MPTHacks.cpp 2015-05-25 16:18:21 UTC (rev 5178) +++ trunk/OpenMPT/mptrack/MPTHacks.cpp 2015-05-25 16:47:39 UTC (rev 5179) @@ -469,6 +469,16 @@ } } + if((m_SndFile.GetType() & (MOD_TYPE_XM|MOD_TYPE_IT)) && !m_SndFile.songArtist.empty()) + { + AddToLog("Found artist name"); + foundHacks = true; + if(autofix) + { + m_SndFile.songArtist.clear(); + } + } + if(m_SndFile.GetMixLevels() != mixLevels_compatible && m_SndFile.GetMixLevels() != mixLevels_compatible_FT2) { AddToLog("Found incorrect mix levels (only compatible mix levels allowed)"); Modified: trunk/OpenMPT/mptrack/ModConvert.cpp =================================================================== --- trunk/OpenMPT/mptrack/ModConvert.cpp 2015-05-25 16:18:21 UTC (rev 5178) +++ trunk/OpenMPT/mptrack/ModConvert.cpp 2015-05-25 16:47:39 UTC (rev 5179) @@ -571,6 +571,13 @@ CHANGEMODTYPE_WARNING(wGlobalVolumeNotSupported); } } + + // Resampling is only saved in MPTM + if(!newTypeIsMPT && m_SndFile.m_nResampling != SRCMODE_DEFAULT) + { + CHANGEMODTYPE_WARNING(wResamplingMode); + m_SndFile.m_nResampling = SRCMODE_DEFAULT; + } // Pattern warnings CHAR s[64]; @@ -606,6 +613,7 @@ CHANGEMODTYPE_CHECK(wVolRamp, "Fasttracker 2 compatible super soft volume ramping gets lost when converting XM files to another type."); CHANGEMODTYPE_CHECK(wCompatibilityMode, "Consider enabling the \"compatible playback\" option in the song properties to increase compatiblity with other players."); CHANGEMODTYPE_CHECK(wGlobalVolumeNotSupported, "Default global volume is not supported by the new format."); + CHANGEMODTYPE_CHECK(wResamplingMode, "Song-specific resampling mode is not supported by the new format."); SetModified(); GetPatternUndo().ClearUndo(); Modified: trunk/OpenMPT/mptrack/ModConvert.h =================================================================== --- trunk/OpenMPT/mptrack/ModConvert.h 2015-05-25 16:18:21 UTC (rev 5178) +++ trunk/OpenMPT/mptrack/ModConvert.h 2015-05-25 16:47:39 UTC (rev 5179) @@ -40,6 +40,7 @@ wPitchToTempoLock, wGlobalVolumeNotSupported, wFilterVariation, + wResamplingMode, wNumWarnings }; Modified: trunk/OpenMPT/mptrack/Moddoc.cpp =================================================================== --- trunk/OpenMPT/mptrack/Moddoc.cpp 2015-05-25 16:18:21 UTC (rev 5178) +++ trunk/OpenMPT/mptrack/Moddoc.cpp 2015-05-25 16:47:39 UTC (rev 5179) @@ -772,6 +772,7 @@ } } m_SndFile.ResetPlayPos(); + m_SndFile.songArtist = TrackerSettings::Instance().defaultArtist; return TRUE; } Modified: trunk/OpenMPT/mptrack/Mptrack.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mptrack.cpp 2015-05-25 16:18:21 UTC (rev 5178) +++ trunk/OpenMPT/mptrack/Mptrack.cpp 2015-05-25 16:47:39 UTC (rev 5179) @@ -163,6 +163,8 @@ sndFile.m_dwCreatedWithVersion = MptVersion::num; sndFile.m_dwLastSavedWithVersion = 0; sndFile.madeWithTracker.clear(); + sndFile.songArtist = TrackerSettings::Instance().defaultArtist; + doc->UpdateAllViews(nullptr, UpdateHint().ModType().AsLPARAM()); } else { // Remove extension from title, so that saving the file will not suggest a filename like e.g. "example.it.it". Modified: trunk/OpenMPT/mptrack/TrackerSettings.cpp =================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.cpp 2015-05-25 16:18:21 UTC (rev 5178) +++ trunk/OpenMPT/mptrack/TrackerSettings.cpp 2015-05-25 16:47:39 UTC (rev 5179) @@ -234,6 +234,7 @@ , ComponentsKeepLoaded(conf, "Components", "KeepLoaded", ComponentManagerSettingsDefault().KeepLoaded()) // Default template , defaultTemplateFile(conf, "Paths", "DefaultTemplate", mpt::PathString()) + , defaultArtist(conf, "Misc", "DefaultArtist", mpt::ToUnicode(mpt::CharsetLocale, std::getenv("USERNAME"))) // MRU List , mruListLength(conf, "Misc", "MRUListLength", 10) // Plugins @@ -562,6 +563,11 @@ m_dwPatternSetup &= ~(0x08 | 0x02); } + if(storedVersion < MAKE_VERSION_NUMERIC(1,25,00,08)) + { + glGeneralWindowHeight += 36; + } + // Effects #ifndef NO_EQ FixupEQ(&m_EqSettings); Modified: trunk/OpenMPT/mptrack/TrackerSettings.h =================================================================== --- trunk/OpenMPT/mptrack/TrackerSettings.h 2015-05-25 16:18:21 UTC (rev 5178) +++ trunk/OpenMPT/mptrack/TrackerSettings.h 2015-05-25 16:47:39 UTC (rev 5179) @@ -547,6 +547,7 @@ // Default template Setting<mpt::PathString> defaultTemplateFile; + Setting<mpt::ustring> defaultArtist; Setting<uint32> mruListLength; std::vector<mpt::PathString> mruFiles; Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2015-05-25 16:18:21 UTC (rev 5178) +++ trunk/OpenMPT/mptrack/mptrack.rc 2015-05-25 16:47:39 UTC (rev 5179) @@ -838,44 +838,47 @@ "Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,54,168,12 END -IDD_CONTROL_GLOBALS DIALOGEX 0, 0, 374, 98 +IDD_CONTROL_GLOBALS DIALOGEX 0, 0, 440, 122 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN LTEXT "Name:",IDC_STATIC,2,5,23,8 EDITTEXT IDC_EDIT_SONGTITLE,30,3,156,12,ES_AUTOHSCROLL - CTEXT "Type EXT, ## channels",IDC_EDIT_MODTYPE,192,3,138,12,SS_NOTIFY | SS_CENTERIMAGE,WS_EX_STATICEDGE - LTEXT "Initial tempo:",IDC_STATIC,5,20,44,8 - CONTROL "",IDC_SLIDER_SONGTEMPO,"msctls_trackbar32",TBS_VERT | TBS_BOTH | TBS_NOTICKS,11,28,15,50 - EDITTEXT IDC_EDIT_TEMPO,5,78,29,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "",IDC_SPIN_TEMPO,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,27,76,11,14 - PUSHBUTTON "Tap",IDC_BUTTON1,54,24,24,12 - LTEXT "Ticks/row:",IDC_STATIC,44,40,35,8 - EDITTEXT IDC_EDIT_SPEED,44,51,30,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "Spin1",IDC_SPIN_SPEED,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,67,50,11,14 - LTEXT "Restart:",IDC_STATIC,44,68,26,8 - EDITTEXT IDC_EDIT_RESTARTPOS,44,78,30,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "Spin1",IDC_SPIN_RESTARTPOS,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,65,77,11,14 - LTEXT "Initial global vol:",IDC_STATIC,90,20,52,8 - CONTROL "",IDC_SLIDER_GLOBALVOL,"msctls_trackbar32",TBS_VERT | TBS_BOTH | TBS_NOTICKS | TBS_TOOLTIPS,105,28,15,50 - EDITTEXT IDC_EDIT_GLOBALVOL,95,78,36,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "",IDC_SPIN_GLOBALVOL,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,124,76,11,14 - LTEXT "VSTi vol:",IDC_STATIC,159,20,33,8 - CONTROL "",IDC_SLIDER_VSTIVOL,"msctls_trackbar32",TBS_VERT | TBS_BOTH | TBS_NOTICKS | TBS_TOOLTIPS,164,28,15,50 - EDITTEXT IDC_EDIT_VSTIVOL,156,78,36,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "",IDC_SPIN_VSTIVOL,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,184,76,11,14 - LTEXT "Sample vol:",IDC_STATIC,212,20,38,8 - CONTROL "Slider1",IDC_SLIDER_SAMPLEPREAMP,"msctls_trackbar32",TBS_VERT | TBS_BOTH | TBS_NOTICKS | TBS_TOOLTIPS,221,28,15,50 - EDITTEXT IDC_EDIT_SAMPLEPA,212,78,36,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "",IDC_SPIN_SAMPLEPA,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,238,75,11,14 - PUSHBUTTON "Song Properties...",IDC_BUTTON_MODTYPE,264,18,66,12 - CONTROL "Loop Song",IDC_CHECK_LOOPSONG,"Button",BS_AUTOCHECKBOX | BS_FLAT | WS_TABSTOP,263,48,67,10 - PUSHBUTTON "Player Settings...",IDC_BUTTON_PLAYERPROPS,264,60,66,12 - CTEXT "Not saved with song!",IDC_STATIC,264,73,68,17 - CONTROL "",IDC_VUMETER_LEFT,"Static",SS_BLACKRECT | SS_SUNKEN,336,1,15,91 - CONTROL "",IDC_VUMETER_RIGHT,"Static",SS_BLACKRECT | SS_SUNKEN,354,1,15,91 - GROUPBOX "",IDC_STATIC,1,14,83,82 - GROUPBOX "",IDC_STATIC,83,14,175,82 + LTEXT "Artist:",IDC_STATIC,2,20,23,8 + EDITTEXT IDC_EDIT_ARTIST,30,18,156,12,ES_AUTOHSCROLL + PUSHBUTTON "Type EXT, ## channels",IDC_BUTTON_MODTYPE,192,3,150,12 + LTEXT "Resampling:",IDC_STATIC,192,20,40,8 + COMBOBOX IDC_COMBO1,240,18,102,30,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Initial Tempo:",IDC_STATIC,5,42,44,8 + CONTROL "",IDC_SLIDER_SONGTEMPO,"msctls_trackbar32",TBS_VERT | TBS_BOTH | TBS_NOTICKS,11,50,15,50 + EDITTEXT IDC_EDIT_TEMPO,5,100,37,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "",IDC_SPIN_TEMPO,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,33,98,11,14 + PUSHBUTTON "Tap",IDC_BUTTON1,54,42,36,12 + LTEXT "Ticks/Row:",IDC_STATIC,54,90,36,8 + EDITTEXT IDC_EDIT_SPEED,54,101,36,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "Spin1",IDC_SPIN_SPEED,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,82,100,11,14 + LTEXT "Restart Position:",IDC_STATIC,102,42,60,8 + EDITTEXT IDC_EDIT_RESTARTPOS,102,54,36,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "Spin1",IDC_SPIN_RESTARTPOS,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,132,54,11,14 + CONTROL "Loop Song",IDC_CHECK_LOOPSONG,"Button",BS_AUTOCHECKBOX | BS_FLAT | WS_TABSTOP,102,90,54,10 + LTEXT "Not saved in song!",IDC_STATIC,102,102,60,12 + LTEXT "Initial global vol:",IDC_STATIC,169,42,52,8 + CONTROL "",IDC_SLIDER_GLOBALVOL,"msctls_trackbar32",TBS_VERT | TBS_BOTH | TBS_NOTICKS | TBS_TOOLTIPS,181,50,24,50 + EDITTEXT IDC_EDIT_GLOBALVOL,174,100,36,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "",IDC_SPIN_GLOBALVOL,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,203,98,11,14 + LTEXT "VSTi vol:",IDC_STATIC,238,42,33,8 + CONTROL "",IDC_SLIDER_VSTIVOL,"msctls_trackbar32",TBS_VERT | TBS_BOTH | TBS_NOTICKS | TBS_TOOLTIPS,243,50,22,50 + EDITTEXT IDC_EDIT_VSTIVOL,235,100,36,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "",IDC_SPIN_VSTIVOL,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,263,98,11,14 + LTEXT "Sample vol:",IDC_STATIC,291,42,38,8 + CONTROL "Slider1",IDC_SLIDER_SAMPLEPREAMP,"msctls_trackbar32",TBS_VERT | TBS_BOTH | TBS_NOTICKS | TBS_TOOLTIPS,300,50,19,50 + EDITTEXT IDC_EDIT_SAMPLEPA,291,100,36,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "",IDC_SPIN_SAMPLEPA,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,317,97,11,14 + CONTROL "",IDC_VUMETER_LEFT,"Static",SS_BLACKRECT | SS_SUNKEN,348,3,15,115 + CONTROL "",IDC_VUMETER_RIGHT,"Static",SS_BLACKRECT | SS_SUNKEN,366,3,15,115 + GROUPBOX "",IDC_STATIC,1,30,96,88 + GROUPBOX "",IDC_STATIC,96,30,67,88 + GROUPBOX "",IDC_STATIC,162,30,180,88 END IDD_CONTROL_COMMENTS DIALOGEX 0, 0, 435, 119 @@ -1781,7 +1784,8 @@ IDD_CONTROL_GLOBALS, DIALOG BEGIN - BOTTOMMARGIN, 94 + RIGHTMARGIN, 374 + BOTTOMMARGIN, 118 END IDD_CONTROL_COMMENTS, DIALOG Modified: trunk/OpenMPT/mptrack/resource.h =================================================================== --- trunk/OpenMPT/mptrack/resource.h 2015-05-25 16:18:21 UTC (rev 5178) +++ trunk/OpenMPT/mptrack/resource.h 2015-05-25 16:47:39 UTC (rev 5179) @@ -575,6 +575,7 @@ #define IDC_EDIT_COMMENTS 2004 #define IDC_EDIT_SONGTITLE 2005 #define IDC_SLIDER_PREAMP 2006 +#define IDC_EDIT_ARTIST 2006 #define IDC_EDIT_TEMPO 2007 #define IDC_EDIT_SPEED 2008 #define IDC_EDIT_GLOBALVOL 2009 @@ -738,7 +739,6 @@ #define IDC_FILTERMODE 2238 #define IDC_AUTOSAVE_USECUSTOMDIR 2245 #define IDC_BUTTON_MODTYPE2 2246 -#define IDC_BUTTON_PLAYERPROPS 2247 #define IDC_SLIDER_SAMPLEPREAMP3 2248 #define IDC_SLIDER_GLOBALVOL 2249 #define IDC_EDIT_VSTIVOL 2250 Modified: trunk/OpenMPT/soundlib/Load_it.cpp =================================================================== --- trunk/OpenMPT/soundlib/Load_it.cpp 2015-05-25 16:18:21 UTC (rev 5178) +++ trunk/OpenMPT/soundlib/Load_it.cpp 2015-05-25 16:47:39 UTC (rev 5179) @@ -1920,8 +1920,8 @@ // The reason is that ITs and XMs save [code][size][ins1.Value][ins2.Value]... // whereas ITP saves [code][size][ins1.Value][code][size][ins2.Value]... // too late to turn back.... -void CSoundFile::SaveExtendedInstrumentProperties(UINT nInstruments, FILE* f) const -//--------------------------------------------------------------------------------- +void CSoundFile::SaveExtendedInstrumentProperties(INSTRUMENTINDEX nInstruments, FILE *f) const +//-------------------------------------------------------------------------------------------- { uint32 code = MAGIC4BE('M','P','T','X'); // write extension header code mpt::IO::WriteIntLE<uint32>(f, code); @@ -1987,8 +1987,8 @@ return; } -void CSoundFile::WriteInstrumentPropertyForAllInstruments(uint32 code, int16 size, FILE* f, UINT nInstruments) const -//------------------------------------------------------------------------------------------------------------------ +void CSoundFile::WriteInstrumentPropertyForAllInstruments(uint32 code, int16 size, FILE *f, INSTRUMENTINDEX nInstruments) const +//----------------------------------------------------------------------------------------------------------------------------- { mpt::IO::WriteIntLE<uint32>(f, code); //write code mpt::IO::WriteIntLE<int16>(f, size); //write size @@ -2080,9 +2080,9 @@ WRITEMODULAR(MAGIC4BE('R','P','.','.'), m_nRestartPos); } - if(m_nResampling != SRCMODE_DEFAULT) + if(m_nResampling != SRCMODE_DEFAULT && GetType() == MOD_TYPE_MPT) { - WRITEMODULAR(MAGIC4LE('R','S','M','P'), m_nResampling); + WRITEMODULAR(MAGIC4LE('R','S','M','P'), static_cast<uint32>(m_nResampling)); } // Sample cues @@ -2106,7 +2106,7 @@ } } - //Additional flags for XM/IT/MPTM + // Additional flags for XM/IT/MPTM if(m_ModFlags) { WRITEMODULAR(MAGIC4BE('M','S','F','.'), m_ModFlags.GetRaw()); @@ -2248,7 +2248,7 @@ case MAGIC4BE('R','P','.','.'): if(modtype != MOD_TYPE_XM) ReadField(chunk, size, m_nRestartPos); break; case MAGIC4BE('M','S','F','.'): ReadFieldFlagSet(chunk, size, m_ModFlags); break; case MAGIC4LE('R','S','M','P'): - ReadField(chunk, size, m_nResampling); + ReadFieldCast(chunk, size, m_nResampling); if(!IsKnownResamplingMode(m_nResampling)) m_nResampling = SRCMODE_DEFAULT; break; #ifdef MODPLUG_TRACKER Modified: trunk/OpenMPT/soundlib/Sndfile.h =================================================================== --- trunk/OpenMPT/soundlib/Sndfile.h 2015-05-25 16:18:21 UTC (rev 5178) +++ trunk/OpenMPT/soundlib/Sndfile.h 2015-05-25 16:47:39 UTC (rev 5179) @@ -434,7 +434,7 @@ // Periods in MPT are 4 times as fine as Amiga periods because of extra fine frequency slides (introduced in the S3M format). int32 m_nMinPeriod, m_nMaxPeriod; - uint32 m_nResampling; // Resampling mode (if overriding the globally set resampling) + ResamplingMode m_nResampling; // Resampling mode (if overriding the globally set resampling) int32 m_nRepeatCount; // -1 means repeat infinitely. ORDERINDEX m_nMaxOrderPosition; ModChannelSettings ChnSettings[MAX_BASECHANNELS]; // Initial channels settings @@ -719,8 +719,8 @@ bool SaveMod(const mpt::PathString &filename) const; bool SaveIT(const mpt::PathString &filename, bool compatibilityExport = false); UINT SaveMixPlugins(FILE *f=NULL, bool bUpdate=true); - void WriteInstrumentPropertyForAllInstruments(uint32 code, int16 size, FILE* f, UINT nInstruments) const; - void SaveExtendedInstrumentProperties(UINT nInstruments, FILE* f) const; + void WriteInstrumentPropertyForAllInstruments(uint32 code, int16 size, FILE* f, INSTRUMENTINDEX nInstruments) const; + void SaveExtendedInstrumentProperties(INSTRUMENTINDEX nInstruments, FILE* f) const; void SaveExtendedSongProperties(FILE* f) const; size_t SaveModularInstrumentData(FILE *f, const ModInstrument *pIns) const; #endif // MODPLUG_NO_FILESAVE This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |