[Opalvoip-svn] SF.net SVN: opalvoip: [18739] ptlib/trunk
Brought to you by:
csoutheren,
rjongbloed
From: <sh...@us...> - 2007-10-22 18:37:26
|
Revision: 18739 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=18739&view=rev Author: shorne Date: 2007-10-22 11:36:06 -0700 (Mon, 22 Oct 2007) Log Message: ----------- Added ability to get device capabilities for Input Devices Modified Paths: -------------- ptlib/trunk/include/ptlib/videoio.h ptlib/trunk/src/ptlib/common/vfakeio.cxx ptlib/trunk/src/ptlib/msos/vfw.cxx Modified: ptlib/trunk/include/ptlib/videoio.h =================================================================== --- ptlib/trunk/include/ptlib/videoio.h 2007-10-22 18:33:45 UTC (rev 18738) +++ ptlib/trunk/include/ptlib/videoio.h 2007-10-22 18:36:06 UTC (rev 18739) @@ -267,6 +267,7 @@ #include <ptlib/plugin.h> #include <ptlib/pluginmgr.h> +#include <list> class PColourConverter; @@ -963,7 +964,16 @@ #endif // SHOULD_BE_MOVED_TO_PLUGIN +typedef struct { +public: + unsigned height; + unsigned width; + const char* format; + double fps; +} InputDeviceCapability; +typedef std::list<InputDeviceCapability> InputDeviceCapabilities; + /**This class defines a video input device. */ class PVideoInputDevice : public PVideoDevice @@ -1035,6 +1045,13 @@ BOOL startImmediate = TRUE ///< Immediately start display ); + /**Retrieve a list of Device Capabilities + */ + static BOOL GetDeviceCapabilities( + const PString & /*deviceName*/, ///< Name of device + InputDeviceCapabilities & /*caps*/ ///< List of supported capabilities + ) { return FALSE; } + /**Open the device given the device name. */ virtual BOOL Open( @@ -1089,6 +1106,8 @@ public: virtual PObject * CreateInstance(int /*userData*/) const { return new className; } virtual PStringList GetDeviceNames(int /*userData*/) const { return className::GetInputDeviceNames(); } + virtual BOOL GetDeviceCapabilities(const PString & deviceName, InputDeviceCapabilities & caps) const + { return className::GetDeviceCapabilities(deviceName,caps); } }; #define PCREATE_VIDINPUT_PLUGIN(name) \ Modified: ptlib/trunk/src/ptlib/common/vfakeio.cxx =================================================================== --- ptlib/trunk/src/ptlib/common/vfakeio.cxx 2007-10-22 18:33:45 UTC (rev 18738) +++ ptlib/trunk/src/ptlib/common/vfakeio.cxx 2007-10-22 18:36:06 UTC (rev 18739) @@ -1488,6 +1488,13 @@ virtual PStringList GetDeviceNames() const { return GetInputDeviceNames(); } + /**Retrieve a list of Device Capabilities + */ + static BOOL GetDeviceCapabilities( + const PString & /*deviceName*/, ///< Name of device + InputDeviceCapabilities & /*caps*/ ///< List of supported capabilities + ) { return FALSE; } + /**Get the maximum frame size in bytes. Note a particular device may be able to provide variable length Modified: ptlib/trunk/src/ptlib/msos/vfw.cxx =================================================================== --- ptlib/trunk/src/ptlib/msos/vfw.cxx 2007-10-22 18:33:45 UTC (rev 18738) +++ ptlib/trunk/src/ptlib/msos/vfw.cxx 2007-10-22 18:36:06 UTC (rev 18739) @@ -389,6 +389,13 @@ virtual PStringList GetDeviceNames() const { return GetInputDeviceNames(); } + /**Retrieve a list of Device Capabilities + */ + static BOOL GetDeviceCapabilities( + const PString & /*deviceName*/, ///< Name of device + InputDeviceCapabilities & /*caps*/ ///< List of supported capabilities + ) { return FALSE; } + /**Open the device given the device name. */ virtual BOOL Open( This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |