\hypertarget{classagora_1_1rtc_1_1_i_n_g_video_device_manager}{}\doxysection{agora\+::rtc\+::I\+N\+G\+Video\+Device\+Manager Class Reference}
\label{classagora_1_1rtc_1_1_i_n_g_video_device_manager}\index{agora::rtc::INGVideoDeviceManager@{agora::rtc::INGVideoDeviceManager}}


{\ttfamily \#include $<$N\+G\+I\+Agora\+Video\+Device\+Manager.\+h$>$}

Inheritance diagram for agora\+::rtc\+::I\+N\+G\+Video\+Device\+Manager\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classagora_1_1rtc_1_1_i_n_g_video_device_manager}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_n_g_video_device_manager_ae8e1f52cbe37e37e9818926de328ce26}{register\+Observer}} (\mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_device_manager_observer}{I\+Video\+Device\+Manager\+Observer}} $\ast$observer, void($\ast$safe\+Deleter)(\mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_device_manager_observer}{I\+Video\+Device\+Manager\+Observer}} $\ast$)=N\+U\+LL, aosl\+\_\+ref\+\_\+t ares=A\+O\+S\+L\+\_\+\+R\+E\+F\+\_\+\+I\+N\+V\+A\+L\+ID)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_n_g_video_device_manager_a632c89d7142f076b16f6451d76db7375}{unregister\+Observer}} (\mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_device_manager_observer}{I\+Video\+Device\+Manager\+Observer}} $\ast$observer)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_n_g_video_device_manager_a85edf9200b2b27f84155f6fe7b9190be}{get\+Number\+Of\+Devices}} ()=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_n_g_video_device_manager_a44fbd9484bdcd21712cbc527bea6f5b3}{get\+Number\+Of\+Capabilities}} (const char $\ast$device\+Id)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_n_g_video_device_manager_ad4660578c4c4ce3191f9c0c6e6ca958d}{get\+Capability}} (const char $\ast$device\+Id, const uint32\+\_\+t capability\+Index, \mbox{\hyperlink{structagora_1_1rtc_1_1_video_format}{Video\+Format}} \&capability)=0
\item 
virtual int \mbox{\hyperlink{classagora_1_1rtc_1_1_i_n_g_video_device_manager_a715a66052e4e41d23b57d4504a8cd3b1}{get\+Device\+Info}} (int index, \mbox{\hyperlink{classagora_1_1rtc_1_1_video_device_info}{Video\+Device\+Info}} \&device\+Info)=0
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The \mbox{\hyperlink{classagora_1_1rtc_1_1_i_n_g_video_device_manager}{I\+N\+G\+Video\+Device\+Manager}} class. 

\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_n_g_video_device_manager_ae8e1f52cbe37e37e9818926de328ce26}\label{classagora_1_1rtc_1_1_i_n_g_video_device_manager_ae8e1f52cbe37e37e9818926de328ce26}} 
\index{agora::rtc::INGVideoDeviceManager@{agora::rtc::INGVideoDeviceManager}!registerObserver@{registerObserver}}
\index{registerObserver@{registerObserver}!agora::rtc::INGVideoDeviceManager@{agora::rtc::INGVideoDeviceManager}}
\doxysubsubsection{\texorpdfstring{registerObserver()}{registerObserver()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+N\+G\+Video\+Device\+Manager\+::register\+Observer (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_device_manager_observer}{I\+Video\+Device\+Manager\+Observer}} $\ast$}]{observer,  }\item[{void($\ast$)(\mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_device_manager_observer}{I\+Video\+Device\+Manager\+Observer}} $\ast$)}]{safe\+Deleter = {\ttfamily NULL},  }\item[{aosl\+\_\+ref\+\_\+t}]{ares = {\ttfamily AOSL\+\_\+REF\+\_\+INVALID} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Registers an \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_device_manager_observer}{I\+Video\+Device\+Manager\+Observer}} object.

You need to implement the I\+Audio\+Device\+Manage\+Observer class in this method, and register callbacks according to your scenario.


\begin{DoxyParams}{Parameters}
{\em observer} & A pointer to the \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_device_manager_observer}{I\+Video\+Device\+Manager\+Observer}} class. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Success.
\item $<$ 0\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_n_g_video_device_manager_a632c89d7142f076b16f6451d76db7375}\label{classagora_1_1rtc_1_1_i_n_g_video_device_manager_a632c89d7142f076b16f6451d76db7375}} 
\index{agora::rtc::INGVideoDeviceManager@{agora::rtc::INGVideoDeviceManager}!unregisterObserver@{unregisterObserver}}
\index{unregisterObserver@{unregisterObserver}!agora::rtc::INGVideoDeviceManager@{agora::rtc::INGVideoDeviceManager}}
\doxysubsubsection{\texorpdfstring{unregisterObserver()}{unregisterObserver()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+N\+G\+Video\+Device\+Manager\+::unregister\+Observer (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_device_manager_observer}{I\+Video\+Device\+Manager\+Observer}} $\ast$}]{observer }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Releases the \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_device_manager_observer}{I\+Video\+Device\+Manager\+Observer}} object. 
\begin{DoxyParams}{Parameters}
{\em observer} & The pointer to the \mbox{\hyperlink{classagora_1_1rtc_1_1_i_video_device_manager_observer}{I\+Video\+Device\+Manager\+Observer}} class registered using \mbox{\hyperlink{classagora_1_1rtc_1_1_i_n_g_video_device_manager_ae8e1f52cbe37e37e9818926de328ce26}{register\+Observer}}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Success.
\item $<$ 0\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_n_g_video_device_manager_a85edf9200b2b27f84155f6fe7b9190be}\label{classagora_1_1rtc_1_1_i_n_g_video_device_manager_a85edf9200b2b27f84155f6fe7b9190be}} 
\index{agora::rtc::INGVideoDeviceManager@{agora::rtc::INGVideoDeviceManager}!getNumberOfDevices@{getNumberOfDevices}}
\index{getNumberOfDevices@{getNumberOfDevices}!agora::rtc::INGVideoDeviceManager@{agora::rtc::INGVideoDeviceManager}}
\doxysubsubsection{\texorpdfstring{getNumberOfDevices()}{getNumberOfDevices()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+N\+G\+Video\+Device\+Manager\+::get\+Number\+Of\+Devices (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets the number of video devices. \begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The number of video devices. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_n_g_video_device_manager_a44fbd9484bdcd21712cbc527bea6f5b3}\label{classagora_1_1rtc_1_1_i_n_g_video_device_manager_a44fbd9484bdcd21712cbc527bea6f5b3}} 
\index{agora::rtc::INGVideoDeviceManager@{agora::rtc::INGVideoDeviceManager}!getNumberOfCapabilities@{getNumberOfCapabilities}}
\index{getNumberOfCapabilities@{getNumberOfCapabilities}!agora::rtc::INGVideoDeviceManager@{agora::rtc::INGVideoDeviceManager}}
\doxysubsubsection{\texorpdfstring{getNumberOfCapabilities()}{getNumberOfCapabilities()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+N\+G\+Video\+Device\+Manager\+::get\+Number\+Of\+Capabilities (\begin{DoxyParamCaption}\item[{const char $\ast$}]{device\+Id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets the number of capabilities. 
\begin{DoxyParams}{Parameters}
{\em device\+Id} & The device ID. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The number of capabilities. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_n_g_video_device_manager_ad4660578c4c4ce3191f9c0c6e6ca958d}\label{classagora_1_1rtc_1_1_i_n_g_video_device_manager_ad4660578c4c4ce3191f9c0c6e6ca958d}} 
\index{agora::rtc::INGVideoDeviceManager@{agora::rtc::INGVideoDeviceManager}!getCapability@{getCapability}}
\index{getCapability@{getCapability}!agora::rtc::INGVideoDeviceManager@{agora::rtc::INGVideoDeviceManager}}
\doxysubsubsection{\texorpdfstring{getCapability()}{getCapability()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+N\+G\+Video\+Device\+Manager\+::get\+Capability (\begin{DoxyParamCaption}\item[{const char $\ast$}]{device\+Id,  }\item[{const uint32\+\_\+t}]{capability\+Index,  }\item[{\mbox{\hyperlink{structagora_1_1rtc_1_1_video_format}{Video\+Format}} \&}]{capability }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets the capability of a specified device. 
\begin{DoxyParams}{Parameters}
{\em device\+Id} & The device ID. \\
\hline
{\em capability\+Index} & The capability index of the device. \\
\hline
{\em capability} & The reference to the video capability. See \mbox{\hyperlink{structagora_1_1rtc_1_1_video_format}{Video\+Format}}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item The capability of the device. 
\end{DoxyItemize}
\end{DoxyReturn}
\mbox{\Hypertarget{classagora_1_1rtc_1_1_i_n_g_video_device_manager_a715a66052e4e41d23b57d4504a8cd3b1}\label{classagora_1_1rtc_1_1_i_n_g_video_device_manager_a715a66052e4e41d23b57d4504a8cd3b1}} 
\index{agora::rtc::INGVideoDeviceManager@{agora::rtc::INGVideoDeviceManager}!getDeviceInfo@{getDeviceInfo}}
\index{getDeviceInfo@{getDeviceInfo}!agora::rtc::INGVideoDeviceManager@{agora::rtc::INGVideoDeviceManager}}
\doxysubsubsection{\texorpdfstring{getDeviceInfo()}{getDeviceInfo()}}
{\footnotesize\ttfamily virtual int agora\+::rtc\+::\+I\+N\+G\+Video\+Device\+Manager\+::get\+Device\+Info (\begin{DoxyParamCaption}\item[{int}]{index,  }\item[{\mbox{\hyperlink{classagora_1_1rtc_1_1_video_device_info}{Video\+Device\+Info}} \&}]{device\+Info }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}

Gets the device information. 
\begin{DoxyParams}{Parameters}
{\em index} & The index of the device. \\
\hline
{\em device\+Info} & The device information. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\begin{DoxyItemize}
\item 0\+: Success.
\item $<$ 0\+: Failure. 
\end{DoxyItemize}
\end{DoxyReturn}
