| layout | default-layout |
|---|---|
| title | CaptureVisionRouter Multiple-File Processing - Dynamsoft Capture Vision Router Module C++ Edition API |
| description | This page introduces APIs related to Multiple-File Processing by the CCaptureVisionRouter class of the Dynamsoft Capture Vision C++ Edition. |
| keywords | capture vision, multiple-file processing, api reference, C++ |
| needAutoGenerateSidebar | true |
| needGenerateH3Content | false |
| breadcrumbText | CVR C++ Multiple-File Processing |
| API Name | Description |
|---|---|
SetInput |
Sets an image source to provide images for consecutive processing. |
GetInput |
Gets the attached image source adapter object of the capture vision router. |
AddCaptureStateListener |
Adds an object that listens to the state changes of the capture process. |
RemoveCaptureStateListener |
Removes an object which listens to the state changes of the capture process. |
AddImageSourceStateListener |
Adds an object that listens to state changes of the image source. |
RemoveImageSourceStateListener |
Removes an object which listens to state changes of the image source. |
AddResultReceiver |
Adds an object as the receiver of captured results. |
RemoveResultReceiver |
Removes an object which was added as a receiver of captured results. |
AddResultFilter |
Adds an object as the filter of captured results. |
RemoveResultFilter |
Removes an object which was added as a filter of captured results. |
StartCapturing |
Starts to process images consecutively. |
StopCapturing |
Stops the consecutive processing. |
PauseCapturing |
Pauses the capture process. The current thread will be blocked until the capture process is resumed. |
ResumeCapturing |
Resumes the capture process. The current thread will be unblocked after the capture process is resumed. |
SwitchCapturingTemplate |
Switches the capturing template during the image processing workflow. |
Sets an image source to provide images for consecutive processing.
int SetInput(CImageSourceAdapter* pAdaptor);Parameters
[in] pAdaptor Specifies an object which has implemented the Image Source Adapter Interface.
Return Value
Returns an error code. Zero indicates success.
| Error Code | Value | Description |
|---|---|---|
| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
See Also
[CImageSourceAdapter]({{ site.dcvb_cpp_api }}core/basic-structures/image-source-adapter.html)
[CDirectoryFetcher]({{ site.dcvb_cpp_api }}utility/directory-fetcher.html)
[CFileFetcher]({{ site.dcvb_cpp_api }}utility/file-fetcher.html)
Gets the attached image source adapter object of the capture vision router.
CImageSourceAdapter* GetInput();Return Value
Returns the attached image source adapter object of the capture vision router.
See Also
[CImageSourceAdapter]({{ site.dcvb_cpp_api }}core/basic-structures/image-source-adapter.html)
[CDirectoryFetcher]({{ site.dcvb_cpp_api }}utility/directory-fetcher.html)
[CFileFetcher]({{ site.dcvb_cpp_api }}utility/file-fetcher.html)
Adds an object that listens to the state changes of the capture process.
int AddCaptureStateListener(CCaptureStateListener* listener);Parameters
[in] listener Specifies a listening object of the type CCaptureStateListener to be added.
Return Value
Returns an error code. Zero indicates success.
See Also
[CCaptureStateListener]({{ site.dcvb_cpp_api }}capture-vision-router/auxiliary-classes/capture-state-listener.html)
Removes an object which listens to the state changes of the capture process.
int RemoveCaptureStateListener(CCaptureStateListener* listener);Parameters
[in] listener Specifies a listening object of the type CCaptureStateListener to be removed.
Return Value
Returns an error code. Zero indicates success.
See Also
[CCaptureStateListener]({{ site.dcvb_cpp_api }}capture-vision-router/auxiliary-classes/capture-state-listener.html)
Adds an object that listens to state changes of the image source.
int AddImageSourceStateListener(CImageSourceStateListener* listener);Parameters
[in] listener Specifies a listening object of the type CImageSourceStateListener to be added.
Return Value
Returns an error code. Zero indicates success.
See Also
[CImageSourceStateListener]({{ site.dcvb_cpp_api }}capture-vision-router/auxiliary-classes/image-source-state-listener.html)
Removes an object which listens to state changes of the image source.
int RemoveImageSourceStateListener(CImageSourceStateListener* listener);Parameters
[in] listener Specifies a listening object of the type CImageSourceStateListener to be removed.
Return Value
Returns an error code. Zero indicates success.
See Also
[CImageSourceStateListener]({{ site.dcvb_cpp_api }}capture-vision-router/auxiliary-classes/image-source-state-listener.html)
Adds an object as the receiver of captured results.
int AddResultReceiver(CCapturedResultReceiver* receiver);Parameters
[in] receiver Specifies a receiver object of the type CCapturedResultReceiver to be added.
Return Value
Returns an error code. Zero indicates success.
See Also
[CCapturedResultReceiver]({{ site.dcvb_cpp_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html)
Removes an object which was added as a receiver of captured results.
int RemoveResultReceiver(CCapturedResultReceiver* receiver);Parameters
[in] receiver Specifies a receiver object of the type [CCapturedResultReceiver]({{ site.dcvb_cpp_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html) to be removed.
Return Value
Returns an error code. Zero indicates success.
See Also
[CCapturedResultReceiver]({{ site.dcvb_cpp_api }}capture-vision-router/auxiliary-classes/captured-result-receiver.html)
Adds an object as the filter of captured results.
int AddResultFilter(CCapturedResultFilter* filter);Parameters
[in] filter Specifies a filter object of the type [CCapturedResultFilter]({{ site.dcvb_cpp_api }}capture-vision-router/auxiliary-classes/captured-result-filter.html) to be added.
Return Value
Returns an error code. Zero indicates success.
See Also
[CCapturedResultFilter]({{ site.dcvb_cpp_api }}capture-vision-router/auxiliary-classes/captured-result-filter.html)
Removes an object which was added as a filter of captured results.
int RemoveResultFilter(CCapturedResultFilter* filter);Parameters
[in] filter Specifies a filter object of the type [CCapturedResultFilter]({{ site.dcvb_cpp_api }}capture-vision-router/auxiliary-classes/captured-result-filter.html) to be removed.
Return Value
Returns an error code. Zero indicates success.
See Also
[CCapturedResultFilter]({{ site.dcvb_cpp_api }}capture-vision-router/auxiliary-classes/captured-result-filter.html)
Starts to process images consecutively.
int StartCapturing(const char* templateName = "", bool waitForThreadExit = false, char errorMsgBuffer[]=NULL, const int errorMsgBufferLen=0);Parameters
[in] templateName Specifies a CaptureVisionTemplate to use for capturing.
[in] waitForThreadExit Indicates whether to wait for the capture process to complete before returning. The default value is false.
[out] errorMsgBuffer Stores any error messages generated during the capturing process. If no buffer is provided, the error messages will not be output.
[in] errorMsgBufferLen Specifies the length of the provided error message buffer. If no buffer is provided, this parameter is ignored.
Remarks
- There are two types of
CaptureVisionTemplate: the [preset ones]({{ site.dcvb_cpp_api }}capture-vision-router/auxiliary-classes/preset-template.html) which come with the SDK and the custom ones that get initialized when the user calls [InitSettings]({{ site.dcvb_cpp_api }}capture-vision-router/settings.html#initsettings) / [InitSettingsFromFile]({{ site.dcvb_cpp_api }}capture-vision-router/settings.html#initsettingsfromfile). - When using a custom template, the parameter
templateNameshould be the name of the [CaptureVisionTemplateobject]({{ site.dcvb_parameters }}file/capture-vision-template.html) in the JSON template file. - Please be aware that the preset
CaptureVisionTemplateswill be overwritten should the user callInitSettings/InitSettingsFromFileand pass his own settings. - If parameter
templateNameis not specified, the preset one named 'Default' will be used. However, if the preset ones have been overwritten as described above, the firstCaptureVisionTemplatefrom the user's own settings will be used instead.
Return Value
The function returns an integer value representing the success or failure of the capturing process. A value of 0 indicates success, while a non-zero value indicates failure. If an error message buffer is provided, any error messages generated during the capturing process will be stored in the buffer.
| Error Code | Value | Description |
|---|---|---|
| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
| EC_NO_IMAGE_SOURCE | -10063 | Can not start capturing before you set the input. |
Stops the multiple-file processing.
void StopCapturing(bool waitForRemainingTasks = true, bool waitForThreadExit = true);Parameters
[in] waitForRemainingTasks Indicates whether to wait for the remaining tasks to complete before returning. The default value is true.
[in] waitForThreadExit Indicates whether to wait for the capture process to complete before returning. The default value is true.
Pauses the capture process. The current thread will be blocked until the capture process is resumed.
void PauseCapturing();Resumes the capture process. The current thread will be unblocked after the capture process is resumed.
void ResumeCapturing();class MyCaptureStateListener: public CCaptureStateListener
{
public:
void OnCaptureStateChanged(CaptureState state) {
// user code...
}
};
class MyImageSourceStateListener : public CImageSourceStateListener
{
private:
CCaptureVisionRouter* m_router;
public:
MyImageSourceStateListener(CCaptureVisionRouter* router) {
m_router = router;
}
virtual void OnImageSourceStateReceived(ImageSourceState state)
{
if (state == ISS_EXHAUSTED)
m_router->StopCapturing();
}
};
class MyResultReceiver: public CCapturedResultReceiver
{
public:
void OnCapturedResultReceived(const CCapturedResult* result) {
// user code...
}
};
int errorCode = 0;
char szErrorMsg[512];
errorCode = CLicenseManager::InitLicense("YOUR-LICENSE-KEY", szErrorMsg, 512);
if (errorCode != ErrorCode::EC_OK && errorCode != ErrorCode::EC_LICENSE_CACHE_USED)
{
cout << "License initialization failed: ErrorCode: " << errorCode << ", ErrorString: " << szErrorMsg << endl;
}
else
{
CCaptureVisionRouter* router = new CCaptureVisionRouter();
CDirectoryFetcher* fetcher = new CDirectoryFetcher();
router->SetInput(fetcher);
CCaptureStateListener* captureStateListener = new MyCaptureStateListener();
router->AddCaptureStateListener(captureStateListener);
CImageSourceStateListener* sourceStateListener = new MyImageSourceStateListener();
router->AddImageSourceStateListener(sourceStateListener);
CCapturedResultReceiver* receiver = new MyResultReceiver();
router->AddResultReceiver(receiver);
CCapturedResultFilter* filter = new CMultiFrameResultCrossFilter();
router->AddResultFilter(filter);
router->StartCapturing("myTemplate", true, szErrorMsg, 512);
// other codes...
delete router, router = NULL;
delete fetcher, fetcher = NULL;
delete captureStateListener, captureStateListener = NULL;
delete sourceStateListener, sourceStateListener = NULL;;
delete receiver, receiver = NULL;;
delete filter, filter = NULL;;
}Switches the capturing template during the image processing workflow.
int SwitchCapturingTemplate(const char* templateName, char errorMsgBuffer[] = NULL, const int errorMsgBufferLen = 0);Parameters
[in] templateName The name of the new capturing template to apply.
[in] errorMsgBuffer A buffer for error messages.
[in] errorMsgBufferLen The length of the error message buffer.
Return value
Returns an error code. Zero indicates success.
Remarks
- Introduced in Dynamsoft Barcode Reader SDK version 11.2.1000 and Dynamsoft Capture Vision version 3.2.1000.