<refentry id="libnetdude-libnd-plugin">
<refmeta>
<refentrytitle id="top_of_page">libnd_plugin</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>LIBNETDUDE Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>libnd_plugin</refname>
<refpurpose></refpurpose>
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
</refnamediv>

<refsynopsisdiv id="synopsis">
<title id="synopsis.title">Synopsis</title>

<synopsis>



<link linkend="void">void</link>        (<link linkend="LND-PluginFunc">*LND_PluginFunc</link>)               (<link linkend="LND-Plugin">LND_Plugin</link> *plugin,
                                             <link linkend="void">void</link> *user_data);
<link linkend="void">void</link>        <link linkend="libnd-plugin-init">libnd_plugin_init</link>               (void);
<link linkend="LND-Plugin">LND_Plugin</link>* <link linkend="libnd-plugin-find">libnd_plugin_find</link>               (const <link linkend="char">char</link> *name);
<link linkend="void">void</link>        <link linkend="libnd-plugin-run">libnd_plugin_run</link>                (<link linkend="LND-Plugin">LND_Plugin</link> *plugin,
                                             <link linkend="LND-Trace">LND_Trace</link> *trace,
                                             <link linkend="void">void</link> *user_data);
const <link linkend="char">char</link>* <link linkend="libnd-plugin-get-name">libnd_plugin_get_name</link>           (<link linkend="LND-Plugin">LND_Plugin</link> *plugin);
const <link linkend="char">char</link>* <link linkend="libnd-plugin-get-author">libnd_plugin_get_author</link>         (<link linkend="LND-Plugin">LND_Plugin</link> *plugin);
const <link linkend="char">char</link>* <link linkend="libnd-plugin-get-version">libnd_plugin_get_version</link>        (<link linkend="LND-Plugin">LND_Plugin</link> *plugin);
<link linkend="void">void</link>        <link linkend="libnd-plugin-foreach">libnd_plugin_foreach</link>            (<link linkend="LND-PluginFunc">LND_PluginFunc</link> callback,
                                             <link linkend="void">void</link> *user_data);
</synopsis>
</refsynopsisdiv>









<refsect1 id="desc">
<title id="desc.title">Description</title>
<para>

</para>
</refsect1>

<refsect1 id="details">
<title id="details.title">Details</title>
<refsect2>
<title><anchor id="LND-PluginFunc" role="function">LND_PluginFunc ()</title>
<indexterm><primary>LND_PluginFunc</primary></indexterm><programlisting><link linkend="void">void</link>        (*LND_PluginFunc)               (<link linkend="LND-Plugin">LND_Plugin</link> *plugin,
                                             <link linkend="void">void</link> *user_data);</programlisting>
<para>
This is the signature of functions that can be passed to
<link linkend="libnd-plugin-foreach"><function>libnd_plugin_foreach()</function></link>.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>plugin</parameter>&nbsp;:</term>
<listitem><simpara> iterated plugin.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara> arbitrary user data.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="libnd-plugin-init" role="function">libnd_plugin_init ()</title>
<indexterm><primary>libnd_plugin_init</primary></indexterm><programlisting><link linkend="void">void</link>        libnd_plugin_init               (void);</programlisting>
<para>
The function scans the plugin directories, reads in the
plugins it finds and hooks them into the main window.</para>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="libnd-plugin-find" role="function">libnd_plugin_find ()</title>
<indexterm><primary>libnd_plugin_find</primary></indexterm><programlisting><link linkend="LND-Plugin">LND_Plugin</link>* libnd_plugin_find               (const <link linkend="char">char</link> *name);</programlisting>
<para>
The function scans the list of loaded plugins and
returns the plugin of name <parameter>name</parameter>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if no
such plugin exists. NOTE: name lookups are case-insensitive.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>name</parameter>&nbsp;:</term>
<listitem><simpara> name of plugin to look up.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> plugin with name <parameter>name</parameter>, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> on failure.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="libnd-plugin-run" role="function">libnd_plugin_run ()</title>
<indexterm><primary>libnd_plugin_run</primary></indexterm><programlisting><link linkend="void">void</link>        libnd_plugin_run                (<link linkend="LND-Plugin">LND_Plugin</link> *plugin,
                                             <link linkend="LND-Trace">LND_Trace</link> *trace,
                                             <link linkend="void">void</link> *user_data);</programlisting>
<para>
The function runs the given <parameter>plugin</parameter> on the  current
trace. If there is no current trace, it just returns.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>plugin</parameter>&nbsp;:</term>
<listitem><simpara> plugin to run.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>trace</parameter>&nbsp;:</term>
<listitem><simpara> trace to run the plugin on.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara> arbitrary data to pass to plugin implementation.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="libnd-plugin-get-name" role="function">libnd_plugin_get_name ()</title>
<indexterm><primary>libnd_plugin_get_name</primary></indexterm><programlisting>const <link linkend="char">char</link>* libnd_plugin_get_name           (<link linkend="LND-Plugin">LND_Plugin</link> *plugin);</programlisting>
<para>
The function returns a pointer to statically allocated memory
containing a string describing the plugin.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>plugin</parameter>&nbsp;:</term>
<listitem><simpara> plugin to query.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> name string.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="libnd-plugin-get-author" role="function">libnd_plugin_get_author ()</title>
<indexterm><primary>libnd_plugin_get_author</primary></indexterm><programlisting>const <link linkend="char">char</link>* libnd_plugin_get_author         (<link linkend="LND-Plugin">LND_Plugin</link> *plugin);</programlisting>
<para>
The function returns a pointer to statically allocated memory
containing a string with the author's name.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>plugin</parameter>&nbsp;:</term>
<listitem><simpara> plugin to query.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> author name string.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="libnd-plugin-get-version" role="function">libnd_plugin_get_version ()</title>
<indexterm><primary>libnd_plugin_get_version</primary></indexterm><programlisting>const <link linkend="char">char</link>* libnd_plugin_get_version        (<link linkend="LND-Plugin">LND_Plugin</link> *plugin);</programlisting>
<para>
The function returns a pointer to statically allocated memory
containing a string describing the plugin version.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>plugin</parameter>&nbsp;:</term>
<listitem><simpara> plugin to query.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> version string.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="libnd-plugin-foreach" role="function">libnd_plugin_foreach ()</title>
<indexterm><primary>libnd_plugin_foreach</primary></indexterm><programlisting><link linkend="void">void</link>        libnd_plugin_foreach            (<link linkend="LND-PluginFunc">LND_PluginFunc</link> callback,
                                             <link linkend="void">void</link> *user_data);</programlisting>
<para>
The function iterates over the registered plugins and applies
a callback function to each of them.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>callback</parameter>&nbsp;:</term>
<listitem><simpara> callback to call for each plugin.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara> arbitrary user data passed through to <parameter>callback</parameter>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>




</refentry>
