📄 videoio_8h-source.html
字号:
00787 <span class="keyword">virtual</span> BOOL IsOpen();00788 00791 <span class="keyword">virtual</span> BOOL Close();00792 00795 <span class="keyword">virtual</span> <a class="code" href="classPStringList.html">PStringList</a> GetDeviceNames() <span class="keyword">const</span>;00796 00799 <span class="keyword">virtual</span> BOOL EndFrame();00800 00801 <span class="keyword">protected</span>:00802 <span class="keywordtype">unsigned</span> frameNumber;00803 };00804 00805 <span class="preprocessor">#endif // SHOULD_BE_MOVED_TO_PLUGIN</span>00806 <span class="preprocessor"></span><a name="l00809"></a><a class="code" href="classPVideoInputDevice.html">00809</a> <span class="keyword">class </span><a class="code" href="classPVideoInputDevice.html">PVideoInputDevice</a> : <span class="keyword">public</span> <a class="code" href="classPVideoDevice.html">PVideoDevice</a>00810 {00811 <a class="code" href="object_8h.html#a27">PCLASSINFO</a>(<a class="code" href="classPVideoInputDevice.html">PVideoInputDevice</a>, <a class="code" href="classPVideoDevice.html">PVideoDevice</a>);00812 00813 <span class="keyword">public</span>:00816 <span class="comment">//PVideoInputDevice();</span>00817 <a name="l00820"></a><a class="code" href="classPVideoInputDevice.html#a0">00820</a> <a class="code" href="classPVideoInputDevice.html#a0">~PVideoInputDevice</a>() { <a class="code" href="classPVideoInputDevice.html#a3">Close</a>(); }00821 00825 <span class="keyword">static</span> <a class="code" href="classPStringList.html">PStringList</a> <a class="code" href="classPVideoInputDevice.html#d0">GetDriverNames</a>(<a class="code" href="classPPluginManager.html">PPluginManager</a> * pluginMgr = NULL);00826 00830 <span class="keyword">static</span> <a class="code" href="classPStringList.html">PStringList</a> <a class="code" href="classPVideoInputDevice.html#d1">GetDriversDeviceNames</a>(00831 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &driverName,00832 <a class="code" href="classPPluginManager.html">PPluginManager</a> * pluginMgr = NULL00833 );00834 00838 <span class="keyword">static</span> <a class="code" href="classPVideoInputDevice.html">PVideoInputDevice</a> *<a class="code" href="classPVideoInputDevice.html#d2">CreateDevice</a>(00839 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &driverName,00840 <a class="code" href="classPPluginManager.html">PPluginManager</a> * pluginMgr = NULL00841 );00842 00843 <span class="comment">/* Return the matching video input device that corresponds to the devicename.</span>00844 <span class="comment"> So, for "fake" return a device that will generate fake video.</span>00845 <span class="comment"> For "Phillips 680 webcam" (eg) will return appropriate grabber.</span>00846 <span class="comment"> Note that Phillips will return the appropriate grabber also.</span>00847 <span class="comment"> */</span>00848 <span class="keyword">static</span> <a class="code" href="classPVideoInputDevice.html">PVideoInputDevice</a> *<a class="code" href="classPVideoInputDevice.html#d3">CreateDeviceByName</a>(<span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> &<a class="code" href="classPVideoDevice.html#n0">deviceName</a>,00849 <a class="code" href="classPPluginManager.html">PPluginManager</a> * pluginMgr = NULL00850 );00851 00855 <span class="keyword">static</span> <a class="code" href="classPVideoInputDevice.html">PVideoInputDevice</a> *<a class="code" href="classPVideoInputDevice.html#d4">CreateOpenedDevice</a>(00856 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & driverName,00857 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & <a class="code" href="classPVideoDevice.html#n0">deviceName</a>,00858 BOOL startImmediate = TRUE,00859 <a class="code" href="classPPluginManager.html">PPluginManager</a> * pluginMgr = NULL00860 );00861 00864 <span class="keyword">virtual</span> BOOL <a class="code" href="classPVideoInputDevice.html#a1">CanCaptureVideo</a>() <span class="keyword">const</span>;00865 00868 <span class="keyword">virtual</span> BOOL <a class="code" href="classPVideoInputDevice.html#a2">Open</a>(00869 <span class="keyword">const</span> <a class="code" href="classPString.html">PString</a> & <a class="code" href="classPVideoDevice.html#n0">deviceName</a>, 00870 BOOL startImmediate = TRUE 00871 ) = 0;00872 <a name="l00873"></a><a class="code" href="classPVideoInputDevice.html#a3">00873</a> <span class="keyword">virtual</span> BOOL <a class="code" href="classPVideoInputDevice.html#a3">Close</a>(00874 ) { <span class="keywordflow">return</span> TRUE; }00875 00878 <span class="keyword">virtual</span> BOOL <a class="code" href="classPVideoInputDevice.html#a4">IsCapturing</a>() = 0;00879 00885 <span class="keyword">virtual</span> PINDEX <a class="code" href="classPVideoInputDevice.html#a5">GetMaxFrameBytes</a>() = 0;00886 00889 <span class="keyword">virtual</span> BOOL <a class="code" href="classPVideoInputDevice.html#a6">GetFrame</a>(00890 <a class="code" href="classPBYTEArray.html">PBYTEArray</a> & frame00891 ) = 0;00892 00895 <span class="keyword">virtual</span> BOOL <a class="code" href="classPVideoInputDevice.html#a7">GetFrameData</a>(00896 BYTE * buffer, 00897 PINDEX * bytesReturned = NULL 00898 ) = 0;00899 00902 <span class="keyword">virtual</span> BOOL <a class="code" href="classPVideoInputDevice.html#a8">GetFrameDataNoDelay</a>(00903 BYTE * buffer, 00904 PINDEX * bytesReturned = NULL 00905 ) = 0;00906 00909 <span class="keyword">virtual</span> BOOL <a class="code" href="classPVideoInputDevice.html#a9">TestAllFormats</a>() = 0;00910 };00911 00913 <span class="comment">//</span>00914 <span class="comment">// declare macros and structures needed for video input plugins</span>00915 <span class="comment">//</span>00916 <a name="l00917"></a><a class="code" href="classPVideoInputDevicePluginServiceDescriptor.html">00917</a> <span class="keyword">class </span><a class="code" href="classPVideoInputDevicePluginServiceDescriptor.html">PVideoInputDevicePluginServiceDescriptor</a> : <span class="keyword">public</span> <a class="code" href="classPPluginServiceDescriptor.html">PPluginServiceDescriptor</a>00918 {00919 <span class="keyword">public</span>:<a name="l00920"></a><a class="code" href="classPVideoInputDevicePluginServiceDescriptor.html#a0">00920</a> <a class="code" href="classPVideoInputDevicePluginServiceDescriptor.html#a0">PVideoInputDevicePluginServiceDescriptor</a>(00921 <span class="keywordtype">unsigned</span> (*_GetVersion)(),00922 <a class="code" href="classPVideoInputDevice.html">PVideoInputDevice</a> *(*_CreateInstance)(),00923 <a class="code" href="classPStringList.html">PStringList</a> (*_GetDeviceNames)()00924 )00925 : <a class="code" href="classPPluginServiceDescriptor.html">PPluginServiceDescriptor</a>(_GetVersion),00926 <a class="code" href="classPVideoInputDevicePluginServiceDescriptor.html#m0">CreateInstance</a>(_CreateInstance),00927 <a class="code" href="classPVideoInputDevicePluginServiceDescriptor.html#m1">GetDeviceNames</a>(_GetDeviceNames)00928 { }00929 00930 <a class="code" href="classPVideoInputDevice.html">PVideoInputDevice</a> *(*CreateInstance)();00931 <a class="code" href="classPStringList.html">PStringList</a> (*<a class="code" href="classPVideoInputDevicePluginServiceDescriptor.html#m1">GetDeviceNames</a>) ();00932 };00933 00934 <a name="l00935"></a><a class="code" href="videoio_8h.html#a0">00935</a> <span class="preprocessor">#define PCREATE_VIDINPUT_SERVICE_DESCRIPTOR(className, versionFn) \</span>00936 <span class="preprocessor">PVideoInputDevice * className##_CreateInstance () \</span>00937 <span class="preprocessor">{ \</span>00938 <span class="preprocessor"> return new className; \</span>00939 <span class="preprocessor">} \</span>00940 <span class="preprocessor">\</span>00941 <span class="preprocessor">PStringList className##_GetDeviceNames () \</span>00942 <span class="preprocessor">{ \</span>00943 <span class="preprocessor"> return className::GetInputDeviceNames(); \</span>00944 <span class="preprocessor">} \</span>00945 <span class="preprocessor">\</span>00946 <span class="preprocessor">PVideoInputDevicePluginServiceDescriptor className##_descriptor(\</span>00947 <span class="preprocessor"> versionFn, \</span>00948 <span class="preprocessor"> className##_CreateInstance, \</span>00949 <span class="preprocessor"> className##_GetDeviceNames \</span>00950 <span class="preprocessor">); \</span>00951 <span class="preprocessor"></span><a name="l00952"></a><a class="code" href="videoio_8h.html#a1">00952</a> <span class="preprocessor"></span><span class="preprocessor">#define PCREATE_VIDINPUT_PLUGIN(name, className) \</span>00953 <span class="preprocessor">PCREATE_PLUGIN_VERSION_FN(name, PVideoInputDevice) \</span>00954 <span class="preprocessor">PCREATE_VIDINPUT_SERVICE_DESCRIPTOR(className, PPLUGIN_VERSION_FN(name, PVideoInputDevice)) \</span>00955 <span class="preprocessor">PCREATE_PLUGIN(name, PVideoInputDevice, &className##_descriptor)</span>00956 <span class="preprocessor"></span>00958 <span class="comment">//</span>00959 <span class="comment">// declare macros and structures needed for video output plugins</span>00960 <span class="comment">//</span>00961 <a name="l00962"></a><a class="code" href="classPVideoOutputDevicePluginServiceDescriptor.html">00962</a> <span class="keyword">class </span><a class="code" href="classPVideoOutputDevicePluginServiceDescriptor.html">PVideoOutputDevicePluginServiceDescriptor</a> : <span class="keyword">public</span> <a class="code" href="classPPluginServiceDescriptor.html">PPluginServiceDescriptor</a>00963 {00964 <span class="keyword">public</span>:<a name="l00965"></a><a class="code" href="classPVideoOutputDevicePluginServiceDescriptor.html#a0">00965</a> <a class="code" href="classPVideoOutputDevicePluginServiceDescriptor.html#a0">PVideoOutputDevicePluginServiceDescriptor</a>(00966 <span class="keywordtype">unsigned</span> (*_GetVersion)(),00967 <a class="code" href="classPVideoOutputDevice.html">PVideoOutputDevice</a> *(*_CreateInstance)(),00968 <a class="code" href="classPStringList.html">PStringList</a> (*_GetDeviceNames)()00969 )00970 : <a class="code" href="classPPluginServiceDescriptor.html">PPluginServiceDescriptor</a>(_GetVersion),00971 <a class="code" href="classPVideoOutputDevicePluginServiceDescriptor.html#m0">CreateInstance</a>(_CreateInstance),00972 <a class="code" href="classPVideoOutputDevicePluginServiceDescriptor.html#m1">GetDeviceNames</a>(_GetDeviceNames)00973 { }00974 00975 <a class="code" href="classPVideoOutputDevice.html">PVideoOutputDevice</a> *(*CreateInstance)();00976 <a class="code" href="classPStringList.html">PStringList</a> (*<a class="code" href="classPVideoOutputDevicePluginServiceDescriptor.html#m1">GetDeviceNames</a>) ();00977 };00978 00979 <a name="l00980"></a><a class="code" href="videoio_8h.html#a2">00980</a> <span class="preprocessor">#define PCREATE_VIDOUTPUT_SERVICE_DESCRIPTOR(className, versionFn) \</span>00981 <span class="preprocessor">PVideoOutputDevice * className##_CreateInstance () \</span>00982 <span class="preprocessor">{ \</span>00983 <span class="preprocessor"> return new className; \</span>00984 <span class="preprocessor">} \</span>00985 <span class="preprocessor">\</span>00986 <span class="preprocessor">PStringList className##_GetDeviceNames () \</span>00987 <span class="preprocessor">{ \</span>00988 <span class="preprocessor"> return className::GetOutputDeviceNames(); \</span>00989 <span class="preprocessor">} \</span>00990 <span class="preprocessor">\</span>00991 <span class="preprocessor">PVideoOutputDevicePluginServiceDescriptor className##_descriptor(\</span>00992 <span class="preprocessor"> versionFn, \</span>00993 <span class="preprocessor"> className##_CreateInstance, \</span>00994 <span class="preprocessor"> className##_GetDeviceNames \</span>00995 <span class="preprocessor">); \</span>00996 <span class="preprocessor"></span><a name="l00997"></a><a class="code" href="videoio_8h.html#a3">00997</a> <span class="preprocessor"></span><span class="preprocessor">#define PCREATE_VIDOUTPUT_PLUGIN(name, className) \</span>00998 <span class="preprocessor">PCREATE_PLUGIN_VERSION_FN(name, PVideoOutputDevice) \</span>00999 <span class="preprocessor">PCREATE_VIDOUTPUT_SERVICE_DESCRIPTOR(className, PPLUGIN_VERSION_FN(name, PVideoOutputDevice)) \</span>01000 <span class="preprocessor">PCREATE_PLUGIN(name, PVideoOutputDevice, &className##_descriptor)</span>01001 <span class="preprocessor"></span>01002 <span class="preprocessor">#endif // _PVIDEOIO</span>01003 <span class="preprocessor"></span>01004 <span class="comment">// End Of File ///////////////////////////////////////////////////////////////</span></pre></div><hr><address style="align: right;"><small>Generated on Wed Sep 29 22:44:12 2004 for PWLib by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -