From: <sag...@us...> - 2012-09-21 19:35:43
|
Revision: 1356 http://modplug.svn.sourceforge.net/modplug/?rev=1356&view=rev Author: saga-games Date: 2012-09-21 19:35:36 +0000 (Fri, 21 Sep 2012) Log Message: ----------- [New] Wave Export: Added possibility to loop a song a given number of times during export (http://bugs.openmpt.org/view.php?id=221). Modified Paths: -------------- trunk/OpenMPT/mptrack/Mod2wave.cpp trunk/OpenMPT/mptrack/Moddoc.cpp trunk/OpenMPT/mptrack/mod2wave.h trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/soundlib/Sndmix.cpp Modified: trunk/OpenMPT/mptrack/Mod2wave.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mod2wave.cpp 2012-09-20 23:44:38 UTC (rev 1355) +++ trunk/OpenMPT/mptrack/Mod2wave.cpp 2012-09-21 19:35:36 UTC (rev 1356) @@ -71,24 +71,26 @@ END_MESSAGE_MAP() -CWaveConvert::CWaveConvert(CWnd *parent, ORDERINDEX nMinOrder, ORDERINDEX nMaxOrder): - CDialog(IDD_WAVECONVERT, parent) -//----------------------------------------------------------------------------------- +CWaveConvert::CWaveConvert(CWnd *parent, ORDERINDEX minOrder, ORDERINDEX maxOrder, ORDERINDEX numOrders) : CDialog(IDD_WAVECONVERT, parent) +//----------------------------------------------------------------------------------------------------------------------------------------- { m_bGivePlugsIdleTime = false; m_bNormalize = false; m_bHighQuality = false; m_bSelectPlay = false; - if(nMinOrder != ORDERINDEX_INVALID && nMaxOrder != ORDERINDEX_INVALID) + if(minOrder != ORDERINDEX_INVALID && maxOrder != ORDERINDEX_INVALID) { // render selection - m_nMinOrder = nMinOrder; - m_nMaxOrder = nMaxOrder; + m_nMinOrder = minOrder; + m_nMaxOrder = maxOrder; m_bSelectPlay = true; } else { m_nMinOrder = m_nMaxOrder = 0; } + loopCount = 1; + m_nNumOrders = numOrders; + m_dwFileLimit = 0; m_dwSongLimit = 0; MemsetZero(WaveFormat); @@ -107,8 +109,9 @@ CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_COMBO1, m_CbnSampleRate); DDX_Control(pDX, IDC_COMBO2, m_CbnSampleFormat); - DDX_Control(pDX, IDC_EDIT3, m_EditMinOrder); - DDX_Control(pDX, IDC_EDIT4, m_EditMaxOrder); + DDX_Control(pDX, IDC_SPIN3, m_SpinMinOrder); + DDX_Control(pDX, IDC_SPIN4, m_SpinMaxOrder); + DDX_Control(pDX, IDC_SPIN5, m_SpinLoopCount); } @@ -130,9 +133,14 @@ // -! NEW_FEATURE#0024 SetDlgItemInt(IDC_EDIT3, m_nMinOrder); + m_SpinMinOrder.SetRange(0, m_nNumOrders); SetDlgItemInt(IDC_EDIT4, m_nMaxOrder); - + m_SpinMaxOrder.SetRange(0, m_nNumOrders); + SetDlgItemInt(IDC_EDIT5, loopCount, FALSE); + m_SpinLoopCount.SetRange(1, int16_max); + + for (size_t i = 0; i < CountOf(nMixingRates); i++) { UINT n = nMixingRates[i]; @@ -170,6 +178,7 @@ } } } + UpdateDialog(); return TRUE; } @@ -196,8 +205,10 @@ ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT1), (m_dwFileLimit) ? TRUE : FALSE); ::EnableWindow(::GetDlgItem(m_hWnd, IDC_EDIT2), (m_dwSongLimit) ? TRUE : FALSE); BOOL bSel = IsDlgButtonChecked(IDC_RADIO2) ? TRUE : FALSE; - m_EditMinOrder.EnableWindow(bSel); - m_EditMaxOrder.EnableWindow(bSel); + GetDlgItem(IDC_EDIT3)->EnableWindow(bSel); + GetDlgItem(IDC_EDIT4)->EnableWindow(bSel); + GetDlgItem(IDC_EDIT5)->EnableWindow(!bSel); + m_SpinLoopCount.EnableWindow(!bSel); } @@ -263,8 +274,9 @@ if (m_dwFileLimit) m_dwFileLimit = GetDlgItemInt(IDC_EDIT1, NULL, FALSE); if (m_dwSongLimit) m_dwSongLimit = GetDlgItemInt(IDC_EDIT2, NULL, FALSE); m_bSelectPlay = IsDlgButtonChecked(IDC_RADIO2) != BST_UNCHECKED; - m_nMinOrder = (ORDERINDEX)GetDlgItemInt(IDC_EDIT3, NULL, FALSE); - m_nMaxOrder = (ORDERINDEX)GetDlgItemInt(IDC_EDIT4, NULL, FALSE); + m_nMinOrder = static_cast<ORDERINDEX>(GetDlgItemInt(IDC_EDIT3, NULL, FALSE)); + m_nMaxOrder = static_cast<ORDERINDEX>(GetDlgItemInt(IDC_EDIT4, NULL, FALSE)); + loopCount = static_cast<uint16>(GetDlgItemInt(IDC_EDIT5, NULL, FALSE)); if (m_nMaxOrder < m_nMinOrder) m_bSelectPlay = false; //m_bHighQuality = IsDlgButtonChecked(IDC_CHECK3) != BST_UNCHECKED; //rewbs.resamplerConf - we don't want this anymore. m_bNormalize = IsDlgButtonChecked(IDC_CHECK5) != BST_UNCHECKED; @@ -638,7 +650,6 @@ SetPriorityClass(GetCurrentProcess(), NORMAL_PRIORITY_CLASS); int oldVol = m_pSndFile->GetMasterVolume(); - int nOldRepeat = m_pSndFile->GetRepeatCount(); CSoundFile::gdwSoundSetup |= SNDMIX_DIRECTTODISK; CSoundFile::gdwMixingFreq = m_pWaveFormat->nSamplesPerSec; CSoundFile::gnBitsPerSample = m_pWaveFormat->wBitsPerSample; @@ -657,9 +668,9 @@ { m_bNormalize = false; } + m_pSndFile->ResetChannels(); CSoundFile::InitPlayer(TRUE); - m_pSndFile->SetRepeatCount(0); if ((!m_dwFileLimit) || (m_dwFileLimit > 2047*1024)) m_dwFileLimit = 2047*1024; // 2GB m_dwFileLimit <<= 10; // File Header @@ -692,7 +703,7 @@ // calculate maximum samples ULONGLONG max = ullMaxSamples; - ULONGLONG l = ((ULONGLONG)m_pSndFile->GetSongTime()) * m_pWaveFormat->nSamplesPerSec; + ULONGLONG l = ((ULONGLONG)m_pSndFile->GetSongTime()) * m_pWaveFormat->nSamplesPerSec * (ULONGLONG)Util::Max(1, 1 + m_pSndFile->GetRepeatCount()); if (m_nMaxPatterns > 0) { DWORD dwOrds = m_pSndFile->Order.GetLengthFirstEmpty(); @@ -827,7 +838,9 @@ break; } } + CMainFrame::GetMainFrame()->StopRenderer(m_pSndFile); //rewbs.VSTTimeInfo + if (m_bNormalize) { DWORD dwLength = datahdr.length; @@ -901,7 +914,6 @@ fwrite(&datahdr, sizeof(datahdr), 1, f); fclose(f); CSoundFile::gdwSoundSetup &= ~SNDMIX_DIRECTTODISK; - m_pSndFile->SetRepeatCount(nOldRepeat); m_pSndFile->m_nMaxOrderPosition = 0; if (m_bNormalize) { @@ -1030,7 +1042,7 @@ wdh.id_data = IFFID_data; wdh.length = 0; data_ofs = 0; - if (bSaveWave) + if(bSaveWave) { fwrite(&wfh, 1, sizeof(wfh), f); chunk.id_data = IFFID_fmt; Modified: trunk/OpenMPT/mptrack/Moddoc.cpp =================================================================== --- trunk/OpenMPT/mptrack/Moddoc.cpp 2012-09-20 23:44:38 UTC (rev 1355) +++ trunk/OpenMPT/mptrack/Moddoc.cpp 2012-09-21 19:35:36 UTC (rev 1356) @@ -1532,7 +1532,7 @@ _splitpath(GetPathName(), NULL, NULL, fname, NULL); strcat_s(fname, CountOf(fname), ".wav"); - CWaveConvert wsdlg(pMainFrm, nMinOrder, nMaxOrder); + CWaveConvert wsdlg(pMainFrm, nMinOrder, nMaxOrder, m_SndFile.Order.GetLengthTailTrimmed() - 1); if (wsdlg.DoModal() != IDOK) return; FileDlgResult files = CTrackApp::ShowOpenSaveFileDialog(false, "wav", fname, @@ -1610,6 +1610,7 @@ UINT pos = m_SndFile.GetCurrentPos(); pMainFrm->PauseMod(); + int oldRepeat = m_SndFile.GetRepeatCount(); for(int i = 0 ; i < nRenderPasses ; i++) { @@ -1675,12 +1676,16 @@ m_SndFile.visitedSongRows.Initialize(true); m_SndFile.SetCurrentPos(0); m_SndFile.m_SongFlags.reset(SONG_PATTERNLOOP); - if (wsdlg.m_bSelectPlay) + if(wsdlg.m_bSelectPlay) { m_SndFile.SetCurrentOrder(wsdlg.m_nMinOrder); m_SndFile.GetLength(eAdjust, wsdlg.m_nMinOrder, 0); // adjust playback variables / visited rows vector m_SndFile.m_nCurrentOrder = wsdlg.m_nMinOrder; m_SndFile.m_nMaxOrderPosition = wsdlg.m_nMaxOrder + 1; + m_SndFile.SetRepeatCount(0); + } else + { + m_SndFile.SetRepeatCount(Util::Max(0, wsdlg.loopCount - 1)); } if(dwcdlg.DoModal() != IDOK) break; } @@ -1711,6 +1716,7 @@ } } + m_SndFile.SetRepeatCount(oldRepeat); m_SndFile.SetCurrentPos(pos); CMainFrame::UpdateAudioParameters(TRUE); } Modified: trunk/OpenMPT/mptrack/mod2wave.h =================================================================== --- trunk/OpenMPT/mptrack/mod2wave.h 2012-09-20 23:44:38 UTC (rev 1355) +++ trunk/OpenMPT/mptrack/mod2wave.h 2012-09-21 19:35:36 UTC (rev 1356) @@ -24,9 +24,11 @@ ULONGLONG m_dwFileLimit; DWORD m_dwSongLimit; bool m_bSelectPlay, m_bNormalize, m_bHighQuality, m_bGivePlugsIdleTime; - ORDERINDEX m_nMinOrder, m_nMaxOrder; + ORDERINDEX m_nMinOrder, m_nMaxOrder, m_nNumOrders; + int loopCount; + CComboBox m_CbnSampleRate, m_CbnSampleFormat; - CEdit m_EditMinOrder, m_EditMaxOrder; + CSpinButtonCtrl m_SpinLoopCount, m_SpinMinOrder, m_SpinMaxOrder; // -> CODE#0024 // -> DESC="wav export update" @@ -35,7 +37,7 @@ bool m_bInstrumentMode; // Render by instrument public: - CWaveConvert(CWnd *parent, ORDERINDEX nMinOrder = ORDERINDEX_INVALID, ORDERINDEX nMaxOrder = ORDERINDEX_INVALID); + CWaveConvert(CWnd *parent, ORDERINDEX minOrder, ORDERINDEX maxOrder, ORDERINDEX numOrders); public: void UpdateDialog(); Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2012-09-20 23:44:38 UTC (rev 1355) +++ trunk/OpenMPT/mptrack/mptrack.rc 2012-09-21 19:35:36 UTC (rev 1356) @@ -427,35 +427,40 @@ PUSHBUTTON "Default Settings",IDC_BUTTON_DEFAULT_RESAMPLING,186,180,66,12 END -IDD_WAVECONVERT DIALOGEX 0, 0, 262, 221 +IDD_WAVECONVERT DIALOGEX 0, 0, 262, 226 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "Wave Convert" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN DEFPUSHBUTTON "OK",IDOK,204,12,50,14 PUSHBUTTON "Cancel",IDCANCEL,204,30,50,14 - GROUPBOX "Render",IDC_STATIC,6,6,192,114 COMBOBOX IDC_COMBO1,18,18,54,82,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_COMBO2,78,18,73,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "Change Player &Options",IDC_PLAYEROPTIONS,18,36,81,14,BS_CENTER + CONTROL "&High quality resampling",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,102,36,84,10 + CONTROL "&Channel mode (one file per channel)",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,54,168,12 + CONTROL "&Instrument mode (one file per instrument)",IDC_CHECK6, + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,66,168,12 CONTROL "&Normalize Output (experimental)",IDC_CHECK5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,84,168,12 - CONTROL "&High quality resampling",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | NOT WS_VISIBLE | WS_TABSTOP,112,36,84,10 CONTROL "Slow &render (for Kontakt+DFD)",IDC_GIVEPLUGSIDLETIME, "Button",BS_AUTOCHECKBOX | BS_LEFT | BS_MULTILINE | WS_TABSTOP,18,97,168,12 - GROUPBOX "Limit",IDC_STATIC,6,126,192,90 CONTROL "Limit file &size to: (KBytes)",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,138,111,11 EDITTEXT IDC_EDIT1,138,138,50,12,ES_AUTOHSCROLL CONTROL "Limit song &length to: (seconds)",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,158,111,10 EDITTEXT IDC_EDIT2,138,157,50,12,ES_AUTOHSCROLL LTEXT "Play:",IDC_STATIC,18,174,37,8 - CONTROL "&Entire song",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON,18,186,104,10 - CONTROL "From &position",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,18,199,58,10 - EDITTEXT IDC_EDIT3,78,198,24,12,ES_AUTOHSCROLL | ES_NUMBER - CTEXT "to",IDC_STATIC,105,200,8,8 - EDITTEXT IDC_EDIT4,117,198,24,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "&Channel mode (one file per channel)",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,54,168,12 - CONTROL "&Instrument mode (one file per instrument)",IDC_CHECK6, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,66,168,12 + CONTROL "&Entire song",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON | BS_VCENTER,18,186,54,12 + CONTROL "From &position",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON | BS_VCENTER,18,204,58,12 + EDITTEXT IDC_EDIT5,78,186,36,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "",IDC_SPIN5,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,102,192,11,11 + LTEXT "times",IDC_STATIC,121,186,71,12,SS_CENTERIMAGE + EDITTEXT IDC_EDIT3,78,204,36,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "",IDC_SPIN3,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,102,210,11,11 + CTEXT "to",IDC_STATIC,120,204,8,12,SS_CENTERIMAGE + EDITTEXT IDC_EDIT4,132,204,36,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "",IDC_SPIN4,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,156,210,11,11 + GROUPBOX "Render",IDC_STATIC,6,6,192,114 + GROUPBOX "Limit",IDC_STATIC,6,126,192,96 END IDD_PROGRESS DIALOG 0, 0, 186, 55 @@ -690,12 +695,12 @@ EDITTEXT IDC_EDIT_SAMPLE,90,6,35,12,ES_AUTOHSCROLL | ES_NUMBER CONTROL "Spin6",IDC_SPIN_SAMPLE,"msctls_updown32",UDS_WRAP | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,118,4,11,14 COMBOBOX IDC_COMBO_ZOOM,131,6,41,89,CBS_DROPDOWNLIST | WS_VSCROLL - EDITTEXT IDC_EDIT7,57,30,36,12,ES_NUMBER + EDITTEXT IDC_EDIT7,57,30,36,12,ES_AUTOHSCROLL | ES_NUMBER CONTROL "Spin1",IDC_SPIN7,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,87,29,11,11 - EDITTEXT IDC_EDIT8,57,43,36,12,ES_NUMBER + EDITTEXT IDC_EDIT8,57,43,36,12,ES_AUTOHSCROLL | ES_NUMBER CONTROL "Spin1",IDC_SPIN8,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,87,42,11,11 CONTROL "Set Pan",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | BS_FLAT | WS_TABSTOP,9,58,42,10 - EDITTEXT IDC_EDIT9,57,56,36,12,ES_NUMBER + EDITTEXT IDC_EDIT9,57,56,36,12,ES_AUTOHSCROLL | ES_NUMBER CONTROL "Spin1",IDC_SPIN9,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,87,56,11,11 EDITTEXT IDC_EDIT5,48,70,45,12,ES_AUTOHSCROLL CONTROL "Spin1",IDC_SPIN5,"msctls_updown32",UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,87,69,11,11 @@ -713,11 +718,11 @@ EDITTEXT IDC_EDIT4,212,83,45,12,ES_AUTOHSCROLL | ES_NUMBER CONTROL "Spin1",IDC_SPIN4,"msctls_updown32",UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,253,83,11,11 COMBOBOX IDC_COMBO3,275,59,47,70,CBS_DROPDOWNLIST | WS_TABSTOP - EDITTEXT IDC_EDIT15,327,59,32,12,ES_NUMBER + EDITTEXT IDC_EDIT15,327,59,32,12,ES_AUTOHSCROLL | ES_NUMBER CONTROL "Depth",IDC_SPIN12,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,353,59,11,11 - EDITTEXT IDC_EDIT14,275,83,38,12,ES_NUMBER + EDITTEXT IDC_EDIT14,275,83,38,12,ES_AUTOHSCROLL | ES_NUMBER CONTROL "Sweep",IDC_SPIN11,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,305,84,11,11 - EDITTEXT IDC_EDIT16,321,83,38,12,ES_NUMBER + EDITTEXT IDC_EDIT16,321,83,38,12,ES_AUTOHSCROLL | ES_NUMBER CONTROL "Rate",IDC_SPIN13,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,353,83,11,11 CONTROL "Time stretching",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | BS_LEFTTEXT | BS_FLAT | NOT WS_VISIBLE | WS_TABSTOP,446,36,68,11 COMBOBOX IDC_COMBO4,400,35,39,61,CBS_DROPDOWNLIST | NOT WS_VISIBLE | WS_VSCROLL | WS_GROUP | WS_TABSTOP @@ -817,11 +822,11 @@ CTEXT "MIDI Bank",IDC_STATIC,245,152,72,12,SS_CENTERIMAGE,WS_EX_STATICEDGE EDITTEXT IDC_EDIT11,321,152,37,12,ES_AUTOHSCROLL CONTROL "",IDC_SPIN11,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS,351,153,8,11 - LTEXT "P. Bend Range:",IDC_STATIC,366,101,54,8,SS_CENTERIMAGE + CTEXT "P. Bend Range",IDC_STATIC,366,99,52,12,SS_CENTERIMAGE,WS_EX_STATICEDGE EDITTEXT IDC_PITCHWHEELDEPTH,420,99,36,12,ES_AUTOHSCROLL CONTROL "",IDC_SPIN2,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_NOTHOUSANDS | WS_TABSTOP,444,102,11,11 - LTEXT "Volume Command Handling:",IDC_STATIC,366,114,90,8,SS_CENTERIMAGE - COMBOBOX IDC_PLUGIN_VOLUMESTYLE,366,126,90,53,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + CTEXT "Volume Command Handling",IDC_STATIC,366,116,90,10,SS_CENTERIMAGE,WS_EX_STATICEDGE + COMBOBOX IDC_PLUGIN_VOLUMESTYLE,366,128,90,53,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP CONTROL "Volume commands with note are Velocities",IDC_PLUGIN_VELOCITYSTYLE, "Button",BS_AUTOCHECKBOX | BS_VCENTER | BS_MULTILINE | BS_FLAT | WS_TABSTOP,366,141,90,24 COMBOBOX IDC_COMBOTUNING,368,38,88,48,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP @@ -1601,7 +1606,7 @@ IDD_WAVECONVERT, DIALOG BEGIN RIGHTMARGIN, 211 - BOTTOMMARGIN, 218 + BOTTOMMARGIN, 223 END IDD_OPTIONS_KEYBOARD, DIALOG Modified: trunk/OpenMPT/soundlib/Sndmix.cpp =================================================================== --- trunk/OpenMPT/soundlib/Sndmix.cpp 2012-09-20 23:44:38 UTC (rev 1355) +++ trunk/OpenMPT/soundlib/Sndmix.cpp 2012-09-21 19:35:36 UTC (rev 1356) @@ -766,7 +766,7 @@ } //Handle Repeat position - if (m_nRepeatCount > 0) m_nRepeatCount--; + //if (m_nRepeatCount > 0) m_nRepeatCount--; m_nCurrentOrder = nRestartPosOverride; m_SongFlags.reset(SONG_BREAKTOROW); //If restart pos points to +++, move along @@ -818,7 +818,7 @@ if(m_nRepeatCount) { // repeat count == -1 means repeat infinitely. - if (m_nRepeatCount > 0) + if(m_nRepeatCount > 0) { m_nRepeatCount--; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |