diff options
author | John Emmas <johne53@tiscali.co.uk> | 2013-09-18 12:27:39 +0100 |
---|---|---|
committer | John Emmas <johne53@tiscali.co.uk> | 2013-09-18 12:27:39 +0100 |
commit | 4f8c30de020ed00997776e1bdb6a1c97724c2c97 (patch) | |
tree | c62037cf0e941febc8f54db38e2ce35dc2adc1e0 /libs/ardour | |
parent | b5da5a1af0ea532587e10e91bebe917adb7520e9 (diff) |
'libs/ardour' - Further platform specific changes
Diffstat (limited to 'libs/ardour')
-rw-r--r-- | libs/ardour/async_midi_port.cc | 7 | ||||
-rw-r--r-- | libs/ardour/globals.cc | 11 |
2 files changed, 16 insertions, 2 deletions
diff --git a/libs/ardour/async_midi_port.cc b/libs/ardour/async_midi_port.cc index f282d238cc..bd583328c3 100644 --- a/libs/ardour/async_midi_port.cc +++ b/libs/ardour/async_midi_port.cc @@ -52,7 +52,9 @@ AsyncMIDIPort::AsyncMIDIPort (string const & name, PortFlags flags) , _last_write_timestamp (0) , output_fifo (512) , input_fifo (1024) +#ifndef PLATFORM_WINDOWS , xthread (true) +#endif { } @@ -116,12 +118,13 @@ AsyncMIDIPort::cycle_start (MIDI::pframes_t nframes) for (MidiBuffer::iterator b = mb.begin(); b != mb.end(); ++b) { input_fifo.write (when, (Evoral::EventType) 0, (*b).size(), (*b).buffer()); } - + +#ifndef PLATFORM_WINDOWS if (!mb.empty()) { xthread.wakeup (); } +#endif } - } void diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc index 8646b819f3..0cda9ebdf4 100644 --- a/libs/ardour/globals.cc +++ b/libs/ardour/globals.cc @@ -584,10 +584,21 @@ clock_gettime (int /*clk_id*/, struct timespec *t) microseconds_t ARDOUR::get_microseconds () { +#ifdef PLATFORM_WINDOWS + microseconds_t ret = 0; + LARGE_INTEGER freq, time; + + if (QueryPerformanceFrequency(&freq)) + if (QueryPerformanceCounter(&time)) + ret = (microseconds_t)((time.QuadPart * 1000000) / freq.QuadPart); + + return ret; +#else struct timespec ts; if (clock_gettime (CLOCK_MONOTONIC, &ts) != 0) { /* EEEK! */ return 0; } return (microseconds_t) ts.tv_sec * 1000000 + (ts.tv_nsec/1000); +#endif } |