Files
renpy/module/steamcallbacks.h
Tom Rothamel 9900bf6ecc steam: Generic approach to Steam callbacks.
And when we say generic, we mean it. This uses a C++ template that
can bind C functions to Steam callbacks.
2015-01-23 21:51:50 -05:00

36 lines
595 B
C++

#ifndef STEAMCALLBACKS_H
#define STEAMCALLBACKS_H
#include "steam/steam_api.h"
template <class P>
class SteamCallback : CCallbackBase {
void (*callback)(P*);
public:
SteamCallback(void (*func)(P *)) : callback(func) {
m_iCallback = P::k_iCallback;
SteamAPI_RegisterCallback(this, P::k_iCallback);
}
~SteamCallback() {
SteamAPI_UnregisterCallback(this);
}
protected:
virtual void Run(void *param) {
callback((P *) param);
}
virtual void Run( void *param, bool, SteamAPICall_t ) {
callback((P *) param);
}
int GetCallbackSizeBytes() {
return sizeof(P);
}
};
#endif