ProgressDelegate.cpp
#include "main.h"
#include "support.h"
#include "lt_fileSpec.h"
#include "lti_delegates.h"
#include "lti_scene.h"
#include "lti_sceneBuffer.h"
#include "MrSIDImageReader.h"
LT_USE_NAMESPACE(LizardTech);
class MyProgress : public LTIProgressDelegate
{
public:
MyProgress() :
LTIProgressDelegate(),
m_cnt(0)
{
return;
}
LT_STATUS setProgressStatus(float x)
{
printf("%d: %f\n", m_cnt, x);
++m_cnt;
return LT_STS_Success;
}
public:
int m_cnt;
};
LT_STATUS ProgressDelegate()
{
LT_STATUS sts = LT_STS_Uninit;
MyProgress progress;
const LTFileSpec fileSpec(INPUT_PATH("meg_cr20.sid"));
MrSIDImageReader *reader = MrSIDImageReader::create();
TEST_BOOL(reader != NULL);
TEST_SUCCESS(reader->initialize(fileSpec));
reader->setProgressDelegate(&progress);
const LTIScene scene(0, 0, 640, 480, 1.0);
LTISceneBuffer bufData(reader->getPixelProps(),
scene.getNumCols(),
scene.getNumRows(),
NULL);
sts = reader->read(scene, bufData);
TEST_BOOL(sts == LT_STS_Success);
TEST_BOOL(progress.m_cnt == 30);
reader->release();
reader = NULL;
return LT_STS_Success;
}