77 lines
2.8 KiB
C++
77 lines
2.8 KiB
C++
/*=============================================================================
|
|
Copyright (C) 2013 - 2017 Allied Vision Technologies. All Rights Reserved.
|
|
|
|
Redistribution of this file, in original or modified form, without
|
|
prior written consent of Allied Vision Technologies is prohibited.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
File: FrameObserver.cpp
|
|
|
|
Description: The frame observer that is used for notifications from VimbaCPP
|
|
regarding the arrival of a newly acquired frame.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
|
|
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF TITLE,
|
|
NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
|
|
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
|
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
=============================================================================*/
|
|
|
|
#include <iostream>
|
|
|
|
#include "FrameObserver.h"
|
|
|
|
namespace AVT {
|
|
namespace VmbAPI {
|
|
namespace Examples {
|
|
|
|
//
|
|
// We pass the camera that will deliver the frames to the constructor
|
|
//
|
|
// Parameters:
|
|
// [in] pCamera The camera the frame was queued at
|
|
// [in] eFrameInfos Indicates how the frame will be displayed
|
|
// [in] eColorProcessing Indicates how color processing is applied
|
|
//
|
|
cFrameObserver::cFrameObserver( CameraPtr aCamera )
|
|
: IFrameObserver( aCamera )
|
|
{
|
|
this->mCamera = aCamera;
|
|
}
|
|
|
|
//
|
|
// This is our callback routine that will be executed on every received frame.
|
|
// Triggered by the API.
|
|
//
|
|
// Parameters:
|
|
// [in] pFrame The frame returned from the API
|
|
//
|
|
void cFrameObserver::FrameReceived( const FramePtr pFrame )
|
|
{
|
|
if(false == SP_ISNULL( pFrame ) )
|
|
{
|
|
VmbErrorType lError = VmbErrorSuccess;
|
|
VmbFrameStatusType lStatus;
|
|
|
|
lError = SP_ACCESS( pFrame)->GetReceiveStatus( lStatus);
|
|
if( (VmbErrorSuccess == lError) && (VmbFrameStatusComplete == lStatus))
|
|
{
|
|
std::cout << "......Frame has been received" << std::endl;
|
|
}
|
|
|
|
// requeue frame
|
|
this->mCamera->QueueFrame( pFrame );
|
|
}
|
|
}
|
|
|
|
}}} // namespace AVT::VmbAPI::Examples
|