1 #pragma once 2 3 #include <QObject> 4 #include <QString> 5 6 #include "control/controlobject.h" 7 8 class VelocityController; 9 class RateIIFilter; 10 11 class PositionScratchController : public QObject { 12 public: 13 PositionScratchController(const QString& group); 14 virtual ~PositionScratchController(); 15 16 void process(double currentSample, double releaseRate, 17 int iBufferSize, double baserate); 18 bool isEnabled(); 19 double getRate(); 20 void notifySeek(double currentSample); 21 22 private: 23 const QString m_group; 24 ControlObject* m_pScratchEnable; 25 ControlObject* m_pScratchPosition; 26 ControlObject* m_pMasterSampleRate; 27 VelocityController* m_pVelocityController; 28 RateIIFilter* m_pRateIIFilter; 29 bool m_bScratching; 30 bool m_bEnableInertia; 31 double m_dLastPlaypos; 32 double m_dPositionDeltaSum; 33 double m_dTargetDelta; 34 double m_dStartScratchPosition; 35 double m_dRate; 36 double m_dMoveDelay; 37 double m_dMouseSampeTime; 38 }; 39