public PluginInfo Initialise(IntPtr apiInterfacePtr) { mbApiInterface = new MusicBeeApiInterface(); mbApiInterface.Initialise(apiInterfacePtr); about.PluginInfoVersion = PluginInfoVersion; about.Name = "MusicBee Chromecast"; about.Description = "Adds cast functionality to MusicBee"; about.Author = "Troy Fernandes"; about.TargetApplication = ""; // 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 = 1; // your plugin version about.VersionMinor = 0; about.Revision = 1; about.MinInterfaceVersion = MinInterfaceVersion; about.MinApiRevision = MinApiRevision; about.ReceiveNotifications = (ReceiveNotificationFlags.PlayerEvents | ReceiveNotificationFlags.TagEvents); about.ConfigurationPanelHeight = 25; // height in pixels that musicbee should reserve in a panel for config settings. When set, a handle to an empty panel will be passed to the Configure function mbApiInterface.MB_RegisterCommand("Chromecast", OnChromecastSelection); ToolStripMenuItem mainMenuItem = (ToolStripMenuItem)mbApiInterface.MB_AddMenuItem("mnuTools/MB Chromecast", null, null); //TODO mainMenuItem.DropDown.Items.Add("Check Status", null, StatusShowInMessagebox); mainMenuItem.DropDown.Items.Add("Disconnect from Chromecast", null, (sender, e) => DisconnectFromChromecast(sender, e, false)); mainMenuItem.DropDown.Items.Add("Stop Server", null, StopWebserver); mainMenuItem.DropDown.Items.Add("Stop Plugin", null, UserClosingPlugin); //Save the crossfade settings crossfade = mbApiInterface.Player_GetCrossfade(); ReadSettings(); return(about); }