Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include <VimbaCPP/Source/RawFeature.h>
00030
00031 namespace AVT {
00032 namespace VmbAPI {
00033
00034 RawFeature::RawFeature( const VmbFeatureInfo_t *featureInfo, FeatureContainer *pFeatureContainer )
00035 : BaseFeature( featureInfo, pFeatureContainer )
00036 {
00037 }
00038
00039 VmbErrorType RawFeature::GetValue( VmbUchar_t *pValue, VmbUint32_t &rnSize, VmbUint32_t &rnSizeFilled ) const
00040 {
00041 VmbError_t res;
00042 VmbUint32_t nSize;
00043
00044 if ( NULL == m_pFeatureContainer )
00045 {
00046 return VmbErrorDeviceNotOpen;
00047 }
00048
00049 res = VmbFeatureRawLengthQuery( m_pFeatureContainer->GetHandle(), m_featureInfo.name.c_str(), &nSize );
00050
00051 if ( NULL != pValue )
00052 {
00053 if ( rnSize < nSize )
00054 {
00055 return VmbErrorMoreData;
00056 }
00057
00058 if ( VmbErrorSuccess == res )
00059 {
00060 res = VmbFeatureRawGet( m_pFeatureContainer->GetHandle(), m_featureInfo.name.c_str(), (char*)pValue, rnSize, &rnSizeFilled );
00061 }
00062 }
00063 else
00064 {
00065 rnSize = nSize;
00066 }
00067
00068 return (VmbErrorType)res;
00069 }
00070
00071 VmbErrorType RawFeature::SetValue( const VmbUchar_t *pValue, VmbUint32_t nSize )
00072 {
00073 if ( NULL == m_pFeatureContainer )
00074 {
00075 return VmbErrorDeviceNotOpen;
00076 }
00077
00078 if ( NULL == pValue )
00079 {
00080 return VmbErrorBadParameter;
00081 }
00082
00083 return (VmbErrorType)VmbFeatureRawSet( m_pFeatureContainer->GetHandle(), m_featureInfo.name.c_str(), (const char*)pValue, nSize );
00084 }
00085
00086 }}