106 lines
2.5 KiB
XML
106 lines
2.5 KiB
XML
<?xml version='1.0' encoding="utf-8"?>
|
|
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
|
"docbook/dtd/xml/4.2/docbookx.dtd">
|
|
<book>
|
|
<title>The Music Player Daemon - Developer's Manual</title>
|
|
|
|
<chapter>
|
|
<title>Introduction</title>
|
|
|
|
<para>
|
|
This is a guide for those who wish to hack on the MPD source
|
|
code. MPD is an open project, and we are always happy about
|
|
contributions. So far, more than 50 people have contributed
|
|
patches.
|
|
</para>
|
|
|
|
<para>
|
|
This document is work in progress. Most of it may be incomplete
|
|
yet. Please help!
|
|
</para>
|
|
</chapter>
|
|
|
|
<chapter>
|
|
<title>Code Style</title>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
indent with tabs (width 8)
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
don't write CPP when you can write C: use inline functions
|
|
and enums instead of macros
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
the code should be C99 compliant, and must compile with
|
|
<application>GCC</application>;
|
|
<application>clang</application> support is highly desirable
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
C++ is ok (for integrating C++ only libraries), but it
|
|
should be avoided
|
|
</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>
|
|
Some example code:
|
|
</para>
|
|
|
|
<programlisting lang="C">static inline int
|
|
foo(const char *abc, int xyz)
|
|
{
|
|
if (abc == NULL) {
|
|
g_warning("Foo happened!\n");
|
|
return -1;
|
|
}
|
|
|
|
return xyz;
|
|
}
|
|
</programlisting>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</chapter>
|
|
|
|
<chapter>
|
|
<title>Hacking The Source</title>
|
|
|
|
<para>
|
|
Always write your code against the latest git:
|
|
</para>
|
|
|
|
<programlisting>git clone git://git.musicpd.org/master/mpd.git</programlisting>
|
|
|
|
<para>
|
|
Configure with the options <option>--enable-debug
|
|
--enable-werror</option>. Enable as many plugins as possible,
|
|
to be sure that you don't break any disabled code.
|
|
</para>
|
|
|
|
<para>
|
|
Don't mix several changes in one single patch. Create a
|
|
separate patch for every change. Tools like
|
|
<application>stgit</application> help you with that.
|
|
</para>
|
|
</chapter>
|
|
|
|
<chapter>
|
|
<title>Submitting Patches</title>
|
|
|
|
<para>
|
|
Send your patches to the mailing list:
|
|
musicpd-dev-team@lists.sourceforge.net
|
|
</para>
|
|
</chapter>
|
|
</book>
|