writable_event.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // Copyright 2014 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #include <algorithm>
  5. #include "common/assert.h"
  6. #include "core/hle/kernel/kernel.h"
  7. #include "core/hle/kernel/object.h"
  8. #include "core/hle/kernel/readable_event.h"
  9. #include "core/hle/kernel/thread.h"
  10. #include "core/hle/kernel/writable_event.h"
  11. namespace Kernel {
  12. WritableEvent::WritableEvent(KernelCore& kernel) : Object{kernel} {}
  13. WritableEvent::~WritableEvent() = default;
  14. EventPair WritableEvent::CreateEventPair(KernelCore& kernel, ResetType reset_type,
  15. std::string name) {
  16. SharedPtr<WritableEvent> writable_event(new WritableEvent(kernel));
  17. SharedPtr<ReadableEvent> readable_event(new ReadableEvent(kernel));
  18. writable_event->name = name + ":Writable";
  19. writable_event->readable = readable_event;
  20. readable_event->name = name + ":Readable";
  21. readable_event->signaled = false;
  22. readable_event->reset_type = reset_type;
  23. return {std::move(readable_event), std::move(writable_event)};
  24. }
  25. SharedPtr<ReadableEvent> WritableEvent::GetReadableEvent() const {
  26. return readable;
  27. }
  28. ResetType WritableEvent::GetResetType() const {
  29. return readable->reset_type;
  30. }
  31. void WritableEvent::Signal() {
  32. readable->Signal();
  33. }
  34. void WritableEvent::Clear() {
  35. readable->Clear();
  36. }
  37. bool WritableEvent::IsSignaled() const {
  38. return readable->signaled;
  39. }
  40. } // namespace Kernel