Make QSV stop signal reset manual
This commit is contained in:
parent
3fa992beed
commit
b10db96dc0
@ -58,7 +58,7 @@ typedef IPCArray<mfxU8> ipc_pps_buff;
|
|||||||
typedef IPCSignalledType<spspps_size> ipc_spspps_size;
|
typedef IPCSignalledType<spspps_size> ipc_spspps_size;
|
||||||
|
|
||||||
#define STOP_REQUEST L"stop"
|
#define STOP_REQUEST L"stop"
|
||||||
typedef IPCSignal ipc_stop;
|
typedef IPCSignal<true> ipc_stop;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -83,18 +83,20 @@ private:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template <bool manual>
|
||||||
struct IPCSignal
|
struct IPCSignal
|
||||||
{
|
{
|
||||||
safe_handle signal_;
|
safe_handle signal_;
|
||||||
|
|
||||||
bool is_signalled(DWORD timeout=0) { return WaitForSingleObject(signal_, timeout) == WAIT_OBJECT_0; }
|
bool is_signalled(DWORD timeout=0) { return WaitForSingleObject(signal_, timeout) == WAIT_OBJECT_0; }
|
||||||
void signal() { SetEvent(signal_); }
|
void signal() { SetEvent(signal_); }
|
||||||
|
void reset() { ResetEvent(signal_); }
|
||||||
|
|
||||||
bool operator!() const { return !signal_; }
|
bool operator!() const { return !signal_; }
|
||||||
|
|
||||||
IPCSignal &operator=(IPCSignal &&other) { signal_ = std::move(other.signal_); return *this; }
|
IPCSignal &operator=(IPCSignal &&other) { signal_ = std::move(other.signal_); return *this; }
|
||||||
|
|
||||||
IPCSignal(std::wstring name) { signal_.reset(CreateEvent(nullptr, false, false, name.c_str())); }
|
IPCSignal(std::wstring name) { signal_.reset(CreateEvent(nullptr, manual, false, name.c_str())); }
|
||||||
IPCSignal() {}
|
IPCSignal() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -161,7 +163,7 @@ struct IPCType
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
struct IPCSignalledType : IPCType<T>, IPCSignal
|
struct IPCSignalledType : IPCType<T>, IPCSignal<false>
|
||||||
{
|
{
|
||||||
bool operator!() const { return !memory || !signal_; }
|
bool operator!() const { return !memory || !signal_; }
|
||||||
|
|
||||||
@ -198,7 +200,7 @@ struct IPCArray
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
struct IPCSignalledArray : IPCArray<T>, IPCSignal
|
struct IPCSignalledArray : IPCArray<T>, IPCSignal<false>
|
||||||
{
|
{
|
||||||
bool operator!() const { return !memory || !signal_; }
|
bool operator!() const { return !memory || !signal_; }
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user