public static void Main(string[] args) { /* Init Gtk */ Application.Init(); Core.Init(); /* Init GStreamer */ GStreamer.Init(); if (!GStreamer.CheckInstallation()) { return; } GLib.ExceptionManager.UnhandledException += new GLib.UnhandledExceptionHandler(OnException); Version version = Assembly.GetExecutingAssembly().GetName().Version; try { AddinsManager manager = new AddinsManager(Config.PluginsConfigDir, Config.PluginsDir); manager.LoadConfigModifierAddins(); GUIToolkit guiToolkit = new GUIToolkit(version); IMultimediaToolkit multimediaToolkit = new MultimediaFactory(); manager.LoadExportProjectAddins(guiToolkit.MainWindow); manager.LoadImportProjectAddins(guiToolkit.MainWindow); try { Core.Start(guiToolkit, multimediaToolkit); } catch (DBLockedException locked) { string msg = Catalog.GetString("The database seems to be locked by another instance and " + "the application will closed."); Log.Exception(locked); return; } Application.Run(); } catch (Exception ex) { ProcessExecutionError(ex); } }
public static void Main(string[] args) { CoreServices.Init(); InitGtk(); /* Init GStreamer */ GStreamer.Init(); //if (!GStreamer.CheckInstallation ()) // return; GLib.ExceptionManager.UnhandledException += new GLib.UnhandledExceptionHandler(OnException); Version version = Assembly.GetExecutingAssembly().GetName().Version; try { AddinsManager.Initialize(Config.PluginsConfigDir, Config.PluginsDir); AddinsManager.LoadConfigModifierAddins(); Config.DrawingToolkit = new CairoBackend(); Config.EventsBroker = new EventsBroker(); Config.MultimediaToolkit = new MultimediaToolkit(); Config.GUIToolkit = new GUIToolkit(version); bool haveCodecs = AddinsManager.RegisterGStreamerPlugins(); AddinsManager.LoadExportProjectAddins(Config.GUIToolkit.MainController); AddinsManager.LoadMultimediaBackendsAddins(Config.MultimediaToolkit); AddinsManager.LoadUIBackendsAddins(Config.GUIToolkit); AddinsManager.LoadServicesAddins(); Config.GUIToolkit.Register <IPlayerView, PlayerView> (0); if (!haveCodecs) { CodecsChoiceDialog ccd = new CodecsChoiceDialog(); int response = ccd.Run(); if (response == (int)ResponseType.Accept) { try { System.Diagnostics.Process.Start(Constants.WEBSITE); } catch { } } ccd.Destroy(); } try { CoreServices.Start(Config.GUIToolkit, Config.MultimediaToolkit); } catch (DBLockedException locked) { string msg = Catalog.GetString("The database seems to be locked by another instance and " + "the application will be closed."); Config.GUIToolkit.ErrorMessage(msg); Log.Exception(locked); return; } AddinsManager.LoadDashboards(Config.CategoriesTemplatesProvider); AddinsManager.LoadImportProjectAddins(CoreServices.ProjectsImporter); ConfigureOSXApp(); Application.Run(); } catch (AddinRequestShutdownException arse) { // Abort gracefully } catch (Exception ex) { ProcessExecutionError(ex); } finally { try { AddinsManager.ShutdownMultimediaBackends(); } catch { } } }