chiark / gitweb /
Merge new Disobedience manual
authorRichard Kettlewell <rjk@greenend.org.uk>
Thu, 26 Nov 2009 19:03:26 +0000 (19:03 +0000)
committerRichard Kettlewell <rjk@greenend.org.uk>
Thu, 26 Nov 2009 19:03:26 +0000 (19:03 +0000)
41 files changed:
.bzrignore
configure.ac
disobedience/Makefile.am
disobedience/help.c
disobedience/manual/Makefile.am [new file with mode: 0644]
disobedience/manual/arch-simple.png [new file with mode: 0644]
disobedience/manual/arch-simple.svg [new file with mode: 0644]
disobedience/manual/button-pause.png [new file with mode: 0644]
disobedience/manual/button-playing.png [new file with mode: 0644]
disobedience/manual/button-random.png [new file with mode: 0644]
disobedience/manual/button-rtp.png [new file with mode: 0644]
disobedience/manual/button-scratch.png [new file with mode: 0644]
disobedience/manual/choose-search.png [new file with mode: 0644]
disobedience/manual/choose.png [new file with mode: 0644]
disobedience/manual/disobedience-debian-menu.png [new file with mode: 0644]
disobedience/manual/disobedience-terminal.png [new file with mode: 0644]
disobedience/manual/disobedience.css [new file with mode: 0644]
disobedience/manual/disorder-email-confirm.png [new file with mode: 0644]
disobedience/manual/disorder-web-login.png [new file with mode: 0644]
disobedience/manual/index.html [new file with mode: 0644]
disobedience/manual/intro.html [new file with mode: 0644]
disobedience/manual/login.png [new file with mode: 0644]
disobedience/manual/menu-control.png [new file with mode: 0644]
disobedience/manual/menu-edit.png [new file with mode: 0644]
disobedience/manual/menu-help.png [new file with mode: 0644]
disobedience/manual/menu-server.png [new file with mode: 0644]
disobedience/manual/misc.html [new file with mode: 0644]
disobedience/manual/playlists.html [new file with mode: 0644]
disobedience/manual/properties.html [new file with mode: 0644]
disobedience/manual/queue-menu.png [new file with mode: 0644]
disobedience/manual/queue.png [new file with mode: 0644]
disobedience/manual/queue2.png [new file with mode: 0644]
disobedience/manual/recent.png [new file with mode: 0644]
disobedience/manual/tabs.html [new file with mode: 0644]
disobedience/manual/track-properties.png [new file with mode: 0644]
disobedience/manual/volume-slider.png [new file with mode: 0644]
disobedience/manual/window.html [new file with mode: 0644]
disobedience/menu.c
lib/Makefile.am
lib/defs.c
lib/defs.h

index 0cb8173e69789522b595b5615377a6adb28dd9b1..4551219feb24bd47b94e4f30f343e3e71986e100 100644 (file)
@@ -203,3 +203,4 @@ server/endian
 clients/rtpmon
 libtests/t-resample
 clients/resample
+disobedience/manual/Makefile
index e48cce252c3c2b1517ecc004fb2783f5cdb7611b..80e8e242bfc35b344011513964afcc5f7a85d683 100644 (file)
@@ -326,6 +326,11 @@ if test -z "$pkghttpdir"; then
 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"
@@ -823,6 +828,7 @@ AC_CONFIG_FILES([Makefile
                 cgi/Makefile
                 clients/Makefile
                 disobedience/Makefile
+                disobedience/manual/Makefile
                 doc/Makefile
                 templates/Makefile
                 plugins/Makefile
index 01716338c0b0fbceaace771e43405b0bdb5518fd..9b86bd742a8c49fd88932b16ef0dc5da0a295401 100644 (file)
@@ -17,7 +17,7 @@
 #
 
 bin_PROGRAMS=disobedience
-pkgdata_DATA=disobedience.html
+SUBDIRS=manual
 
 AM_CPPFLAGS=-I${top_srcdir}/lib -I../lib
 AM_CFLAGS=$(GLIB_CFLAGS) $(GTK_CFLAGS)
@@ -39,12 +39,6 @@ install-exec-hook:
 
 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)
@@ -67,7 +61,7 @@ check-help: all
        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
index 8ec405cd206f072fb64f913674dc454cb4f28129..5ebe457c464a80cfdac7dc081d85ef24746f490d 100644 (file)
@@ -29,7 +29,7 @@ void popup_help(void) {
   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()) {
diff --git a/disobedience/manual/Makefile.am b/disobedience/manual/Makefile.am
new file mode 100644 (file)
index 0000000..bb86aa3
--- /dev/null
@@ -0,0 +1,28 @@
+#
+# 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
diff --git a/disobedience/manual/arch-simple.png b/disobedience/manual/arch-simple.png
new file mode 100644 (file)
index 0000000..c7d965a
Binary files /dev/null and b/disobedience/manual/arch-simple.png differ
diff --git a/disobedience/manual/arch-simple.svg b/disobedience/manual/arch-simple.svg
new file mode 100644 (file)
index 0000000..a03d78a
--- /dev/null
@@ -0,0 +1,220 @@
+<?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>
diff --git a/disobedience/manual/button-pause.png b/disobedience/manual/button-pause.png
new file mode 100644 (file)
index 0000000..0aa2f57
Binary files /dev/null and b/disobedience/manual/button-pause.png differ
diff --git a/disobedience/manual/button-playing.png b/disobedience/manual/button-playing.png
new file mode 100644 (file)
index 0000000..dd64963
Binary files /dev/null and b/disobedience/manual/button-playing.png differ
diff --git a/disobedience/manual/button-random.png b/disobedience/manual/button-random.png
new file mode 100644 (file)
index 0000000..38f9783
Binary files /dev/null and b/disobedience/manual/button-random.png differ
diff --git a/disobedience/manual/button-rtp.png b/disobedience/manual/button-rtp.png
new file mode 100644 (file)
index 0000000..00fde8e
Binary files /dev/null and b/disobedience/manual/button-rtp.png differ
diff --git a/disobedience/manual/button-scratch.png b/disobedience/manual/button-scratch.png
new file mode 100644 (file)
index 0000000..e8a74f7
Binary files /dev/null and b/disobedience/manual/button-scratch.png differ
diff --git a/disobedience/manual/choose-search.png b/disobedience/manual/choose-search.png
new file mode 100644 (file)
index 0000000..bc28194
Binary files /dev/null and b/disobedience/manual/choose-search.png differ
diff --git a/disobedience/manual/choose.png b/disobedience/manual/choose.png
new file mode 100644 (file)
index 0000000..2f88ece
Binary files /dev/null and b/disobedience/manual/choose.png differ
diff --git a/disobedience/manual/disobedience-debian-menu.png b/disobedience/manual/disobedience-debian-menu.png
new file mode 100644 (file)
index 0000000..49bbdb4
Binary files /dev/null and b/disobedience/manual/disobedience-debian-menu.png differ
diff --git a/disobedience/manual/disobedience-terminal.png b/disobedience/manual/disobedience-terminal.png
new file mode 100644 (file)
index 0000000..5cf2e8d
Binary files /dev/null and b/disobedience/manual/disobedience-terminal.png differ
diff --git a/disobedience/manual/disobedience.css b/disobedience/manual/disobedience.css
new file mode 100644 (file)
index 0000000..4c3392c
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+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
+}
diff --git a/disobedience/manual/disorder-email-confirm.png b/disobedience/manual/disorder-email-confirm.png
new file mode 100644 (file)
index 0000000..c535a67
Binary files /dev/null and b/disobedience/manual/disorder-email-confirm.png differ
diff --git a/disobedience/manual/disorder-web-login.png b/disobedience/manual/disorder-web-login.png
new file mode 100644 (file)
index 0000000..3155a4c
Binary files /dev/null and b/disobedience/manual/disorder-web-login.png differ
diff --git a/disobedience/manual/index.html b/disobedience/manual/index.html
new file mode 100644 (file)
index 0000000..a6a2136
--- /dev/null
@@ -0,0 +1,74 @@
+<!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>
diff --git a/disobedience/manual/intro.html b/disobedience/manual/intro.html
new file mode 100644 (file)
index 0000000..829ae2f
--- /dev/null
@@ -0,0 +1,197 @@
+<!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>&amp;</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
+   (&ldquo;Service&rdquo;).  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>
diff --git a/disobedience/manual/login.png b/disobedience/manual/login.png
new file mode 100644 (file)
index 0000000..9f3b074
Binary files /dev/null and b/disobedience/manual/login.png differ
diff --git a/disobedience/manual/menu-control.png b/disobedience/manual/menu-control.png
new file mode 100644 (file)
index 0000000..a76ec69
Binary files /dev/null and b/disobedience/manual/menu-control.png differ
diff --git a/disobedience/manual/menu-edit.png b/disobedience/manual/menu-edit.png
new file mode 100644 (file)
index 0000000..7cdb83b
Binary files /dev/null and b/disobedience/manual/menu-edit.png differ
diff --git a/disobedience/manual/menu-help.png b/disobedience/manual/menu-help.png
new file mode 100644 (file)
index 0000000..4ecc391
Binary files /dev/null and b/disobedience/manual/menu-help.png differ
diff --git a/disobedience/manual/menu-server.png b/disobedience/manual/menu-server.png
new file mode 100644 (file)
index 0000000..5502bf5
Binary files /dev/null and b/disobedience/manual/menu-server.png differ
diff --git a/disobedience/manual/misc.html b/disobedience/manual/misc.html
new file mode 100644 (file)
index 0000000..56e42cd
--- /dev/null
@@ -0,0 +1,75 @@
+<!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 &copy; 2003-2009 <a
+   href="http://www.greenend.org.uk/rjk/">Richard Kettlewell</a><br>
+
+   Portions copyright &copy; 2007 <a
+   href="http://www.chiark.greenend.org.uk/~ryounger/">Ross
+   Younger</a><br>
+
+   Portions copyright &copy; 2007, 2008 Mark Wooding<br>
+
+   Portions extracted from <a
+   href="http://mpg321.sourceforge.net/">MPG321</a>, Copyright &copy; 2001 Joe
+   Drew, Copyright &copy; 2000-2001 Robert Leslie<br>
+
+   Portions copyright &copy; 1997-2006 <a
+   href="http://www.fsf.org/">Free Software Foundation, Inc</a><br>
+   
+   Portions Copyright &copy; 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>
diff --git a/disobedience/manual/playlists.html b/disobedience/manual/playlists.html
new file mode 100644 (file)
index 0000000..d83ad6c
--- /dev/null
@@ -0,0 +1,109 @@
+<!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>
diff --git a/disobedience/manual/properties.html b/disobedience/manual/properties.html
new file mode 100644 (file)
index 0000000..34d215f
--- /dev/null
@@ -0,0 +1,97 @@
+<!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>
diff --git a/disobedience/manual/queue-menu.png b/disobedience/manual/queue-menu.png
new file mode 100644 (file)
index 0000000..af2dff9
Binary files /dev/null and b/disobedience/manual/queue-menu.png differ
diff --git a/disobedience/manual/queue.png b/disobedience/manual/queue.png
new file mode 100644 (file)
index 0000000..bced68f
Binary files /dev/null and b/disobedience/manual/queue.png differ
diff --git a/disobedience/manual/queue2.png b/disobedience/manual/queue2.png
new file mode 100644 (file)
index 0000000..536c253
Binary files /dev/null and b/disobedience/manual/queue2.png differ
diff --git a/disobedience/manual/recent.png b/disobedience/manual/recent.png
new file mode 100644 (file)
index 0000000..8ee5e68
Binary files /dev/null and b/disobedience/manual/recent.png differ
diff --git a/disobedience/manual/tabs.html b/disobedience/manual/tabs.html
new file mode 100644 (file)
index 0000000..ea63a37
--- /dev/null
@@ -0,0 +1,185 @@
+<!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
+       &ldquo;adopt&rdquo; 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
+   &ldquo;happy&rdquo; 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>
diff --git a/disobedience/manual/track-properties.png b/disobedience/manual/track-properties.png
new file mode 100644 (file)
index 0000000..27093b8
Binary files /dev/null and b/disobedience/manual/track-properties.png differ
diff --git a/disobedience/manual/volume-slider.png b/disobedience/manual/volume-slider.png
new file mode 100644 (file)
index 0000000..c7e25c5
Binary files /dev/null and b/disobedience/manual/volume-slider.png differ
diff --git a/disobedience/manual/window.html b/disobedience/manual/window.html
new file mode 100644 (file)
index 0000000..40c6f98
--- /dev/null
@@ -0,0 +1,169 @@
+<!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 (&ldquo;3:04&rdquo;).
+   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 &ldquo;play&rdquo; 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>
index 35667457272c4b2733545ec7052b84522794afa5..0433f9c35b1e80ba7c9f6f94e4cc789715530a98 100644 (file)
@@ -364,7 +364,7 @@ GtkWidget *menubar(GtkWidget *w) {
       0                                 /* extra_data */
     },
     {
-      (char *)"/Help/Manual page",      /* path */
+      (char *)"/Help/Manual",           /* path */
       0,                                /* accelerator */
       manual_popup,                     /* callback */
       0,                                /* callback_action */
index 3505eb99ce6f2a2a5a9d9ce3a322ede675e1aba0..11040dbc57f85710edc5ac43135ffbddc9e2ad40 100644 (file)
@@ -122,6 +122,7 @@ definitions.h: Makefile
        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
index 633d56adb719b0785bfa01ab100e09c8cfd8fa3a..f0e35b2cd74af9a4ae6dfa4f0f93608a7c833d5f 100644 (file)
@@ -41,6 +41,9 @@ const char pkgstatedir[] = PKGSTATEDIR;
 /** @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;
 
index 41b65ea584254f7b5a3fbce6ef0b1415a25c7ea0..e13b85718e37aa1eb2305149d52bce7d8f14e4ac 100644 (file)
@@ -25,6 +25,7 @@ extern const char pkglibdir[];
 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[];