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);
|