From: <sag...@us...> - 2013-03-14 00:42:10
|
Revision: 1570 http://sourceforge.net/p/modplug/code/1570 Author: saga-games Date: 2013-03-14 00:42:01 +0000 (Thu, 14 Mar 2013) Log Message: ----------- [Imp] Pause/Stop playback keyboard shortcuts also work when no module is loaded (to stop preview in treeview) [Fix] Treeview: Sample preview using Space bar was accidentally broken. Modified Paths: -------------- trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/View_tre.cpp trunk/OpenMPT/mptrack/View_tre.h trunk/OpenMPT/soundlib/Fastmix.cpp Modified: trunk/OpenMPT/mptrack/MainFrm.cpp =================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp 2013-03-13 01:35:19 UTC (rev 1569) +++ trunk/OpenMPT/mptrack/MainFrm.cpp 2013-03-14 00:42:01 UTC (rev 1570) @@ -2416,6 +2416,8 @@ { CModDoc* pModDoc = GetActiveDoc(); if (pModDoc) return GetActiveDoc()->OnCustomKeyMsg(wParam, lParam); + else if(wParam == kcPlayPauseSong || wParam == kcStopSong) + StopPreview(); break; } Modified: trunk/OpenMPT/mptrack/View_tre.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_tre.cpp 2013-03-13 01:35:19 UTC (rev 1569) +++ trunk/OpenMPT/mptrack/View_tre.cpp 2013-03-14 00:42:01 UTC (rev 1570) @@ -1236,7 +1236,7 @@ default: if (modItemType & 0x8000) { - PlayItem(hItem); + PlayItem(hItem, NOTE_MIDDLEC); return TRUE; } } @@ -1245,8 +1245,8 @@ } -BOOL CModTree::PlayItem(HTREEITEM hItem, UINT nParam) -//--------------------------------------------------- +BOOL CModTree::PlayItem(HTREEITEM hItem, ModCommand::NOTE nParam) +//--------------------------------------------------------------- { if (hItem) { @@ -1260,7 +1260,6 @@ case MODITEM_SAMPLE: if (pModDoc) { - if (!nParam) nParam = NOTE_MIDDLEC; if (nParam & 0x80) { pModDoc->NoteOff(nParam & 0x7F, true); @@ -1275,7 +1274,6 @@ case MODITEM_INSTRUMENT: if (pModDoc) { - if (!nParam) nParam = NOTE_MIDDLEC; if (nParam & 0x80) { pModDoc->NoteOff(nParam, true); @@ -1314,10 +1312,10 @@ { if (modItemType == MODITEM_INSLIB_INSTRUMENT) { - pMainFrm->PlaySoundFile(&m_SongFile, static_cast<INSTRUMENTINDEX>(n), SAMPLEINDEX_INVALID, static_cast<ModCommand::NOTE>(nParam)); + pMainFrm->PlaySoundFile(&m_SongFile, static_cast<INSTRUMENTINDEX>(n), SAMPLEINDEX_INVALID, nParam); } else { - pMainFrm->PlaySoundFile(&m_SongFile, INSTRUMENTINDEX_INVALID, static_cast<SAMPLEINDEX>(n), static_cast<ModCommand::NOTE>(nParam)); + pMainFrm->PlaySoundFile(&m_SongFile, INSTRUMENTINDEX_INVALID, static_cast<SAMPLEINDEX>(n), nParam); } } } else @@ -1326,7 +1324,7 @@ CHAR szFullPath[_MAX_PATH] = ""; InsLibGetFullPath(hItem, szFullPath); CMainFrame *pMainFrm = CMainFrame::GetMainFrame(); - if (pMainFrm) pMainFrm->PlaySoundFile(szFullPath, static_cast<ModCommand::NOTE>(nParam)); + if (pMainFrm) pMainFrm->PlaySoundFile(szFullPath, nParam); } break; @@ -1360,7 +1358,6 @@ // Melodic if (modItem & 0x40000000) { - if ((!nParam) || (nParam > NOTE_MAX)) nParam = NOTE_MIDDLEC; rgn = pDLSBank->GetRegionFromKey(instr, nParam - NOTE_MIN); } pMainFrm->PlayDLSInstrument(bank, instr, rgn, static_cast<ModCommand::NOTE>(nParam)); @@ -2891,7 +2888,7 @@ void CModTree::OnPlayTreeItem() //----------------------------- { - PlayItem(GetSelectedItem()); + PlayItem(GetSelectedItem(), NOTE_MIDDLEC); } @@ -3403,7 +3400,7 @@ if (wParam>=kcTreeViewStartNotes && wParam<=kcTreeViewEndNotes) { - PlayItem(GetSelectedItem(), wParam - kcTreeViewStartNotes + 1 + pMainFrm->GetBaseOctave() * 12); + PlayItem(GetSelectedItem(), static_cast<ModCommand::NOTE>(wParam - kcTreeViewStartNotes + 1 + pMainFrm->GetBaseOctave() * 12)); return wParam; } if (wParam>=kcTreeViewStartNoteStops && wParam<=kcTreeViewEndNoteStops) Modified: trunk/OpenMPT/mptrack/View_tre.h =================================================================== --- trunk/OpenMPT/mptrack/View_tre.h 2013-03-13 01:35:19 UTC (rev 1569) +++ trunk/OpenMPT/mptrack/View_tre.h 2013-03-14 00:42:01 UTC (rev 1570) @@ -151,7 +151,7 @@ BOOL SetMidiPercussion(UINT nPerc, LPCTSTR lpszFileName); BOOL ExecuteItem(HTREEITEM hItem); BOOL DeleteTreeItem(HTREEITEM hItem); - BOOL PlayItem(HTREEITEM hItem, UINT nParam=0); + BOOL PlayItem(HTREEITEM hItem, ModCommand::NOTE nParam); BOOL OpenTreeItem(HTREEITEM hItem); BOOL OpenMidiInstrument(DWORD dwItem); BOOL InstrumentLibraryChDir(LPCSTR lpszDir); Modified: trunk/OpenMPT/soundlib/Fastmix.cpp =================================================================== --- trunk/OpenMPT/soundlib/Fastmix.cpp 2013-03-13 01:35:19 UTC (rev 1569) +++ trunk/OpenMPT/soundlib/Fastmix.cpp 2013-03-14 00:42:01 UTC (rev 1570) @@ -14,8 +14,12 @@ #include "stdafx.h" #include "sndfile.h" -#ifdef _DEBUG -#include <math.h> + +#if defined(_MSC_VER) +#elif defined(__GNUC__) +#define __forceinline __attribute__((always_inline)) +#else +#define __forceinline inline #endif #include "WindowedFIR.h" @@ -340,8 +344,8 @@ #define ClipFilter(x) Clamp(x, 2.0f * (float)int16_min, 2.0f * (float)int16_max) // Resonant filter for Mono samples -static inline void ProcessMonoFilter(int &vol, ModChannel *pChn) -//-------------------------------------------------------------- +static __forceinline void ProcessMonoFilter(int &vol, ModChannel *pChn) +//--------------------------------------------------------------------- { float fy1 = pChn->nFilter_Y1; float fy2 = pChn->nFilter_Y2; @@ -357,11 +361,10 @@ // Resonant filter for Stereo samples -static inline void ProcessStereoFilter(int &vol_l, int &vol_r, ModChannel *pChn) -//------------------------------------------------------------------------------ +static __forceinline void ProcessStereoFilter(int &vol_l, int &vol_r, ModChannel *pChn) +//------------------------------------------------------------------------------------- { // Left channel - float fy1 = pChn->nFilter_Y1; float fy2 = pChn->nFilter_Y2; @@ -374,7 +377,6 @@ pChn->nFilter_Y2 = fy2; // Right channel - fy1 = pChn->nFilter_Y3; fy2 = pChn->nFilter_Y4; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |