Ring Daemon 16.0.0
Loading...
Searching...
No Matches
recordable.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2004-2025 Savoir-faire Linux Inc.
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <https://www.gnu.org/licenses/>.
16 */
17#pragma once
18
19#include "media_recorder.h"
20
21#include <string>
22#include <memory>
23#include <mutex>
24
25namespace jami {
26
28{
29public:
30 Recordable();
31 virtual ~Recordable();
32
36 bool isRecording() const
37 {
38 std::lock_guard lk {apiMutex_};
39 return recording_;
40 }
41
47 virtual bool toggleRecording();
48
52 virtual void stopRecording();
53
57 virtual bool startRecording(const std::string& path);
58
62 virtual std::string getPath() const;
63
64 bool isAudioOnly() const;
65
66protected:
67 mutable std::mutex apiMutex_;
68 bool recording_ {false};
69 std::shared_ptr<MediaRecorder> recorder_;
70 bool isAudioOnly_ {false};
71};
72
73} // namespace jami
virtual bool startRecording(const std::string &path)
Start recording.
std::mutex apiMutex_
Definition recordable.h:67
virtual ~Recordable()
virtual void stopRecording()
Stop recording.
virtual bool toggleRecording()
This method must be implemented for this interface as calls and conferences have different behavior.
std::shared_ptr< MediaRecorder > recorder_
Definition recordable.h:69
bool isAudioOnly() const
virtual std::string getPath() const
Return the file path for this recording.
bool isRecording() const
Return recording state (true/false)
Definition recordable.h:36
void emitSignal(Args... args)
Definition ring_signal.h:64