diff --git a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp index a26a3bf49c..49bca57364 100644 --- a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp +++ b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp @@ -172,9 +172,9 @@ void AudioDeviceManager::createAudioDeviceTypes (OwnedArray& addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_ASIO()); addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_CoreAudio()); addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_iOSAudio()); + addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_Bela()); addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_ALSA()); addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_JACK()); - addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_Bela()); addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_Oboe()); addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_OpenSLES()); addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_Android()); diff --git a/modules/juce_audio_devices/native/juce_linux_Bela.cpp b/modules/juce_audio_devices/native/juce_linux_Bela.cpp index b13eceb50e..133e39bc4b 100644 --- a/modules/juce_audio_devices/native/juce_linux_Bela.cpp +++ b/modules/juce_audio_devices/native/juce_linux_Bela.cpp @@ -373,7 +373,7 @@ public: BigInteger getActiveInputChannels() const override { BigInteger b; b.setRange (0, actualNumberOfInputs, true); return b; } int getOutputLatencyInSamples() override { /* TODO */ return 0; } int getInputLatencyInSamples() override { /* TODO */ return 0; } - int getXRunCount() const noexcept { return underruns; } + int getXRunCount() const noexcept override { return underruns; } //============================================================================== static const char* const belaTypeName; diff --git a/modules/juce_core/juce_core.cpp b/modules/juce_core/juce_core.cpp index a7d26cd6da..79fa34f61a 100644 --- a/modules/juce_core/juce_core.cpp +++ b/modules/juce_core/juce_core.cpp @@ -110,10 +110,6 @@ #include #endif -#if JUCE_BELA - #include -#endif - #undef check //============================================================================== diff --git a/modules/juce_core/native/juce_linux_SystemStats.cpp b/modules/juce_core/native/juce_linux_SystemStats.cpp index 8d553e4951..6f893d2471 100644 --- a/modules/juce_core/native/juce_linux_SystemStats.cpp +++ b/modules/juce_core/native/juce_linux_SystemStats.cpp @@ -20,6 +20,9 @@ ============================================================================== */ +#if JUCE_BELA +extern "C" int cobalt_thread_mode(); +#endif namespace juce { @@ -183,13 +186,18 @@ uint32 juce_millisecondsSinceStartup() noexcept int64 Time::getHighResolutionTicks() noexcept { - #if JUCE_BELA - return rt_timer_read() / 1000; - #else timespec t; + + #if JUCE_BELA + if (cobalt_thread_mode() == 0x200 /*XNRELAX*/) + clock_gettime (CLOCK_MONOTONIC, &t); + else + __wrap_clock_gettime (CLOCK_MONOTONIC, &t); + #else clock_gettime (CLOCK_MONOTONIC, &t); - return (t.tv_sec * (int64) 1000000) + (t.tv_nsec / 1000); #endif + + return (t.tv_sec * (int64) 1000000) + (t.tv_nsec / 1000); } int64 Time::getHighResolutionTicksPerSecond() noexcept