SDK 1.0 Final Callback Method
Posted: Tue Nov 16, 2010 12:59 pm
I have written an application utilizing the callback method to handle the arrival of frames (using SDK 1.0 Final). I based it of my previous application utilizing SDK37 in vc++. My callback does not work and I can't find the problem with it.
I am interested specifically on making the callback method work, I have utilized the polling method and although it works, it does not satisfy my needs.
Thanks!
//globally defined Camera object
CameraLibrary::Camera *NewCamera;
CameraLibrary::Frame *pframe;
class cMyOtherClass:public cCameraListener
{
public:
STDMETHOD_(void, OnFrameAvailable)(CameraLibrary::Camera *pCamera) { HandleFrameAvailable(pCamera); }
//---------------------------------------------------------------------------------------------------------------------------
void HandleFrameAvailable(CameraLibrary::Camera *pCamera);
};
cMyOtherClass *processFrame;
//============================================================================================================
//the class below contains InitiOPtitrack, ShutdownOptitrac functions
class cStartStop
{
public:
//---------------------------------------------------------------------------------------------------
void InitOptiTrack ()
{
lngFrameCount = 0;
//== Initialize connected cameras ==========----
CameraManager::X().WaitForInitialization();
//== Get a connected camera ================----
NewCamera=CameraManager::X().GetCamera(); // Camera *camera =
//== If no device connected, pop a message box and exit ==--
if(camera==0)
{
MessageBox::Show("Please connect a camera","No Device Connected");
return;
}
//this is where I do attachListener
NewCamera->AttachListener(processFrame); //== Attach for camera events =======---
NewCamera->Start();
}
//---------------------------------------------------------------------------------------------------
void ShutdownOptiTrack ()
{
//== Release camera ==--
NewCamera->Release();
//== Remove camera listener =========---
NewCamera->RemoveListener(processFrame);
//== Shutdown Camera Library ==--
CameraManager::X().Shutdown();
}
};
cStartStop theCamera;
//==============================================================================================
//here is where I handle the frame
void cMyOtherClass::HandleFrameAvailable(CameraLibrary::Camera * pCamera)
{
...do something
}
I am interested specifically on making the callback method work, I have utilized the polling method and although it works, it does not satisfy my needs.
Thanks!
//globally defined Camera object
CameraLibrary::Camera *NewCamera;
CameraLibrary::Frame *pframe;
class cMyOtherClass:public cCameraListener
{
public:
STDMETHOD_(void, OnFrameAvailable)(CameraLibrary::Camera *pCamera) { HandleFrameAvailable(pCamera); }
//---------------------------------------------------------------------------------------------------------------------------
void HandleFrameAvailable(CameraLibrary::Camera *pCamera);
};
cMyOtherClass *processFrame;
//============================================================================================================
//the class below contains InitiOPtitrack, ShutdownOptitrac functions
class cStartStop
{
public:
//---------------------------------------------------------------------------------------------------
void InitOptiTrack ()
{
lngFrameCount = 0;
//== Initialize connected cameras ==========----
CameraManager::X().WaitForInitialization();
//== Get a connected camera ================----
NewCamera=CameraManager::X().GetCamera(); // Camera *camera =
//== If no device connected, pop a message box and exit ==--
if(camera==0)
{
MessageBox::Show("Please connect a camera","No Device Connected");
return;
}
//this is where I do attachListener
NewCamera->AttachListener(processFrame); //== Attach for camera events =======---
NewCamera->Start();
}
//---------------------------------------------------------------------------------------------------
void ShutdownOptiTrack ()
{
//== Release camera ==--
NewCamera->Release();
//== Remove camera listener =========---
NewCamera->RemoveListener(processFrame);
//== Shutdown Camera Library ==--
CameraManager::X().Shutdown();
}
};
cStartStop theCamera;
//==============================================================================================
//here is where I handle the frame
void cMyOtherClass::HandleFrameAvailable(CameraLibrary::Camera * pCamera)
{
...do something
}