summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-11-12 04:57:03 +0100
committerRobin Gareus <robin@gareus.org>2014-11-12 13:35:15 +0100
commit533b545295d6792daf14f009654af36ad2240fa3 (patch)
treed0399648838cb159244cbf438f8878fc25656766
parent5624301a312804d09f65997ff92fd13037e4ac39 (diff)
add popup message and error log for AU crash reports
-rw-r--r--gtk2_ardour/ardour_ui.cc11
-rw-r--r--libs/ardour/audio_unit.cc1
2 files changed, 12 insertions, 0 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 2e9d8b3247..03ca13745f 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -88,6 +88,9 @@
#ifdef WINDOWS_VST_SUPPORT
#include <fst.h>
#endif
+#ifdef AUDIOUNIT_SUPPORT
+#include "ardour/audio_unit.h"
+#endif
#include "timecode/time.h"
@@ -483,6 +486,14 @@ ARDOUR_UI::post_engine ()
{
/* Things to be done once (and once ONLY) after we have a backend running in the AudioEngine
*/
+#ifdef AUDIOUNIT_SUPPORT
+ std::string au_msg;
+ if (AUPluginInfo::au_get_crashlog(au_msg)) {
+ popup_error(_("Audio Unit Plugin Scan Failed. Automatic AU scanning has been disabled. Please see the log window for further details."));
+ error << _("Audio Unit Plugin Scan Failed:") << endmsg;
+ info << au_msg << endmsg;
+ }
+#endif
ARDOUR::init_post_engine ();
diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc
index aa98ebb4c8..3024c55f43 100644
--- a/libs/ardour/audio_unit.cc
+++ b/libs/ardour/audio_unit.cc
@@ -2238,6 +2238,7 @@ AUPluginInfo::au_get_crashlog (std::string &msg)
}
std::ifstream ifs(fn.c_str());
msg.assign ((std::istreambuf_iterator<char>(ifs)), (std::istreambuf_iterator<char>()));
+ au_remove_crashlog ();
return true;
}