mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-12-19 20:25:51 +01:00
39 lines
1007 B
C++
39 lines
1007 B
C++
#include "osx_timer.h"
|
|
#include <api/timer/timerclient.h>
|
|
|
|
timer_api *timerApi = NULL;
|
|
|
|
|
|
TimerApi::TimerApi()
|
|
{
|
|
mainEventLoop = GetMainEventLoop();
|
|
}
|
|
|
|
static void WasabiTimerProc(EventLoopTimerRef inTimer, void * inUserData)
|
|
{
|
|
TimerClient *client = (TimerClient *)inUserData;
|
|
if (client)
|
|
client->timerclient_timerCallback(inTimer);
|
|
}
|
|
|
|
|
|
TimerToken TimerApi::timer_add(TimerClient *client, int id, int ms)
|
|
{
|
|
EventLoopTimerRef token;
|
|
OSStatus err = InstallEventLoopTimer(mainEventLoop,
|
|
(float)ms/1000.0f,
|
|
(float)ms/1000.0f,
|
|
WasabiTimerProc,
|
|
client,
|
|
&token);
|
|
if (err == noErr)
|
|
return token;
|
|
else
|
|
return 0;
|
|
}
|
|
|
|
void TimerApi::timer_remove(TimerClient *client, TimerToken token)
|
|
{
|
|
RemoveEventLoopTimer(token);
|
|
}
|