From: <sag...@us...> - 2012-11-23 17:22:01
|
Revision: 1438 http://modplug.svn.sourceforge.net/modplug/?rev=1438&view=rev Author: saga-games Date: 2012-11-23 17:21:54 +0000 (Fri, 23 Nov 2012) Log Message: ----------- [Imp] Sample Editor: Added shortcuts for 8-bit/mono conversion. [Mod] Updated DE_jojo.mkb Modified Paths: -------------- trunk/OpenMPT/mptrack/CommandSet.cpp trunk/OpenMPT/mptrack/CommandSet.h trunk/OpenMPT/mptrack/View_smp.cpp trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb Modified: trunk/OpenMPT/mptrack/CommandSet.cpp =================================================================== --- trunk/OpenMPT/mptrack/CommandSet.cpp 2012-11-21 22:41:54 UTC (rev 1437) +++ trunk/OpenMPT/mptrack/CommandSet.cpp 2012-11-23 17:21:54 UTC (rev 1438) @@ -639,6 +639,12 @@ DefineKeyCommand(kcChannelSplitRecordSelect, 1884, _T("Channel Split Record Select")); DefineKeyCommand(kcDataEntryUp, 1885, _T("Data Entry +1")); DefineKeyCommand(kcDataEntryDown, 1886, _T("Data Entry -1")); + DefineKeyCommand(kcSample8Bit, 1887, _T("Conver to 8-bit")); + DefineKeyCommand(kcSampleMonoMix, 1888, _T("Convert to Mono (Mix)")); + DefineKeyCommand(kcSampleMonoLeft, 1889, _T("Convert to Mono (Left Channel)")); + DefineKeyCommand(kcSampleMonoRight, 1890, _T("Convert to Mono (Right Channel)")); + DefineKeyCommand(kcSampleMonoSplit, 1891, _T("Convert to Mono (Split Sample)")); + // Add new key commands here. #ifdef _DEBUG Modified: trunk/OpenMPT/mptrack/CommandSet.h =================================================================== --- trunk/OpenMPT/mptrack/CommandSet.h 2012-11-21 22:41:54 UTC (rev 1437) +++ trunk/OpenMPT/mptrack/CommandSet.h 2012-11-23 17:21:54 UTC (rev 1438) @@ -647,6 +647,11 @@ kcSampleZoomUp, kcSampleZoomDown, kcSampleZoomSelection, + kcSample8Bit, + kcSampleMonoMix, + kcSampleMonoLeft, + kcSampleMonoRight, + kcSampleMonoSplit, kcSampleInvert, kcSampleSignUnsign, kcSampleRemoveDCOffset, Modified: trunk/OpenMPT/mptrack/View_smp.cpp =================================================================== --- trunk/OpenMPT/mptrack/View_smp.cpp 2012-11-21 22:41:54 UTC (rev 1437) +++ trunk/OpenMPT/mptrack/View_smp.cpp 2012-11-23 17:21:54 UTC (rev 1438) @@ -44,7 +44,7 @@ // of trimming is nTrimLengthMin + 1. #define MIN_TRIM_LENGTH 16 -const UINT cLeftBarButtons[SMP_LEFTBAR_BUTTONS] = +const UINT cLeftBarButtons[SMP_LEFTBAR_BUTTONS] = { ID_SAMPLE_ZOOMUP, ID_SAMPLE_ZOOMDOWN, @@ -141,7 +141,7 @@ ModifyStyleEx(0, WS_EX_ACCEPTFILES); CModScrollView::OnInitialUpdate(); CMainFrame *pMainFrm = CMainFrame::GetMainFrame(); - if (pMainFrm) + if (pMainFrm) { pMainFrm->SetInfoText(""); pMainFrm->SetXInfoText(""); //rewbs.xinfo @@ -154,7 +154,7 @@ //---------------------------------- { CModDoc *pModDoc = GetDocument(); - + GetClientRect(&m_rcClient); if (pModDoc) { @@ -242,10 +242,10 @@ BOOL CViewSample::SetZoom(UINT nZoom) //----------------------------------- { - - if (nZoom == m_nZoom) + + if (nZoom == m_nZoom) return TRUE; - if (nZoom > MAX_ZOOM) + if (nZoom > MAX_ZOOM) return FALSE; const UINT nZoomOld = m_nZoom; @@ -449,7 +449,7 @@ UpdateNcButtonState(); InvalidateSample(); } - + // sample drawing if(dwHintMask & HINT_SAMPLEINFO) { @@ -464,7 +464,7 @@ // Draw sample data, 1:1 ratio void CViewSample::DrawSampleData1(HDC hdc, int ymed, int cx, int cy, int len, int uFlags, PVOID pSampleData) //---------------------------------------------------------------------------------------------------------- -{ +{ int smplsize; int yrange = cy/2; signed char *psample = (signed char *)pSampleData; @@ -742,7 +742,7 @@ { for (int i=0; i<scanlen; i++) { - + int s = *p; if (s < smin) smin = s; if (s > smax) smax = s; @@ -774,15 +774,15 @@ void CViewSample::OnDraw(CDC *pDC) //-------------------------------- -{ +{ CRect rcClient = m_rcClient, rect, rc; CModDoc *pModDoc = GetDocument(); CSoundFile *pSndFile; HGDIOBJ oldpen; HDC hdc; - + UINT nSmpScrollPos = ScrollPosToSamplePos(); - + if ((!pModDoc) || (!pDC)) return; hdc = pDC->m_hDC; oldpen = ::SelectObject(hdc, CMainFrame::penBlack); @@ -793,7 +793,7 @@ const ModSample &sample = pSndFile->GetSample((m_nSample <= pSndFile->GetNumSamples()) ? m_nSample : 0); int ymed = (rect.top + rect.bottom) / 2; int yrange = (rect.bottom - rect.top) / 2; - + // Erase background if ((m_dwBeginSel < m_dwEndSel) && (m_dwEndSel > nSmpScrollPos)) { @@ -1022,7 +1022,7 @@ DWORD dwStyle = m_NcButtonState[nBtn]; COLORREF c3, c4; int xofs = 0, yofs = 0, nImage = 0; - + c1 = c2 = c3 = c4 = crFc; if (!(CMainFrame::GetSettings().m_dwPatternSetup & PATTERN_FLATBUTTONS)) { @@ -1115,13 +1115,13 @@ CModDoc *pModDoc = GetDocument(); CSoundFile *pSndFile; CDC *pDC = NULL; - + if (!pModDoc) return; pSndFile = pModDoc->GetSoundFile(); for (UINT i=0; i<SMP_LEFTBAR_BUTTONS; i++) if (cLeftBarButtons[i] != ID_SEPARATOR) { DWORD dwStyle = 0; - + if (m_nBtnMouseOver == i) { dwStyle |= NCBTNS_MOUSEOVER; @@ -1130,7 +1130,7 @@ switch(cLeftBarButtons[i]) { - case ID_SAMPLE_DRAW: + case ID_SAMPLE_DRAW: if(m_bDrawingEnabled) dwStyle |= NCBTNS_CHECKED; if(m_nSample > pSndFile->GetNumSamples() || pSndFile->GetSample(m_nSample).GetNumChannels() > 1 || @@ -1284,7 +1284,7 @@ CHAR s[64]; CModDoc *pModDoc = GetDocument(); CSoundFile *pSndFile; - + if ((m_nBtnMouseOver < SMP_LEFTBAR_BUTTONS) || (m_dwStatus & SMPSTATUS_NCLBTNDOWN)) { m_dwStatus &= ~SMPSTATUS_NCLBTNDOWN; @@ -1381,7 +1381,7 @@ SetSampleData<int16, uint16>(pSndFile->GetSample(m_nSample).pSample, point, old); else if(pSndFile->GetSample(m_nSample).GetElementarySampleSize() == 1) SetSampleData<int8, uint8>(pSndFile->GetSample(m_nSample).pSample, point, old); - + ctrlSmp::AdjustEndOfSample(pSndFile->GetSample(m_nSample), pSndFile); InvalidateSample(); @@ -1511,7 +1511,7 @@ wsprintf(s, "Set Loop End to:\t%d", dwPos); ::AppendMenu(hMenu, MF_STRING | (dwPos >= sample.nLoopStart + 4 ? 0 : MF_GRAYED), ID_SAMPLE_SETLOOPEND, s); - + if (pSndFile->GetType() & (MOD_TYPE_IT|MOD_TYPE_MPT)) { //Set sustain loop points @@ -1559,7 +1559,7 @@ (sample.nLoopEnd - sample.nLoopStart < sample.nLength) ) bIsGrayed = false; } - + sTrimMenuText += "\t" + ih->GetKeyTextFromCommand(kcSampleTrim); ::AppendMenu(hMenu, MF_STRING|(bIsGrayed) ? MF_GRAYED : 0, ID_SAMPLE_TRIM, sTrimMenuText.c_str()); @@ -1656,7 +1656,7 @@ LRESULT CViewSample::OnNcHitTest(CPoint point) #else UINT CViewSample::OnNcHitTest(CPoint point) -#endif +#endif //----------------------------------------- { CRect rect; @@ -1920,7 +1920,7 @@ psh->dwSamplePeriod = 22675; if (sample.nC5Speed > 256) psh->dwSamplePeriod = 1000000000 / sample.nC5Speed; psh->dwBaseNote = 60; - + // Write loops WAVESAMPLERINFO *psmpl = (WAVESAMPLERINFO *)psh; MemsetZero(psmpl->wsiLoops); @@ -1992,7 +1992,7 @@ CSoundFile *pSndFile = pModDoc->GetSoundFile(); DWORD dwMemSize = GlobalSize(hCpy); - + CriticalSection cs; ModSample &sample = pSndFile->GetSample(m_nSample); @@ -2176,7 +2176,7 @@ CriticalSection cs; - + // Note: Sample is overwritten in-place! Unused data is not deallocated! const UINT bend = nEnd * sample.GetBytesPerSample() , bstart = nStart * sample.GetBytesPerSample(); signed char *p = (signed char *)sample.pSample; @@ -2202,7 +2202,7 @@ sample.uFlags &= ~(CHN_SUSTAINLOOP|CHN_PINGPONGSUSTAIN); } sample.nLength = nEnd; - + cs.Leave(); pModDoc->SetModified(); @@ -2229,7 +2229,7 @@ if (note >= NOTE_MIN_SPECIAL) { pModDoc->NoteOff(0, (note == NOTE_NOTECUT)); - } + } else { CHAR s[64]; @@ -2329,7 +2329,7 @@ bCanDrop = ((lpDropInfo->dwDropItem < MAX_DLS_BANKS) && (CTrackApp::gpDLSBanks[lpDropInfo->dwDropItem])); break; - + case DRAGONDROP_SOUNDFILE: case DRAGONDROP_MIDIINSTR: bCanDrop = ((lpDropInfo->lDropParam) @@ -2388,7 +2388,7 @@ case DRAGONDROP_SOUNDFILE: SendCtrlMessage(CTRLMSG_SMP_OPENFILE, (LPARAM)lpDropInfo->lDropParam); break; - + case DRAGONDROP_DLS: { CDLSBank *pDLSBank = CTrackApp::gpDLSBanks[lpDropInfo->dwDropItem]; @@ -2705,24 +2705,24 @@ if (pMsg) { //We handle keypresses before Windows has a chance to handle them (for alt etc..) - if ((pMsg->message == WM_SYSKEYUP) || (pMsg->message == WM_KEYUP) || + if ((pMsg->message == WM_SYSKEYUP) || (pMsg->message == WM_KEYUP) || (pMsg->message == WM_SYSKEYDOWN) || (pMsg->message == WM_KEYDOWN)) { CInputHandler* ih = (CMainFrame::GetMainFrame())->GetInputHandler(); - + //Translate message manually UINT nChar = pMsg->wParam; UINT nRepCnt = LOWORD(pMsg->lParam); UINT nFlags = HIWORD(pMsg->lParam); KeyEventType kT = ih->GetKeyEventType(nFlags); InputTargetContext ctx = (InputTargetContext)(kCtxViewSamples); - + if (ih->KeyEvent(ctx, nChar, nRepCnt, nFlags, kT) != kcNull) return true; // Mapped to a command, no need to pass message on. } } - + return CModScrollView::PreTranslateMessage(pMsg); } @@ -2731,11 +2731,11 @@ { if (wParam == kcNull) return NULL; - - CModDoc *pModDoc = GetDocument(); + + CModDoc *pModDoc = GetDocument(); if (!pModDoc) return NULL; - - //CSoundFile *pSndFile = pModDoc->GetSoundFile(); + + //CSoundFile *pSndFile = pModDoc->GetSoundFile(); CMainFrame *pMainFrm = CMainFrame::GetMainFrame(); switch(wParam) @@ -2752,11 +2752,16 @@ case kcEditCopy: OnEditCopy(); return wParam; case kcEditPaste: OnEditPaste(); return wParam; case kcEditUndo: OnEditUndo(); return wParam; + case kcSample8Bit: On8BitConvert(); return wParam; + case kcSampleMonoMix: OnMonoConvertMix(); return wParam; + case kcSampleMonoLeft: OnMonoConvertLeft(); return wParam; + case kcSampleMonoRight: OnMonoConvertRight(); return wParam; + case kcSampleMonoSplit: OnMonoConvertSplit(); return wParam; case kcSampleLoad: PostCtrlMessage(IDC_SAMPLE_OPEN); return wParam; case kcSampleSave: PostCtrlMessage(IDC_SAMPLE_SAVEAS); return wParam; case kcSampleNew: PostCtrlMessage(IDC_SAMPLE_NEW); return wParam; - + case kcSampleReverse: PostCtrlMessage(IDC_SAMPLE_REVERSE); return wParam; case kcSampleSilence: PostCtrlMessage(IDC_SAMPLE_SILENCE); return wParam; case kcSampleNormalize: PostCtrlMessage(IDC_SAMPLE_NORMALIZE); return wParam; @@ -2831,7 +2836,7 @@ // If auto-zoom is not the smallest zoom, move auto-zoom index(=zero) // to the right position in the zoom order. - if (nAutoZoomLevel < MAX_ZOOM + 1) + if (nAutoZoomLevel < MAX_ZOOM + 1) { UINT* p = std::find(zoomOrder, pZoomOrderEnd, nAutoZoomLevel); if (p != pZoomOrderEnd) @@ -2863,4 +2868,4 @@ m_nGridSegments = dlg.m_nSegments; InvalidateSample(); } -} +} \ No newline at end of file Modified: trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb =================================================================== --- trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb 2012-11-21 22:41:54 UTC (rev 1437) +++ trunk/OpenMPT/packageTemplate/extraKeymaps/DE_jojo.mkb 2012-11-23 17:21:54 UTC (rev 1438) @@ -106,6 +106,8 @@ 2:1009:3:81:5 //Transpose +12: Shift+Ctrl+Q (KeyDown|KeyHold) 2:1010:3:65:5 //Transpose -12: Shift+Ctrl+A (KeyDown|KeyHold) 2:1881:2:84:1 //Transpose Custom: Ctrl+T (KeyDown) +2:1885:2:107:1 //Data Entry +1: Ctrl++ (ZEHNERTASTATUR) (KeyDown) +2:1886:2:189:1 //Data Entry -1: Ctrl+- (KeyDown) 2:1012:2:77:1 //Amplify selection: Ctrl+M (KeyDown) 2:1014:2:74:1 //Interpolate Volume: Ctrl+J (KeyDown) 2:1015:2:75:1 //Interpolate Effect: Ctrl+K (KeyDown) @@ -289,11 +291,17 @@ 8:1386:0:107:1 //Zoom Out: + (ZEHNERTASTATUR) (KeyDown) 8:1387:0:109:1 //Zoom In: - (ZEHNERTASTATUR) (KeyDown) 8:1882:0:32:1 //Zoom into Selection: LEER (KeyDown) +8:1887:2:56:1 //Conver to 8-bit: Ctrl+8 (KeyDown) +8:1888:1:77:1 //Convert to Mono (Mix): Shift+M (KeyDown) +8:1889:1:76:1 //Convert to Mono (Left Channel): Shift+L (KeyDown) +8:1890:1:82:1 //Convert to Mono (Right Channel): Shift+R (KeyDown) +8:1891:1:83:1 //Convert to Mono (Split Sample): Shift+S (KeyDown) 8:1784:2:73:1 //Invert Sample Phase: Ctrl+I (KeyDown) 8:1785:2:85:1 //Signed / Unsigned Conversion: Ctrl+U (KeyDown) 8:1790:2:69:1 //Remove DC Offset: Ctrl+E (KeyDown) 8:1856:2:68:1 //Quick Fade: Ctrl+D (KeyDown) 8:1857:2:76:1 //Crossfade Sample Loop: Ctrl+L (KeyDown) +8:1863:1:84:1 //Tune Sample to given Note: Shift+T (KeyDown) //----( Instrument Context [bottom] (9) )------------ 9:1837:0:107:5 //Zoom In: + (ZEHNERTASTATUR) (KeyDown|KeyHold) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |