public PluginInfo Initialise(IntPtr apiInterfacePtr) { try { _mbApiInterface = new MusicBeeApiInterface(); _mbApiInterface.Initialise(apiInterfacePtr); _about.PluginInfoVersion = PluginInfoVersion; _about.Name = MusicBeeExporterConstants.Name; _about.Description = MusicBeeExporterConstants.Description; _about.Author = MusicBeeExporterConstants.Author; _about.TargetApplication = MusicBeeExporterConstants .TargetApplication; _about.Type = PluginType.General; _about.VersionMajor = MusicBeeExporterConstants.VersionMajor; _about.VersionMinor = MusicBeeExporterConstants.VersionMinor; _about.Revision = MusicBeeExporterConstants.Revision; _about.MinInterfaceVersion = MinInterfaceVersion; _about.MinApiRevision = MinApiRevision; _about.ReceiveNotifications = ReceiveNotificationFlags.PlayerEvents | ReceiveNotificationFlags.TagEvents; _about.ConfigurationPanelHeight = MusicBeeExporterConstants.ConfigurationPanelHeight; // Initialize the plugin after music bee api interface is initialized and the PersistentStoragePath is accessible IPersistenceSettings persistenceSettings = new PersistenceSettings { MusicBeeAllocatedStoragePath = _mbApiInterface.Setting_GetPersistentStoragePath() }; // Create Plugin Storage folder Directory.CreateDirectory(persistenceSettings.PluginStorageDirectory); _repo = new Persistence(persistenceSettings); // Load exporter settings if it exists, otherwise create a new settings file. var settingJson = _repo.LoadPluginSettings(); if (!string.IsNullOrWhiteSpace(settingJson)) { _pluginSettings = JsonConvert.DeserializeObject <MusicBeeExporterSettings>(settingJson); } else { _pluginSettings = new MusicBeeExporterSettings(persistenceSettings); _repo.SavePluginSettings(_pluginSettings); } CreateMenuItem(); } catch (Exception ex) { UIHelper.DisplayExceptionDialog(ex); } return(_about); }
/// <summary> /// Saves the plugin settings json string into <see cref="PersistenceSettings.PluginStorageDirectory" /> /// </summary> public void SavePluginSettings(IMusicBeeExporterSettings settings) { var customSettingJson = JsonConvert.SerializeObject(settings, Formatting.Indented); using (var sw = new StreamWriter(_persistenceSettings.MusicBeeExporterSettingsFilePath, false)) { sw.Write(customSettingJson); } }
public SettingsForm(IMusicBeeExporterSettings settings, IPersistence repo) { _settings = settings; _repo = repo; InitializeComponent(); }
public GenerateCustomizedOutputForm(IMusicBeeExporterSettings settings) { _settings = settings; InitializeComponent(); }