diff options
| author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2024-10-07 19:30:56 +0200 |
|---|---|---|
| committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2024-10-07 19:30:56 +0200 |
| commit | 40a899bd6ee536eae093337bf2d0dcc8db4e46f1 (patch) | |
| tree | 485ace3e6fd28b91f394efd277732651e10824d8 /portmidi/porttime/pthaiku.cpp | |
| parent | 6fc4bddfdf8e056469f316c1a0fe488efbb4253a (diff) | |
| download | ttdaw-40a899bd6ee536eae093337bf2d0dcc8db4e46f1.tar.gz | |
Moved example code examples folder
Diffstat (limited to 'portmidi/porttime/pthaiku.cpp')
| -rw-r--r-- | portmidi/porttime/pthaiku.cpp | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/portmidi/porttime/pthaiku.cpp b/portmidi/porttime/pthaiku.cpp deleted file mode 100644 index 9d8de14..0000000 --- a/portmidi/porttime/pthaiku.cpp +++ /dev/null @@ -1,88 +0,0 @@ -// pthaiku.cpp - portable timer implementation for Haiku - -#include "porttime.h" -#include <Looper.h> -#include <MessageRunner.h> -#include <OS.h> - -namespace { - const uint32 timerMessage = 'PTTM'; - - struct TimerLooper : BLooper { - TimerLooper() : BLooper() { - } - - - virtual void MessageReceived(BMessage *message) - { - PtCallback *callback; - void *userData; - if (message->what == timerMessage && message->FindPointer("callback", (void**)&callback) == B_OK && message->FindPointer("userData", &userData) == B_OK) { - (*callback)(Pt_Time(), userData); - } - BLooper::MessageReceived(message); - } - }; - - bool time_started_flag = false; - bigtime_t time_offset; - TimerLooper *timerLooper; - BMessageRunner *timerRunner; -} - -extern "C" { - PtError Pt_Start(int resolution, PtCallback *callback, void *userData) - { - if (time_started_flag) return ptAlreadyStarted; - time_offset = system_time(); - if (callback) { - timerLooper = new TimerLooper; - timerLooper->Run(); - BMessenger target(timerLooper); - BMessage message(timerMessage); - message.AddPointer("callback", (void*)callback); - message.AddPointer("userData", userData); - bigtime_t interval = resolution * 1000; - timerRunner = new BMessageRunner(target, &message, interval); - if(timerRunner->InitCheck() != B_OK) { - delete timerRunner; - timerRunner = NULL; - timerLooper->PostMessage(B_QUIT_REQUESTED); - timerLooper = NULL; - return ptHostError; - } - } - time_started_flag = true; - return ptNoError; - } - - - PtError Pt_Stop() - { - if (!time_started_flag) return ptAlreadyStopped; - time_started_flag = false; - delete timerRunner; - timerRunner = NULL; - timerLooper->PostMessage(B_QUIT_REQUESTED); - timerLooper = NULL; - return ptNoError; - } - - - int Pt_Started() - { - return time_started_flag; - } - - - PtTimestamp Pt_Time() - { - return (system_time() - time_offset) / 1000; - } - - - void Pt_Sleep(int32_t duration) - { - snooze(duration * 1000); - } -} |
