public override int DefaultRoute() { TestPlugin addon = KodiBridge.RunningAddon as TestPlugin; //ConsoleHelper.CreateConsole(); Console.WriteLine("TestPlugin v1.0 - Smx"); using (var sum = PyVariableManager.NewVariable()) { sum.Value = "1+2"; PyConsole.WriteLine("Result: " + sum); } //Console.WriteLine("Settings['test'] => " + addon.Settings["test"]); using (var dict = PyVariableManager.NewVariable()) { Dictionary <string, string> TestDict = new Dictionary <string, string> { { "hello", "python" }, { "dict", "test" } }; dict.Value = TestDict.ToPythonCode(); PyConsole.WriteLine("Dict: " + dict); } PyConsole.WriteLine("Hello Python"); //ConsoleHelper.FreeConsole(); return(0); }
public void MainHandler(NameValueCollection parameters) { TestPlugin addon = KodiBridge.RunningAddon as TestPlugin; List <ListItem> items = new List <ListItem> { new ListItem( label: "AudioPlayer", url: addon.BuildNavUrl("/audio"), isFolder: true, art: new Dictionary <Art, string> { { Art.Poster, "https://upload.wikimedia.org/wikipedia/commons/2/25/Kodi-logo-Thumbnail-light-transparent.png" }, { Art.Fanart, "https://images.pexels.com/photos/167092/pexels-photo-167092.jpeg?dl&fit=crop&crop=entropy&w=6000&h=4000" } } ), new ListItem( label: "Events", url: addon.BuildNavUrl("/events"), isFolder: true ), new ListItem( label: "Nav", url: addon.BuildNavUrl("/nav"), isFolder: true ), new ListItem( label: "Playlist", url: addon.BuildNavUrl("/playlist"), isFolder: true ), new ListItem("Item 2"), new ListItem("Item 3") }; List.Add(items); List.Show(); UiBuiltins.Notification( header: "My Notification", message: "Hello World from C#", duration: TimeSpan.FromSeconds(10) ); /* * Persistent variables preserve their value between multiple plugin invokations, * unlike python in XBMC where everything is destroyed when the plugin is invoked again (e.g navigating between pages). * This is possible due to Assembly Domain that is created by the CLR once the plugin is loaded for the first time. **/ TestPluginState.LastMainPageVisitTime = DateTime.Now; }
public static void MainHandler(NameValueCollection parameters) { TestPlugin addon = KodiBridge.RunningAddon as TestPlugin; List <ListItem> items = new List <ListItem> { new ListItem( label: "AudioPlayer", url: addon.BuildNavUrl("/audio"), isFolder: true ), new ListItem( label: "Events", url: addon.BuildNavUrl("/events"), isFolder: true ), new ListItem( label: "Nav", url: addon.BuildNavUrl("/nav"), isFolder: true ), new ListItem("Item 2"), new ListItem("Item 3") }; List.Add(items); List.Show(); //Console.WriteLine("Settings Test: " + addon.Settings["test"]); UiBuiltins.Notification( header: "My Notification", message: "Hello World from C#", duration: TimeSpan.FromSeconds(10) ); /* * Persistent variables preserve their value between multiple plugin invokations, * unlike python in XBMC where everything is destroyed when the plugin is invoked again (e.g navigating between pages). * This is possible due to Assembly Domain that is created by the CLR once the plugin is loaded for the first time. **/ TestPluginState.LastMainPageVisitTime = DateTime.Now; }
public void NavHandler(NameValueCollection parameters) { TestPlugin addon = KodiBridge.RunningAddon as TestPlugin; string itemLabel = "Go to Main"; if (TestPluginState.LastMainPageVisitTime != null) { itemLabel += string.Format(" (Last Visited: {0})", TestPluginState.LastMainPageVisitTime.Value.ToString()); } List <ListItem> items = new List <ListItem> { new ListItem( label: itemLabel, url: addon.BuildNavUrl("/"), isFolder: true ), }; Console.WriteLine(string.Format("ListItem label is '{0}'", items[0].Label)); List.Add(items); List.Show(); }
public TestControl(TestPlugin plugin) : this() { Plugin = plugin; DataContext = plugin.Config; }