Fix time display (#3711)

Make Bar:Beat:Tick / Min:Sec:Msec agree with playhead
This commit is contained in:
Hyunjin Song
2017-11-15 13:42:26 +09:00
committed by Tres Finocchiaro
parent c9e5d3aef5
commit 57de274fe8
8 changed files with 63 additions and 29 deletions

View File

@@ -104,17 +104,36 @@ public:
inline int getMilliseconds() const
{
return m_elapsedMilliSeconds;
return m_elapsedMilliSeconds[m_playMode];
}
inline void setToTime( MidiTime const & midiTime )
inline int getMilliseconds(PlayModes playMode) const
{
m_elapsedMilliSeconds = midiTime.getTimeInMilliseconds(getTempo());
return m_elapsedMilliSeconds[playMode];
}
inline void setToTime(MidiTime const & midiTime)
{
m_elapsedMilliSeconds[m_playMode] = midiTime.getTimeInMilliseconds(getTempo());
m_playPos[m_playMode].setTicks(midiTime.getTicks());
}
inline void setToTime(MidiTime const & midiTime, PlayModes playMode)
{
m_elapsedMilliSeconds[playMode] = midiTime.getTimeInMilliseconds(getTempo());
m_playPos[playMode].setTicks(midiTime.getTicks());
}
inline void setToTimeByTicks(tick_t ticks)
{
m_elapsedMilliSeconds = MidiTime::ticksToMilliseconds(ticks, getTempo());
m_elapsedMilliSeconds[m_playMode] = MidiTime::ticksToMilliseconds(ticks, getTempo());
m_playPos[m_playMode].setTicks(ticks);
}
inline void setToTimeByTicks(tick_t ticks, PlayModes playMode)
{
m_elapsedMilliSeconds[playMode] = MidiTime::ticksToMilliseconds(ticks, getTempo());
m_playPos[playMode].setTicks(ticks);
}
inline int getTacts() const
@@ -376,7 +395,7 @@ private:
const Pattern* m_patternToPlay;
bool m_loopPattern;
double m_elapsedMilliSeconds;
double m_elapsedMilliSeconds[Mode_Count];
tick_t m_elapsedTicks;
tact_t m_elapsedTacts;

View File

@@ -72,8 +72,8 @@ public:
} ;
TimeLineWidget( int xoff, int yoff, float ppt, Song::PlayPos & pos,
const MidiTime & begin, QWidget * parent );
TimeLineWidget(int xoff, int yoff, float ppt, Song::PlayPos & pos,
const MidiTime & begin, Song::PlayModes mode, QWidget * parent);
virtual ~TimeLineWidget();
inline QColor const & getBarLineColor() const { return m_barLineColor; }
@@ -217,6 +217,7 @@ private:
float m_ppt;
Song::PlayPos & m_pos;
const MidiTime & m_begin;
const Song::PlayModes m_mode;
MidiTime m_loopPos[2];
MidiTime m_savedPos;