using System; using System.Collections.Generic; using System.Globalization; using Jellyfin.Plugin.JellyLMS.Configuration; using MediaBrowser.Common.Configuration; using MediaBrowser.Common.Plugins; using MediaBrowser.Model.Plugins; using MediaBrowser.Model.Serialization; namespace Jellyfin.Plugin.JellyLMS; /// /// The main JellyLMS plugin class. /// Bridges Jellyfin audio playback to LMS for multi-room synchronized playback. /// public class Plugin : BasePlugin, IHasWebPages { /// /// Initializes a new instance of the class. /// /// Instance of the interface. /// Instance of the interface. public Plugin(IApplicationPaths applicationPaths, IXmlSerializer xmlSerializer) : base(applicationPaths, xmlSerializer) { Instance = this; } /// public override string Name => "JellyLMS"; /// public override Guid Id => Guid.Parse("a5b8c9d0-1e2f-3a4b-5c6d-7e8f9a0b1c2d"); /// public override string Description => "Stream Jellyfin audio to Logitech Media Server (LMS) for multi-room playback"; /// /// Gets the current plugin instance. /// public static Plugin? Instance { get; private set; } /// public IEnumerable GetPages() { return [ new PluginPageInfo { Name = Name, EmbeddedResourcePath = string.Format(CultureInfo.InvariantCulture, "{0}.Configuration.configPage.html", GetType().Namespace) } ]; } }