/// <summary> /// This function initialized the Plugin. /// </summary> /// <param name="apiInterfacePtr"></param> /// <returns></returns> public PluginInfo Initialise(IntPtr apiInterfacePtr) { selfInstance = this; JsConfig.ExcludeTypeInfo = true; Configuration.Register(Controller.Instance); mbApiInterface = new MusicBeeApiInterface(); mbApiInterface.Initialise(apiInterfacePtr); UserSettings.Instance.SetStoragePath(mbApiInterface.Setting_GetPersistentStoragePath()); UserSettings.Instance.LoadSettings(); about.PluginInfoVersion = PluginInfoVersion; about.Name = "MusicBee Remote: Plugin"; about.Description = "Remote Control for server to be used with android application."; about.Author = "Konstantinos Paparas (aka Kelsos)"; about.TargetApplication = "MusicBee Remote"; Version v = Assembly.GetExecutingAssembly().GetName().Version; UserSettings.Instance.CurrentVersion = v.ToString(); // current only applies to artwork, lyrics or instant messenger name that appears in the provider drop down selector or target Instant Messenger about.Type = PluginType.General; about.VersionMajor = Convert.ToInt16(v.Major); about.VersionMinor = Convert.ToInt16(v.Minor); about.Revision = Convert.ToInt16(v.Revision); about.MinInterfaceVersion = MinInterfaceVersion; about.MinApiRevision = MinApiRevision; about.ReceiveNotifications = ReceiveNotificationFlags.PlayerEvents; if (mbApiInterface.ApiRevision < MinApiRevision) { return about; } ErrorHandler.SetLogFilePath(mbApiInterface.Setting_GetPersistentStoragePath()); StartPlayerStatusMonitoring(); mbApiInterface.MB_AddMenuItem("mnuTools/MusicBee Remote", "Information Panel of the MusicBee Remote", MenuItemClicked); EventBus.FireEvent(new MessageEvent(EventType.ActionSocketStart)); EventBus.FireEvent(new MessageEvent(EventType.InitializeModel)); EventBus.FireEvent(new MessageEvent(EventType.StartServiceBroadcast)); EventBus.FireEvent(new MessageEvent(EventType.ShowFirstRunDialog)); positionUpdateTimer = new Timer(20000); positionUpdateTimer.Elapsed += PositionUpdateTimerOnElapsed; positionUpdateTimer.Enabled = true; return about; }
// Constructor/Destructor ---------------------------------------------- /// <summary> /// Initializes a new instance of the <see cref="CheckForWorkstationLocking"/> class. /// </summary> /// <param name="mbApiInterface">The mb API interface.</param> public CheckForWorkstationLocking(Plugin.MusicBeeApiInterface mbApiInterface) { _mbApiInterface = mbApiInterface; }