Agora C++ API Reference for All Platforms

Loading...
Searching...
No Matches
NGIAgoraVideoDeviceManager.h
1//
2// Agora SDK
3//
4// Copyright (c) 2025 Agora.io. All rights reserved.
5//
6
7#pragma once // NOLINT(build/header_guard)
8
9
10#include "AgoraBase.h"
11#include "AgoraRefPtr.h"
12#include <api/cpp/aosl_ares_class.h>
13
14namespace agora {
15namespace rtc {
16
20 static const int kVdmMaxDeviceSize = 260;
21
25 class VideoDeviceInfo {
26public:
30 char deviceId[kVdmMaxDeviceSize];
34 char deviceName[kVdmMaxDeviceSize];
35
36 VideoDeviceInfo() {
37 memset(deviceId, 0, sizeof(deviceId));
38 memset(deviceName, 0, sizeof(deviceName));
39 }
40};
41
45 class IVideoDeviceManagerObserver
46{
47public:
48 virtual ~IVideoDeviceManagerObserver() {}
49
60 virtual void onVideoDeviceStateChanged(const char *deviceId, int deviceType, int deviceState) = 0;
61
62};
63
64
68 class INGVideoDeviceManager: public RefCountInterface {
69 public:
70
82 virtual int registerObserver(IVideoDeviceManagerObserver* observer, void(*safeDeleter)(IVideoDeviceManagerObserver*) = NULL, aosl_ref_t ares = AOSL_REF_INVALID) = 0;
83
91 virtual int unregisterObserver(IVideoDeviceManagerObserver* observer) = 0;
92
98 virtual int getNumberOfDevices() = 0;
99
106 virtual int getNumberOfCapabilities(const char* deviceId) = 0;
107
108
117 virtual int getCapability(const char* deviceId, const uint32_t capabilityIndex, VideoFormat& capability) = 0;
118
127 virtual int getDeviceInfo(int index, VideoDeviceInfo& deviceInfo) = 0;
128
129
130protected:
131 ~INGVideoDeviceManager() {}
132};
133
134} //namespace rtc
135} // namespace agora
agora::RefCountInterface
Definition AgoraRefPtr.h:31
agora::rtc::INGVideoDeviceManager
Definition NGIAgoraVideoDeviceManager.h:68
agora::rtc::INGVideoDeviceManager::getNumberOfCapabilities
virtual int getNumberOfCapabilities(const char *deviceId)=0
agora::rtc::INGVideoDeviceManager::unregisterObserver
virtual int unregisterObserver(IVideoDeviceManagerObserver *observer)=0
agora::rtc::INGVideoDeviceManager::getDeviceInfo
virtual int getDeviceInfo(int index, VideoDeviceInfo &deviceInfo)=0
agora::rtc::INGVideoDeviceManager::~INGVideoDeviceManager
~INGVideoDeviceManager()
Definition NGIAgoraVideoDeviceManager.h:131
agora::rtc::INGVideoDeviceManager::getNumberOfDevices
virtual int getNumberOfDevices()=0
agora::rtc::INGVideoDeviceManager::getCapability
virtual int getCapability(const char *deviceId, const uint32_t capabilityIndex, VideoFormat &capability)=0
agora::rtc::INGVideoDeviceManager::registerObserver
virtual int registerObserver(IVideoDeviceManagerObserver *observer, void(*safeDeleter)(IVideoDeviceManagerObserver *)=NULL, aosl_ref_t ares=AOSL_REF_INVALID)=0
agora::rtc::IVideoDeviceManagerObserver
Definition NGIAgoraVideoDeviceManager.h:46
agora::rtc::IVideoDeviceManagerObserver::onVideoDeviceStateChanged
virtual void onVideoDeviceStateChanged(const char *deviceId, int deviceType, int deviceState)=0
agora::rtc::IVideoDeviceManagerObserver::~IVideoDeviceManagerObserver
virtual ~IVideoDeviceManagerObserver()
Definition NGIAgoraVideoDeviceManager.h:48
agora::rtc::VideoDeviceInfo
Definition NGIAgoraVideoDeviceManager.h:25
agora::rtc::VideoDeviceInfo::VideoDeviceInfo
VideoDeviceInfo()
Definition NGIAgoraVideoDeviceManager.h:36
agora::rtc::VideoDeviceInfo::deviceId
char deviceId[kVdmMaxDeviceSize]
Definition NGIAgoraVideoDeviceManager.h:30
agora::rtc::VideoDeviceInfo::deviceName
char deviceName[kVdmMaxDeviceSize]
Definition NGIAgoraVideoDeviceManager.h:34
agora::capability
Definition channel_capability_i.h:14
agora::rtc
Definition AgoraExtensions.h:5
agora::rtc::kVdmMaxDeviceSize
static const int kVdmMaxDeviceSize
Definition NGIAgoraVideoDeviceManager.h:20
agora
Definition AgoraAtomicOps.h:21
agora::rtc::VideoFormat
The format of the video frame.
Definition AgoraBase.h:3166