X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/89fa4d7bfe1d02662a65c4d16faa8a67a3e1041b..e99a9fd614f9bd1d205e00b47e3e669b7735b91f:/README.developers diff --git a/README.developers b/README.developers index e104598..75c1c44 100644 --- a/README.developers +++ b/README.developers @@ -12,10 +12,13 @@ Dependencies: apt-get install gcc libc-dev automake autoconf libtool libgtk2.0-dev \ libgc-dev libgcrypt-dev libpcre3-dev libvorbis-dev \ libao-dev libmad0-dev libasound2-dev libdb4.3-dev \ - libflac-dev + libflac-dev vorbis-tools wget (Use the bzr from backports, the one in etch is obsolete.) + On lenny use libdb4.5-deb. libdb4.6 does not work (and configure will + refuse to use it). + * On FreeBSD you'll need at least these packages: autotools bash @@ -34,8 +37,8 @@ Dependencies: Building: - * Compiled versions of configure and the makefiles are including in bzr, so - if you didn't use a source tarball, you must start as follows: + * Compiled versions of configure and the makefiles are not included in bzr, + so if you didn't use a source tarball, you must start as follows: bash ./prepare ./configure -C @@ -58,16 +61,11 @@ APIs And Formats: * To support a new sound API: 1) Teach configure.ac how to detect any libraries required. - 2) Define a new BACKEND_ value and update configuration.[ch] for it. - 3) Create a suitable server/speaker-*.c along the pattern of the existing - ones. - 4) If possible create a suitable lib/mixer-*.c. This doesn't make sense - for all APIs (e.g. network), but even for those it does, playback - support without volume control support is likely to be acceptable (even - if inferior to full support). + 2) Create lib/uaudio-.c; see uaudio.h for the interface. + 3) Update the list in lib/uaudio-apis.c + 4) Add a new option to clients/playrtp.c and document it in + doc/disorder-playrtp.1.in (if appropriate). 5) Update doc/disorder_config.5.in. - 6) If relevant, create a suitable clients/playrtp-*.c and update - doc/disorder-playrtp.1.in. * To support a new file format: 1) Teach configure.ac how to detect any libraries required. @@ -137,8 +135,9 @@ The Server: Web Interface: * The web interface does not use Javascript or Flash and I would like to - keep it that way. Clever use of CSS is OK provided it works well on the - mainstream browsers. + keep it that way; Javascript might be acceptable but it must degrade + gracefuly if disabled. Clever use of CSS is OK provided it works well on + the mainstream browsers. * Update templates/help.tmpl for any changes you make. @@ -187,16 +186,15 @@ Code And Patches: (But if your new feature only makes sense on a given platform then obviously its new dependencies don't need to be available elsewhere.) - * GCCisms such as typeof are used; the configure script asks for -std=gnu99 - by default. At least one active user is still using GCC 2.95, so - extensions that only appear in later versions are to be avoided for the - time being. + * GCCisms such as typeof and C99isms such as mixed declarations and named + structure initializers are used; the configure script asks for -std=gnu99 + by default. Some supported platforms are still on GCC 4.0. * Please submit patches either using 'diff -u', or by publishing a bzr branch somewhere I can get at it. * Please make it clear that your changes can be distributed under DisOrder's - licence (which is "GPL v2 or later"). + licence (which is "GPL v3 or later"). Local Variables: mode:text