From: <sag...@us...> - 2013-04-07 23:23:30
|
Revision: 1773 http://sourceforge.net/p/modplug/code/1773 Author: saga-games Date: 2013-04-07 23:23:15 +0000 (Sun, 07 Apr 2013) Log Message: ----------- [New] Added global, always active VU meter in main toolbar. Doesn't work properly in vertical toolbar mode, just like so many other things. [Mod] OpenMPT: Version is now 1.22.01.01 Modified Paths: -------------- trunk/OpenMPT/common/version.h trunk/OpenMPT/mptrack/Ctrl_com.cpp trunk/OpenMPT/mptrack/Ctrl_gen.cpp trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/Mainbar.cpp trunk/OpenMPT/mptrack/Mainbar.h trunk/OpenMPT/mptrack/Mainfrm.h trunk/OpenMPT/mptrack/Notification.h trunk/OpenMPT/mptrack/mptrack.rc trunk/OpenMPT/mptrack/res/MAINBAR.BMP trunk/OpenMPT/mptrack/resource.h Modified: trunk/OpenMPT/common/version.h =================================================================== --- trunk/OpenMPT/common/version.h 2013-04-07 22:43:38 UTC (rev 1772) +++ trunk/OpenMPT/common/version.h 2013-04-07 23:23:15 UTC (rev 1773) @@ -19,7 +19,7 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 22 #define VER_MINOR 01 -#define VER_MINORMINOR 00 +#define VER_MINORMINOR 01 //Creates version number from version parts that appears in version string. //For example MAKE_VERSION_NUMERIC(1,17,02,28) gives version number of Modified: trunk/OpenMPT/mptrack/Ctrl_com.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_com.cpp 2013-04-07 22:43:38 UTC (rev 1772) +++ trunk/OpenMPT/mptrack/Ctrl_com.cpp 2013-04-07 23:23:15 UTC (rev 1773) @@ -52,7 +52,13 @@ void CCtrlComments::OnActivatePage(LPARAM) //---------------------------------------- { - // nothing + CModDoc *modDoc = GetDocument(); + if(modDoc) + { + // Don't stop generating VU meter messages + modDoc->SetNotifications(Notification::Position); + modDoc->SetFollowWnd(m_hWnd); + } } Modified: trunk/OpenMPT/mptrack/Ctrl_gen.cpp =================================================================== --- trunk/OpenMPT/mptrack/Ctrl_gen.cpp 2013-04-07 22:43:38 UTC (rev 1772) +++ trunk/OpenMPT/mptrack/Ctrl_gen.cpp 2013-04-07 23:23:15 UTC (rev 1773) @@ -234,7 +234,7 @@ // MOD Type LPCSTR pszModType = "MOD (ProTracker)"; - switch(m_pSndFile->m_nType) + switch(m_pSndFile->GetType()) { case MOD_TYPE_S3M: pszModType = "S3M (ScreamTracker)"; break; case MOD_TYPE_XM: pszModType = "XM (FastTracker 2)"; break; @@ -393,7 +393,7 @@ void CCtrlGeneral::OnVSTiVolChanged() -//------------------------------------- +//----------------------------------- { CHAR s[16]; if ((m_pSndFile) && (m_pModDoc) && (m_bInitialized)) @@ -418,7 +418,7 @@ } void CCtrlGeneral::OnSamplePAChanged() -//------------------------------------- +//------------------------------------ { CHAR s[16]; if ((m_pSndFile) && (m_pModDoc) && (m_bInitialized)) @@ -526,8 +526,8 @@ Notification *pnotify = (Notification *)lParam; if (pnotify) { - m_VuMeterLeft.SetVuMeter(pnotify->masterVu[0]); - m_VuMeterRight.SetVuMeter(pnotify->masterVu[1]); + m_VuMeterLeft.SetVuMeter(pnotify->masterVU[0] & (~Notification::ClipVU)); + m_VuMeterRight.SetVuMeter(pnotify->masterVU[1] & (~Notification::ClipVU)); } return 0; } Modified: trunk/OpenMPT/mptrack/MainFrm.cpp =================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp 2013-04-07 22:43:38 UTC (rev 1772) +++ trunk/OpenMPT/mptrack/MainFrm.cpp 2013-04-07 23:23:15 UTC (rev 1773) @@ -109,6 +109,8 @@ LONG CMainFrame::gnLVuMeter = 0; LONG CMainFrame::gnRVuMeter = 0; +bool CMainFrame::gnClipLeft = false; +bool CMainFrame::gnClipRight = false; // GDI HICON CMainFrame::m_hIcon = NULL; @@ -437,6 +439,7 @@ } // Kill GDI Objects +#define DeleteGDIObject(h) if (h) { ::DeleteObject(h); h = NULL; } DeleteGDIObject(brushGray); DeleteGDIObject(penLightGray); DeleteGDIObject(penDarkGray); @@ -457,12 +460,9 @@ for (UINT i=0; i<NUM_VUMETER_PENS*2; i++) { - if (gpenVuMeter[i]) - { - DeleteObject(gpenVuMeter[i]); - gpenVuMeter[i] = NULL; - } + DeleteGDIObject(gpenVuMeter[i]); } +#undef DeleteGDIObject return CMDIFrameWnd::DestroyWindow(); } @@ -939,6 +939,8 @@ } gnLVuMeter = lmax; gnRVuMeter = rmax; + if(lmax > MIXING_CLIPMAX) gnClipLeft = true; + if(rmax > MIXING_CLIPMAX) gnClipRight = true; } @@ -958,7 +960,7 @@ } } if(!m_pSndFile) return FALSE; - FlagSet<Notification::Type,uint16> notifyType; + FlagSet<Notification::Type> notifyType; notifyType = Notification::None; Notification::Item notifyItem = 0; @@ -977,19 +979,11 @@ } // Add an entry to the notification history - Notification notification; + Notification notification(notifyType, notifyItem, notificationtimestamp, m_pSndFile->m_nRow, m_pSndFile->m_nTickCount, m_pSndFile->m_nCurrentOrder, m_pSndFile->m_nPattern); Notification *p = ¬ification; - p->type = notifyType; - p->item = notifyItem; if(endOfStream) p->type.set(Notification::EOS); - p->timestampSamples = notificationtimestamp; - p->row = m_pSndFile->m_nRow; - p->tick = m_pSndFile->m_nTickCount; - p->order = m_pSndFile->m_nCurrentOrder; - p->pattern = m_pSndFile->m_nPattern; - if(notifyType[Notification::Sample]) { // Sample positions @@ -1054,15 +1048,19 @@ p->pos[k] = (vul << 8) | (vur); } } + { // Master VU meter uint32 lVu = (gnLVuMeter >> 11); uint32 rVu = (gnRVuMeter >> 11); if(lVu > 0x10000) lVu = 0x10000; if(rVu > 0x10000) rVu = 0x10000; - p->masterVu[0] = lVu; - p->masterVu[1] = rVu; + p->masterVU[0] = lVu; + p->masterVU[1] = rVu; + if(gnClipLeft) p->masterVU[0] |= Notification::ClipVU; + if(gnClipRight) p->masterVU[1] |= Notification::ClipVU; uint32 dwVuDecay = Util::muldiv(dwSamplesRead, 120000, TrackerSettings::Instance().m_dwRate) + 1; + if (lVu >= dwVuDecay) gnLVuMeter = (lVu - dwVuDecay) << 11; else gnLVuMeter = 0; if (rVu >= dwVuDecay) gnRVuMeter = (rVu - dwVuDecay) << 11; else gnRVuMeter = 0; } @@ -1331,8 +1329,7 @@ void CMainFrame::GenerateStopNotification() //----------------------------------------- { - Notification mn; - mn.type = Notification::Stop; + Notification mn(Notification::Stop); SendMessage(WM_MOD_UPDATEPOSITION, 0, (LPARAM)&mn); } @@ -1420,8 +1417,8 @@ m_wndToolBar.SetCurrentSong(m_pSndFile); - gnLVuMeter = 0; - gnRVuMeter = 0; + gnLVuMeter = gnRVuMeter = 0; + gnClipLeft = gnClipRight = false; m_nMixChn = 0; m_nAvgMixChn = 0; @@ -2287,7 +2284,7 @@ LRESULT CMainFrame::OnUpdatePositionThreaded(WPARAM, LPARAM) -//----------------------------------------------------------------- +//---------------------------------------------------------- { Notification * pnotify = &m_PendingNotification; LRESULT retval = OnUpdatePosition(0, (LPARAM)pnotify); @@ -2296,6 +2293,7 @@ return retval; } + LRESULT CMainFrame::OnUpdatePosition(WPARAM, LPARAM lParam) //--------------------------------------------------------- { @@ -2313,6 +2311,8 @@ if (m_hFollowSong) ::SendMessage(m_hFollowSong, WM_MOD_UPDATEPOSITION, 0, lParam); } + m_wndToolBar.m_VuMeter.SetVuMeter(pnotify->masterVU[0], pnotify->masterVU[1]); + } return 0; } @@ -2561,11 +2561,7 @@ CModDoc* pModDoc = GetActiveDoc(); if (pModDoc) { - CSoundFile* pSndFile = pModDoc->GetSoundFile(); - if (pSndFile) - { - return m_InputHandler->SetEffectLetters(pSndFile->GetModSpecifications()); - } + return m_InputHandler->SetEffectLetters(pModDoc->GetrSoundFile().GetModSpecifications()); } return false; Modified: trunk/OpenMPT/mptrack/Mainbar.cpp =================================================================== --- trunk/OpenMPT/mptrack/Mainbar.cpp 2013-04-07 22:43:38 UTC (rev 1772) +++ trunk/OpenMPT/mptrack/Mainbar.cpp 2013-04-07 23:23:15 UTC (rev 1773) @@ -74,16 +74,7 @@ SetVertical(); } } -#if 0 - // Hack - fixed in VC++ 6.0 - if ((sizeResult.cy > 30) && (m_bFlatButtons)) - { - if (dwMode & LM_HORZ) - sizeResult.cy += ((sizeResult.cy-30)/28) * 4; - else - sizeResult.cy += 8; - } -#endif + return sizeResult; } @@ -138,7 +129,7 @@ // Play Command #define PLAYCMD_INDEX 10 #define TOOLBAR_IMAGE_PAUSE 8 -#define TOOLBAR_IMAGE_PLAY 16 +#define TOOLBAR_IMAGE_PLAY 12 // Base octave #define EDITOCTAVE_INDEX 13 #define EDITOCTAVE_WIDTH 55 @@ -182,8 +173,12 @@ #define SPINRPB_INDEX (EDITRPB_INDEX+1) #define SPINRPB_WIDTH 16 #define SPINRPB_HEIGHT (EDITRPB_HEIGHT) +// VU Meters +#define VUMETER_INDEX (SPINRPB_INDEX+5) +#define VUMETER_WIDTH 255 +#define VUMETER_HEIGHT 19 -static UINT BASED_CODE MainButtons[] = +static UINT MainButtons[] = { // same order as in the bitmap 'mainbar.bmp' ID_FILE_NEW, @@ -216,12 +211,9 @@ ID_SEPARATOR, ID_SEPARATOR, ID_VIEW_OPTIONS, - ID_APP_ABOUT, -// ID_CONTEXT_HELP, - ID_SEPARATOR, //rewbs.reportBug - ID_REPORT_BUG, //rewbs.reportBug - ID_SEPARATOR, ID_PANIC, + ID_SEPARATOR, + ID_SEPARATOR, // VU Meter }; @@ -282,10 +274,14 @@ rect.SetRect(-SPINRPB_WIDTH, -SPINRPB_HEIGHT, 0, 0); m_SpinRowsPerBeat.Create(WS_CHILD|UDS_ALIGNRIGHT, rect, this, IDC_SPIN_RPB); + // VU Meter + rect.SetRect(-VUMETER_WIDTH, -VUMETER_HEIGHT, 0, 0); + //m_VuMeter.CreateEx(WS_EX_STATICEDGE, "STATIC", "", WS_CHILD | WS_BORDER | SS_NOTIFY, rect, this, IDC_VUMETER); + m_VuMeter.Create("", WS_CHILD | WS_BORDER | SS_NOTIFY, rect, this, IDC_VUMETER); // Adjust control styles HFONT hFont = CMainFrame::GetGUIFont(); - m_EditOctave.SendMessage(WM_SETFONT, (WPARAM)hFont); + m_EditOctave.SendMessage(WM_SETFONT, (WPARAM)hFont); m_EditOctave.ModifyStyleEx(0, WS_EX_STATICEDGE, SWP_NOACTIVATE); m_StaticTempo.SendMessage(WM_SETFONT, (WPARAM)hFont); m_EditTempo.SendMessage(WM_SETFONT, (WPARAM)hFont); @@ -326,6 +322,7 @@ //-------------------------------- { CToolBarEx::SetHorizontal(); + m_VuMeter.SetOrientation(true); SetButtonInfo(EDITOCTAVE_INDEX, IDC_EDIT_BASEOCTAVE, TBBS_SEPARATOR, EDITOCTAVE_WIDTH); SetButtonInfo(SPINOCTAVE_INDEX, IDC_SPIN_BASEOCTAVE, TBBS_SEPARATOR, SPINOCTAVE_WIDTH); SetButtonInfo(TEMPOTEXT_INDEX, IDC_TEXT_CURRENTTEMPO, TBBS_SEPARATOR, TEMPOTEXT_WIDTH); @@ -337,6 +334,7 @@ SetButtonInfo(RPBTEXT_INDEX, IDC_TEXT_RPB, TBBS_SEPARATOR, RPBTEXT_WIDTH); SetButtonInfo(EDITRPB_INDEX, IDC_EDIT_RPB, TBBS_SEPARATOR, EDITRPB_WIDTH); SetButtonInfo(SPINRPB_INDEX, IDC_SPIN_RPB, TBBS_SEPARATOR, SPINRPB_WIDTH); + SetButtonInfo(VUMETER_INDEX, IDC_VUMETER, TBBS_SEPARATOR, VUMETER_WIDTH); //SetButtonInfo(SPINSPEED_INDEX+1, IDC_TEXT_BPM, TBBS_SEPARATOR, SPEEDTEXT_WIDTH); // Octave Box @@ -354,6 +352,7 @@ EnableControl(m_StaticRowsPerBeat, RPBTEXT_INDEX, RPBTEXT_HEIGHT); EnableControl(m_EditRowsPerBeat, EDITRPB_INDEX, EDITRPB_HEIGHT); EnableControl(m_SpinRowsPerBeat, SPINRPB_INDEX, SPINRPB_HEIGHT); + EnableControl(m_VuMeter, VUMETER_INDEX, VUMETER_HEIGHT); return TRUE; } @@ -363,6 +362,7 @@ //------------------------------ { CToolBarEx::SetVertical(); + m_VuMeter.SetOrientation(false); // Change Buttons SetButtonInfo(EDITOCTAVE_INDEX, ID_SEPARATOR, TBBS_SEPARATOR, 1); SetButtonInfo(SPINOCTAVE_INDEX, ID_SEPARATOR, TBBS_SEPARATOR, 1); @@ -375,6 +375,7 @@ SetButtonInfo(RPBTEXT_INDEX, ID_SEPARATOR, TBBS_SEPARATOR, 1); SetButtonInfo(EDITRPB_INDEX, ID_SEPARATOR, TBBS_SEPARATOR, 1); SetButtonInfo(SPINRPB_INDEX, ID_SEPARATOR, TBBS_SEPARATOR, 1); + SetButtonInfo(VUMETER_INDEX, IDC_VUMETER, TBBS_SEPARATOR, VUMETER_HEIGHT); // Hide Controls if (m_EditOctave.m_hWnd != NULL) m_EditOctave.ShowWindow(SW_HIDE); @@ -388,6 +389,7 @@ if (m_StaticRowsPerBeat.m_hWnd != NULL) m_StaticRowsPerBeat.ShowWindow(SW_HIDE); if (m_EditRowsPerBeat.m_hWnd != NULL) m_EditRowsPerBeat.ShowWindow(SW_HIDE); if (m_SpinRowsPerBeat.m_hWnd != NULL) m_SpinRowsPerBeat.ShowWindow(SW_HIDE); + EnableControl(m_VuMeter, VUMETER_INDEX, VUMETER_HEIGHT); //if (m_StaticBPM.m_hWnd != NULL) m_StaticBPM.ShowWindow(SW_HIDE); return TRUE; } @@ -1075,3 +1077,129 @@ return 0; } //end rewbs.customKeys + + +//////////////////////////////////////////////////////////////////////////////// +// +// Stereo VU Meter for toolbar +// + +BEGIN_MESSAGE_MAP(CStereoVU, CStatic) + ON_WM_PAINT() + ON_WM_LBUTTONDOWN() +END_MESSAGE_MAP() + + +void CStereoVU::OnPaint() +//----------------------- +{ + CRect rect; + CPaintDC dc(this); + HDC hdc = dc.m_hDC; + GetClientRect(&rect); + FillRect(hdc, &rect, CMainFrame::brushBlack); + DrawVuMeters(hdc); +} + + +void CStereoVU::SetVuMeter(uint32 left, uint32 right) +//--------------------------------------------------- +{ + if(left != vuMeter[0] || right != vuMeter[1]) + { + vuMeter[0] = left; + vuMeter[1] = right; + CClientDC dc(this); + DrawVuMeters(dc.m_hDC); + } +} + + +// Draw stereo VU +void CStereoVU::DrawVuMeters(HDC hdc) +//----------------------------------- +{ + CRect rect; + GetClientRect(&rect); + CRect rectL = rect, rectR = rect; + + if(horizontal) + { + const int mid = rect.top + rect.Height() / 2; + rectL.bottom = mid; + + rectR.top = mid + 1; + } else + { + const int mid = rect.left + rect.Width() / 2; + rectL.right = mid; + + rectR.left = mid + 1; + } + + HGDIOBJ oldPen = SelectObject(hdc, CMainFrame::penBlack); + DrawVuMeter(hdc, rectL, vuMeter[0]); + DrawVuMeter(hdc, rectR, vuMeter[1]); + SelectObject(hdc, oldPen); +} + + +// Draw a single VU Meter +void CStereoVU::DrawVuMeter(HDC hdc, const CRect &rect, uint32 vu) +//---------------------------------------------------------------- +{ + if(CMainFrame::GetMainFrame()->GetSoundFilePlaying() == nullptr) + { + vu = 0; + } + + const bool clip = (vu & Notification::ClipVU) != 0; + vu = (vu & (~Notification::ClipVU)) >> 8; + + if(horizontal) + { + const int cx = Util::Max(1, rect.Width()); + int v = (vu * cx) >> 8; + + for(int rx = rect.left; rx <= rect.right; rx += 2) + { + int pen = Clamp((rx * NUM_VUMETER_PENS) / cx, 0, NUM_VUMETER_PENS - 1); + const bool last = (rx == rect.right - 1); + + // Darken everything above volume, unless it's the clip indicator + if(v <= rx && (!last || !clip)) + pen += NUM_VUMETER_PENS; + + SelectObject(hdc, CMainFrame::gpenVuMeter[pen]); + MoveToEx(hdc, rx, rect.top, NULL); + LineTo(hdc, rx, rect.bottom); + } + } else + { + const int cy = Util::Max(1, rect.Height()); + int v = (vu * cy) >> 8; + + for(int ry = rect.bottom - 1; ry > rect.top; ry -= 2) + { + const int y0 = rect.bottom - ry; + int pen = Clamp((y0 * NUM_VUMETER_PENS) / cy, 0, NUM_VUMETER_PENS - 1); + const bool last = (ry == rect.top + 1); + + // Darken everything above volume, unless it's the clip indicator + if(v <= y0 && (!last || !clip)) + pen += NUM_VUMETER_PENS; + + SelectObject(hdc, CMainFrame::gpenVuMeter[pen]); + MoveToEx(hdc, rect.left, ry, NULL); + LineTo(hdc, rect.right, ry); + } + } +} + + +void CStereoVU::OnLButtonDown(UINT, CPoint) +//----------------------------------------- +{ + // Reset clip indicator. + CMainFrame::gnClipLeft = CMainFrame::gnClipRight = false; +} \ No newline at end of file Modified: trunk/OpenMPT/mptrack/Mainbar.h =================================================================== --- trunk/OpenMPT/mptrack/Mainbar.h 2013-04-07 22:43:38 UTC (rev 1772) +++ trunk/OpenMPT/mptrack/Mainbar.h 2013-04-07 23:23:15 UTC (rev 1773) @@ -10,6 +10,29 @@ #pragma once +//============================= +class CStereoVU: public CStatic +//============================= +{ +protected: + uint32 vuMeter[2]; + bool horizontal; + +public: + CStereoVU() { vuMeter[0] = vuMeter[1] = 0; horizontal = true; } + void SetVuMeter(uint32 left, uint32 right); + void SetOrientation(bool h) { horizontal = h; } + +protected: + void DrawVuMeters(HDC hdc); + void DrawVuMeter(HDC hdc, const CRect &rect, uint32 vu); + +protected: + afx_msg void OnPaint(); + afx_msg void OnLButtonDown(UINT, CPoint); + DECLARE_MESSAGE_MAP(); +}; + #define MIN_BASEOCTAVE 0 #define MAX_BASEOCTAVE 8 @@ -51,6 +74,8 @@ CStatic m_StaticTempo, m_StaticSpeed, m_StaticRowsPerBeat; CSpinButtonCtrl m_SpinTempo, m_SpinSpeed, m_SpinOctave, m_SpinRowsPerBeat; int nCurrentSpeed, nCurrentTempo, nCurrentOctave, nCurrentRowsPerBeat; +public: + CStereoVU m_VuMeter; public: CMainToolBar() {} Modified: trunk/OpenMPT/mptrack/Mainfrm.h =================================================================== --- trunk/OpenMPT/mptrack/Mainfrm.h 2013-04-07 22:43:38 UTC (rev 1772) +++ trunk/OpenMPT/mptrack/Mainfrm.h 2013-04-07 23:23:15 UTC (rev 1773) @@ -261,12 +261,6 @@ #include "Notification.h" -///////////////////////////////////////////////////////////////////////// -// Misc. Macros - - -#define DeleteGDIObject(h) if (h) { ::DeleteObject(h); h = NULL; } - #include "mainbar.h" #include "TrackerSettings.h" @@ -301,6 +295,7 @@ HANDLE m_hNotifyThread; DWORD m_dwNotifyThreadId; static LONG gnLVuMeter, gnRVuMeter; + static bool gnClipLeft, gnClipRight; bool m_IsPlaybackRunning; // Midi Input @@ -565,9 +560,7 @@ static std::vector<CString> s_TemplateModulePaths; }; -const CHAR gszBuildDate[] = __DATE__ " " __TIME__; - ///////////////////////////////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} Modified: trunk/OpenMPT/mptrack/Notification.h =================================================================== --- trunk/OpenMPT/mptrack/Notification.h 2013-04-07 22:43:38 UTC (rev 1772) +++ trunk/OpenMPT/mptrack/Notification.h 2013-04-07 23:23:15 UTC (rev 1773) @@ -30,7 +30,8 @@ typedef uint16 Item; - static const SmpLength PosInvalid = -1; // pos[i] is not valid (if it contains sample or envelope position) + static const SmpLength PosInvalid = SmpLength(-1); // pos[i] is not valid (if it contains sample or envelope position) + static const uint32 ClipVU = 0x80000000; // Master VU clip indicator bit (sound output has previously clipped) /* timestampSamples is kind of confusing at the moment: @@ -46,19 +47,12 @@ uint32 tick; // dito ORDERINDEX order; // dito PATTERNINDEX pattern; // dito - uint32 masterVu[2]; // dito + uint32 masterVU[2]; // dito SmpLength pos[MAX_CHANNELS]; // Sample / envelope pos for each channel if != PosInvalid, or pattern channel VUs - Notification() + + Notification(Type t = None, Item i = 0, int64 s = 0, ROWINDEX r = 0, uint32 ti = 0, ORDERINDEX o = 0, PATTERNINDEX p = 0) : timestampSamples(s), type(t), item(i), row(r), tick(ti), order(o), pattern(p) { - timestampSamples = 0; - type = Notification::None; - item = 0; - row = 0; - tick = 0; - order = 0; - pattern = 0; - MemsetZero(masterVu); - MemsetZero(pos); + MemsetZero(masterVU); } }; Modified: trunk/OpenMPT/mptrack/mptrack.rc =================================================================== --- trunk/OpenMPT/mptrack/mptrack.rc 2013-04-07 22:43:38 UTC (rev 1772) +++ trunk/OpenMPT/mptrack/mptrack.rc 2013-04-07 23:23:15 UTC (rev 1773) @@ -2515,6 +2515,11 @@ IDC_SAMPLE_AUTOTUNE "Sample Tuner\nTune the sample to a given note." END +STRINGTABLE +BEGIN + IDC_VUMETER "Global VU Meter (Click to reset clip indicator)" +END + #endif // English (United States) resources ///////////////////////////////////////////////////////////////////////////// Modified: trunk/OpenMPT/mptrack/res/MAINBAR.BMP =================================================================== (Binary files differ) Modified: trunk/OpenMPT/mptrack/resource.h =================================================================== --- trunk/OpenMPT/mptrack/resource.h 2013-04-07 22:43:38 UTC (rev 1772) +++ trunk/OpenMPT/mptrack/resource.h 2013-04-07 23:23:15 UTC (rev 1773) @@ -942,6 +942,7 @@ #define IDC_PROMPT 2440 #define IDC_SLIDER_NUMBUFFERS 2454 #define IDC_EDIT_STATISTICS 2455 +#define IDC_VUMETER 2456 #define IDC_STATIC_BUFFERLENGTH 2457 #define IDC_STATIC_UPDATEINTERVAL 2458 #define IDC_COMBO_UPDATEINTERVAL 2459 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |