Music Hub  ..
A session-wide music playback service
recorder_observer.h
Go to the documentation of this file.
1 /*
2  * Copyright © 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_RECORDER_OBSERVER_H_
20 #define CORE_UBUNTU_MEDIA_RECORDER_OBSERVER_H_
21 
22 #include <core/property.h>
23 
24 #include <memory>
25 
26 namespace core
27 {
28 namespace ubuntu
29 {
30 namespace media
31 {
32 // All known states of the recorder
33 enum class RecordingState
34 {
35  // No active recording
36  stopped,
37  // We have an active recording session
38  started
39 };
40 
41 // A RecorderObserver allows for monitoring the recording state
42 // of the service.
44 {
45  // To save us some typing.
46  typedef std::shared_ptr<RecorderObserver> Ptr;
47 
48  RecorderObserver() = default;
49  RecorderObserver(const RecorderObserver&) = delete;
50  virtual ~RecorderObserver() = default;
51  RecorderObserver& operator=(const RecorderObserver&) = delete;
52 
53  // Getable/observable property describing the recording state of the system.
54  virtual const core::Property<RecordingState>& recording_state() const = 0;
55 };
56 
57 // Creates an instance of interface RecorderObserver relying on
58 // default services offered by the platform we are currently running on.
60 }
61 }
62 }
63 
64 #endif // CORE_UBUNTU_MEDIA_RECORDER_OBSERVER_H_
Definition: player.h:33
RecorderObserver::Ptr make_platform_default_recorder_observer()
std::shared_ptr< RecorderObserver > Ptr