diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h index 299da6e6d2..7f2e27fbcc 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectSaver.h @@ -470,13 +470,13 @@ private: resourceFile.setClassName ("BinaryData"); Array binaryDataFiles; - + if (resourceFile.write (binaryDataCpp, binaryDataFiles)) { for (int i = 0; i < binaryDataFiles.size(); ++i) { const File& f = binaryDataFiles.getReference(i); - + filesCreated.add (f); generatedFilesGroup.addFile (f, -1, ! f.hasFileExtension (".h")); } diff --git a/extras/Introjucer/Source/Project Saving/jucer_ResourceFile.cpp b/extras/Introjucer/Source/Project Saving/jucer_ResourceFile.cpp index 5d115db91f..1c78b33923 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ResourceFile.cpp +++ b/extras/Introjucer/Source/Project Saving/jucer_ResourceFile.cpp @@ -124,7 +124,7 @@ static String getComment() << newLine << "*/" << newLine << newLine; - + return comment; } @@ -170,7 +170,7 @@ bool ResourceFile::writeCpp (MemoryOutputStream& cpp, const File& headerFile, in { const int maxFileSize = 10 * 1024 * 1024; const bool isFirstFile = (i == 0); - + cpp << "/* ==================================== " << resourceFileIdentifierString << " ====================================" << getComment() << "namespace " << className << newLine @@ -204,13 +204,13 @@ bool ResourceFile::writeCpp (MemoryOutputStream& cpp, const File& headerFile, in cpp << newLine << newLine << "const char* " << variableName << " = (const char*) " << tempVariable << ";" << newLine; } - + ++i; - + if (cpp.getPosition() > maxFileSize) break; } - + if (isFirstFile) { if (i < files.size()) @@ -223,7 +223,7 @@ bool ResourceFile::writeCpp (MemoryOutputStream& cpp, const File& headerFile, in << "namespace " << className << newLine << "{"; } - + cpp << newLine << newLine << "const char* getNamedResource (const char*, int&) throw();" << newLine @@ -244,7 +244,7 @@ bool ResourceFile::writeCpp (MemoryOutputStream& cpp, const File& headerFile, in << " return 0;" << newLine << "}" << newLine; } - + cpp << newLine << "}" << newLine; @@ -259,17 +259,17 @@ bool ResourceFile::write (const File& cppFile, Array& filesCreated) MemoryOutputStream mo; if (! (writeHeader (mo) && FileHelpers::overwriteFileWithNewDataIfDifferent (headerFile, mo))) return false; - + filesCreated.add (headerFile); } - + int i = 0; int fileIndex = 0; - + for (;;) { File cpp (cppFile); - + if (fileIndex > 0) cpp = cpp.getSiblingFile (cppFile.getFileNameWithoutExtension() + String (fileIndex + 1)) .withFileExtension (cppFile.getFileExtension()); @@ -277,10 +277,10 @@ bool ResourceFile::write (const File& cppFile, Array& filesCreated) MemoryOutputStream mo; if (! (writeCpp (mo, headerFile, i) && FileHelpers::overwriteFileWithNewDataIfDifferent (cpp, mo))) return false; - + filesCreated.add (cpp); ++fileIndex; - + if (i >= files.size()) break; } diff --git a/modules/juce_audio_devices/native/juce_win32_DirectSound.cpp b/modules/juce_audio_devices/native/juce_win32_DirectSound.cpp index 7921806ebf..e226fd3187 100644 --- a/modules/juce_audio_devices/native/juce_win32_DirectSound.cpp +++ b/modules/juce_audio_devices/native/juce_win32_DirectSound.cpp @@ -990,15 +990,11 @@ public: if (isStarted) { - JUCE_TRY - { - callback->audioDeviceIOCallback (const_cast (inputBuffers.getArrayOfChannels()), - inputBuffers.getNumChannels(), - outputBuffers.getArrayOfChannels(), - outputBuffers.getNumChannels(), - bufferSizeSamples); - } - JUCE_CATCH_EXCEPTION + callback->audioDeviceIOCallback (const_cast (inputBuffers.getArrayOfChannels()), + inputBuffers.getNumChannels(), + outputBuffers.getArrayOfChannels(), + outputBuffers.getNumChannels(), + bufferSizeSamples); } else { diff --git a/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp b/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp index ac2c4055ff..d7890ae139 100644 --- a/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp +++ b/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp @@ -23,8 +23,8 @@ ============================================================================== */ -#ifndef WASAPI_ENABLE_LOGGING - #define WASAPI_ENABLE_LOGGING 0 +#ifndef JUCE_WASAPI_LOGGING + #define JUCE_WASAPI_LOGGING 0 #endif //============================================================================== @@ -37,45 +37,43 @@ void logFailure (HRESULT hr) jassert (hr != 0x800401f0); // If you hit this, it means you're trying to call from // a thread which hasn't been initialised with CoInitialize(). - #if WASAPI_ENABLE_LOGGING + #if JUCE_WASAPI_LOGGING if (FAILED (hr)) { - String e; - e << Time::getCurrentTime().toString (true, true, true, true) - << " -- WASAPI error: "; + const char* m = nullptr; switch (hr) { - case E_POINTER: e << "E_POINTER"; break; - case E_INVALIDARG: e << "E_INVALIDARG"; break; - case AUDCLNT_E_NOT_INITIALIZED: e << "AUDCLNT_E_NOT_INITIALIZED"; break; - case AUDCLNT_E_ALREADY_INITIALIZED: e << "AUDCLNT_E_ALREADY_INITIALIZED"; break; - case AUDCLNT_E_WRONG_ENDPOINT_TYPE: e << "AUDCLNT_E_WRONG_ENDPOINT_TYPE"; break; - case AUDCLNT_E_DEVICE_INVALIDATED: e << "AUDCLNT_E_DEVICE_INVALIDATED"; break; - case AUDCLNT_E_NOT_STOPPED: e << "AUDCLNT_E_NOT_STOPPED"; break; - case AUDCLNT_E_BUFFER_TOO_LARGE: e << "AUDCLNT_E_BUFFER_TOO_LARGE"; break; - case AUDCLNT_E_OUT_OF_ORDER: e << "AUDCLNT_E_OUT_OF_ORDER"; break; - case AUDCLNT_E_UNSUPPORTED_FORMAT: e << "AUDCLNT_E_UNSUPPORTED_FORMAT"; break; - case AUDCLNT_E_INVALID_SIZE: e << "AUDCLNT_E_INVALID_SIZE"; break; - case AUDCLNT_E_DEVICE_IN_USE: e << "AUDCLNT_E_DEVICE_IN_USE"; break; - case AUDCLNT_E_BUFFER_OPERATION_PENDING: e << "AUDCLNT_E_BUFFER_OPERATION_PENDING"; break; - case AUDCLNT_E_THREAD_NOT_REGISTERED: e << "AUDCLNT_E_THREAD_NOT_REGISTERED"; break; - case AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED: e << "AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED"; break; - case AUDCLNT_E_ENDPOINT_CREATE_FAILED: e << "AUDCLNT_E_ENDPOINT_CREATE_FAILED"; break; - case AUDCLNT_E_SERVICE_NOT_RUNNING: e << "AUDCLNT_E_SERVICE_NOT_RUNNING"; break; - case AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED: e << "AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED"; break; - case AUDCLNT_E_EXCLUSIVE_MODE_ONLY: e << "AUDCLNT_E_EXCLUSIVE_MODE_ONLY"; break; - case AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL: e << "AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL"; break; - case AUDCLNT_E_EVENTHANDLE_NOT_SET: e << "AUDCLNT_E_EVENTHANDLE_NOT_SET"; break; - case AUDCLNT_E_INCORRECT_BUFFER_SIZE: e << "AUDCLNT_E_INCORRECT_BUFFER_SIZE"; break; - case AUDCLNT_E_BUFFER_SIZE_ERROR: e << "AUDCLNT_E_BUFFER_SIZE_ERROR"; break; - case AUDCLNT_S_BUFFER_EMPTY: e << "AUDCLNT_S_BUFFER_EMPTY"; break; - case AUDCLNT_S_THREAD_ALREADY_REGISTERED: e << "AUDCLNT_S_THREAD_ALREADY_REGISTERED"; break; - default: e << String::toHexString ((int) hr); break; + case E_POINTER: m = "E_POINTER"; break; + case E_INVALIDARG: m = "E_INVALIDARG"; break; + case AUDCLNT_E_NOT_INITIALIZED: m = "AUDCLNT_E_NOT_INITIALIZED"; break; + case AUDCLNT_E_ALREADY_INITIALIZED: m = "AUDCLNT_E_ALREADY_INITIALIZED"; break; + case AUDCLNT_E_WRONG_ENDPOINT_TYPE: m = "AUDCLNT_E_WRONG_ENDPOINT_TYPE"; break; + case AUDCLNT_E_DEVICE_INVALIDATED: m = "AUDCLNT_E_DEVICE_INVALIDATED"; break; + case AUDCLNT_E_NOT_STOPPED: m = "AUDCLNT_E_NOT_STOPPED"; break; + case AUDCLNT_E_BUFFER_TOO_LARGE: m = "AUDCLNT_E_BUFFER_TOO_LARGE"; break; + case AUDCLNT_E_OUT_OF_ORDER: m = "AUDCLNT_E_OUT_OF_ORDER"; break; + case AUDCLNT_E_UNSUPPORTED_FORMAT: m = "AUDCLNT_E_UNSUPPORTED_FORMAT"; break; + case AUDCLNT_E_INVALID_SIZE: m = "AUDCLNT_E_INVALID_SIZE"; break; + case AUDCLNT_E_DEVICE_IN_USE: m = "AUDCLNT_E_DEVICE_IN_USE"; break; + case AUDCLNT_E_BUFFER_OPERATION_PENDING: m = "AUDCLNT_E_BUFFER_OPERATION_PENDING"; break; + case AUDCLNT_E_THREAD_NOT_REGISTERED: m = "AUDCLNT_E_THREAD_NOT_REGISTERED"; break; + case AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED: m = "AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED"; break; + case AUDCLNT_E_ENDPOINT_CREATE_FAILED: m = "AUDCLNT_E_ENDPOINT_CREATE_FAILED"; break; + case AUDCLNT_E_SERVICE_NOT_RUNNING: m = "AUDCLNT_E_SERVICE_NOT_RUNNING"; break; + case AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED: m = "AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED"; break; + case AUDCLNT_E_EXCLUSIVE_MODE_ONLY: m = "AUDCLNT_E_EXCLUSIVE_MODE_ONLY"; break; + case AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL: m = "AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL"; break; + case AUDCLNT_E_EVENTHANDLE_NOT_SET: m = "AUDCLNT_E_EVENTHANDLE_NOT_SET"; break; + case AUDCLNT_E_INCORRECT_BUFFER_SIZE: m = "AUDCLNT_E_INCORRECT_BUFFER_SIZE"; break; + case AUDCLNT_E_BUFFER_SIZE_ERROR: m = "AUDCLNT_E_BUFFER_SIZE_ERROR"; break; + case AUDCLNT_S_BUFFER_EMPTY: m = "AUDCLNT_S_BUFFER_EMPTY"; break; + case AUDCLNT_S_THREAD_ALREADY_REGISTERED: m = "AUDCLNT_S_THREAD_ALREADY_REGISTERED"; break; + default: break; } - DBG (e); - jassertfalse; + Logger::writeToLog ("WASAPI error: " + (m != nullptr ? String (m) + : String::toHexString ((int) hr))); } #endif } @@ -872,7 +870,6 @@ public: sampleRateChanged = true; } - JUCE_TRY { const ScopedLock sl (startStopLock); @@ -882,7 +879,6 @@ public: else outs.clear(); } - JUCE_CATCH_EXCEPTION if (outputDevice != nullptr) { diff --git a/modules/juce_core/logging/juce_Logger.cpp b/modules/juce_core/logging/juce_Logger.cpp index 51cdb02159..e7f60b1cad 100644 --- a/modules/juce_core/logging/juce_Logger.cpp +++ b/modules/juce_core/logging/juce_Logger.cpp @@ -34,10 +34,8 @@ Logger::~Logger() Logger* Logger::currentLogger = nullptr; -void Logger::setCurrentLogger (Logger* const newLogger) noexcept -{ - currentLogger = newLogger; -} +void Logger::setCurrentLogger (Logger* const newLogger) noexcept { currentLogger = newLogger; } +Logger* Logger::getCurrentLogger() noexcept { return currentLogger; } void Logger::writeToLog (const String& message) { diff --git a/modules/juce_core/logging/juce_Logger.h b/modules/juce_core/logging/juce_Logger.h index 619872f8d1..6282c0c0c3 100644 --- a/modules/juce_core/logging/juce_Logger.h +++ b/modules/juce_core/logging/juce_Logger.h @@ -57,6 +57,9 @@ public: */ static void JUCE_CALLTYPE setCurrentLogger (Logger* newLogger) noexcept; + /** Returns the current logger, or nullptr if none has been set. */ + static Logger* getCurrentLogger() noexcept; + /** Writes a string to the current logger. This will pass the string to the logger's logMessage() method if a logger