Music Hub
..
A session-wide music playback service
null_track_list.h
Go to the documentation of this file.
1
/*
2
*
3
* This program is free software: you can redistribute it and/or modify it
4
* under the terms of the GNU Lesser General Public License version 3,
5
* as published by the Free Software Foundation.
6
*
7
* This program is distributed in the hope that it will be useful,
8
* but WITHOUT ANY WARRANTY; without even the implied warranty of
9
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10
* GNU Lesser General Public License for more details.
11
*
12
* You should have received a copy of the GNU Lesser General Public License
13
* along with this program. If not, see <http://www.gnu.org/licenses/>.
14
*
15
* Authored by: Thomas Voß <thomas.voss@canonical.com>
16
*/
17
18
#ifndef CORE_MEDIA_NULL_TRACK_LIST_H_
19
#define CORE_MEDIA_NULL_TRACK_LIST_H_
20
21
#include <
core/media/track.h
>
22
#include <
core/media/track_list.h
>
23
24
namespace
core
25
{
26
namespace
ubuntu
27
{
28
namespace
media
29
{
30
// A helper type to replace the playlist implementation below.
31
// Please note that this type is only a temporary manner. Ideally,
32
// the actual implementation should be injected as a dependency from the
33
// outside.
34
struct
NullTrackList
:
public
media::TrackList
35
{
36
NullTrackList
() =
default
;
37
38
bool
has_next
()
39
{
40
return
false
;
41
}
42
43
media::Track::Id
next
()
44
{
45
return
media::Track::Id
{};
46
}
47
48
media::Track::UriType
query_uri_for_track
(
const
media::Track::Id
&)
49
{
50
return
media::Track::UriType
{};
51
}
52
53
const
core::Property<bool>&
can_edit_tracks
()
const override
54
{
55
return
props_and_sigs
.can_edit_tracks;
56
}
57
58
const
core::Property<Container>&
tracks
()
const override
59
{
60
return
props_and_sigs
.tracks;
61
}
62
63
virtual
media::Track::MetaData
query_meta_data_for_track
(
const
media::Track::Id
&)
override
64
{
65
return
media::Track::MetaData
{};
66
}
67
68
void
add_track_with_uri_at
(
const
media::Track::UriType
&,
const
media::Track::Id
&,
bool
)
override
69
{
70
}
71
72
void
remove_track
(
const
media::Track::Id
&)
override
73
{
74
}
75
76
void
go_to
(
const
media::Track::Id
&)
override
77
{
78
}
79
80
const
core::Signal<void>&
on_track_list_replaced
()
const override
81
{
82
return
props_and_sigs
.on_track_list_replaced;
83
}
84
85
const
core::Signal<media::Track::Id>&
on_track_added
()
const override
86
{
87
return
props_and_sigs
.on_track_added;
88
}
89
90
const
core::Signal<media::Track::Id>&
on_track_removed
()
const override
91
{
92
return
props_and_sigs
.on_track_removed;
93
}
94
95
const
core::Signal<media::Track::Id>&
on_track_changed
()
const override
96
{
97
return
props_and_sigs
.on_track_changed;
98
}
99
100
struct
101
{
102
core::Property<bool>
can_edit_tracks
;
103
core::Property<TrackList::Container>
tracks
;
104
core::Signal<void>
on_track_list_replaced
;
105
core::Signal<media::Track::Id>
on_track_added
;
106
core::Signal<media::Track::Id>
on_track_removed
;
107
core::Signal<media::Track::Id>
on_track_changed
;
108
}
props_and_sigs
;
109
};
110
}
111
}
112
}
113
114
#endif // CORE_MEDIA_NULL_TRACK_LIST_H_
core::ubuntu::media::NullTrackList::can_edit_tracks
const core::Property< bool > & can_edit_tracks() const override
Definition:
null_track_list.h:53
core::ubuntu::media::NullTrackList::query_meta_data_for_track
virtual media::Track::MetaData query_meta_data_for_track(const media::Track::Id &) override
Definition:
null_track_list.h:63
core::ubuntu::media::NullTrackList::can_edit_tracks
core::Property< bool > can_edit_tracks
Definition:
null_track_list.h:102
core::ubuntu::media::NullTrackList::tracks
core::Property< TrackList::Container > tracks
Definition:
null_track_list.h:103
core
Definition:
player.h:33
core::ubuntu::media::NullTrackList::on_track_list_replaced
const core::Signal< void > & on_track_list_replaced() const override
Definition:
null_track_list.h:80
core::ubuntu::media::NullTrackList::on_track_removed
const core::Signal< media::Track::Id > & on_track_removed() const override
Definition:
null_track_list.h:90
core::ubuntu::media::NullTrackList::on_track_added
core::Signal< media::Track::Id > on_track_added
Definition:
null_track_list.h:105
core::ubuntu::media::Track::Id
std::string Id
Definition:
track.h:41
core::ubuntu::media::Track::MetaData
Definition:
track.h:43
core::ubuntu::media::NullTrackList::add_track_with_uri_at
void add_track_with_uri_at(const media::Track::UriType &, const media::Track::Id &, bool) override
Definition:
null_track_list.h:68
core::ubuntu::media
Definition:
player.h:37
track_list.h
core::ubuntu::media::NullTrackList::next
media::Track::Id next()
Definition:
null_track_list.h:43
core::ubuntu::media::NullTrackList::props_and_sigs
struct core::ubuntu::media::NullTrackList::@21 props_and_sigs
core::ubuntu::media::NullTrackList::NullTrackList
NullTrackList()=default
core::ubuntu::media::NullTrackList::query_uri_for_track
media::Track::UriType query_uri_for_track(const media::Track::Id &)
Definition:
null_track_list.h:48
core::ubuntu::media::NullTrackList::on_track_changed
const core::Signal< media::Track::Id > & on_track_changed() const override
Definition:
null_track_list.h:95
core::ubuntu::media::NullTrackList::remove_track
void remove_track(const media::Track::Id &) override
Definition:
null_track_list.h:72
core::ubuntu::media::NullTrackList::has_next
bool has_next()
Definition:
null_track_list.h:38
core::ubuntu::media::NullTrackList
Definition:
null_track_list.h:34
core::ubuntu::media::Track::UriType
std::string UriType
Definition:
track.h:40
core::ubuntu::media::NullTrackList::on_track_list_replaced
core::Signal< void > on_track_list_replaced
Definition:
null_track_list.h:104
core::ubuntu::media::NullTrackList::tracks
const core::Property< Container > & tracks() const override
Definition:
null_track_list.h:58
core::ubuntu::media::NullTrackList::go_to
void go_to(const media::Track::Id &) override
Definition:
null_track_list.h:76
core::ubuntu::media::NullTrackList::on_track_added
const core::Signal< media::Track::Id > & on_track_added() const override
Definition:
null_track_list.h:85
track.h
core::ubuntu::media::NullTrackList::on_track_removed
core::Signal< media::Track::Id > on_track_removed
Definition:
null_track_list.h:106
core::ubuntu::media::TrackList
Definition:
track_list.h:39
core::ubuntu::media::NullTrackList::on_track_changed
core::Signal< media::Track::Id > on_track_changed
Definition:
null_track_list.h:107
src
core
media
null_track_list.h
Generated on Thu Jul 30 2015 19:26:55 for Music Hub by
1.8.9.1