rpcsx/rpcs3/Emu/Event.cpp
Nekotekina c6bdedf3b0 sleep_queue_t moved to SleepQueue.cpp, cleanup
Used ARMv7Thread instead of ARMv7Context in PSV HLE functions and
callbacks. However, interpreter still uses ARMv7Context.
Various PSV functions partially implemented:
sceKernelCreateEventFlag
sceKernelDeleteEventFlag
sceKernelOpenEventFlag
sceKernelCloseEventFlag
sceKernelWaitEventFlag
sceKernelWaitEventFlagCB
sceKernelPollEventFlag
sceKernelSetEventFlag
sceKernelClearEventFlag
sceKernelCancelEventFlag
sceKernelGetEventFlagInfo
sceKernelCreateSema
sceKernelDeleteSema
sceKernelCreateMutex
sceKernelDeleteMutex
sceKernelCreateCond
sceKernelDeleteCond
2015-08-24 21:22:30 +03:00

55 lines
729 B
C++

#include "stdafx.h"
#include "Emu/Memory/Memory.h"
#include "Emu/System.h"
#include "Emu/SysCalls/lv2/sys_event.h"
#include "Event.h"
void EventManager::Init()
{
}
void EventManager::Clear()
{
m_map.clear();
}
bool EventManager::UnregisterKey(u64 key)
{
if (!key)
{
// always ok
return true;
}
std::lock_guard<std::mutex> lock(m_mutex);
auto f = m_map.find(key);
if (f != m_map.end())
{
m_map.erase(f);
return true;
}
return false;
}
std::shared_ptr<lv2_event_queue_t> EventManager::GetEventQueue(u64 key)
{
if (!key)
{
// never exists
return nullptr;
}
std::lock_guard<std::mutex> lock(m_mutex);
auto f = m_map.find(key);
if (f != m_map.end())
{
return f->second;
}
return nullptr;
}