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 "
apparmor/ubuntu.h
"
23
24
#include <
core/media/service.h
>
25
26
#include "
cover_art_resolver.h
"
27
#include "
keyed_player_store.h
"
28
#include "
service_traits.h
"
29
30
#include <core/dbus/skeleton.h>
31
32
#include <memory>
33
34
namespace
core
35
{
36
namespace
ubuntu
37
{
38
namespace
media
39
{
40
class
ServiceSkeleton
:
public
core::dbus::Skeleton
<core::ubuntu::media::Service>
41
{
42
public
:
43
// Creation time arguments go here.
44
struct
Configuration
45
{
46
std::shared_ptr<Service>
impl
;
47
KeyedPlayerStore::Ptr
player_store
;
48
helper::ExternalServices
&
external_services
;
49
CoverArtResolver
cover_art_resolver
;
50
};
51
52
ServiceSkeleton
(
const
Configuration
& configuration);
53
~ServiceSkeleton
();
54
55
// From media::Service
56
std::shared_ptr<Player>
create_session
(
const
Player::Configuration
&);
57
void
detach_session
(
const
std::string&,
const
Player::Configuration
&);
58
std::shared_ptr<Player>
reattach_session
(
const
std::string&,
const
Player::Configuration
&);
59
void
destroy_session
(
const
std::string&,
const
media::Player::Configuration
&);
60
std::shared_ptr<Player>
create_fixed_session
(
const
std::string& name,
const
Player::Configuration
&);
61
std::shared_ptr<Player>
resume_session
(
Player::PlayerKey
);
62
void
pause_other_sessions
(
Player::PlayerKey
key);
63
64
void
run
();
65
void
stop
();
66
67
private
:
68
struct
Private;
69
std::shared_ptr<Private> d;
70
};
71
}
72
}
73
}
74
75
#endif // CORE_UBUNTU_MEDIA_SERVICE_SKELETON_H_
core::ubuntu::media::ServiceSkeleton::Configuration::player_store
KeyedPlayerStore::Ptr player_store
Definition:
service_skeleton.h:47
core::ubuntu::media::ServiceSkeleton::Configuration::cover_art_resolver
CoverArtResolver cover_art_resolver
Definition:
service_skeleton.h:49
core::ubuntu::media::helper::ExternalServices
Definition:
external_services.h:41
core::ubuntu::media::Player::PlayerKey
uint32_t PlayerKey
Definition:
player.h:47
service_traits.h
ubuntu.h
core
Definition:
player.h:33
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:44
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::reattach_session
std::shared_ptr< Player > reattach_session(const std::string &, const Player::Configuration &)
core::ubuntu::media::ServiceSkeleton::Configuration::external_services
helper::ExternalServices & external_services
Definition:
service_skeleton.h:48
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:37
core::ubuntu::media::ServiceSkeleton::stop
void stop()
service.h
core::ubuntu::media::ServiceSkeleton::detach_session
void detach_session(const std::string &, const Player::Configuration &)
Skeleton
core::ubuntu::media::ServiceSkeleton::Configuration::impl
std::shared_ptr< Service > impl
Definition:
service_skeleton.h:46
core::ubuntu::media::ServiceSkeleton::destroy_session
void destroy_session(const std::string &, const media::Player::Configuration &)
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:40
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 Mon Apr 27 2015 23:48:55 for Music Hub by
1.8.9.1