1c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org// CrossThreadProgress.h 2c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org 3c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org#ifndef __CROSSTHREADPROGRESS_H 4c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org#define __CROSSTHREADPROGRESS_H 5c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org 6c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org#include "../../ICoder.h" 7c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org#include "../../../Windows/Synchronization.h" 8c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org#include "../../../Common/MyCom.h" 9c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org 10c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.orgclass CCrossThreadProgress: 11c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org public ICompressProgressInfo, 12c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org public CMyUnknownImp 13c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org{ 14c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.orgpublic: 15c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org const UInt64 *InSize; 16c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org const UInt64 *OutSize; 17c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org HRESULT Result; 18c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org NWindows::NSynchronization::CAutoResetEvent ProgressEvent; 19c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org NWindows::NSynchronization::CAutoResetEvent WaitEvent; 20c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org 21c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org HRes Create() 22c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org { 23c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org RINOK(ProgressEvent.CreateIfNotCreated()); 24c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org return WaitEvent.CreateIfNotCreated(); 25c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org } 26c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org void Init() 27c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org { 28c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org ProgressEvent.Reset(); 29c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org WaitEvent.Reset(); 30c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org } 31c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org 32c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org MY_UNKNOWN_IMP 33c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org 34c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org STDMETHOD(SetRatioInfo)(const UInt64 *inSize, const UInt64 *outSize); 35c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org}; 36c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org 37c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org#endif 38c237f0ad875cde990bf9d89f41424b18809cc345henrike@webrtc.org