Music Hub
..
A session-wide music playback service
service_skeleton.h
Go to the documentation of this file.
1
/*
2
* Copyright © 2013-2014 Canonical Ltd.
3
*
4
* This program is free software: you can redistribute it and/or modify it
5
* under the terms of the GNU Lesser General Public License version 3,
6
* as published by the Free Software Foundation.
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU Lesser General Public License for more details.
12
*
13
* You should have received a copy of the GNU Lesser General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
15
*
16
* Authored by: Thomas Voß <thomas.voss@canonical.com>
17
*/
18
19
#ifndef CORE_UBUNTU_MEDIA_SERVICE_SKELETON_H_
20
#define CORE_UBUNTU_MEDIA_SERVICE_SKELETON_H_
21
22
#include <
core/media/service.h
>
23
24
#include "
cover_art_resolver.h
"
25
#include "
keyed_player_store.h
"
26
#include "
service_traits.h
"
27
28
#include <core/dbus/skeleton.h>
29
30
#include <memory>
31
32
namespace
core
33
{
34
namespace
ubuntu
35
{
36
namespace
media
37
{
38
class
ServiceSkeleton
:
public
core::dbus::Skeleton
<core::ubuntu::media::Service>
39
{
40
public
:
41
// Creation time arguments go here.
42
struct
Configuration
43
{
44
std::shared_ptr<Service>
impl
;
45
KeyedPlayerStore::Ptr
player_store
;
46
CoverArtResolver
cover_art_resolver
;
47
};
48
49
ServiceSkeleton
(
const
Configuration
& configuration);
50
~ServiceSkeleton
();
51
52
// From media::Service
53
std::shared_ptr<Player>
create_session
(
const
Player::Configuration
&);
54
std::shared_ptr<Player>
create_fixed_session
(
const
std::string& name,
const
Player::Configuration
&);
55
std::shared_ptr<Player>
resume_session
(
Player::PlayerKey
);
56
void
pause_other_sessions
(
Player::PlayerKey
key);
57
58
void
run
();
59
void
stop
();
60
61
private
:
62
struct
Private;
63
std::shared_ptr<Private> d;
64
};
65
}
66
}
67
}
68
69
#endif // CORE_UBUNTU_MEDIA_SERVICE_SKELETON_H_
core::ubuntu::media::ServiceSkeleton::Configuration::player_store
KeyedPlayerStore::Ptr player_store
Definition:
service_skeleton.h:45
core::ubuntu::media::ServiceSkeleton::Configuration::cover_art_resolver
CoverArtResolver cover_art_resolver
Definition:
service_skeleton.h:46
core::ubuntu::media::Player::PlayerKey
uint32_t PlayerKey
Definition:
player.h:46
service_traits.h
core
Definition:
player.h:32
cover_art_resolver.h
core::ubuntu::media::ServiceSkeleton::~ServiceSkeleton
~ServiceSkeleton()
core::ubuntu::media::Player::Configuration
Definition:
player_configuration.h:28
core::ubuntu::media::ServiceSkeleton::Configuration
Definition:
service_skeleton.h:42
keyed_player_store.h
core::ubuntu::media::ServiceSkeleton::run
void run()
core::ubuntu::media::ServiceSkeleton::resume_session
std::shared_ptr< Player > resume_session(Player::PlayerKey)
core::ubuntu::media::ServiceSkeleton::ServiceSkeleton
ServiceSkeleton(const Configuration &configuration)
core::ubuntu::media::ServiceSkeleton::pause_other_sessions
void pause_other_sessions(Player::PlayerKey key)
core::ubuntu::media::CoverArtResolver
std::function< std::string(const std::string &, const std::string &, const std::string &)> CoverArtResolver
Definition:
cover_art_resolver.h:41
core::ubuntu::media
Definition:
player.h:36
core::ubuntu::media::ServiceSkeleton::stop
void stop()
service.h
Skeleton
core::ubuntu::media::ServiceSkeleton::Configuration::impl
std::shared_ptr< Service > impl
Definition:
service_skeleton.h:44
core::ubuntu::media::ServiceSkeleton::create_fixed_session
std::shared_ptr< Player > create_fixed_session(const std::string &name, const Player::Configuration &)
core::ubuntu::media::ServiceSkeleton
Definition:
service_skeleton.h:38
core::ubuntu::media::KeyedPlayerStore::Ptr
std::shared_ptr< KeyedPlayerStore > Ptr
Definition:
keyed_player_store.h:40
core::ubuntu::media::ServiceSkeleton::create_session
std::shared_ptr< Player > create_session(const Player::Configuration &)
src
core
media
service_skeleton.h
Generated on Fri Mar 20 2015 13:30:42 for Music Hub by
1.8.9.1