mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-12-13 11:41:03 -05:00
31 lines
848 B
C++
31 lines
848 B
C++
#pragma once
|
|
|
|
#include "syscb/api_syscb.h"
|
|
#include <vector>
|
|
#include "nu/AutoLock.h"
|
|
#include "service/types.h"
|
|
#include "nx/nxstring.h"
|
|
#include "nswasabi/ServiceName.h"
|
|
|
|
class SysCallbacks : public api_syscb
|
|
{
|
|
public:
|
|
WASABI_SERVICE_NAME("System Callbacks API");
|
|
|
|
public:
|
|
SysCallbacks();
|
|
int WASABICALL SysCallbacks_RegisterCallback(ifc_sysCallback *cb);
|
|
int WASABICALL SysCallbacks_UnregisterCallback(ifc_sysCallback *cb);
|
|
int WASABICALL SysCallbacks_IssueCallback(GUID eventtype, int msg, intptr_t param1 = 0, intptr_t param2 = 0);
|
|
ifc_sysCallback *WASABICALL SysCallbacks_Enum(GUID eventtype, size_t n);
|
|
|
|
private:
|
|
nu::LockGuard callbackGuard;
|
|
std::vector<ifc_sysCallback*> callbacks;
|
|
std::vector<ifc_sysCallback*> deleteMeAfterCallbacks;
|
|
bool inCallback;
|
|
volatile int reentry;
|
|
};
|
|
|
|
extern SysCallbacks system_callbacks;
|
|
|