diff options
Diffstat (limited to 'playlist/playlist.hpp')
-rw-r--r-- | playlist/playlist.hpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/playlist/playlist.hpp b/playlist/playlist.hpp new file mode 100644 index 0000000..4c9e385 --- /dev/null +++ b/playlist/playlist.hpp @@ -0,0 +1,39 @@ +/* ============================================================ + * SPDX-License-Identifier: GPL-3.0-only + * Copyright (C) 2023 aqua <aqua@iserlohn-fortress.net> + * ============================================================ */ + +#pragma once + +#include <QObject> +#include <QUrl> + +class PlaylistModel; +class Playlist : public QObject { + Q_OBJECT +public: + explicit Playlist(QObject *parent = nullptr); + +public slots: + void appendUrl(const QUrl &url); + +public: + void appendList(const QList<QUrl> &urllist) + { + for (const auto &url : urllist) appendUrl(url); + } + + [[nodiscard]] QUrl operator[](const int index) const; + [[nodiscard]] auto count() const { return m_urls.count(); } + [[nodiscard]] auto model() { return m_model; } + +signals: + void mediaAboutToBeInserted(int start, int end); + void mediaInserted(); + void mediaAboutToBeRemoved(int start, int end); + void mediaRemoved(); + +private: + QVector<QUrl> m_urls; + PlaylistModel *m_model; +}; |