mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-15 19:16:40 +01:00
[P4/git history rebuild] unconditionally apply waves backend changes to get them aligned with initial P4 condition
This commit is contained in:
parent
d64f3a0c42
commit
3b14a1d7c1
1 changed files with 70 additions and 0 deletions
70
libs/backends/wavesaudio/portmidi/src/porttime/ptwinmm.c
Normal file
70
libs/backends/wavesaudio/portmidi/src/porttime/ptwinmm.c
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
/* ptwinmm.c -- portable timer implementation for win32 */
|
||||
|
||||
|
||||
#include "porttime.h"
|
||||
#include "windows.h"
|
||||
#include "time.h"
|
||||
|
||||
|
||||
TIMECAPS caps;
|
||||
|
||||
static long time_offset = 0;
|
||||
static int time_started_flag = FALSE;
|
||||
static long time_resolution;
|
||||
static MMRESULT timer_id;
|
||||
static PtCallback *time_callback;
|
||||
|
||||
void CALLBACK winmm_time_callback(UINT uID, UINT uMsg, DWORD_PTR dwUser,
|
||||
DWORD_PTR dw1, DWORD_PTR dw2)
|
||||
{
|
||||
(*time_callback)(Pt_Time(), (void *) dwUser);
|
||||
}
|
||||
|
||||
|
||||
PMEXPORT PtError Pt_Start(int resolution, PtCallback *callback, void *userData)
|
||||
{
|
||||
if (time_started_flag) return ptAlreadyStarted;
|
||||
timeBeginPeriod(resolution);
|
||||
time_resolution = resolution;
|
||||
time_offset = timeGetTime();
|
||||
time_started_flag = TRUE;
|
||||
time_callback = callback;
|
||||
if (callback) {
|
||||
timer_id = timeSetEvent(resolution, 1, winmm_time_callback,
|
||||
(DWORD_PTR) userData, TIME_PERIODIC | TIME_CALLBACK_FUNCTION);
|
||||
if (!timer_id) return ptHostError;
|
||||
}
|
||||
return ptNoError;
|
||||
}
|
||||
|
||||
|
||||
PMEXPORT PtError Pt_Stop()
|
||||
{
|
||||
if (!time_started_flag) return ptAlreadyStopped;
|
||||
if (time_callback && timer_id) {
|
||||
timeKillEvent(timer_id);
|
||||
time_callback = NULL;
|
||||
timer_id = 0;
|
||||
}
|
||||
time_started_flag = FALSE;
|
||||
timeEndPeriod(time_resolution);
|
||||
return ptNoError;
|
||||
}
|
||||
|
||||
|
||||
PMEXPORT int Pt_Started()
|
||||
{
|
||||
return time_started_flag;
|
||||
}
|
||||
|
||||
|
||||
PMEXPORT PtTimestamp Pt_Time()
|
||||
{
|
||||
return timeGetTime() - time_offset;
|
||||
}
|
||||
|
||||
|
||||
PMEXPORT void Pt_Sleep(int32_t duration)
|
||||
{
|
||||
Sleep(duration);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue