SkyWay for Linux
読み取り中…
検索中…
一致する文字列を見つけられません
device_manager.hpp
1//
2// device_manager.hpp
3// skyway
4//
5// Created by iorar on 2023/11/01.
6// Copyright © 2023 NTT Communications. All rights reserved.
7//
8
9#ifndef SKYWAY_MEDIA_DEVICE_MANAGER_HPP_
10#define SKYWAY_MEDIA_DEVICE_MANAGER_HPP_
11
12#include <api/create_peerconnection_factory.h>
13#include <api/media_stream_interface.h>
14#include <audio/audio_transport_impl.h>
15#include <common_audio/resampler/include/push_resampler.h>
16#include <modules/audio_device/include/audio_device.h>
17#include <modules/audio_mixer/audio_mixer_impl.h>
18#include <modules/video_capture/video_capture.h>
19#include <pc/local_audio_source.h>
20
21#include "skyway/media/capturer_video_source.hpp"
22
23namespace skyway {
24namespace media {
25
28public:
30 struct AudioDevice {
31 int index;
32 std::string name;
33 };
35 struct VideoDevice {
36 int index;
37 std::string name;
38 std::string unique_id;
39 webrtc::VideoCaptureCapability capability;
40 };
41 static rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> GetPeerConnectionFactory();
43 static std::vector<AudioDevice> GetRecordDevices();
44
46 static std::vector<AudioDevice> GetPlayoutDevices();
47
49 static std::vector<VideoDevice> GetVideoDevices();
50
52 static bool SetRecordingDevice(AudioDevice device);
53
55 static bool SetPlayoutDevice(AudioDevice device);
56
58 static rtc::scoped_refptr<webrtc::AudioTrackInterface> CreateAudioTrack();
59 static rtc::scoped_refptr<webrtc::VideoTrackInterface> CreateVideoTrack(
60 rtc::scoped_refptr<CapturerVideoSource> capturer_ptr);
62
63private:
64 static rtc::scoped_refptr<webrtc::PeerConnectionFactoryInterface> peer_connection_factory_;
65 static rtc::scoped_refptr<webrtc::AudioDeviceModule> adm_;
66 static rtc::Thread *signaling_thread_;
67 static rtc::Thread *worker_thread_;
68 static std::unique_ptr<webrtc::TaskQueueFactory> task_queue_factory_;
69};
70
71} // namespace media
72} // namespace skyway
73
74#endif /* SKYWAY_MEDIA_DEVICE_MANAGER_HPP_ */
デバイスの情報を取得するクラス
Definition device_manager.hpp:27
static bool SetPlayoutDevice(AudioDevice device)
利用する音声出力デバイスの設定します。
static std::vector< AudioDevice > GetPlayoutDevices()
利用する音声出力デバイスの一覧を取得します。
static std::vector< AudioDevice > GetRecordDevices()
利用する音声入力デバイスの一覧を取得します。
static bool SetRecordingDevice(AudioDevice device)
利用する音声入力デバイスの設定します。
static std::vector< VideoDevice > GetVideoDevices()
利用する映像入力デバイスの一覧を取得します。
音声デバイス
Definition device_manager.hpp:30
映像デバイス
Definition device_manager.hpp:35