michael@0: // ProgressUtils.h michael@0: michael@0: #include "StdAfx.h" michael@0: michael@0: #include "ProgressUtils.h" michael@0: michael@0: void CLocalCompressProgressInfo::Init(ICompressProgressInfo *progress, michael@0: const UInt64 *inStartValue, const UInt64 *outStartValue) michael@0: { michael@0: _progress = progress; michael@0: _inStartValueIsAssigned = (inStartValue != NULL); michael@0: if (_inStartValueIsAssigned) michael@0: _inStartValue = *inStartValue; michael@0: _outStartValueIsAssigned = (outStartValue != NULL); michael@0: if (_outStartValueIsAssigned) michael@0: _outStartValue = *outStartValue; michael@0: } michael@0: michael@0: STDMETHODIMP CLocalCompressProgressInfo::SetRatioInfo( michael@0: const UInt64 *inSize, const UInt64 *outSize) michael@0: { michael@0: UInt64 inSizeNew, outSizeNew; michael@0: const UInt64 *inSizeNewPointer; michael@0: const UInt64 *outSizeNewPointer; michael@0: if (_inStartValueIsAssigned && inSize != NULL) michael@0: { michael@0: inSizeNew = _inStartValue + (*inSize); michael@0: inSizeNewPointer = &inSizeNew; michael@0: } michael@0: else michael@0: inSizeNewPointer = NULL; michael@0: michael@0: if (_outStartValueIsAssigned && outSize != NULL) michael@0: { michael@0: outSizeNew = _outStartValue + (*outSize); michael@0: outSizeNewPointer = &outSizeNew; michael@0: } michael@0: else michael@0: outSizeNewPointer = NULL; michael@0: return _progress->SetRatioInfo(inSizeNewPointer, outSizeNewPointer); michael@0: } michael@0: michael@0: michael@0: /////////////////////////////////// michael@0: // michael@0: michael@0: void CLocalProgress::Init(IProgress *progress, bool inSizeIsMain) michael@0: { michael@0: _progress = progress; michael@0: _inSizeIsMain = inSizeIsMain; michael@0: } michael@0: michael@0: STDMETHODIMP CLocalProgress::SetRatioInfo( michael@0: const UInt64 *inSize, const UInt64 *outSize) michael@0: { michael@0: return _progress->SetCompleted(_inSizeIsMain ? inSize : outSize); michael@0: } michael@0: