Files
mpv.net/mpv.net/Misc/Addon.cs
Frank Skare ebb8ad351a -
2019-06-13 22:29:23 +02:00

51 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.ComponentModel.Composition.Hosting;
using System.IO;
using System.Windows.Forms;
namespace mpvnet
{
public class Addon
{
[ImportMany]
public IEnumerable<IAddon> Addons = null;
readonly CompositionContainer CompositionContainer;
public Addon()
{
try
{
AggregateCatalog catalog = new AggregateCatalog();
string dir = Application.StartupPath + "\\Addons";
if (Directory.Exists(dir))
foreach (string i in Directory.GetDirectories(dir))
catalog.Catalogs.Add(new DirectoryCatalog(i, "*Addon.dll"));
dir = mp.ConfFolder + "\\Addons";
if (Directory.Exists(dir))
foreach (string i in Directory.GetDirectories(dir))
catalog.Catalogs.Add(new DirectoryCatalog(i, "*Addon.dll"));
if (catalog.Catalogs.Count > 0)
{
CompositionContainer = new CompositionContainer(catalog);
CompositionContainer.ComposeParts(this);
}
}
catch (Exception ex)
{
Msg.ShowException(ex);
}
}
}
public interface IAddon
{
}
}