Files
SubWave/src/engine/MusicLibrary.h
T
2026-06-11 14:03:35 +02:00

36 lines
827 B
C++

#pragma once
#include <QObject>
#include <QList>
#include <QThread>
#include <QMutex>
#include "Track.h"
namespace engine {
class MusicLibrary : public QObject {
Q_OBJECT
public:
static const inline QStringList SUPPORTED_EXTS =
{ "mp3", "flac", "wav", "ogg", "aac", "m4a", "opus", "wma" };
explicit MusicLibrary(QObject *parent = nullptr);
const QList<engine::Track> &tracks() const;
const QString &rootPath() const;
void setRootPath(const QString &path);
void scan();
void sortByArtistTitle();
void shutdown();
signals:
void scanStarted();
void trackFound(const engine::Track &track);
void scanComplete(int count);
private:
QString m_root;
QList<engine::Track> m_tracks;
QThread *m_scanThread { nullptr };
QMutex m_mtx;
};
}