audiowaveformview: multithreaded waveform rendering

This commit is contained in:
itsmattkc
2020-11-30 08:18:11 +11:00
parent f48c8b552b
commit b39565cff4
4 changed files with 158 additions and 70 deletions
+5 -5
View File
@@ -129,27 +129,27 @@ void SeekableWidget::SetScroll(int s)
update();
}
double SeekableWidget::ScreenToUnitFloat(int screen)
double SeekableWidget::ScreenToUnitFloat(int screen) const
{
return (screen + scroll_) / GetScale() / timebase_dbl();
}
int64_t SeekableWidget::ScreenToUnit(int screen)
int64_t SeekableWidget::ScreenToUnit(int screen) const
{
return qFloor(ScreenToUnitFloat(screen));
}
int64_t SeekableWidget::ScreenToUnitRounded(int screen)
int64_t SeekableWidget::ScreenToUnitRounded(int screen) const
{
return qRound64(ScreenToUnitFloat(screen));
}
int SeekableWidget::UnitToScreen(int64_t unit)
int SeekableWidget::UnitToScreen(int64_t unit) const
{
return qFloor(static_cast<double>(unit) * GetScale() * timebase_dbl()) - scroll_;
}
int SeekableWidget::TimeToScreen(const rational &time)
int SeekableWidget::TimeToScreen(const rational &time) const
{
return qFloor(time.toDouble() * GetScale()) - scroll_;
}
+5 -5
View File
@@ -60,14 +60,14 @@ protected:
TimelinePoints* timeline_points() const;
double ScreenToUnitFloat(int screen);
double ScreenToUnitFloat(int screen) const;
int64_t ScreenToUnit(int screen);
int64_t ScreenToUnitRounded(int screen);
int64_t ScreenToUnit(int screen) const;
int64_t ScreenToUnitRounded(int screen) const;
int UnitToScreen(int64_t unit);
int UnitToScreen(int64_t unit) const;
int TimeToScreen(const rational& time);
int TimeToScreen(const rational& time) const;
void DrawPlayhead(QPainter* p, int x, int y);