﻿<?xml version="1.0" encoding="utf-8"?><Type Name="Plugin" FullName="Muine.PluginLib.Plugin"><TypeSignature Language="C#" Value="public abstract class Plugin" Maintainer="auto" /><AssemblyInfo><AssemblyName>muine-plugin</AssemblyName><AssemblyPublicKey>[00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 00 24 00 00 52 53 41 31 00 04 00 00 11 00 00 00 C5 37 4D 60 8D CC BC 44 7A D1 32 5C B6 3C 9B D1 6B 06 FB A7 3E A7 1A 10 D3 C9 F3 11 88 C7 7D D3 04 CA B0 96 51 5C 27 24 3C 5C 31 1D A5 06 36 19 95 BB 06 BB 44 FD 61 84 E0 5A 64 B4 83 3B A8 51 D3 19 7A DC F9 3E 16 C3 70 08 C9 6A 52 D3 34 66 7B B8 E0 D1 9F 27 71 7A E9 79 69 47 BE 41 4F B7 F6 BF 6F BE 3B E7 71 12 73 FC 8A 1D FD 7C 4B 24 7F C3 5E A6 EE 15 E4 1F A2 FB 99 9B 72 04 64 82]</AssemblyPublicKey><AssemblyVersion>1.0.0.0</AssemblyVersion></AssemblyInfo><ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement><Docs><summary>Muine plug-in base class</summary><remarks><para>Use this class as the base class for your plug-in. <see cref="M:Muine.PluginLib.Plugin.Initialize" /> is called by the plug-in manager to supply the <see cref="T:Muine.PluginLib.IPlayer" /> interface. Using a constructor is discouraged, but if you really want to, use a zero-argument one.</para><example><code lang="C#">
using System;
using System.IO;

using Muine.PluginLib;

public class TestPlugin : Plugin
{
	private IPlayer player;

	public override void Initialize (IPlayer player)
	{
		this.player = player;
		
		player.SongChangedEvent +=
			new SongChangedEventHandler (OnSongChangedEvent);
	}
	
	private void OnSongChangedEvent (ISong song)
	{
		if (song == null)
			return;

		Console.WriteLine ("Started playing {0}", song.Title);
	}
}
	</code></example></remarks></Docs><Base><BaseTypeName>System.Object</BaseTypeName></Base><Interfaces /><Members><Member MemberName="Initialize"><MemberSignature Language="C#" Value="public abstract void Initialize (Muine.PluginLib.IPlayer player);" /><MemberType>Method</MemberType><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="player" Type="Muine.PluginLib.IPlayer" /></Parameters><Docs><summary>Supplies an implementation of the <see cref="T:Muine.PluginLib.IPlayer" /> interface</summary><param name="player">a <see cref="T:Muine.PluginLib.IPlayer" /></param><remarks>This method is called by the plugin manager when the plug-in is loaded. It supplies the plug-in with an implementation of the <see cref="T:Muine.PluginLib.IPlayer" /> interface. The plug-in would typically initialize itself at this point.</remarks></Docs></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="protected Plugin ();" /><MemberType>Constructor</MemberType><ReturnValue /><Parameters /><Docs><summary>Constructs a Plugin object</summary><remarks>Creates a dummy Plugin object. You probably do not want to do this. See <see cref="M:Muine.PluginLib.Plugin.Initialize" />.</remarks></Docs></Member></Members></Type>