TTKMusicPlayer  4.3.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
MusicLrcAnalysis Class Reference

The class of the core lrc analysis. More...

#include <musiclrcanalysis.h>

+ Inheritance diagram for MusicLrcAnalysis:

Public Types

enum  State { State::Success, State::Failed }
 
enum  Format {
  Format::Type01, Format::Type02, Format::Type03, Format::Type04,
  Format::Type05, Format::Type06, Format::Type07, Format::Type08,
  Format::Type09, Format::Type10, Format::Type11, Format::Type12,
  Format::Type13, Format::Type14
}
 

Public Member Functions

 MusicLrcAnalysis (QObject *parent=nullptr)
 
void setMaximum (int max) noexcept
 
int maximum () const noexcept
 
int middle () const noexcept
 
State loadFromFile (const QString &path)
 
State loadFromBuffer (const TTKIntStringMap &data)
 
void save ()
 
void setTimePosition (qint64 pos)
 
qint64 findTimePosition (qint64 time)
 
void setCurrentIndex (int index) noexcept
 
int currentIndex () const noexcept
 
void setFilePath (const QString &name) noexcept
 
QString filePath () const noexcept
 
void clear () noexcept
 
bool isValid () const noexcept
 
bool isEmpty () const noexcept
 
int count () const noexcept
 
QString text (int index) const
 
bool findText (qint64 current, qint64 total, QString &pre, QString &last, qint64 &interval) const
 
qint64 findTime (int index) const
 
qint64 findTime (const QStringList &ts) const
 
QString dataString () const
 
QStringList dataList () const
 

Private Member Functions

State initialize ()
 
void matchLrcLine (const QString &oneLine)
 
void matchLrcLine (const QString &oneLine, const QString &cap, const QString &first, const QString &second)
 
void matchLrcLine (const QString &oneLine, QString cap, const QString &splite)
 
void matchLrcLine (const QString &oneLine, const QString &cap, const QString &first, const QString &second, const QString &third)
 

Private Attributes

int m_maximum
 
int m_currentIndex
 
QString m_filePath
 
TTKIntStringMap m_lrcContainer
 
QStringList m_currentShowLrcContainer
 

Detailed Description

The class of the core lrc analysis.

Author
Greedysky greed.nosp@m.ysky.nosp@m.@163..nosp@m.com

Definition at line 29 of file musiclrcanalysis.h.

Member Enumeration Documentation

Enumerator
Type01 

[xx:xx.xxx]

Type02 

[xx:xx.xx]

Type03 

[xx:xx.x]

Type04 

[xx:xx:xxx]

Type05 

[xx:xx:xx]

Type06 

[xx:xx:x]

Type07 

[xx:xx]

Type08 

[xx.xx.xxx]

Type09 

[xx.xx.xx]

Type10 

[xx.xx.x]

Type11 

[xx.xx:xxx]

Type12 

[xx.xx:xx]

Type13 

[xx.xx:x]

Type14 

[xx.xx]

Definition at line 39 of file musiclrcanalysis.h.

Enumerator
Success 

open file success

Failed 

open file failed

Definition at line 33 of file musiclrcanalysis.h.

Constructor & Destructor Documentation

MusicLrcAnalysis::MusicLrcAnalysis ( QObject *  parent = nullptr)
explicit

Object constructor.

Definition at line 9 of file musiclrcanalysis.cpp.

Member Function Documentation

void MusicLrcAnalysis::clear ( )
noexcept

Clear current lrc cache.

Definition at line 176 of file musiclrcanalysis.cpp.

References m_currentIndex, m_currentShowLrcContainer, and m_lrcContainer.

Referenced by loadFromBuffer(), and loadFromFile().

int MusicLrcAnalysis::count ( ) const
noexcept

Check current container count.

Definition at line 193 of file musiclrcanalysis.cpp.

References m_lrcContainer.

Referenced by MusicLrcContainerForInterior::mouseMoveEvent(), and MusicLrcContainerForInterior::paintEvent().

int MusicLrcAnalysis::currentIndex ( ) const
inlinenoexcept
QStringList MusicLrcAnalysis::dataList ( ) const

Get all lrc from container.

Definition at line 298 of file musiclrcanalysis.cpp.

References m_lrcContainer.

Referenced by MusicLrcTranslatedWidget::downloadDataFinished(), and MusicLrcContainerForInterior::showLrcPosterWidget().

QString MusicLrcAnalysis::dataString ( ) const

Get all lrc from container.

Definition at line 288 of file musiclrcanalysis.cpp.

References m_lrcContainer, and TTK_LINEFEED.

Referenced by MusicLrcContainerForInterior::lrcCopyClipboard(), and MusicLrcTranslatedWidget::setCurrentSongName().

QString MusicLrcAnalysis::filePath ( ) const
inlinenoexcept
bool MusicLrcAnalysis::findText ( qint64  current,
qint64  total,
QString &  pre,
QString &  last,
qint64 &  interval 
) const

Get current lrc and next lrc in container by current time.

Definition at line 213 of file musiclrcanalysis.cpp.

References isEmpty(), and m_lrcContainer.

Referenced by MusicLrcMakerWidget::positionChanged(), and MusicRightAreaWidget::updateCurrentLrc().

qint64 MusicLrcAnalysis::findTime ( int  index) const
qint64 MusicLrcAnalysis::findTime ( const QStringList &  ts) const

Get current time by texts.

Definition at line 271 of file musiclrcanalysis.cpp.

References findTime(), m_currentShowLrcContainer, and middle().

qint64 MusicLrcAnalysis::findTimePosition ( qint64  time)
MusicLrcAnalysis::State MusicLrcAnalysis::initialize ( )
private

Init parameters.

Definition at line 303 of file musiclrcanalysis.cpp.

References Failed, m_currentShowLrcContainer, m_lrcContainer, middle(), and Success.

Referenced by loadFromBuffer(), and loadFromFile().

bool MusicLrcAnalysis::isEmpty ( ) const
noexcept
bool MusicLrcAnalysis::isValid ( ) const
noexcept
MusicLrcAnalysis::State MusicLrcAnalysis::loadFromBuffer ( const TTKIntStringMap data)

Set lrc container data from other raw data.

Definition at line 94 of file musiclrcanalysis.cpp.

References clear(), Failed, initialize(), and m_lrcContainer.

Referenced by MusicLrcMakerWidget::setCurrentThirdWidget().

MusicLrcAnalysis::State MusicLrcAnalysis::loadFromFile ( const QString &  path)
void MusicLrcAnalysis::matchLrcLine ( const QString &  oneLine)
private
void MusicLrcAnalysis::matchLrcLine ( const QString &  oneLine,
const QString &  cap,
const QString &  first,
const QString &  second 
)
private

Lrc analysis by match lrc line two[xx.(:)xx].

Definition at line 475 of file musiclrcanalysis.cpp.

References TTKRegularExpression::captured(), m_lrcContainer, TTKRegularExpression::match(), TTKRegularExpression::setPattern(), TTK_DN_M2MS, and TTK_DN_S2MS.

void MusicLrcAnalysis::matchLrcLine ( const QString &  oneLine,
QString  cap,
const QString &  splite 
)
private

Lrc analysis by match lrc line three[xx.xx.x(xx)][xx:xx:x(xx)].

Definition at line 490 of file musiclrcanalysis.cpp.

References m_lrcContainer, TTK_DN_M2MS, and TTK_DN_S2MS.

void MusicLrcAnalysis::matchLrcLine ( const QString &  oneLine,
const QString &  cap,
const QString &  first,
const QString &  second,
const QString &  third 
)
private

Lrc analysis by match lrc line three[xx.(:)xx.(:)x(xx)].

Definition at line 455 of file musiclrcanalysis.cpp.

References TTKRegularExpression::captured(), m_lrcContainer, TTKRegularExpression::match(), TTKRegularExpression::setPattern(), TTK_DN_M2MS, and TTK_DN_S2MS.

int MusicLrcAnalysis::maximum ( ) const
inlinenoexcept
int MusicLrcAnalysis::middle ( ) const
inlinenoexcept
void MusicLrcAnalysis::save ( )
void MusicLrcAnalysis::setCurrentIndex ( int  index)
inlinenoexcept
void MusicLrcAnalysis::setFilePath ( const QString &  name)
inlinenoexcept

Set current file path.

Definition at line 108 of file musiclrcanalysis.h.

References name.

Referenced by MusicLrcMakerWidget::setCurrentSongName().

void MusicLrcAnalysis::setMaximum ( int  max)
inlinenoexcept
void MusicLrcAnalysis::setTimePosition ( qint64  pos)

Set lrc time by pos, both + or - the same pos.

Definition at line 134 of file musiclrcanalysis.cpp.

References m_lrcContainer.

Referenced by MusicLrcMakerWidget::lrcPositionFaster(), MusicLrcMakerWidget::lrcPositionSlower(), and MusicLrcContainerForInterior::setTimePosition().

QString MusicLrcAnalysis::text ( int  index) const

Member Data Documentation

int MusicLrcAnalysis::m_currentIndex
private

Definition at line 179 of file musiclrcanalysis.h.

Referenced by clear(), findTimePosition(), isValid(), and text().

QStringList MusicLrcAnalysis::m_currentShowLrcContainer
private

Definition at line 182 of file musiclrcanalysis.h.

Referenced by clear(), findTime(), initialize(), isValid(), and text().

QString MusicLrcAnalysis::m_filePath
private

Definition at line 180 of file musiclrcanalysis.h.

Referenced by loadFromFile(), and save().

TTKIntStringMap MusicLrcAnalysis::m_lrcContainer
private
int MusicLrcAnalysis::m_maximum
private

Definition at line 179 of file musiclrcanalysis.h.

Referenced by findTime(), and isValid().


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