clients/rtpmon
libtests/t-resample
clients/resample
+disobedience/manual/Makefile
fi
AC_SUBST([pkghttpdir])
+if test -z "$dochtmldir"; then
+ dochtmldir='$(docdir)/html'
+fi
+AC_SUBST([dochtmldir])
+
subdirs="scripts lib"
if test $want_tests = yes; then
subdirs="${subdirs} libtests"
cgi/Makefile
clients/Makefile
disobedience/Makefile
+ disobedience/manual/Makefile
doc/Makefile
templates/Makefile
plugins/Makefile
#
bin_PROGRAMS=disobedience
-pkgdata_DATA=disobedience.html
+SUBDIRS=manual
AM_CPPFLAGS=-I${top_srcdir}/lib -I../lib
AM_CFLAGS=$(GLIB_CFLAGS) $(GTK_CFLAGS)
check: check-help
-disobedience.html: ../doc/disobedience.1 $(top_srcdir)/scripts/htmlman
- rm -f $@.new
- $(top_srcdir)/scripts/htmlman $< >$@.new
- chmod 444 $@.new
- mv -f $@.new $@
-
misc.o: images.h
images.h: $(PNGS)
unset DISPLAY;./disobedience --version > /dev/null
unset DISPLAY;./disobedience --help > /dev/null
-CLEANFILES=disobedience.html images.h \
+CLEANFILES=images.h \
*.gcda *.gcov *.gcno *.c.html index.html
export GNUSED
pid_t pid;
int w;
- byte_xasprintf(&path, "%s/disobedience.html", pkgdatadir);
+ byte_xasprintf(&path, "%s/index.html", dochtmldir);
if(!(pid = xfork())) {
exitfn = _exit;
if(!xfork()) {
--- /dev/null
+#
+# This file is part of DisOrder.
+# Copyright (C) 2009 Richard Kettlewell
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+dochtml_DATA=index.html intro.html misc.html playlists.html \
+ properties.html tabs.html window.html disobedience.css \
+ arch-simple.png button-pause.png button-playing.png \
+ button-random.png button-rtp.png button-scratch.png \
+ choose-search.png choose.png disobedience-debian-menu.png \
+ disobedience-terminal.png disorder-email-confirm.png \
+ disorder-web-login.png login.png menu-control.png \
+ menu-edit.png menu-help.png menu-server.png queue-menu.png \
+ queue.png queue2.png recent.png track-properties.png \
+ volume-slider.png
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="400"
+ height="400"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ version="1.0"
+ sodipodi:docname="arch-simple.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"
+ inkscape:export-filename="/home/richard/src/disorder.dmanual/disobedience/manual/arch-simple.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ gridtolerance="10"
+ guidetolerance="10"
+ objecttolerance="10"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="151.50215"
+ inkscape:cy="200"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:snap-global="true"
+ inkscape:window-width="1104"
+ inkscape:window-height="672"
+ inkscape:window-x="321"
+ inkscape:window-y="297">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2383"
+ visible="true"
+ enabled="true"
+ spacingx="8px"
+ spacingy="8px"
+ empspacing="4"
+ color="#007fff"
+ opacity="0.1254902" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.96492909999999998;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3224"
+ width="335.9653"
+ height="304.03506"
+ x="7.9824643"
+ y="7.9824643" />
+ <g
+ id="g3161"
+ transform="translate(-16.229471,-255.77051)">
+ <rect
+ y="272.22946"
+ x="32.229473"
+ height="63.541054"
+ width="128.54106"
+ id="rect2385"
+ style="fill:#00ffff;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <text
+ id="text3157"
+ y="312"
+ x="56"
+ style="font-size:24px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ xml:space="preserve"><tspan
+ y="312"
+ x="56"
+ id="tspan3159"
+ sodipodi:role="line">Server</tspan></text>
+ </g>
+ <rect
+ style="fill:#00ffff;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3166"
+ width="160"
+ height="64"
+ x="176.54106"
+ y="16" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="187.13188"
+ y="55.456055"
+ id="text3168"><tspan
+ sodipodi:role="line"
+ id="tspan3170"
+ x="187.13188"
+ y="55.456055">Web interface</tspan></text>
+ <rect
+ style="fill:#00ffff;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3174"
+ width="128.54106"
+ height="63.541054"
+ x="15.053802"
+ y="144.95049" />
+ <text
+ xml:space="preserve"
+ style="font-size:8px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="45.493561"
+ y="208.58369"
+ id="text3176"><tspan
+ sodipodi:role="line"
+ id="tspan3178"
+ x="45.493561"
+ y="208.58369" /></text>
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="25.344841"
+ y="182.23859"
+ id="text3180"><tspan
+ sodipodi:role="line"
+ id="tspan3182"
+ x="25.344841"
+ y="182.23859">RTP player</tspan></text>
+ <rect
+ style="fill:#00ff00;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3184"
+ width="128.54106"
+ height="63.541054"
+ x="16"
+ y="240.45895" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="23.89846"
+ y="279.68555"
+ id="text3186"><tspan
+ sodipodi:role="line"
+ id="tspan3188"
+ x="23.89846"
+ y="279.68555">Sound card</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 46.824329,80.72103 L 46.824329,112.72103"
+ id="path3190" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 16.980579,112.72103 L 328.98058,112.72103"
+ id="path3192" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 80.541067,112 L 80.541067,144"
+ id="path3194" />
+ <text
+ xml:space="preserve"
+ style="font-size:10px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="62.652657"
+ y="104.48068"
+ id="text3196"><tspan
+ sodipodi:role="line"
+ id="tspan3198"
+ x="62.652657"
+ y="104.48068">Local Network</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 80.541067,208 L 80.541067,240"
+ id="path3207" />
+ <rect
+ style="font-size:20px;fill:#00ffff;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3209"
+ width="160.45293"
+ height="63.147457"
+ x="176.08813"
+ y="144.85254" />
+ <text
+ xml:space="preserve"
+ style="font-size:20px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+ x="188.28726"
+ y="183.88232"
+ id="text3211"><tspan
+ sodipodi:role="line"
+ id="tspan3213"
+ x="188.28726"
+ y="183.88232">Disobedience</tspan></text>
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3.13968921;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 240.54107,112 L 240.54107,143.96567"
+ id="path3218" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 144.54107,48 L 176.54107,48"
+ id="path3220" />
+ </g>
+</svg>
--- /dev/null
+/*
+This file is part of DisOrder.
+Copyright (C) 2009 Richard Kettlewell
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* default font and colors */
+body {
+ color: black;
+ background-color: white;
+ font-family: times,serif;
+ font-weight: normal;
+ font-size: 12pt;
+ font-variant: normal
+}
+
+/* general link colors */
+a {
+ color: blue;
+ text-decoration: none
+}
+
+h2 a {
+ color: black
+}
+
+p.chapter a {
+ color: black;
+ font-family: helvetica,sans-serif;
+ font-weight: bold;
+ font-size: 18pt
+}
+
+a:active {
+ color: red
+}
+
+a:visited {
+ color: red
+}
+
+/* title bars */
+h1 {
+ font-family: helvetica,sans-serif;
+ font-weight: bold;
+ font-size: 18pt;
+ font-variant: normal;
+ text-align: center;
+ border: 1px solid black;
+ padding: 0.2em;
+ background-color: #e0e0e0;
+ display: block
+}
+
+/* secondary titles */
+h2 {
+ font-family: helvetica,sans-serif;
+ font-weight: bold;
+ font-size: 16pt;
+ font-variant: normal;
+ display: block
+}
+
+td {
+ vertical-align: top;
+ padding: 8px
+}
+
+table {
+ margin-left: 2em
+}
+
+p.image {
+ text-align: center
+}
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<!--
+This file is part of DisOrder.
+Copyright (C) 2009 Richard Kettlewell
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+-->
+<html>
+ <head>
+ <title>Disobedience</title>
+ <link rel=stylesheet
+ type="text/css"
+ href="disobedience.css">
+ </head>
+ <body>
+ <h1>Disobedience</h1>
+
+ <p>This is the manual for Disobedience, the graphical client
+ for <a href="http://www.greenend.org.uk/rjk/disorder/">DisOrder</a>.</p>
+
+ <p class=chapter><a href="intro.html">1. Introduction</a></p>
+ <ul>
+ <li>What DisOrder and Disobedience are, and how to get them.</li>
+ <li>How to get a DisOrder login.</li>
+ <li>How to start Disobedience.</li>
+ </ul>
+
+ <p class=chapter><a href="window.html">2. Window Layout</a></p>
+
+ <ul>
+ <li>A tour of the Disobedience window.</li>
+ </ul>
+
+ <p class=chapter><a href="tabs.html">3. Tabs</a></p>
+
+ <ul>
+ <li>Detailed descriptions of
+ the <b>Queue</b>, <b>Recent</b>, <b>Choose</b> and <b>Added</b>
+ tabs.</li>
+ </ul>
+
+ <p class=chapter><a href="properties.html">4. Track Properties</a></p>
+
+ <ul>
+ <li>How to edit track properties.</li>
+ </ul>
+
+ <p class=chapter><a href="playlists.html">5. Playlists</a></p>
+
+ <ul>
+ <li>What playlists are.</li>
+ <li>Editing playlists.</li>
+ </ul>
+
+ <p class=chapter><a href="misc.html">Appendix</a></p>
+
+ <ul>
+ <li>Reporting bugs</li>
+ <li>Copyright notice</li>
+ </ul>
+
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<!--
+This file is part of DisOrder.
+Copyright (C) 2009 Richard Kettlewell
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+-->
+<html>
+ <head>
+ <title>Disobedience: Introduction</title>
+ <link rel=stylesheet
+ type="text/css"
+ href="disobedience.css">
+ </head>
+ <body>
+ <h1>1. Introduction</h1>
+
+ <p>This chapter covers the following topics:</p>
+
+ <ul>
+ <li>What DisOrder and Disobedience are, and how to get them</li>
+ <li>How to get a DisOrder login</li>
+ <li>How to start Disobedience</li>
+ </ul>
+
+ <h2><a name=whatis>1.1 What is DisOrder?</a></h2>
+
+ <p><a href="http://www.greenend.org.uk/rjk/disorder/">DisOrder</a>
+ is a multi-user software jukebox. It allows MP3s, OGGs, etc to be
+ played either using a single sound card or over a network to many
+ different computers, with multiple different people controlling
+ what is played.</p>
+
+ <p>DisOrder has three main user interfaces.</p>
+
+ <ul>
+ <li>It has a command-line interface, suitable for ad-hoc use and
+ scripting.</li>
+
+ <li>It has a web interface, usable with graphical web browsers
+ (Firefox, Internet Explorer etc).</li>
+
+ <li>It has a graphical client called Disobedience.</li>
+ </ul>
+
+ <p>This manual is about Disobedience, so it does not really cover
+ installation or management issues. However in this chapter it will
+ cover a few such topics as they are necessary to getting up and
+ running with Disobedience.</p>
+
+ <p>This diagram shows an overview of one possible setup.</p>
+
+ <p class=image><img src="arch-simple.png"></p>
+
+ <p>The server and web interface run on one computer. Disobedience
+ runs on a desktop computer and accesses the server via the network.
+ On another system the RTP player runs and plays sound received from
+ the server via its local sound card.</p>
+
+ <p>Many other configurations are possible. For instance the server
+ could play directly to a local soundcard. Also if Disobedience
+ runs on the same computer as the RTP player then it can be used to
+ stop and start the player. Of course Disobedience can also be run
+ on the same computer as the server provided it can run X11
+ applications.</p>
+
+ <h2><a name=getting>1.2 Getting DisOrder</a></h2>
+
+ <p>There are two ways to get DisOrder.</p>
+
+ <p>If you have a Debian system you can download the <tt>.deb</tt>
+ files <a href="http://www.greenend.org.uk/rjk/disorder/">from
+ DisOrder's home page</a> and install those. There are four
+ packages to choose from:</p>
+
+ <ul>
+ <li><tt>disorder.deb</tt> - the base package. You should always
+ install this. It contains the command-line client.</li>
+
+ <li><tt>disorder-server.deb</tt> - the server and web interface.
+ Only install this if you are setting up a totally new DisOrder
+ installation. If you just want to access an existing one, you
+ don't need this package.</li>
+
+ <li><tt>disobedience.deb</tt> - the graphical client. If you are
+ reading this manual you want this package!</li>
+
+ <li><tt>disorder-rtp.deb</tt> - the network play client. If your
+ server is set up to transmit sound over the network you will need
+ this. If it uses a local sound card then this package won't be
+ useful to you.</li>
+
+ </ul>
+
+ <p>(At the time of writing, DisOrder is not included as part of
+ Debian.)</p>
+
+ <p>If you have another kind of Linux system, or a Mac, you must
+ build from source code. See the <tt>README</tt> file included in
+ the source distribution for more details. Note that to use
+ Disobedience on a Mac, you will need X11.app.</p>
+
+ <p>There is no Windows support (although the web interface can be
+ used from Windows computers).</p>
+
+ <h2><a name=createloging>1.3 Getting a DisOrder login</a></h2>
+
+ <p>The easiest way to get a DisOrder login is to access the web
+ interface and set one up using that. To do this,
+ visit <tt>http://HOSTNAME/cgi-bin/disorder</tt>,
+ where <tt>HOSTNAME</tt> is the name of the server where DisOrder is
+ installed. You should then be able to select the <b>Login</b>
+ option at the top of the screen.</p>
+
+ <p class=image><img src="disorder-web-login.png"></p>
+
+ <p>Go to the <b>New Users</b> form and enter the username you want
+ to use, your email address, and a password. The password must be
+ entered twice to verify you did not mistype it (since it won't be
+ displayed on the screen). When you press <b>Register</b>, you will
+ be sent an email requiring you to confirm your registration.</p>
+
+ <p class=image><img src="disorder-email-confirm.png"></p>
+
+ <p>Your login won't be active until you click on this URL.</p>
+
+ <p>(It might be that your installation isn't set up to allow
+ automatic registration. In that case the local sysadmin will have
+ to create your login and set your initial password by hand.)</p>
+
+ <p>Having done this you could of course just use the web interface.
+ But since this is the manual for Disobedience, it is assumed that
+ you want to take advantage of its more convenient design and extra
+ features.</p>
+
+ <h2><a name=starting>1.4 Starting Disobedience</a></h2>
+
+ <p>On Debian systems it should be possible to find Disobedience in
+ the menu system:</p>
+
+ <p class=image><img src="disobedience-debian-menu.png"></p>
+
+ <p>On other systems you will have to start it from the command line
+ by typing its name at a command prompt. You can (optionally) use
+ an <tt>&</tt> suffix to stop it tying up your terminal.</p>
+
+ <p class=image><img src="disobedience-terminal.png"></p>
+
+ <p>(Please note that Disobedience shouldn't write any messages to
+ the terminal. If it does that probably indicates a bug, which
+ should <a href="http://code.google.com/p/disorder/issues/list">be
+ reported</a>.)</p>
+
+ <h2><a name=login>1.5 Initial Login</a></h2>
+
+ <p>The first time you run Disobedience it won't know what server to
+ connect to, your username or your password, and will therefore
+ display a login box.</p>
+
+ <p class=image><img src="login.png"></p>
+
+ <p>If Disobedience is running on a different computer to the
+ server, then you should make sure the <b>Remote</b> box is ticked
+ and fill in the host name (or IP address) and port number
+ (“Service”). If you don't know what values to use
+ here, ask your local sysadmin. If, on the other hand, Disobedience
+ is running on the <i>same</i> computer as the server then you can
+ leave the <b>Remote</b> box clear and it should be able to connect
+ to it without using the network.</p>
+
+ <p>In any case, you will need to enter your username and
+ password, as set up earlier.</p>
+
+ <p>Once you have logged in successfuly, Disobedience will remember
+ these login settings, so it should not be necessary to enter them
+ again. If you need to change them for any reason, you can either
+ select the <b>Server > Login</b> option to bring the login window
+ back, or (if you prefer), edit the file <tt>~/.disorder/passwd</tt>
+ directly.</p>
+
+ <hr>
+
+ <a href="index.html">Back to contents</a>
+
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<!--
+This file is part of DisOrder.
+Copyright (C) 2009 Richard Kettlewell
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+-->
+<html>
+ <head>
+ <title>Disobedience: Appendix</title>
+ <link rel=stylesheet
+ type="text/css"
+ href="disobedience.css">
+ </head>
+ <body>
+ <h1>Appendix</h1>
+
+ <h2><a name=bugs>Reporting Bugs</a></h2>
+
+ <p>Please report bugs using
+ DisOrder's <a href="http://code.google.com/p/disorder/issues/list">bug
+ tracker</a>.</p>
+
+ <h2><a name=copyright>Copyright Notice</a></h2>
+
+ <p>Copyright © 2003-2009 <a
+ href="http://www.greenend.org.uk/rjk/">Richard Kettlewell</a><br>
+
+ Portions copyright © 2007 <a
+ href="http://www.chiark.greenend.org.uk/~ryounger/">Ross
+ Younger</a><br>
+
+ Portions copyright © 2007, 2008 Mark Wooding<br>
+
+ Portions extracted from <a
+ href="http://mpg321.sourceforge.net/">MPG321</a>, Copyright © 2001 Joe
+ Drew, Copyright © 2000-2001 Robert Leslie<br>
+
+ Portions copyright © 1997-2006 <a
+ href="http://www.fsf.org/">Free Software Foundation, Inc</a><br>
+
+ Portions Copyright © 2000 <a href="http://www.redhat.com">Red Hat,
+ Inc.</a>, Jonathan Blandford <jrb@redhat.com></p>
+
+ <p>This program is free software: you can redistribute it and/or modify it
+ under the terms of the <a href="http://www.gnu.org/licenses/gpl-3.0.html">GNU
+ General Public License</a> as published by the Free Software Foundation,
+ either version 3 of the License, or (at your option) any later version.</p>
+
+ <p>This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.</p>
+
+ <p>You should have received a copy of the GNU General Public License along
+ with this program. If not, see <a
+ href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>.</p>
+
+ <hr>
+
+ <a href="index.html">Back to contents</a>
+
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<!--
+This file is part of DisOrder.
+Copyright (C) 2009 Richard Kettlewell
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+-->
+<html>
+ <head>
+ <title>Disobedience: Playlists</title>
+ <link rel=stylesheet
+ type="text/css"
+ href="disobedience.css">
+ </head>
+ <body>
+ <h1>5. Playlists</h1>
+
+ <p>The chapter describes playlist and how to use them.</p>
+
+ <h2><a name=what>5.1 What are playlists?</a></h2>
+
+ <p>A playlist is a named list of tracks stored by the server. It
+ can be edit by either just its owner or, alternatively, by all
+ users. It can be played as a unit when required.</p>
+
+ <p>Playlists fall into three categories:</p>
+
+ <table>
+ <tr>
+ <td><b>Shared</b></td>
+ <td>Shared playlists have no owner and can be seen and edited
+ by anybody.</td>
+ </tr>
+
+ <tr>
+ <td><b>Public</b></td>
+ <td>Public playlist are owned by their creator and can be seen
+ by anybody. Only their creator can edit them, however.</td>
+ </tr>
+
+ <tr>
+ <td><b>Private</b></td>
+ <td>Private playlists are owned by their creator and can only
+ be seen or edited by their creator.</td>
+ </tr>
+
+ </table>
+
+ <p>To bring up the playlist window, select <b>Edit > Edit
+ Playlists</b> from the menu.</p>
+
+ <h2><a name=creating>5.2 Creating Playlists</a></h2>
+
+ <!-- TODO rewrite with screenshots -->
+
+ <p>To create a playlist, click the <b>Add</b> button in the
+ playlist editor. This will create a pop-up window where you can
+ enter the name of the new playlist and decide whether it is
+ shared, public or private.</p>
+
+ <p>Only Roman letters (without any accents) and digits are allowed
+ in playlist names.</p>
+
+ <h2><a name=editing>5.3 Editing Playlists</a></h2>
+
+ <!-- TODO rewrite with screenshots - might be worth waiting until
+ picker is a tree -->
+
+ <p>When a playlist is selected, you can edit in the right hand half
+ of the playlist window. The editor is very similar in structure
+ and function to the <a href="tabs.html#queue">queue</a>. You can
+ rearrange tracks within it by drag and drop and you can drag tracks
+ from the <b>Choose</b> tab into it.</p>
+
+ <h2><a name=playing>5.3 Playing Playlists</a></h2>
+
+ <p>There are three ways to play a playlist:</p>
+
+ <ol>
+
+ <li>Right clicking in the playlist editor will create a pop-up
+ menu. In addition to the familiar options there is an option to
+ play this playlist.</li>
+
+ <li>You can select all the tracks and drag them to the desired
+ point in the <b>Queue</b> tab.</li>
+
+ <li>You can use <b>Control > Activate Playlist</b> from the main
+ menu.</li>
+
+ </ol>
+
+ <hr>
+
+ <a href="index.html">Back to contents</a>
+
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<!--
+This file is part of DisOrder.
+Copyright (C) 2009 Richard Kettlewell
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+-->
+<html>
+ <head>
+ <title>Disobedience: Track Properties</title>
+ <link rel=stylesheet
+ type="text/css"
+ href="disobedience.css">
+ </head>
+ <body>
+ <h1>4. Track Properties</h1>
+
+ <p>The chapter describes how to edit track properties.</p>
+
+ <p class=image><img src="track-properties.png"></p>
+
+ <p>This window can be invoked from any of the four tabs by
+ selecting one or more tracks and then either selected <b>Edit >
+ Track Properties</b> or via the right-click pop-up menu.</p>
+
+ <h2><a name=names>4.1 Track Name Parts</a></h2>
+
+ <p>The first three fields for each track are the parts of its name:
+ the artist, album and title. These control what appear in the
+ similarly named columns in the queue and other tabs. If they are
+ wrong then you can edit them here to correct them.</p>
+
+ <p>The double-headed arrow at the right of each field will copy the
+ current field value to all the other tracks in the window. For
+ instance if an album name is mis-spelled or wrong then you could
+ follow the following procedure to correct it for all its
+ tracks:</p>
+
+ <ol>
+
+ <li>In the <b>Choose</b> tab, select all the tracks in the album.</li>
+
+ <li>Select <b>Edit > Track Properties</b> to bring up the track
+ properties window.</li>
+
+ <li>Edit the album name in the first track.</li>
+
+ <li>Click the arrow button to the right of the corrected version.</li>
+
+ <li>Click the <b>OK</b> button.</li>
+
+ </ol>
+
+ <h2><a name=tags>4.2 Tags</a></h2>
+
+ <p>Each track has an associated collection of tags. These can used
+ when searching for tracks in the <b>Choose</b> tab or to control
+ which tracks are picked at random (although this functionality is
+ not readily available in current versions of Disobedience).</p>
+
+ <p>To add tags to a track enter the tags you want to apply to it in
+ the <b>Tags</b> field, separated by commas. Tags cannot contain
+ commas and are compared without regard to whitespace.</p>
+
+ <h2><a name=weight>4.3 Track Weight</a></h2>
+
+ <p>Every track has an associated weight. A higher weight makes the
+ track more likely to be picked at random and lower weight makes it
+ less likely to be picked at random. (In the simplest case the
+ probability that it will be picked is equal to its weight divided
+ by the total weight of all tracks, although there are a number of
+ other factors that modify this.)</p>
+
+ <p>If no weight has been explicitly set then the track gets a
+ default weight of 90,000.</p>
+
+ <p>One way to prevent a track being picked at random would be to
+ set its weight to zero, but in fact there is a box you can untick
+ to suppress random selection of tracks too.</p>
+
+ <hr>
+
+ <a href="index.html">Back to contents</a>
+
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<!--
+This file is part of DisOrder.
+Copyright (C) 2009 Richard Kettlewell
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+-->
+<html>
+ <head>
+ <title>Disobedience: Tabs</title>
+ <link rel=stylesheet
+ type="text/css"
+ href="disobedience.css">
+ </head>
+ <body>
+ <h1>3. Tabs</h1>
+
+ <p>The chapter contains detailed descriptions of the Queue, Recent,
+ Choose and Added tabs.</p>
+
+ <h2><a name=queue>3.1 The Queue</a></h2>
+
+ <p>The <b>Queue</b> tab has already
+ been <a href="window.html#main">briefly described</a>, but there
+ are some more things to say about. To start with, the meaning of
+ the columns:</p>
+
+ <table>
+ <tr>
+ <td><b>When</b></td>
+ <td>This is the server's estimate of when the track will start.
+ If play is disabled but the queue isn't empty, then it is based
+ on the assumption that play is about to be enabled.</td>
+ </tr>
+ <tr>
+ <td><b>Who</b></td>
+ <td>This is the person who selected the track. If the track
+ was picked at random by the server it is empty. You can
+ “adopt” a randomly picked track; see below.</td>
+ </tr>
+ <tr>
+ <td><b>Artist</b></td>
+ <td>The artist responsible for the track. Like the other track
+ name columns, this depends on the server's logic for parsing
+ filename, so can be a bit wrong. You can edit the track
+ properties to correct it.</td>
+ </tr>
+ <tr>
+ <td><b>Album</b></td>
+ <td>The album that the track came from.</td>
+ </tr>
+ <tr>
+ <td><b>Title</b></td>
+ <td>The title of the track.</td>
+ </tr>
+ <tr>
+ <td><b>Length</b></td>
+ <td>The length the track will play for. For the playing track
+ this will include the amount of time it's been playing so
+ far.</td>
+ </tr>
+ </table>
+
+ <p>You can select tracks in the queue by clicking on them. You can
+ select multiple tracks by clicking in a second location with SHIFT
+ depressed (to select all tracks between the first and second click)
+ or with CTRL depressed (to add a single track to the selection).</p>
+
+ <p>Having selected tracks you can drag them to a new location in
+ the queue. Of course, you can't drag the playing track, nor can
+ you drag other tracks before it.</p>
+
+ <p>Right-clicking in the queue will create a pop-up menu:</p>
+
+ <p class=image><img src="queue-menu.png"></p>
+
+ <p><b>Track Properties</b> will create a window with editable
+ properties of each selected track. <b>Scratch playing track</b>
+ only works if the playing track is the selected track and will stop
+ it playing. <b>Remove track from queue</b> will remove the
+ selected (non-playing) tracks from the queue.</p>
+
+ <p><b>Adopt track</b> will apply your name to one without an entry
+ in the <b>Who</b> column, i.e. one that was randomly picked by the
+ server. The reason you might do this is to signal to other users
+ that you did want this track to play. (For instance, it might be
+ an accepted convention that randomly picked tracks were fair game
+ for removal but that tracks picked by a human should normally be
+ left alone.)</p>
+
+ <h2><a name=recent>3.2 Recently Played Tracks</a></h2>
+
+ <p class=image><img src="recent.png"></p>
+
+ <p>The <b>Recent</b> tab is similar in structure to the queue but
+ it shows tracks that have played recently. The <b>When</b> column
+ indicates when the track played rather than when it will
+ played.</p>
+
+ <p>Right clicking will create a pop-up menu with similar options to
+ those found in the queue's equivalent menu. The one additional
+ option is <b>Play track</b>, which allows a recently played track
+ to be added back to the queue.</p>
+
+ <p>The other way of adding tracks from this tab back to the queue
+ is to drag them to the queue tab and then to the desired point into
+ the queue.</p>
+
+ <h2><a name=choose>3.3 Choosing Tracks</a></h2>
+
+ <p>The <b>Choose</b> tab contains all the tracks known to the
+ server, organized into a hierarchical structure based on the
+ underlying file and directory structure.</p>
+
+ <p class=image><img src="choose.png"></p>
+
+ <p>The boxes in the <b>Queued</b> column are ticked if the track is
+ somewhere in the queue. You can click on an unticked box to add
+ the track to the queue, but clicking an already-ticked one will
+ have no effect.</p>
+
+ <p>Directories can be expanded or collapsed by clicking on the
+ triangular signs left of their names. Tracks can be selected and
+ deselected by clicking on them. You can select multiple tracks by
+ clicking in a second location with SHIFT depressed (to select all
+ tracks between the first and second click) or with CTRL depressed
+ (to add a single track to the selection).</p>
+
+ <p>Right clicking will create a pop-up menu with what are hopefuly
+ now familiar options. <b>Play track</b> will add the selected
+ track(s) to the queue and <b>Track Properties</b> will create a
+ window with editable properties of each selected track.</p>
+
+ <p>Note that when tracks are added to the queue these ways they
+ will be added before any tracks picked at random by the server, so
+ that users don't have to wait for them to play out.</p>
+
+ <p>Selected tracks can also be dragged to the queue, by dragging
+ first to the <b>Queue</b> tab itself and then to the desired
+ location in the queue.</p>
+
+ <p class=image><img src="choose-search.png"></p>
+
+ <p>To do a word search over all tracks, you can just start typing.
+ Your search terms will appear in the input box at the bottom of the
+ window. Directories containing matching tracks are automatically
+ opened and the matches highlighted in yellow. You can jump to the
+ previous or next search result with the up and down arrows at the
+ bottom right of the screen (or jump to the next one by pressing
+ CTRL+G).</p>
+
+ <p>If you enter more than one word at a time then only tracks which
+ match <i>both</i> words will be listed.</p>
+
+ <p>You can search for <a href="properties.html#tags">tags</a> as
+ well as words. For instance to search for the tag
+ “happy” you would enter <tt>tag:happy</tt> in the
+ search box.</p>
+
+ <p>To clear the search, press the <b>Cancel</b> button.</p>
+
+ <h2><a name=added>3.4 Newly Added Tracks</a></h2>
+
+ <p>The <b>Added</b> tab shows tracks that have been newly detected
+ by the server, in order to allow those tracks to be conveniently
+ played. In behavior it is the same as the
+ recently <a href="#recent">played tracks list</a>.</p>
+
+ <hr>
+
+ <a href="index.html">Back to contents</a>
+
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<!--
+This file is part of DisOrder.
+Copyright (C) 2009 Richard Kettlewell
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+-->
+<html>
+ <head>
+ <title>Disobedience: Window Layout</title>
+ <link rel=stylesheet
+ type="text/css"
+ href="disobedience.css">
+ </head>
+ <body>
+ <h1>2. Window Layout</h1>
+
+ <p>This chapter contains a tour of the main Disobedience
+ window.</p>
+
+ <h2><a name=main>2.1 The Disobedience Window</a></h2>
+
+ <p>Disobedience should look something like this when you've started
+ it up and logged in:</p>
+
+ <p class=image><img src="queue.png"></p>
+
+ <p>At the top is the menu bar, and immediately below it a toolbar
+ with some buttons and a volume control. (In some cases the volume
+ control may be absent.) Below that is a row of
+ tabs: <b>Queue</b>, <b>Recent</b> and so on. The <b>Queue</b> tab
+ is selected: this displays the currently playing track and the list
+ of tracks that will play in the near future.</p>
+
+ <p>In this example nothing is actually playing. (Apart from the
+ fact that you wouldn't hear anything) you can tell this because the
+ top row only has a single length indicator (“3:04”).
+ If it was playing it would show how far through the track it was
+ too. Secondly, all the tracks were chosen at random. You can tell
+ this because the <b>Who</b> column is empty.
+
+ <p>In the screenshot below both of these things have changed.
+ Use <tt>rjk</tt> has selected some tracks and the first of them is
+ playing.</p>
+
+ <p class=image><img src="queue2.png"></p>
+
+ <p>The first track is 4 minutes and 10 seconds long and so far, the
+ first 21 seconds of it has played.</p>
+
+ <h2><a name=buttons>2.2 Buttons</a></h2>
+
+ <p>The meaning of the buttons is as follows:</p>
+
+ <table>
+ <tr>
+ <td><img src="button-pause.png"></td>
+ <td>The pause button. This only effective when a track is
+ playing. When it is pressed the playing track is paused and
+ the button turns into a “play” icon instead.</td>
+ </tr>
+
+ <tr>
+ <td><img src="button-scratch.png"></td>
+ <td>The scratch button. As above this is only effective when
+ a track is playing. Pressing it will stop that track playing
+ and move onto the next one.</td>
+ </tr>
+
+ <tr>
+ <td><img src="button-random.png"></td>
+ <td>The random play button. Random play means that if
+ nothing is playing the server will automatically pick a track
+ at random and play that. Furthermore it will ensure that the
+ queue always has a minimum number of tracks, so you can see
+ ahead of time what will play next.<br>
+ As shown, random play is disabled. The button goes green
+ when it is enabled.</td>
+ </tr>
+
+ <tr>
+ <td><img src="button-playing.png"></td>
+ <td>The playing button. Normally this would always be left
+ enabled (green). If it is disabled then nothing will be
+ played at all, regardless of whether it was randomly chosen
+ or picked by a human.</td>
+ </tr>
+
+ <tr>
+ <td><img src="button-rtp.png"></td>
+ <td>The network play button. This is only effective if the
+ server is playing over the network (as opposed to using a
+ local sound card). When network play is enabled,
+ Disobedience runs a client program on your computer to play
+ sound received over the network using your sound card.<br>
+ As shown, network play is disabled. The button goes green
+ when it is enabled.</td>
+ </tr>
+ </table>
+
+ <p>To the right of the buttons are two sliders:</p>
+
+ <p class=image><img src="volume-slider.png"></p>
+
+ <p>The left hand slider is the volume control. This ranges from 0
+ (silent) to 10 (loudest). The right hand slider is the balance
+ control, which ranges form -1.0 (left) to +1.0 (right).</p>
+
+ <h2><a name=menu>2.3 The Menu Bar</a></h2>
+
+ <p class=image><img src="menu-server.png"></p>
+
+ <p>The <b>Server</b> menu is loosely analogous to the <b>File</b>
+ menu in othe applications. It has no file-related options though,
+ so the name would not be appropriate! Instead the three options it
+ has are <b>Login</b>, which brings back the login window shown the
+ first time it is run, <b>Manage Users</b> which allows
+ adminstrators to do user management, and <b>Quit</b>.</p>
+
+ <!-- TODO link to use management -->
+
+ <p class=image><img src="menu-edit.png"></p>
+
+ <p>The <b>Edit</b> menu has options to select or deselect all
+ tracks. You can also do this with CTRL-A and CTRL-SHIFT-A, and of
+ course you can select tracks in the queue (or other tabs) with the
+ mouse.</p>
+
+ <p>The <b>Track Properties</b> option will create a window with
+ editable properties of each selected track and the <b>Edit
+ Playlists</b> option will create a window allowing editing of
+ playlists.</p>
+
+ <!-- TODO link to properties -->
+
+ <!-- TODO link to playlists -->
+
+ <p class=image><img src="menu-control.png"></p>
+
+ <p>The <b>Control</b> menu options are mostly equivalent to the
+ buttons described above. The one exception is <b>Activate
+ Playlist</b> which allows you to play a playlist.</p>
+
+ <!-- TODO link to playlists -->
+
+ <p class=image><img src="menu-help.png"></p>
+
+ <p>The <b>Help</b> menu has an option to bring up the Disobedience
+ manual and an <b>About</b> option which will display a bit of
+ version information for the server and for Disobedience (which
+ might not be the same).</p>
+
+ <hr>
+
+ <a href="index.html">Back to contents</a>
+
+ </body>
+</html>
0 /* extra_data */
},
{
- (char *)"/Help/Manual page", /* path */
+ (char *)"/Help/Manual", /* path */
0, /* accelerator */
manual_popup, /* callback */
0, /* callback_action */
echo "#define PKGCONFDIR \"${sysconfdir}/\"PACKAGE" >> $@.new
echo "#define PKGSTATEDIR \"${localstatedir}/\"PACKAGE" >> $@.new
echo "#define PKGDATADIR \"${pkgdatadir}/\"" >> $@.new
+ echo "#define DOCHTMLDIR \"${dochtmldir}\"" >> $@.new
echo "#define SBINDIR \"${sbindir}/\"" >> $@.new
echo "#define BINDIR \"${bindir}/\"" >> $@.new
echo "#define FINKBINDIR \"${finkbindir}/\"" >> $@.new
/** @brief Package fixed data directory */
const char pkgdatadir[] = PKGDATADIR;
+/** @brief Package HTML documentation directory */
+const char dochtmldir[] = DOCHTMLDIR;
+
/** @brief Binary directory */
const char bindir[] = BINDIR;
extern const char pkgconfdir[];
extern const char pkgstatedir[];
extern const char pkgdatadir[];
+extern const char dochtmldir[];
extern const char bindir[];
extern const char sbindir[];
extern const char finkbindir[];