Version 8.9.0
 
Loading...
Searching...
No Matches
/platform/windows/examples/directshow/irimagerShowOOP.cpp

Windows example: This object-oriented example demonstrates how to acquire data from an PI imager and display it via GDI.

Windows example: This object-oriented example demonstrates how to acquire data from an PI imager and display it via GDI.

#include <cstdio>
#include <iostream>
// IR Imager device interfaces
#include "IRDevice.h"
// IR Imager imager interfaces
#include "IRImager.h"
// IR Imager logging interface
#include "IRLogger.h"
#include "IRImagerHandler.h"
evo::IRImager _imager;
IRImagerHandler* _handler;
// Delete referencing class to IRImager.
// This avoids a crash when closing the console windows.
BOOL _ctrlHandler(DWORD fdwCtrlType)
{
delete _handler;
return true;
}
int main(int argc, char* argv[])
{
evo::IRLogger::setVerbosity(evo::IRLOG_ERROR, evo::IRLOG_OFF);
SetConsoleCtrlHandler((PHANDLER_ROUTINE)_ctrlHandler, TRUE);
if(argc < 2)
{
std::cout << "usage: " << argv[0] << " <path to xml file>" << std::endl;
return -1;
}
char* args = argv[1];
// Windows SDK is compiled using 16-bit Unicode characters
// You might consider wmain as an alternative
const size_t argSize = strlen(args) + 1;
wchar_t* argPath = new wchar_t[argSize];
mbstowcs(argPath, args, argSize);
if(!evo::IRDeviceParamsReader::readXML(argPath, _params))
return -1;
delete[] argPath;
evo::IRDevice* device = IRDevice::IRCreateDevice(_params);
if(device)
{
if(_imager.init(&_params, device->getFrequency(), device->getWidth(), device->getHeight(), true))
{
_handler = new IRImagerHandler(&_imager);
device->setClient(_handler);
device->startStreaming();
_handler->run(device);
device->stopStreaming();
}
}
else
{
std::cout << "IR Imager device could not be found" << std::endl;
}
return 0;
}
static bool readXML(const Tchar *xmlFile, IRDeviceParams &params)
Static xml parsing method.
Wrapper for PI driver and image processing library.
Definition: IRImager.h:141
bool init(IRDeviceParams *params, unsigned int frequency, unsigned int width, unsigned int height, bool useHID, unsigned short hwRev=0, unsigned short fwRev=0)
Initializing routine, to be called after instantiation.
static void setVerbosity(IRLoggerVerbosityLevel levelStdout, IRLoggerVerbosityLevel levelFile, const char *filename=NULL)
Change verbosity level.
Structure containing device parameters.
Definition: IRDeviceParams.h:125