You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.3 KiB
C

4 years ago
#ifndef __MV_TLFACTORY_H__
#define __MV_TLFACTORY_H__
#include "GenApi/Synch.h"
#include "MvInclude.h"
#include "MvDeviceBase.h"
namespace MvCamCtrl
{
class MV_CAMCTRL_API CTlFactory : public IDeviceFactory
{
public:
/// Retrieve the transport layer factory singleton
static CTlFactory& GetInstance();
/// Retrieve all available transport layers
unsigned int EnumerateTls();
/** @fn EnumDevices( unsigned int nTLayerType , MV_CC_DEVICE_INFO_LIST& stDevList )
* @brief ö<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param nTLayerType [IN] - ָ<EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>Э<EFBFBD><EFBFBD>
stDevList [OUT] - <EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>б<EFBFBD>
*
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MV_OK<EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
virtual int EnumDevices( unsigned int nTLayerType , MV_CC_DEVICE_INFO_LIST& stDevList );
/** @fn CreateDevice( const MV_CC_DEVICE_INFO& device )
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @param device [IN] - <EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>
*
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NULL
*/
virtual IMvDevice* CreateDevice( const MV_CC_DEVICE_INFO& device );
/** @fn DestroyDevice( IMvDevice* pDevice)
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>Դ
* @param pDevice [IN] - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @return <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>MV_OK<EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
virtual int DestroyDevice( IMvDevice* );
/** @fn IsDeviceAccessible( const MV_CC_DEVICE_INFO& deviceInfo)
* @brief <EFBFBD>ж<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><EFBFBD><EFBFBD>
* @param deviceInfo [IN] - ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
*
* @return <EFBFBD><EFBFBD><EFBFBD>Է<EFBFBD><EFBFBD>ʣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> true <EFBFBD><EFBFBD>û<EFBFBD><EFBFBD>Ȩ<EFBFBD>޻<EFBFBD><EFBFBD><EFBFBD>ѵ<EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> false
* @note <EFBFBD>ݲ<EFBFBD>֧<EFBFBD><EFBFBD>
*/
virtual bool IsDeviceAccessible( const MV_CC_DEVICE_INFO& deviceInfo);
~CTlFactory( void );
virtual unsigned int GetSDKVersion();
protected:
static CTlFactory m_sTLinstance;
GenApi::CLock m_cLock;
CTlRefs* m_pCreatedTls;
private:
CTlFactory( void );
CTlFactory& operator=( const CTlFactory& );
CTlFactory( const CTlFactory& );
};
}
#endif /* __MV_TLFACTORY_H__ */