diff options
author | aqua <aqua@iserlohn-fortress.net> | 2023-01-08 13:22:41 +0200 |
---|---|---|
committer | aqua <aqua@iserlohn-fortress.net> | 2023-01-08 13:22:41 +0200 |
commit | 6d25c63f29103f53fc151de0f2dfa91fdb852093 (patch) | |
tree | f5fb9e8d4fbc854377d82e69a8c88d0814149b13 /playlist/playlist.hpp | |
download | nyamp-master.tar.xz |
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; +}; |