mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-06 21:14:58 -06:00
56 lines
1.4 KiB
C++
Executable File
56 lines
1.4 KiB
C++
Executable File
// ProgressUtils.h
|
|
|
|
#include "StdAfx.h"
|
|
|
|
#include "ProgressUtils.h"
|
|
|
|
void CLocalCompressProgressInfo::Init(ICompressProgressInfo *progress,
|
|
const UInt64 *inStartValue, const UInt64 *outStartValue)
|
|
{
|
|
_progress = progress;
|
|
_inStartValueIsAssigned = (inStartValue != NULL);
|
|
if (_inStartValueIsAssigned)
|
|
_inStartValue = *inStartValue;
|
|
_outStartValueIsAssigned = (outStartValue != NULL);
|
|
if (_outStartValueIsAssigned)
|
|
_outStartValue = *outStartValue;
|
|
}
|
|
|
|
STDMETHODIMP CLocalCompressProgressInfo::SetRatioInfo(
|
|
const UInt64 *inSize, const UInt64 *outSize)
|
|
{
|
|
UInt64 inSizeNew, outSizeNew;
|
|
const UInt64 *inSizeNewPointer;
|
|
const UInt64 *outSizeNewPointer;
|
|
if (_inStartValueIsAssigned && inSize != NULL)
|
|
{
|
|
inSizeNew = _inStartValue + (*inSize);
|
|
inSizeNewPointer = &inSizeNew;
|
|
}
|
|
else
|
|
inSizeNewPointer = NULL;
|
|
|
|
if (_outStartValueIsAssigned && outSize != NULL)
|
|
{
|
|
outSizeNew = _outStartValue + (*outSize);
|
|
outSizeNewPointer = &outSizeNew;
|
|
}
|
|
else
|
|
outSizeNewPointer = NULL;
|
|
return _progress->SetRatioInfo(inSizeNewPointer, outSizeNewPointer);
|
|
}
|
|
|
|
///////////////////////////////////
|
|
|
|
void CLocalProgress::Init(IProgress *progress, bool inSizeIsMain)
|
|
{
|
|
_progress = progress;
|
|
_inSizeIsMain = inSizeIsMain;
|
|
}
|
|
|
|
STDMETHODIMP CLocalProgress::SetRatioInfo(
|
|
const UInt64 *inSize, const UInt64 *outSize)
|
|
{
|
|
return _progress->SetCompleted(_inSizeIsMain ? inSize : outSize);
|
|
}
|