'libs/ardour' - Further platform specific changes
This commit is contained in:
parent
b5da5a1af0
commit
4f8c30de02
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user