lmms
Cross-platform music production software
Loading...
Searching...
No Matches
lmms::TapTempo Class Reference

#include <TapTempo.h>

Inheritance diagram for lmms::TapTempo:
lmms::ToolPlugin lmms::Plugin lmms::Model lmms::JournallingObject lmms::SerializingObject

Public Member Functions

 TapTempo ()
void tap (bool play)
void sync ()
void reset ()
double bpm () const
QString nodeName () const override
void saveSettings (QDomDocument &, QDomElement &) override
void loadSettings (const QDomElement &) override
gui::PluginView * instantiateView (QWidget *) override
 Create a view for the model.
Public Member Functions inherited from lmms::ToolPlugin
 ToolPlugin (const Descriptor *_descriptor, Model *_parent)
 ~ToolPlugin () override=default
Public Member Functions inherited from lmms::Plugin
 Plugin (const Descriptor *descriptor, Model *parent, const Descriptor::SubPluginFeatures::Key *key=nullptr)
 Constructor of a plugin.
 ~Plugin () override=default
QString displayName () const override
 Return display-name out of sub plugin or descriptor.
const PixmapLoader * logo () const
 Return logo out of sub plugin or descriptor.
Type type () const
 Return plugin type.
const Descriptor * descriptor () const
 Return plugin Descriptor.
const Descriptor::SubPluginFeatures::Key & key () const
virtual void loadFile (const QString &file)
gui::PluginView * createView (QWidget *parent)
 Create a view for the model.
Public Member Functions inherited from lmms::Model
 Model (Model *parent, QString displayName=QString(), bool defaultConstructed=false)
 ~Model () override=default
bool isDefaultConstructed () const
Model * parentModel () const
virtual void setDisplayName (const QString &displayName)
virtual QString fullDisplayName () const
Public Member Functions inherited from lmms::JournallingObject
 JournallingObject ()
 ~JournallingObject () override
jo_id_t id () const
void saveJournallingState (const bool newState)
void restoreJournallingState ()
void addJournalCheckPoint ()
QDomElement saveState (QDomDocument &_doc, QDomElement &_parent) override
void restoreState (const QDomElement &_this) override
bool isJournalling () const
void setJournalling (const bool _sr)
bool testAndSetJournalling (const bool newState)
bool isJournallingStateStackEmpty () const
Public Member Functions inherited from lmms::SerializingObject
 SerializingObject ()
virtual ~SerializingObject ()
void setHook (SerializingObjectHook *_hook)
SerializingObjectHook * hook ()

Private Types

using clock = std::chrono::steady_clock

Private Attributes

std::chrono::time_point< clock > m_lastTap
std::array< std::chrono::milliseconds, MaxIntervals > m_intervals
int m_beat = 0
int m_taps = 0
double m_bpm = 0

Static Private Attributes

static constexpr auto MaxIntervals = 3

Additional Inherited Members

Public Types inherited from lmms::Plugin
enum class  Type {
  Instrument , Effect , ImportFilter , ExportFilter ,
  Tool , Library , Other , Undefined = 255
}
using DescriptorList = QList<Descriptor*>
Signals inherited from lmms::Model
void dataChanged ()
void dataUnchanged ()
void propertiesChanged ()
Static Public Member Functions inherited from lmms::ToolPlugin
static ToolPlugin * instantiate (const QString &_plugin_name, Model *_parent)
Static Public Member Functions inherited from lmms::Plugin
static Plugin * instantiateWithKey (const QString &pluginName, Model *parent, const Descriptor::SubPluginFeatures::Key *key, bool keyFromDnd=false)
static Plugin * instantiate (const QString &pluginName, Model *parent, void *data)
Protected Member Functions inherited from lmms::Plugin
void collectErrorForUI (QString errMsg)
Protected Member Functions inherited from lmms::JournallingObject
void changeID (jo_id_t _id)

Member Typedef Documentation

◆ clock

using lmms::TapTempo::clock = std::chrono::steady_clock
private

Constructor & Destructor Documentation

◆ TapTempo()

lmms::TapTempo::TapTempo ( )

Member Function Documentation

◆ bpm()

double lmms::TapTempo::bpm ( ) const

◆ instantiateView()

gui::PluginView * lmms::TapTempo::instantiateView ( QWidget * )
inlineoverridevirtual

Create a view for the model.

Implements lmms::Plugin.

◆ loadSettings()

void lmms::TapTempo::loadSettings ( const QDomElement & )
inlineoverridevirtual

◆ nodeName()

QString lmms::TapTempo::nodeName ( void ) const
overridevirtual

◆ reset()

void lmms::TapTempo::reset ( )

◆ saveSettings()

void lmms::TapTempo::saveSettings ( QDomDocument & ,
QDomElement &  )
inlineoverridevirtual

◆ sync()

void lmms::TapTempo::sync ( )

◆ tap()

void lmms::TapTempo::tap ( bool play)

Member Data Documentation

◆ m_beat

int lmms::TapTempo::m_beat = 0
private

◆ m_bpm

double lmms::TapTempo::m_bpm = 0
private

◆ m_intervals

std::array<std::chrono::milliseconds, MaxIntervals> lmms::TapTempo::m_intervals
private

◆ m_lastTap

std::chrono::time_point<clock> lmms::TapTempo::m_lastTap
private

◆ m_taps

int lmms::TapTempo::m_taps = 0
private

◆ MaxIntervals

auto lmms::TapTempo::MaxIntervals = 3
staticconstexprprivate

The documentation for this class was generated from the following files: