Esempio n. 1
0
        public int Run()
        {
            try {
                // Create the Settings object
                //this.Settings = new KodiAddonSettings();

                // If we have routes, invoke the request handler
                if (Router.Routes.Count > 0)
                {
                    Router.HandleRequest(this.BaseUrl + this.Parameters);
                }
                int result = this.PluginMain();

                return(result);
            } catch (Exception ex) {
                // This takes the exception and stores it, not allowing it to bubble up
                KodiBridge.SaveException(ex);
                return(1);
            } finally {
                KodiBridge.SetRunningAddon(null, null);

                if (!IsPersistent)
                {
                    KodiBridge.ScheduleAddonTermination(BaseUrl);
                }

                /*
                 * When we get here, we have already returned from PluginMain
                 * tell Python that we are done (TODO: Wait for threads here)
                 * */
                KodiBridge.StopRPC();
            }
        }
Esempio n. 2
0
        private void BeforeReturn()
        {
            KodiBridge.SetRunningAddon(null);

            if (!IsPersistent)
            {
                KodiBridge.ScheduleAddonTermination(BaseUrl);
            }

            /*
             * tell Python that we are done (TODO: Wait for threads here)
             * */
            Bridge.StopRPC(IsPersistent == false);
        }