|
|
|
|
|
|
|
|
|
|
|
#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__ */
|