From: <sv...@op...> - 2024-06-29 13:33:44
|
Author: sagamusix Date: Sat Jun 29 15:33:32 2024 New Revision: 21114 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=21114 Log: [Imp] Increase precision of time display in status bar to show 10ths of seconds (https://bugs.openmpt.org/view.php?id=1791). Modified: trunk/OpenMPT/mptrack/MainFrm.cpp trunk/OpenMPT/mptrack/Mainfrm.h Modified: trunk/OpenMPT/mptrack/MainFrm.cpp ============================================================================== --- trunk/OpenMPT/mptrack/MainFrm.cpp Sat Jun 29 15:29:07 2024 (r21113) +++ trunk/OpenMPT/mptrack/MainFrm.cpp Sat Jun 29 15:33:32 2024 (r21114) @@ -61,10 +61,10 @@ OPENMPT_NAMESPACE_BEGIN -#define TIMERID_GUI 1 -#define TIMERID_NOTIFY 2 +static constexpr uint32 TIMERID_GUI = 1; +static constexpr uint32 TIMERID_NOTIFY = 2; -#define MPTTIMER_PERIOD 200 +static constexpr uint32 MPTTIMER_PERIOD = 100; #if defined(MPT_BUILD_DEBUG) #define MPT_ENABLE_PLAYBACK_TEST_MENU @@ -2113,10 +2113,9 @@ IdleHandlerSounddevice(); // Display Time in status bar - samplecount_t time = 0; if(m_pSndFile != nullptr && m_pSndFile->GetSampleRate() != 0) { - time = m_pSndFile->GetTotalSampleCount() / m_pSndFile->GetSampleRate(); + samplecount_t time = Util::muldivr(m_pSndFile->GetTotalSampleCount(), 10, m_pSndFile->GetSampleRate()); if(time != m_dwTimeSec) { m_dwTimeSec = time; @@ -2222,8 +2221,9 @@ void CMainFrame::OnUpdateTime(CCmdUI *) { TCHAR s[64]; - wsprintf(s, _T("%u:%02u:%02u"), - m_dwTimeSec / 3600, (m_dwTimeSec / 60) % 60, m_dwTimeSec % 60); + auto timeSec = m_dwTimeSec / 10u; + wsprintf(s, _T("%u:%02u:%02u.%u"), + timeSec / 3600u, (timeSec / 60u) % 60u, timeSec % 60u, m_dwTimeSec % 10u); if(m_pSndFile != nullptr && m_pSndFile != &m_WaveFile && !m_pSndFile->IsPaused()) { @@ -2232,9 +2232,9 @@ { if(nPat < 10) _tcscat(s, _T(" ")); if(nPat < 100) _tcscat(s, _T(" ")); - wsprintf(s + _tcslen(s), _T(" [%d]"), nPat); + wsprintf(s + _tcslen(s), _T(" [%u]"), nPat); } - wsprintf(s + _tcslen(s), _T(" %dch"), m_nAvgMixChn); + wsprintf(s + _tcslen(s), _T(" %uch"), m_nAvgMixChn); } m_wndStatusBar.SetPaneText(m_wndStatusBar.CommandToIndex(ID_INDICATOR_TIME), s, TRUE); } Modified: trunk/OpenMPT/mptrack/Mainfrm.h ============================================================================== --- trunk/OpenMPT/mptrack/Mainfrm.h Sat Jun 29 15:29:07 2024 (r21113) +++ trunk/OpenMPT/mptrack/Mainfrm.h Sat Jun 29 15:33:32 2024 (r21114) @@ -281,7 +281,7 @@ void UpdateTree(CModDoc *pModDoc, UpdateHint hint, CObject *pHint = nullptr); void RefreshDlsBanks(); static CInputHandler* GetInputHandler() { return m_InputHandler; } - void SetElapsedTime(double t) { m_dwTimeSec = static_cast<samplecount_t>(t); } + void SetElapsedTime(double t) { m_dwTimeSec = mpt::saturate_cast<samplecount_t>(t * 10.0); } #if defined(MPT_ENABLE_UPDATE) bool ShowUpdateIndicator(const UpdateCheckResult &result, const CString &releaseVersion, const CString &infoURL, bool showHighlight); |