13
0

'libs/ardour' - Further platform specific changes

This commit is contained in:
John Emmas 2013-09-18 12:27:39 +01:00
parent b5da5a1af0
commit 4f8c30de02
2 changed files with 16 additions and 2 deletions

View File

@ -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

View File

@ -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
}