Music Hub
..
A session-wide music playback service
Loading...
Searching...
No Matches
track_list.h
Go to the documentation of this file.
1
/*
2
* Copyright © 2021-2022 UBports Foundation.
3
*
4
* Contact: Alberto Mardegan <mardy@users.sourceforge.net>
5
*
6
* This program is free software: you can redistribute it and/or modify it
7
* under the terms of the GNU Lesser General Public License version 3,
8
* as published by the Free Software Foundation.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU Lesser General Public License for more details.
14
*
15
* You should have received a copy of the GNU Lesser General Public License
16
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
#ifndef LOMIRI_MEDIAHUB_TRACK_LIST_H
20
#define LOMIRI_MEDIAHUB_TRACK_LIST_H
21
22
#include "
global.h
"
23
#include "
track.h
"
24
25
#include <QObject>
26
#include <QScopedPointer>
27
#include <QVector>
28
29
namespace
lomiri
{
30
namespace
MediaHub
{
31
32
class
PlayerPrivate
;
33
34
class
TrackListPrivate
;
35
class
MH_EXPORT
TrackList
:
public
QObject
36
{
37
Q_OBJECT
38
Q_DISABLE_COPY(
TrackList
)
39
40
public
:
41
TrackList
(
QObject
*parent =
nullptr
);
42
~TrackList
();
43
45
Q_PROPERTY(
bool
canEditTracks
READ
canEditTracks
46
NOTIFY
canEditTracksChanged
)
47
Q_PROPERTY(
int
currentTrack
READ
currentTrack
WRITE
goTo
48
NOTIFY
currentTrackChanged
)
49
50
const
QVector<Track> &
tracks
()
const
;
51
52
bool
canEditTracks
()
const
;
53
int
currentTrack
()
const
;
54
55
/*
56
* Unused:
57
* - query_meta_data_for_track()
58
* - query_uri_for_track() (can use `tracks()[index].url()`)
59
* - has_next()
60
* - has_previous()
61
* - next()
62
* - previous()
63
* - on_track_list_replaced() // Never emitted by the service
64
*
65
* FIXME: remove this comment?
66
* We don't want to allow other processes to modify our own playlist, and
67
* QtMultimedia does not provide a way to track another process's playlist.
68
* Therefore it looks like we can get away without all them.
69
*/
70
72
void
addTrackWithUriAt
(
const
QUrl &uri,
int
position,
bool
makeCurrent);
73
75
void
addTracksWithUriAt
(
const
QVector<QUrl> &uris,
int
position);
76
78
void
moveTrack
(
int
index,
int
to);
79
81
void
removeTrack
(
int
index);
82
84
void
goTo
(
int
index);
85
87
void
reset
();
88
89
Q_SIGNALS:
90
void
canEditTracksChanged
();
91
void
currentTrackChanged
();
// D-Bus: TrackChanged
92
93
void
tracksAdded
(
int
start,
int
end);
94
void
trackRemoved
(
int
index);
95
void
trackMoved
(
int
index,
int
to);
96
void
trackListReset
();
97
98
private
:
99
friend
class
PlayerPrivate
;
100
Q_DECLARE_PRIVATE(
TrackList
)
101
QScopedPointer<TrackListPrivate> d_ptr;
102
};
103
104
}
// namespace MediaHub
105
}
// namespace lomiri
106
107
#endif
// LOMIRI_MEDIAHUB_TRACK_LIST_H
QObject
lomiri::MediaHub::PlayerPrivate
Definition
player.cpp:83
lomiri::MediaHub::TrackListPrivate
Definition
track_list_p.h:32
lomiri::MediaHub::TrackList::tracksAdded
void tracksAdded(int start, int end)
lomiri::MediaHub::TrackList::goTo
void goTo(int index)
Definition
track_list.cpp:310
lomiri::MediaHub::TrackList::trackListReset
void trackListReset()
lomiri::MediaHub::TrackList::addTrackWithUriAt
void addTrackWithUriAt(const QUrl &uri, int position, bool makeCurrent)
Definition
track_list.cpp:285
lomiri::MediaHub::TrackList::currentTrack
int currentTrack
Definition
track_list.h:46
lomiri::MediaHub::TrackList::tracks
const QVector< Track > & tracks() const
Definition
track_list.cpp:267
lomiri::MediaHub::TrackList::trackRemoved
void trackRemoved(int index)
lomiri::MediaHub::TrackList::addTracksWithUriAt
void addTracksWithUriAt(const QVector< QUrl > &uris, int position)
Definition
track_list.cpp:292
lomiri::MediaHub::TrackList::trackMoved
void trackMoved(int index, int to)
lomiri::MediaHub::TrackList::removeTrack
void removeTrack(int index)
Definition
track_list.cpp:304
lomiri::MediaHub::TrackList::TrackList
TrackList(QObject *parent=nullptr)
Definition
track_list.cpp:259
lomiri::MediaHub::TrackList::canEditTracks
bool canEditTracks
Definition
track_list.h:45
lomiri::MediaHub::TrackList::PlayerPrivate
friend class PlayerPrivate
Definition
track_list.h:97
lomiri::MediaHub::TrackList::reset
void reset()
Definition
track_list.cpp:316
lomiri::MediaHub::TrackList::~TrackList
~TrackList()
lomiri::MediaHub::TrackList::moveTrack
void moveTrack(int index, int to)
Definition
track_list.cpp:298
lomiri::MediaHub::TrackList::currentTrackChanged
void currentTrackChanged()
lomiri::MediaHub::TrackList::canEditTracksChanged
void canEditTracksChanged()
global.h
MH_EXPORT
#define MH_EXPORT
Definition
global.h:27
track.h
lomiri::MediaHub
Definition
dbus_utils.h:25
lomiri
Definition
dbus_utils.h:24
src
lib
MediaHub
track_list.h
Generated on
for Music Hub by
1.15.0