Initial import of CVS-v2_8_branch

This commit is contained in:
Fred Gleason
2014-08-12 15:13:02 -04:00
commit afd67c7af8
1508 changed files with 405304 additions and 0 deletions

47
AUTHORS Normal file
View File

@@ -0,0 +1,47 @@
The following folks have contributed to Rivendell:
Todd Baker <bakert@rfa.org>
--create-startdate-offset and --create-enddate-offset options for
RDImport(1).
Hotkey system.
Luigino Bracci <lbracci@gmail.com>
Spanish translation.
Michael Cheng <mikecheng@planckenergy.com>
The tooLame MPEG Layer 2 encoder.
Pavel Fric <pavelfric@seznam.cz>.
Czech Translation (cs)
Stefan Gabriel <stg@st-gabriel.de>
Integrated Music Scheduler
RDLibrary MultiCart Editing Mode
Federico Grau <grauf@rfa.org>
JACK driver cleanups, RDAdmin Audio Ports Dialog enhancements.
PAM Authentication Module
Fred Gleason <fredg@paravelsystems.com>
Application Architect
Dan Mills <dmills@spamblock.demon.co.uk>
General Bughunter Extrordinaire
Eivind Ødegård <gingermig@yahoo.no>
Norwegian Translation (nb_NO and nn_NO)
Michael Papsdorf <info@emitworks.com>
German translation (de).
Alban Peignier <alban.peignier@free.fr>
RDImport batch file importer.
RDScheduler music scheduler.
Debian Packaging.
Daniel Roviriego <danifernando@gmail.com>
Portuguese Translation (pt_BR).
Scott Spillers <scotts@paravelsystems.com>
The Icon set

201
CODINGSTYLE Normal file
View File

@@ -0,0 +1,201 @@
This is the CODINGSTYLE file for the Rivendell package.
OVERVIEW:
Rivendell is a Free Software project to develop a radio broadcast automation
system. This file, CODINGSTYLE, describes how to get the Rivendell code,
coding style guidelines for writing new code, how to submit patches to be
incorporated into the official Rivendell CVS repository, and other code related
information. General info on the Rivendell project can be found at the
http://www.rivendellaudio.org/ web page and also in the README and INSTALLATION
files.
CODING STYLE GUIDELINES:
Please try to write code that fits with the formating style already present.
Some good basic guidelines:
LINE LENGTH -- Should be short enough to fit onto an eighty character line
without wrapping. This applies to ChangeLog
entries too! While it's not always possible to follow this
rule (quoted literal strings being one place in particular
where it is sometimes necessary to violate it), sticking
with it wherever possible makes life much easier for those
using character mode editing sessions.
INDENTATION -- Should be two characters per level.
CLASS NAMES -- Should have the initial letter of each word capitalized,
e.g. 'ThisIsMyClass'. If the class is part of librd, the
name should be prefaced with the uppercase letters 'RD',
e.g. 'RDThisIsMyClass'.
METHOD NAMES -- Names of class methods should follow the general style used
by Qt. A special convention for Rivendell is to reserve
names beginning with an uppercase letter for private classes
only.
VARIABLE NAMES -- Class variables should be prefaced with a short base name
that is common to all, followed by an underscore. For
example, the class 'MyClass' might use 'myclass_', as
in 'myclass_foo1', 'myclass_foo2', etc. *All* variables
should be lowercase only, with uppercase being reserved for
class and method names.
Doxygen is the code documenting system in place. Doxygen style comments placed
in header files can then be processed to generate friendly code documentation.
More information on doxygen can be found here (
http://www.stack.nl/~dimitri/doxygen/ ).
FIXME: doxygen code samples
CVS GENERAL INFO:
CVS allows multiple developers to work simultaneously on a project. CVS does
this by keeping a master version of the source code in a central repository on
the cvs.rivendellaudio.org server. Each developer "checks out" a copy of the
source code to their personal workspace. This local copy of the source is
called a sandbox. Developers test and work on the source in their sandboxes
until they reach a mile-point, such as implementing a new feature or fixing a
bug. Developers can then create a patch or commit their changes back to the
central repository. The CVS server auto-magically merges changes from multiple
developers together. Other developers periodically update their sandboxes to
merge changes others have committed to the server.
Conflicts normally are prevented by developers communicating and by working on
different areas of the source code. It is important that only working code is
committed back into the repository.
Though CVS has one main program, cvs, that program has a lot of functionality
which is accessed by giving the program different commands. The general syntax
of the cvs program is:
cvs CVS_OPTIONS COMMAND COMMAND_OPTIONS
A brief overview of CVS can be found online here (
http://techweb.rfa.org/grauf/cvs.html ).
CVS READ:
Any user can get anonymous read-only access to the CVS repository using the
pserver protocol. The module one wishes to check out must be specified as the
module-name (ex: rivendell). cvs.rivendellaudio.org is configured with the
username "cvs" and the password "cvs". Access via the pserver protocol
requires that a user login/logout.
cvs -d:pserver:cvs@cvs.rivendellaudio.org:/home/cvs/cvsroot login
cvs -d:pserver:cvs@cvs.rivendellaudio.org:/home/cvs/cvsroot checkout rivendell
cvs -d:pserver:cvs@cvs.rivendellaudio.org:/home/cvs/cvsroot logout
SUBMITTING PATCHES:
Contributions of patches with fixes or enhancements are welcome. Posting a
patch to the rivendell programmer mailing list (
rivendell-prog@rivendellaudio.org
http://www.rivendellaudio.org/mailman/listinfo/rivendell-prog ) is the best
approach for anyone to contribute to the project. Established Rivendell
programmers can then review the patch and apply it to the official CVS tree.
Users who contribute significant patches over time may earn the privilege of
CVS write access.
The cvs diff command may be used to generate patches from a CVS sandbox. This
allows for a user to checkout a cvs sandbox and make changes as needed by
directly editing the files checked out. When done making changes, the cvs
utility can generate the differences, in patch file format, of the sandbox
version to the repository version of a file. Run the following commands from
within the sandbox.
# see changes made to sandbox against what was checked out from the
# repository
cvs diff FILE
# see the difference between two versions of a file in the repository
cvs diff -rVERSION_NUMBER -rVERSION_NUMBER FILE
Additional flags, such as "-u" can be added to produce a "unified context"
style diff. Similarly the output redirector can be used to send the patch to a
file (which can then be emailed to the mailing list). A sample command
follows:
cvs diff -u FILE > /tmp/FILE_bugfix_2007.03.26.patch
CVS WRITE:
Contributors who have write access to the Rivendell CVS repository must use
Secure Shell (ssh) as the secure transport for all non-anonymous CVS access.
To get this set up, you will need to generate a public key and send it to
Federico Grau <grauf@rfa.org> and the sysadmin team <sysadmins@rfa.org> at
Radio Free Asia (RFA), along with the username one wishes to use. As an
example of how to create a public key, use the following command:
ssh-keygen -t dsa
This should prompt you for the base filename to put the public and private keys
in, as well as a passphrase (be sure to use a secure one). Assuming that the
default filenames were accepted, you should then have the following two files
in '~/.ssh/':
id_dsa
id_dsa.pub
The 'id_dsa.pub' file is the one that gets sent to don Fede. The other is your
secret key, and should be guarded accordingly. You will need this key every
time you access the CVS archive using your selected username. Once (RFA) has
set up your account, all you will need to do is change the CVSROOT string in
your environment or set the cvs command to point to the new server. The form
of the environment string and a sample checkout command follow:
export CVSROOT=:ext:<username>@cvs.rivendellaudio.org:/home/cvs/cvsroot
cvs checkout rivendell
A sample checkout command that does not use the environment variable follows:
cvs -d:ext:<username>@cvs.rivendellaudio.org:/home/cvs/cvsroot checkout rivendell
You should now be able to checkout, update and commit material as before, the
only difference being that CVS will prompt you for the passphrase of your
private key each time you access the archive. As a convenience the
ssh-agent(1) and ssh-add(1) utilities can be used to securely hold private keys
used for public key authentication without repeatedly prompting for
passphrases.
CVS WRITE COMMIT CHECKLIST:
Before committing changes back to the Rivendell CVS repository the following
guidelines should be completed:
1) Successful update of CVS without conflicts.
2) Successful compile of CVS without errors.
3) Update the ChangeLog file at the base of the Rivendell source code tree.
The format of the ChangeLog file has the most recent changes at the bottom
of the file. Entries start with a date stamp and have a format like:
YYYY-MM-DD [HH:MM TIMEZONE] NAME <EMAIL>
* Description of change
A couple examples follow:
2007-01-09 19:00 EST Federico Grau <grauf@rfa.org> <donfede@casagrau.org>
* lib/rdcart.cpp lib/rdcut.cpp rdcatch/rdcatch.cpp; corrected i18n
bug by replacing use of QT shortDayName() with libradio
RGetShortDayNameEN() which will always return english day names
regardless of configured locale.
2007-02-23 Fred Gleason <fredg@paravelsystems.com>
* Modified the code in 'lib/rdimport_audio.cpp' to use the
'RDCart::setMetadata()' and 'RDCut::setMetadata()' methods.
4) CVS Commit of the files changed using the ChangeLog snippet.

340
COPYING Normal file
View File

@@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
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 2 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, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

14297
ChangeLog Normal file

File diff suppressed because it is too large Load Diff

185
INSTALL Normal file
View File

@@ -0,0 +1,185 @@
This is the installation file for the Rivendell package.
MANDATORY PREREQUISITES
You will need the following installed and configured properly on your
system before building Rivendell:
Apache Web Server
Included with most distros, or available from: http://www.apache.org/.
Cdda2Wav
A CD ripper engine. Included in most distributions, but also available from
http://www.cdda2wav.de/.
ID3Lib
An audio metadata tag library. Included in most distros, or available at
http://id3lib.sourceforge.net/.
LibCurl, v7.19.0 or later
A client-side URL transfer library. Included with most distros, or
available at: http://curl.haxx.se/libcurl/.
LibParanoia
A library for ripping audio CDs. Included in most distributions, but also
available from http://www.xiph.org/paranoia/.
LibSndFile
An audio file support library, written by Erik de Castro Lopo. Included with
most distros, or you can find it at http://www.mega-nerd.com/libsndfile/.
mySQL Database Server
Included in most Linux distributions. See http://www.mysql.com/.
PAM Pluggable Authentication Modules
A suite of shared libraries that enable the local system administrator to
choose how applications authenticate users. Included with virtually all modern
distros, or see http://www.kernel.org/pub/linux/libs/pam/.
OggVorbis - Open Source Audio Coding Library. Needed for OggVorbis
importing and exporting. Included with most distros, or available at:
http://www.xiph.org/.
Qt Toolkit, v3.3 or better
Most modern Linux distros include this. It's typically installed as part
of the KDE Desktop Environment, although KDE is by no means required.
It can also be downloaded directly from TrollTech (http://www.trolltech.com/).
Secret Rabbit Code
A sample-rate converter library, written by Erik de Castro Lopo. Included
with most distros, or you can find it at http://www.mega-nerd.com/SRC/.
SoundTouch Audio Processing Library
A library for altering the pitch and/or tempo of digital audio data.
Available at http://www.surina.net/soundtouch/.
X11 Window System
Virtually all Linux distros should include this.
OPTIONAL PREREQUISITES
The following components are optional, but needed at build- and run- time in
order for particular features to work:
One or more audio driver libraries. Choices are:
AudioScience HPI Driver - v3.00 or greater.
For supporting AudioScience's line of high-end professional audio adapters.
See http://www.audioscience.com/.
The JACK Audio Connection Kit
A low latency audio server, designed from the ground up for
professional audio work. See http://jackit.sourceforge.net/.
Further information on running Rivendell with the JACK driver can be
found in 'docs/JACK.txt'.
The Advanced Linux Sound Architecture (ALSA) v1.0 or greater.
The standard soundcard driver for Linux for kernels 2.6.x or later.
See http://www.alsa-project.org/.
Free Lossless Audio Codec (FLAC), v1.2.x or greater
A "lossless" audio encoding library. Included with most distros, or
available from: http://flac.sourceforge.net/.
GPIO Driver
A kernel driver for the line of data-acquisition boards from
MeasurementComputing. See http://www.rivendellaudio.org/.
LAME - MPEG Layer 3 Encoder Library. Needed for MPEG Layer 3 exporting.
Available at http://lame.sourceforge.net/.
MAD - MPEG Audio Decoder Library. Needed for MPEG importing and playout.
Available at http://www.underbit.com/products/mad/.
TwoLAME - MPEG Layer 2 Encoder Library. Needed for MPEG Layer 2 exporting and
capture. Available at http://www.twolame.org/.
INSTALLATION
There are three major steps to getting a Rivendell system up and
running. They are:
1) Setting up pre-requisite software
2) Installing the Rivendell package
3) Initial configuration
1) Setting Up Prerequisites
The major prerequisite piece of software needed for a functioning
Rivendell system is the mySQL database engine. This needs to
be accessible from the target system (either by running on the local
host, or on a remote system) before Rivendell installation proper
is commenced. In practice, this means that the 'mysqld' daemon is
running and can be connected to using the mysql(1) client. You will
also need a login name/password for an account on the server with
administrative rights.
The process of configuring mySQL on a given host can be intricate and
is generally beyond the scope of this document. Details can be found
in a number of books on the subject, as well as in the very extensive
documentation that accompanies the server itself.
If GPIO support is desired, this is also the time to install and test
the kernel GPIO driver. Full installation instructions as well as the
list of currently supported GPIO boards are included in the package.
2) Installing the Rivendell Package
Once the prerequisites are set up, installation is most often a matter of
cd'ing to the top of the Rivendell source tree and typing
'./configure', 'make', followed (as root) by 'make install'. Those
who obtained the source via CVS will need to do './autogen.sh' first.
The ./configure script will auto-detect what sound drivers (HPI, JACK
or ALSA) are available and enable build support accordingly. To override
this behavior, it's possible to specify '--disable-hpi',
'--disable-jack' or '--disable-alsa' as an argument to './configure'.
Be sure to see the important additional information regarding
configuration in the 'docs/JACK.txt' or 'docs/ALSA.txt' files if you
plan on using those sound driver architectures.
Rivendell's web services components are installed in the directory specified
by the '--libexecdir=' parameter given to './configure' (default
'EPREFIX/bin'). The proper location will vary widely on different distros
according to how Apache is installed. On SuSE (assuming the default setup),
the proper invocation is '--libexecdir=/srv/www/rd-bin'. Additionally,
Apache itself must be configured to use the specified directory. The
'./configure' script generates a configuration file snippet that can be
included into the Apache configuration to accomplish this in
'conf/rd-bin.conf'. On Ubuntu copy that file to the /etc/apache2/conf.d/
directory.
3) Initial Configuration
Next, you'll need to install a small configuration file at
'/etc/rd.conf'. A sample can be found in 'conf/rd.conf-sample'. Much
of this can be used unchanged, with the exception of the entries in the
[Identity] section. These should be changed to reflect the user and group
name of the system accounts that will be running Rivendell.
The directory for the audio sample data next needs to be created, as
so:
mkdir /var/snd
This directory should owned, readable, writable and searchable by the user
and group specified in the 'AudioOwner=' and 'AudioGroup=' entires in
'/etc/rd.conf' and readable and searchable by Others (mode 0775).
Finally, it's time to start things up. Run 'rdadmin' from a shell
prompt. For the first time startup, RDAdmin will prompt for a login
name/password on the mySQL server so that it can create the Rivendell
database. To log into RDAdmin for the first time, enter a User Name of
'admin' with no password.
Much of the work in Rivendell gets done by three daemon processes,
named 'caed', 'ripcd' and 'rdcatchd'. These daemons *must* be running
before attempting to start any of the Rivendell applications. The
order in which they are started is important, and should be the same
as the order in which they are listed above. For convienence, a Sys-V
style init script called 'rivendell' that can start, stop and restart
the daemons properly is installed in '/etc/init.d/'.

162
Makefile.am Normal file
View File

@@ -0,0 +1,162 @@
## automake.am
##
## Top level automake.am for Rivendell
##
## Use automake to process this into a Makefile.in
##
## (C) Copyright 2002-2010 Fred Gleason <fredg@paravelsystems.com>
##
## $Id: Makefile.am,v 1.65.6.6 2013/01/14 16:35:58 cvs Exp $
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License version 2 as
## published by the Free Software Foundation.
##
## 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, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
if PAM_RD_AM
PAM_RD_OPT = pam_rd
endif
if HPI_RD_AM
HPI_RD_OPT = rdhpi
endif
if ALSA_RD_AM
ALSACONFIG_RD_OPT = rdalsaconfig
endif
SUBDIRS = icons\
helpers\
lib\
$(HPI_RD_OPT) $(PAM_RD_OPT) rlm\
scripts\
conf\
debian\
docs\
xdg\
cae\
importers\
ios\
rdadmin\
rdairplay\
rdcartslots\
rdcastmanager\
rdcatch\
rdcatchd\
rdlibrary\
rdlogedit\
rdlogin\
rdlogmanager\
rdmonitor\
rdpanel\
rdrepld\
rdselect\
ripcd\
tests\
utils\
web
install-exec-local:
./install-init.sh $(DESTDIR)$(prefix)
install-debian:
touch ./building-debian
make install
rm -f ./building-debian
uninstall-exec:
rm -f /etc/init.d/rdrepld
rm -f /etc/init.d/rivendell
rm -f /etc/sysconfig/rivendell
rpm: dist
cp rivendell-$(VERSION).tar.gz $(RPM_ROOT)/SOURCES/
$(RPMBUILD) -ba --target $(ARCH)-$(VENDOR)-linux rivendell.spec
mv $(RPM_ROOT)/RPMS/$(ARCH)/rivendell-*.rpm $(top_srcdir)/
mv $(RPM_ROOT)/SRPMS/rivendell-*.src.rpm $(top_srcdir)/
rm $(RPM_ROOT)/SOURCES/rivendell-$(VERSION).tar.gz
rm -rf $(RPM_ROOT)/BUILD/rivendell-$(VERSION)
slack: all
./make_slack
slax: all
rm -f rivendell-$(VERSION)-$(ARCH)-$(RPM_RELEASE).mo
./make_slack
tgz2mo rivendell-$(VERSION)-$(ARCH)-$(RPM_RELEASE).tgz rivendell-$(VERSION)-$(ARCH)-$(RPM_RELEASE).mo
zip: dist
tar -zxf rivendell-@VERSION@.tar.gz
zip -r rivendell-@VERSION@.zip rivendell-@VERSION@
rm -rf rivendell-@VERSION@
doxygen:
cd lib && doxygen doxygen.conf
cd cae && doxygen doxygen.conf &
cd rdairplay && doxygen doxygen.conf &
cd rdadmin && doxygen doxygen.conf &
cd rdcatch && doxygen doxygen.conf &
cd rdcatchd && doxygen doxygen.conf &
cd rdlibrary && doxygen doxygen.conf &
cd rdlogedit && doxygen doxygen.conf &
cd rdlogin && doxygen doxygen.conf &
cd rdlogmanager && doxygen doxygen.conf &
cd ripcd && doxygen doxygen.conf &
EXTRA_DIST = autogen.sh\
build_win32.bat\
CODINGSTYLE\
get_distro.sh\
get_target.sh\
install-init.sh\
make_slack.in\
PACKAGE_VERSION\
rdrepld-suse.in\
rivendell-gentoo\
rivendell.ism\
rivendell.pro\
rivendell.spec.in\
rivendell-suse.in\
rivendell.sys\
slack-desc.in\
slack_doinst.sh\
UPGRADING
CLEANFILES = *~\
*.mo\
*.rpm\
*.tar.gz\
*.tgz\
*.zip
DISTCLEANFILES = config.guess\
config.sub\
ltmain.sh\
make_slack\
rdrepld-suse\
rivendell\
rivendell.spec\
slack-desc
MAINTAINERCLEANFILES = *~\
*.tar.gz\
aclocal.m4\
Makefile.in\
config.guess\
config.status\
config.sub\
configure\
depcomp\
install-sh\
libtool\
ltmain.sh\
missing\
mkinstalldirs\
rivendell.spec\
rivendell-suse

2743
NEWS Normal file

File diff suppressed because it is too large Load Diff

1
PACKAGE_VERSION Normal file
View File

@@ -0,0 +1 @@
2.9.0

71
README Normal file
View File

@@ -0,0 +1,71 @@
This is the README file for the Rivendell package.
This software comes with ABSOLUTELY NO WARRANTY. See the file COPYING for
details.
Welcome to this release of the Rivendell Project. Rivendell aims
to be a robust, functionally complete digital audio system for use in
professional radio broadcast environments.
See the file INSTALL for installation instructions. If you are upgrading from
a 1.x version of Rivendell, also see the file 'UPGRADING' for important notes
and pointers.
OVERVIEW
Rivendell contains a full set of functionality needed to operate a radio
automation system, consisting of the following components:
RDAdmin
A comprehensive application for the administration and configuration
of Rivendell.
RDLibrary
The production audio interface.
RDCatch
The automatic recorder and task scheduler interface.
RDLogin
A small utility for logging users into and out of the system.
RDLogEdit
A air log creation, editing and voicetracker tool.
RDLogManager
A utility for the automatic generation of logs, based on templates.
It also supports importation of schedule information from a wide
variety of third-party traffic and music scheduling systems.
RDAirPlay
The on-air playout application.
RDPanel
A 'fullscreen' SoundPanel cartwall application.
RDCastManager
A utility for posting and managing podcast episodes.
RDGpiMon
A utility for monitoring GPI line status.
RDHPIInfo
A utility for configuring AudioScience audio adapters.
RDAlsaConfig
A utility for configuring ALSA audio adapters.
RDImport
A command-line utility for batch importing audio along with
accompanying metadata. Do:
rdimport --help
from a command prompt for a list of options.
RMLSend
A GUI and command-line utility for sending Rivendell Macro Language
(RML) commands.
RDSoftKeys
A lightweight button panel utility for sending RML commands.

74
UPGRADING Normal file
View File

@@ -0,0 +1,74 @@
IMPORTANT NOTE: BE SURE TO SEE THE SECTION ON 'PASSWORD STORAGE' BELOW,
OTHERWISE YOU MAY BE LOCKED OUT OF THE SYSTEM AFTER THE UPDATE!
This file provides some notes to those performing an upgrade from a v1.x
version to Rivendell. It is an attempt to provide some pointers about things
which have changed, but is in no way a substitute for reading the 'INSTALL'
file and other documentation!
1) DEPENDENCIES
The set of external packages required to build and run Rivendell has changed
significantly from that required for a 1.x system. See 'INSTALL' for a full
list.
2) MPEG SUPPORT
This version of Rivendell inaugurates optional support for MPEG Layer 2
encoding within the core Rivendell audio library for all classes of audio
device (JACK and ALSA as well as AudioScience HPI). To make use of this
feature, it will be necessary to have the appropriate MPEG libraries
properly installed at both build- and run-time. See 'INSTALL' for the
specifics.
3) FILE OWNERSHIP AND PERMISSIONS
Recommended file ownership and permissions for the '/var/snd' directory and
its contents have changed. These items should be owned by system user and
group accounts created specifically for Rivendell; no 'real' user on the
system should use these accounts. The Rivendell system user and group
accounts are specified in the 'AudioOwner=' and 'AudioGroup=' directives in
the '[Identity]' section of rd.conf(5); see 'conf/rd.conf-sample' for an
example. Permissions for '/var/snd' should be read, write and execute bits
set for User and Group and read, execute for Others (0775), while the contents
should have read, write set for user and group and just read for others (0664).
4) WEB SERVICES
This version of Rivendell makes use of a web services protocol to accomplish
many functions (audio import, export, ripping, etc). These services require
that a CGI-compliant web server be installed and active on the system.
Any server that complies with CGI-1.1 should work, although as of this writing
only Apache 2.2 has been well tested. A configuration file snippet for Apache
that will configure the target web services directory (set by the
'--libexecdir=' switch passed to './configure') correctly is generated
automatically as part of the build process; it can be found in
'conf/rd-bin.conf' after the build is complete.
5) PASSWORD STORAGE
The method of storing passwords in the database has changed in Rivendell 2.x,
requiring that all non-null passwords be reset after performing the upgrade.
This means that it is important that the account used to access RDAdmin be set
to use a null (blank) password *before* applying the update, otherwise you
will not be able to access RDAdmin afterwards! Once the update has been
applied, passwords should be re-entered for all user accounts in RDAdmin
(including administrative ones) in the usual manner.
6) AUDIO SAMPLE RATE
The sample rate to be used for the Rivendell audio library is now a single
system-wide setting (found in RDAdmin->SystemSettings); it is no longer
possible to set sample rates individually per module/workstation. When
updating the schema, Rivendell will default this to the value previously
configured for RDLibrary on a randomly selected host; since this may or may
not be appropriate for your site, checking this value after the update is
recommended.
7) RDCATCH CHANGES
Upload and Download events in RDCatch that use the 'file:' protocol now
require that a username/password for an appropriate shell user account be
entered. 'Appropriate' here means one with write or read permissions for
the target file, respectively.
The 'smb:' protocol is no longer supported.
8) RLM API CHANGES
The parameters passed to the RLMPadDataSent() callback in RLMs have changed;
private plug-ins written for RD 1.x will need to be modified to work with the
new API. (All plug-ins supplied with the Rivendell sources have already been
modified appropriately.)

504
acinclude.m4 Normal file
View File

@@ -0,0 +1,504 @@
dnl acinclude.m4
dnl
dnl Local Autoconf macro definitions for LibRHpi
dnl
dnl (C) Copyright 2006 Fred Gleason <fredg@paravelsystems.com>
dnl
dnl BNV_HAVE_QT Macro Copyright (C) 2001, 2002, 2003, 2005, 2006
dnl Bastiaan Veelo
dnl
dnl $Id: acinclude.m4,v 1.7.8.2 2012/08/08 19:48:29 cvs Exp $
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License version 2 as
dnl published by the Free Software Foundation.
dnl
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public
dnl License along with this program; if not, write to the Free Software
dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
dnl
dnl AR_GCC_TARGET()
dnl
dnl Get gcc(1)'s idea of the target architecture, distribution and os.
dnl The following variables are set:
dnl $ar_gcc_arch = Target Architecture (i586, XF86_64, etc)
dnl $ar_gcc_distro = Target Distribution (suse, slackware, etc)
dnl $ar_gcc_os = Target Operating System (linux, solaris, etc)
dnl
AC_DEFUN([AR_GCC_TARGET],[AC_REQUIRE([AC_PROG_CC])]
[
AC_MSG_CHECKING(target architecture)
ar_gcc_arch=$(./get_target.sh $CC $AWK arch)
ar_gcc_distro=$(./get_target.sh $CC $AWK distro)
ar_gcc_os=$(./get_target.sh $CC $AWK os)
AC_MSG_RESULT([$ar_gcc_arch-$ar_gcc_distro-$ar_gcc_os])
]
)
dnl AR_GET_DISTRO()
dnl
dnl Try to determine the name and version of the distribution running
dnl on the host machine, based on entries in '/etc/'.
dnl The following variables are set:
dnl $ar_distro_name = Distribution Name (SuSE, Debian, etc)
dnl $ar_distro_version = Distribution Version (10.3, 3.1, etc)
dnl $ar_distro_major = Distribution Version Major Number (10, 3, etc)
dnl $ar_distro_minor = Distribution Version Minor Number (3, 1, etc)
dnl
AC_DEFUN([AR_GET_DISTRO],[]
[
AC_MSG_CHECKING(distribution)
ar_distro_name=$(./get_distro.sh NAME $AWK)
ar_distro_version=$(./get_distro.sh VERSION $AWK)
ar_distro_major=$(./get_distro.sh MAJOR $AWK)
ar_distro_minor=$(./get_distro.sh MINOR $AWK)
AC_MSG_RESULT([$ar_distro_name $ar_distro_version])
]
)
dnl BNV_HAVE_QT [--with-Qt-dir=DIR] [--with-Qt-lib-dir=DIR] [with-Qt-lib=LIB]
dnl BNV_HAVE_QT [--with-Qt-include-dir=DIR] [--with-Qt-bin-dir=DIR]
dnl [--with-Qt-lib-dir=DIR] [--with-Qt-lib=LIB]
dnl
dnl THANKS! This code includes bug fixes and contributions made by:
dnl Tim McClarren,
dnl Dennis R. Weilert,
dnl Qingning Huo,
dnl Brian Mingus,
dnl Jens Hannemann,
dnl Pavel Roskin,
dnl Scott J. Bertin.
dnl ChangeLog
dnl 2006-03-12 * Hide output of ls and fix an m4 quoting problem (due to Scott J. Bertin).
dnl 2006-02-13 * Check compiler return value instead of parsing the error stream,
dnl which detected warnings as false negatives (due to Jens Hannemann).
dnl 2006-02-02 * Spelling of "Success".
dnl * Fixed unsave test for $bnv_qt_lib without quotes.
dnl * Put dnl in front of all comments.
dnl * Changed -l$bnv_qt_lib_dir into -L$bnv_qt_lib_dir (all due to Pavel Roskin).
dnl 2006-01-19 * Support for 64bit architectures.
dnl * Updated documentation.
dnl 2006-01-18: * Fix "cat: bnv_qt_test.c: No such file or directory" (due to Jens Hannemann).
dnl * Hide output of failing ls.
dnl 2006-01-11: * Check in /Developer on Mac OS X; Check in $QTDIR (due to Brian Mingus).
dnl Calls BNV_PATH_QT_DIRECT (contained in this file) as a subroutine.
AC_DEFUN([BNV_HAVE_QT],
[
AC_REQUIRE([AC_PROG_CXX])
AC_REQUIRE([AC_PATH_X])
AC_REQUIRE([AC_PATH_XTRA])
AC_MSG_CHECKING(for Qt)
AC_ARG_WITH([Qt-dir],
[ --with-Qt-dir=DIR DIR is equal to $QTDIR if you have followed the
installation instructions of Trolltech. Header
files are in DIR/include, binary utilities are
in DIR/bin. The library is in DIR/lib, unless
--with-Qt-lib-dir is also set.])
AC_ARG_WITH([Qt-include-dir],
[ --with-Qt-include-dir=DIR
Qt header files are in DIR])
AC_ARG_WITH([Qt-bin-dir],
[ --with-Qt-bin-dir=DIR Qt utilities such as moc and uic are in DIR])
AC_ARG_WITH([Qt-lib-dir],
[ --with-Qt-lib-dir=DIR The Qt library is in DIR])
AC_ARG_WITH([Qt-lib],
[ --with-Qt-lib=LIB Use -lLIB to link with the Qt library])
if test x"$with_Qt_dir" = x"no" ||
test x"$with_Qt_include-dir" = x"no" ||
test x"$with_Qt_bin_dir" = x"no" ||
test x"$with_Qt_lib_dir" = x"no" ||
test x"$with_Qt_lib" = x"no"; then
# user disabled Qt. Leave cache alone.
have_qt="User disabled Qt."
else
# "yes" is a bogus option
if test x"$with_Qt_dir" = xyes; then
with_Qt_dir=
fi
if test x"$with_Qt_include_dir" = xyes; then
with_Qt_include_dir=
fi
if test x"$with_Qt_bin_dir" = xyes; then
with_Qt_bin_dir=
fi
if test x"$with_Qt_lib_dir" = xyes; then
with_Qt_lib_dir=
fi
if test x"$with_Qt_lib" = xyes; then
with_Qt_lib=
fi
# No Qt unless we discover otherwise
have_qt=no
# Check whether we are requested to link with a specific version
if test x"$with_Qt_lib" != x; then
bnv_qt_lib="$with_Qt_lib"
fi
# Check whether we were supplied with an answer already
if test x"$with_Qt_dir" != x; then
have_qt=yes
bnv_qt_dir="$with_Qt_dir"
bnv_qt_include_dir="$with_Qt_dir/include"
bnv_qt_bin_dir="$with_Qt_dir/bin"
bnv_qt_lib_dir="$with_Qt_dir/lib"
# Only search for the lib if the user did not define one already
if test x"$bnv_qt_lib" = x; then
bnv_qt_lib="`ls $bnv_qt_lib_dir/libqt* | sed -n 1p |
sed s@$bnv_qt_lib_dir/lib@@ | [sed s@[.].*@@]`"
fi
bnv_qt_LIBS="-L$bnv_qt_lib_dir -l$bnv_qt_lib $X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS"
else
# Use cached value or do search, starting with suggestions from
# the command line
AC_CACHE_VAL(bnv_cv_have_qt,
[
# We are not given a solution and there is no cached value.
bnv_qt_dir=NO
bnv_qt_include_dir=NO
bnv_qt_lib_dir=NO
if test x"$bnv_qt_lib" = x; then
bnv_qt_lib=NO
fi
BNV_PATH_QT_DIRECT
if test "$bnv_qt_dir" = NO ||
test "$bnv_qt_include_dir" = NO ||
test "$bnv_qt_lib_dir" = NO ||
test "$bnv_qt_lib" = NO; then
# Problem with finding complete Qt. Cache the known absence of Qt.
bnv_cv_have_qt="have_qt=no"
else
# Record where we found Qt for the cache.
bnv_cv_have_qt="have_qt=yes \
bnv_qt_dir=$bnv_qt_dir \
bnv_qt_include_dir=$bnv_qt_include_dir \
bnv_qt_bin_dir=$bnv_qt_bin_dir \
bnv_qt_LIBS=\"$bnv_qt_LIBS\""
fi
])dnl
eval "$bnv_cv_have_qt"
fi # all $bnv_qt_* are set
fi # $have_qt reflects the system status
if test x"$have_qt" = xyes; then
QT_CXXFLAGS="-I$bnv_qt_include_dir"
if test x"$bnv_qt_lib" = xqt-mt; then
QT_CXXFLAGS="$QT_CXXFLAGS -DQT_THREAD_SUPPORT"
fi
QT_DIR="$bnv_qt_dir"
QT_LIBS="$bnv_qt_LIBS"
# If bnv_qt_dir is defined, utilities are expected to be in the
# bin subdirectory
if test x"$bnv_qt_dir" != x; then
QT_BIN="$bnv_qt_dir/bin"
if test -x "$bnv_qt_dir/bin/uic"; then
QT_UIC="$bnv_qt_dir/bin/uic"
else
# Old versions of Qt don't have uic
QT_UIC=
fi
QT_MOC="$bnv_qt_dir/bin/moc"
else
# Or maybe we are told where to look for the utilities
if test x"$bnv_qt_bin_dir" != x; then
QT_BIN="$bnv_qt_bin_dir"
if test -x "$bnv_qt_bin_dir/uic"; then
QT_UIC="$bnv_qt_bin_dir/uic"
else
# Old versions of Qt don't have uic
QT_UIC=
fi
QT_MOC="$bnv_qt_bin_dir/moc"
else
# Last possibility is that they are in $PATH
QT_UIC="`which uic`"
QT_MOC="`which moc`"
QT_BIN="`dirname $QT_MOC`"
fi
fi
# All variables are defined, report the result
AC_MSG_RESULT([$have_qt:
QT_CXXFLAGS=$QT_CXXFLAGS
QT_DIR=$QT_DIR
QT_LIBS=$QT_LIBS
QT_BIN=$QT_BIN
QT_UIC=$QT_UIC
QT_MOC=$QT_MOC])
else
# Qt was not found
QT_CXXFLAGS=
QT_DIR=
QT_LIBS=
QT_BIN=
QT_UIC=
QT_MOC=
AC_MSG_RESULT($have_qt)
fi
AC_SUBST(QT_CXXFLAGS)
AC_SUBST(QT_DIR)
AC_SUBST(QT_LIBS)
AC_SUBST(QT_BIN)
AC_SUBST(QT_UIC)
AC_SUBST(QT_MOC)
#### Being paranoid:
if test x"$have_qt" = xyes; then
AC_MSG_CHECKING(correct functioning of Qt installation)
AC_CACHE_VAL(bnv_cv_qt_test_result,
[
cat > bnv_qt_test.h << EOF
#include <qobject.h>
class Test : public QObject
{
Q_OBJECT
public:
Test() {}
~Test() {}
public slots:
void receive() {}
signals:
void send();
};
EOF
cat > bnv_qt_main.$ac_ext << EOF
#include "bnv_qt_test.h"
#include <qapplication.h>
int main( int argc, char **argv )
{
QApplication app( argc, argv );
Test t;
QObject::connect( &t, SIGNAL(send()), &t, SLOT(receive()) );
}
EOF
bnv_cv_qt_test_result="failure"
bnv_try_1="$QT_MOC bnv_qt_test.h -o moc_bnv_qt_test.$ac_ext >/dev/null 2>/dev/null"
AC_TRY_EVAL(bnv_try_1)
if test x"$ac_status" != x0; then
echo "$bnv_err_1" >&AC_FD_CC
echo "configure: could not run $QT_MOC on:" >&AC_FD_CC
cat bnv_qt_test.h >&AC_FD_CC
else
bnv_try_2="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o moc_bnv_qt_test.o moc_bnv_qt_test.$ac_ext >/dev/null 2>/dev/null"
AC_TRY_EVAL(bnv_try_2)
if test x"$ac_status" != x0; then
echo "$bnv_err_2" >&AC_FD_CC
echo "configure: could not compile:" >&AC_FD_CC
cat moc_bnv_qt_test.$ac_ext >&AC_FD_CC
else
bnv_try_3="$CXX $QT_CXXFLAGS -c $CXXFLAGS -o bnv_qt_main.o bnv_qt_main.$ac_ext >/dev/null 2>/dev/null"
AC_TRY_EVAL(bnv_try_3)
if test x"$ac_status" != x0; then
echo "$bnv_err_3" >&AC_FD_CC
echo "configure: could not compile:" >&AC_FD_CC
cat bnv_qt_main.$ac_ext >&AC_FD_CC
else
bnv_try_4="$CXX -o bnv_qt_main bnv_qt_main.o moc_bnv_qt_test.o $QT_LIBS $LIBS >/dev/null 2>/dev/null"
AC_TRY_EVAL(bnv_try_4)
if test x"$ac_status" != x0; then
echo "$bnv_err_4" >&AC_FD_CC
else
bnv_cv_qt_test_result="success"
fi
fi
fi
fi
])dnl AC_CACHE_VAL bnv_cv_qt_test_result
AC_MSG_RESULT([$bnv_cv_qt_test_result]);
if test x"$bnv_cv_qt_test_result" = "xfailure"; then
AC_MSG_ERROR([Failed to find matching components of a complete
Qt installation. Try using more options,
see ./configure --help.])
fi
rm -f bnv_qt_test.h moc_bnv_qt_test.$ac_ext moc_bnv_qt_test.o \
bnv_qt_main.$ac_ext bnv_qt_main.o bnv_qt_main
fi
])
dnl Internal subroutine of BNV_HAVE_QT
dnl Set bnv_qt_dir bnv_qt_include_dir bnv_qt_bin_dir bnv_qt_lib_dir bnv_qt_lib
AC_DEFUN([BNV_PATH_QT_DIRECT],
[
## Binary utilities ##
if test x"$with_Qt_bin_dir" != x; then
bnv_qt_bin_dir=$with_Qt_bin_dir
fi
## Look for header files ##
if test x"$with_Qt_include_dir" != x; then
bnv_qt_include_dir="$with_Qt_include_dir"
else
# The following header file is expected to define QT_VERSION.
qt_direct_test_header=qglobal.h
# Look for the header file in a standard set of common directories.
bnv_include_path_list="
/usr/include
`ls -dr ${QTDIR}/include 2>/dev/null`
`ls -dr /usr/include/qt* 2>/dev/null`
`ls -dr /usr/lib/qt*/include 2>/dev/null`
`ls -dr /usr/local/qt*/include 2>/dev/null`
`ls -dr /opt/qt*/include 2>/dev/null`
`ls -dr /Developer/qt*/include 2>/dev/null`
"
for bnv_dir in $bnv_include_path_list; do
if test -r "$bnv_dir/$qt_direct_test_header"; then
bnv_dirs="$bnv_dirs $bnv_dir"
fi
done
# Now look for the newest in this list
bnv_prev_ver=0
for bnv_dir in $bnv_dirs; do
bnv_this_ver=`egrep -w '#define QT_VERSION' $bnv_dir/$qt_direct_test_header | sed s/'#define QT_VERSION'//`
if expr $bnv_this_ver '>' $bnv_prev_ver > /dev/null; then
bnv_qt_include_dir=$bnv_dir
bnv_prev_ver=$bnv_this_ver
fi
done
fi dnl Found header files.
# Are these headers located in a traditional Trolltech installation?
# That would be $bnv_qt_include_dir stripped from its last element:
bnv_possible_qt_dir=`dirname $bnv_qt_include_dir`
if (test -x $bnv_possible_qt_dir/bin/moc) &&
((ls $bnv_possible_qt_dir/lib/libqt* > /dev/null 2>/dev/null) ||
(ls $bnv_possible_qt_dir/lib64/libqt* > /dev/null 2>/dev/null)); then
# Then the rest is a piece of cake
bnv_qt_dir=$bnv_possible_qt_dir
bnv_qt_bin_dir="$bnv_qt_dir/bin"
if test x"$with_Qt_lib_dir" != x; then
bnv_qt_lib_dir="$with_Qt_lib_dir"
else
if (test -d $bnv_qt_dir/lib64); then
bnv_qt_lib_dir="$bnv_qt_dir/lib64"
else
bnv_qt_lib_dir="$bnv_qt_dir/lib"
fi
fi
# Only look for lib if the user did not supply it already
if test x"$bnv_qt_lib" = xNO; then
bnv_qt_lib="`ls $bnv_qt_lib_dir/libqt* | sed -n 1p |
sed s@$bnv_qt_lib_dir/lib@@ | [sed s@[.].*@@]`"
fi
bnv_qt_LIBS="-L$bnv_qt_lib_dir -l$bnv_qt_lib $X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS"
else
# There is no valid definition for $QTDIR as Trolltech likes to see it
bnv_qt_dir=
## Look for Qt library ##
if test x"$with_Qt_lib_dir" != x; then
bnv_qt_lib_dir="$with_Qt_lib_dir"
# Only look for lib if the user did not supply it already
if test x"$bnv_qt_lib" = xNO; then
bnv_qt_lib="`ls $bnv_qt_lib_dir/libqt* | sed -n 1p |
sed s@$bnv_qt_lib_dir/lib@@ | [sed s@[.].*@@]`"
fi
bnv_qt_LIBS="-L$bnv_qt_lib_dir -l$bnv_qt_lib $X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS"
else
# Normally, when there is no traditional Trolltech installation,
# the library is installed in a place where the linker finds it
# automatically.
# If the user did not define the library name, try with qt
if test x"$bnv_qt_lib" = xNO; then
bnv_qt_lib=qt
fi
qt_direct_test_header=qapplication.h
qt_direct_test_main="
int argc;
char ** argv;
QApplication app(argc,argv);
"
# See if we find the library without any special options.
# Don't add top $LIBS permanently yet
bnv_save_LIBS="$LIBS"
LIBS="-l$bnv_qt_lib $X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS"
bnv_qt_LIBS="$LIBS"
bnv_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="-I$bnv_qt_include_dir"
AC_TRY_LINK([#include <$qt_direct_test_header>],
$qt_direct_test_main,
[
# Success.
# We can link with no special library directory.
bnv_qt_lib_dir=
], [
# That did not work. Try the multi-threaded version
echo "Non-critical error, please neglect the above." >&AC_FD_CC
bnv_qt_lib=qt-mt
LIBS="-l$bnv_qt_lib $X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS"
AC_TRY_LINK([#include <$qt_direct_test_header>],
$qt_direct_test_main,
[
# Success.
# We can link with no special library directory.
bnv_qt_lib_dir=
], [
# That did not work. Try the OpenGL version
echo "Non-critical error, please neglect the above." >&AC_FD_CC
bnv_qt_lib=qt-gl
LIBS="-l$bnv_qt_lib $X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS"
AC_TRY_LINK([#include <$qt_direct_test_header>],
$qt_direct_test_main,
[
# Success.
# We can link with no special library directory.
bnv_qt_lib_dir=
], [
# That did not work. Maybe a library version I don't know about?
echo "Non-critical error, please neglect the above." >&AC_FD_CC
# Look for some Qt lib in a standard set of common directories.
bnv_dir_list="
`echo $bnv_qt_includes | sed ss/includess`
/lib
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/lib
/opt/lib64
/opt/lib
`ls -dr /usr/lib64/qt* 2>/dev/null`
`ls -dr /usr/lib64/qt*/lib64 2>/dev/null`
`ls -dr /usr/lib/qt* 2>/dev/null`
`ls -dr /usr/local/qt* 2>/dev/null`
`ls -dr /opt/qt* 2>/dev/null`
"
for bnv_dir in $bnv_dir_list; do
if ls $bnv_dir/libqt* >/dev/null 2>/dev/null; then
# Gamble that it's the first one...
bnv_qt_lib="`ls $bnv_dir/libqt* | sed -n 1p |
sed s@$bnv_dir/lib@@ | sed s/[[.]].*//`"
bnv_qt_lib_dir="$bnv_dir"
break
fi
done
# Try with that one
LIBS="-l$bnv_qt_lib $X_PRE_LIBS $X_LIBS -lX11 -lXext -lXmu -lXt -lXi $X_EXTRA_LIBS"
AC_TRY_LINK([#include <$qt_direct_test_header>],
$qt_direct_test_main,
[
# Success.
# We can link with no special library directory.
bnv_qt_lib_dir=
], [
# Leave bnv_qt_lib_dir defined
bnv_qt_lib_dir=bnv_qt_lib_dir
])
])
])
])
if test x"$bnv_qt_lib_dir" != x; then
bnv_qt_LIBS="-L$bnv_qt_lib_dir $LIBS"
else
bnv_qt_LIBS="$LIBS"
fi
LIBS="$bnv_save_LIBS"
CXXFLAGS="$bnv_save_CXXFLAGS"
fi dnl $with_Qt_lib_dir was not given
fi dnl Done setting up for non-traditional Trolltech installation
])

48
autogen.sh Executable file
View File

@@ -0,0 +1,48 @@
#!/bin/sh
##
## (C) Copyright 2002-2003 Fred Gleason <fredg@paravelsystems.com>
##
## $Id: autogen.sh,v 1.5 2010/07/29 19:32:30 cvs Exp $
##
## Adapted from './autogen.sh' in the Jack Audio Connection Kit.
## Copyright (C) 2001-2003 Paul Davis, et al.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of version 2 of the GNU General Public License as
## published by the Free Software Foundation;
##
## 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, write to the Free Software
## Foundation, Inc., 59 Temple Place, Suite 330,
## Boston, MA 02111-1307 USA
##
libtoolize=libtoolize
if which glibtoolize > /dev/null 2>&1; then
libtoolize=glibtoolize
fi
$libtoolize --force 2>&1 | sed '/^You should/d' || {
echo "libtool failed, exiting..."
exit 1
}
aclocal $ACLOCAL_FLAGS || {
echo "aclocal \$ACLOCAL_FLAGS where \$ACLOCAL_FLAGS= failed, exiting..."
exit 1
}
automake --add-missing || {
echo "automake --add-missing failed, exiting..."
exit 1
}
autoconf || {
echo "autoconf failed, exiting..."
exit 1
}

37
build_win32.bat Normal file
View File

@@ -0,0 +1,37 @@
@ECHO OFF
REM build_win32.bat
REM
REM Build Rivendell for Win32.
REM
REM (C) Copyright 2007 Fred Gleason <fredg@paravelsystems.com>
REM
REM This program is free software; you can redistribute it and/or modify
REM it under the terms of the GNU General Public License as
REM published by the Free Software Foundation; either version 2 of
REM the License, or (at your option) any later version.
REM
REM This program is distributed in the hope that it will be useful,
REM but WITHOUT ANY WARRANTY; without even the implied warranty of
REM MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
REM GNU General Public License for more details.
REM
REM You should have received a copy of the GNU General Public
REM License along with this program; if not, write to the Free Software
REM Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
REM
REM Stupid DOS trick to get the package version
REM
copy helpers\win32_frag1.txt + package_version + helpers\win32_frag2.txt helpers\win32_version.bat
call helpers\win32_version.bat
del helpers\win32_version.bat
REM
REM Build It
REM
qmake -o Makefile rivendell.pro
nmake
REM End of build_win32.bat

55
cae/Makefile.am Normal file
View File

@@ -0,0 +1,55 @@
## automake.am
##
## Core Audio Engine Makefile.am for Rivendell
##
## Copyright 2002-2006 Fred Gleason <fredg@paravelsystems.com>
##
## $Id: Makefile.am,v 1.33.8.1 2012/11/29 01:37:34 cvs Exp $
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License version 2 as
## published by the Free Software Foundation.
##
## 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, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
## Use automake to process this into a Makefile.in
AM_CPPFLAGS = -Wall @QT_CXXFLAGS@
INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/rdhpi
LIBS = @QT_LIBS@ -L$(top_srcdir)/lib -L$(top_srcdir)/rdhpi
MOC = @QT_MOC@
# The dependency for qt's Meta Object Compiler (moc)
moc_%.cpp: %.h
$(MOC) $< -o $@
bin_PROGRAMS = caed
dist_caed_SOURCES = cae.cpp cae.h\
cae_alsa.cpp\
cae_hpi.cpp\
cae_jack.cpp\
cae_socket.cpp cae_socket.h
nodist_caed_SOURCES = moc_cae.cpp\
moc_cae_socket.cpp
caed_LDADD = @LIB_RDLIBS@\
@LIBALSA@\
@LIBHPI@\
@LIBJACK@\
@LIBSRC@\
@LIBVORBIS@
CLEANFILES = *~\
moc_*
MAINTAINERCLEANFILES = *~\
Makefile.in

2276
cae/cae.cpp Normal file

File diff suppressed because it is too large Load Diff

410
cae/cae.h Normal file
View File

@@ -0,0 +1,410 @@
// cae.h
//
// The Core Audio Engine component of Rivendell
//
// (C) Copyright 2002-2004 Fred Gleason <fredg@paravelsystems.com>
//
// $Id: cae.h,v 1.79.4.4 2012/11/30 16:14:58 cvs Exp $
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
//
// 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, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
#ifndef CAE_H
#define CAE_H
#include <sys/types.h>
#include <pthread.h>
#include <stdint.h>
#include <soundtouch/SoundTouch.h>
#include <qobject.h>
#include <qstring.h>
#include <qsocketdevice.h>
#include <qserversocket.h>
#include <qsignalmapper.h>
#include <qtimer.h>
#include <qprocess.h>
#include <rdwavefile.h>
#include <rdsocket.h>
#ifdef HPI
#include <rdhpisoundcard.h>
#include <rdhpiplaystream.h>
#include <rdhpirecordstream.h>
#endif // HPI
#ifdef ALSA
#include <alsa/asoundlib.h>
struct alsa_format {
int card;
pthread_t thread;
snd_pcm_t *pcm;
unsigned channels;
unsigned capture_channels;
snd_pcm_uframes_t buffer_size;
snd_pcm_format_t format;
unsigned sample_rate;
char *card_buffer;
char *passthrough_buffer;
unsigned card_buffer_size;
unsigned periods;
bool exiting;
};
#endif // ALSA
#ifdef JACK
#include <jack/jack.h>
#endif // JACK
#ifdef HAVE_TWOLAME
#include <twolame.h>
#endif // HAVE_TWOLAME
#ifdef HAVE_MAD
#include <mad.h>
#endif // HAVE_MAD
#include <rd.h>
#include <rdconfig.h>
#include <rdstation.h>
//
// Debug Options
//
//#define PRINT_COMMANDS
//
// Global CAE Definitions
//
#define RINGBUFFER_SIZE 262144
#define CAED_USAGE "[-d]\n\nSupplying the '-d' flag will set 'debug' mode, causing caed(8) to stay\nin the foreground and print debugging info on standard output.\n"
//
// Function Prototypes
//
void LogLine(RDConfig::LogPriority prio,const QString &line);
void SigHandler(int signum);
extern RDConfig *rd_config;
class MainObject : public QObject
{
Q_OBJECT
public:
MainObject(QObject *parent=0,const char *name=0);
~MainObject();
public slots:
void newConnection(int fd);
private slots:
void socketData(int);
void socketKill(int);
void statePlayUpdate(int card,int stream,int state);
void stateRecordUpdate(int card,int stream,int state);
void updateMeters();
private:
void InitMixers();
void ParseCommand(int);
void DispatchCommand(int);
void KillSocket(int);
void BroadcastCommand(const char *);
void EchoCommand(int,const char *);
void EchoArgs(int,const char);
bool CheckDaemon(QString);
pid_t GetPid(QString pidfile);
int GetNextHandle();
int GetHandle(int ch,int *card,int *stream);
int GetHandle(int card,int stream);
void ProbeCaps(RDStation *station);
void ClearDriverEntries(RDStation *station);
void SendMeterLevelUpdate(const QString &type,int cardnum,int portnum,
short levels[]);
void SendStreamMeterLevelUpdate(int cardnum,int streamnum,short levels[]);
void SendMeterPositionUpdate(int cardnum,unsigned pos[]);
void SendMeterOutputStatusUpdate();
void SendMeterOutputStatusUpdate(int card,int port,int stream);
void SendMeterUpdate(const char *msg,unsigned len);
bool debug;
unsigned system_sample_rate;
Q_INT16 tcp_port;
QServerSocket *server;
QSocketDevice *meter_socket;
RDSocket *socket[CAE_MAX_CONNECTIONS];
Q_UINT16 meter_port[CAE_MAX_CONNECTIONS];
char args[CAE_MAX_CONNECTIONS][CAE_MAX_ARGS][CAE_MAX_LENGTH];
int istate[CAE_MAX_CONNECTIONS];
int argnum[CAE_MAX_CONNECTIONS];
int argptr[CAE_MAX_CONNECTIONS];
bool auth[CAE_MAX_CONNECTIONS];
RDStation::AudioDriver cae_driver[RD_MAX_CARDS];
int record_owner[RD_MAX_CARDS][RD_MAX_STREAMS];
int record_length[RD_MAX_CARDS][RD_MAX_STREAMS];
int record_threshold[RD_MAX_CARDS][RD_MAX_STREAMS];
int play_owner[RD_MAX_CARDS][RD_MAX_STREAMS];
int play_length[RD_MAX_CARDS][RD_MAX_STREAMS];
int play_speed[RD_MAX_CARDS][RD_MAX_STREAMS];
bool play_pitch[RD_MAX_CARDS][RD_MAX_STREAMS];
bool port_status[RD_MAX_CARDS][RD_MAX_PORTS];
bool output_status_flag[RD_MAX_CARDS][RD_MAX_PORTS][RD_MAX_STREAMS];
struct {
int card;
int stream;
int owner;
} play_handle[256];
int next_play_handle;
//
// HPI Driver
//
private:
void hpiInit(RDStation *station);
void hpiFree();
QString hpiVersion();
bool hpiLoadPlayback(int card,QString wavename,int *stream);
bool hpiUnloadPlayback(int card,int stream);
bool hpiPlaybackPosition(int card,int stream,unsigned pos);
bool hpiPlay(int card,int stream,int length,int speed,bool pitch,
bool rates);
bool hpiStopPlayback(int card,int stream);
bool hpiTimescaleSupported(int card);
bool hpiLoadRecord(int card,int port,int coding,int chans,int samprate,
int bitrate,QString wavename);
bool hpiUnloadRecord(int card,int stream,unsigned *len);
bool hpiRecord(int card,int stream,int length,int thres);
bool hpiStopRecord(int card,int stream);
bool hpiSetClockSource(int card,int src);
bool hpiSetInputVolume(int card,int stream,int level);
bool hpiSetOutputVolume(int card,int stream,int port,int level);
bool hpiFadeOutputVolume(int card,int stream,int port,int level,int length);
bool hpiSetInputLevel(int card,int port,int level);
bool hpiSetOutputLevel(int card,int port,int level);
bool hpiSetInputMode(int card,int stream,int mode);
bool hpiSetOutputMode(int card,int stream,int mode);
bool hpiSetInputVoxLevel(int card,int stream,int level);
bool hpiSetInputType(int card,int port,int type);
bool hpiGetInputStatus(int card,int port);
bool hpiGetInputMeters(int card,int port,short levels[2]);
bool hpiGetOutputMeters(int card,int port,short levels[2]);
bool hpiGetStreamOutputMeters(int card,int stream,short levels[2]);
bool hpiSetPassthroughLevel(int card,int in_port,int out_port,int level);
void hpiGetOutputPosition(int card,unsigned *pos);
#ifdef HPI
RDHPISoundCard *sound_card;
RDHPIRecordStream *record[RD_MAX_CARDS][RD_MAX_STREAMS];
RDHPIPlayStream *play[RD_MAX_CARDS][RD_MAX_STREAMS];
#endif // HPI
//
// JACK Driver
//
private slots:
void jackStopTimerData(int stream);
void jackFadeTimerData(int stream);
void jackRecordTimerData(int stream);
private:
void jackInit(RDStation *station);
void jackFree();
bool jackLoadPlayback(int card,QString wavename,int *stream);
bool jackUnloadPlayback(int card,int stream);
bool jackPlaybackPosition(int card,int stream,unsigned pos);
bool jackPlay(int card,int stream,int length,int speed,bool pitch,
bool rates);
bool jackStopPlayback(int card,int stream);
bool jackTimescaleSupported(int card);
bool jackLoadRecord(int card,int port,int coding,int chans,int samprate,
int bitrate,QString wavename);
bool jackUnloadRecord(int card,int stream,unsigned *len);
bool jackRecord(int card,int stream,int length,int thres);
bool jackStopRecord(int card,int stream);
bool jackSetInputVolume(int card,int stream,int level);
bool jackSetOutputVolume(int card,int stream,int port,int level);
bool jackFadeOutputVolume(int card,int stream,int port,int level,int length);
bool jackSetInputLevel(int card,int port,int level);
bool jackSetOutputLevel(int card,int port,int level);
bool jackSetInputMode(int card,int stream,int mode);
bool jackSetOutputMode(int card,int stream,int mode);
bool jackSetInputVoxLevel(int card,int stream,int level);
bool jackSetInputType(int card,int port,int type);
bool jackGetInputStatus(int card,int port);
bool jackGetInputMeters(int card,int port,short levels[2]);
bool jackGetOutputMeters(int card,int port,short levels[2]);
bool jackGetStreamOutputMeters(int card,int stream,short levels[2]);
bool jackSetPassthroughLevel(int card,int in_port,int out_port,int level);
void jackGetOutputPosition(int card,unsigned *pos);
void jackConnectPorts(const QString &out,const QString &in);
void jackDisconnectPorts(const QString &out,const QString &in);
int GetJackOutputStream();
void FreeJackOutputStream(int stream);
void EmptyJackInputStream(int stream,bool done);
#ifdef JACK
void WriteJackBuffer(int stream,jack_default_audio_sample_t *buffer,
unsigned len,bool done);
#endif // JACK
void FillJackOutputStream(int stream);
void JackClock();
void JackSessionSetup();
bool jack_connected;
bool jack_activated;
#ifdef JACK
int jack_card;
std::vector<QProcess *> jack_clients;
RDWaveFile *jack_record_wave[RD_MAX_STREAMS];
RDWaveFile *jack_play_wave[RD_MAX_STREAMS];
short *jack_wave_buffer;
jack_default_audio_sample_t *jack_sample_buffer;
soundtouch::SoundTouch *jack_st_conv[RD_MAX_STREAMS];
short jack_input_volume_db[RD_MAX_STREAMS];
short jack_output_volume_db[RD_MAX_PORTS][RD_MAX_STREAMS];
short jack_passthrough_volume_db[RD_MAX_PORTS][RD_MAX_PORTS];
short jack_fade_volume_db[RD_MAX_STREAMS];
short jack_fade_increment[RD_MAX_STREAMS];
int jack_fade_port[RD_MAX_STREAMS];
bool jack_fade_up[RD_MAX_STREAMS];
QTimer *jack_fade_timer[RD_MAX_STREAMS];
QTimer *jack_stop_timer[RD_MAX_STREAMS];
QTimer *jack_record_timer[RD_MAX_PORTS];
int jack_offset[RD_MAX_STREAMS];
int jack_clock_phase;
unsigned jack_samples_recorded[RD_MAX_STREAMS];
#endif // JACK
//
// ALSA Driver
//
private slots:
void alsaStopTimerData(int cardstream);
void alsaFadeTimerData(int cardstream);
void alsaRecordTimerData(int cardport);
private:
void alsaInit(RDStation *station);
void alsaFree();
bool alsaLoadPlayback(int card,QString wavename,int *stream);
bool alsaUnloadPlayback(int card,int stream);
bool alsaPlaybackPosition(int card,int stream,unsigned pos);
bool alsaPlay(int card,int stream,int length,int speed,bool pitch,
bool rates);
bool alsaStopPlayback(int card,int stream);
bool alsaTimescaleSupported(int card);
bool alsaLoadRecord(int card,int port,int coding,int chans,int samprate,
int bitrate,QString wavename);
bool alsaUnloadRecord(int card,int stream,unsigned *len);
bool alsaRecord(int card,int stream,int length,int thres);
bool alsaStopRecord(int card,int stream);
bool alsaSetInputVolume(int card,int stream,int level);
bool alsaSetOutputVolume(int card,int stream,int port,int level);
bool alsaFadeOutputVolume(int card,int stream,int port,int level,int length);
bool alsaSetInputLevel(int card,int port,int level);
bool alsaSetOutputLevel(int card,int port,int level);
bool alsaSetInputMode(int card,int stream,int mode);
bool alsaSetOutputMode(int card,int stream,int mode);
bool alsaSetInputVoxLevel(int card,int stream,int level);
bool alsaSetInputType(int card,int port,int type);
bool alsaGetInputStatus(int card,int port);
bool alsaGetInputMeters(int card,int port,short levels[2]);
bool alsaGetOutputMeters(int card,int port,short levels[2]);
bool alsaGetStreamOutputMeters(int card,int stream,short levels[2]);
bool alsaSetPassthroughLevel(int card,int in_port,int out_port,int level);
void alsaGetOutputPosition(int card,unsigned *pos);
void AlsaClock();
#ifdef ALSA
bool AlsaStartCaptureDevice(QString &dev,int card,snd_pcm_t *pcm);
bool AlsaStartPlayDevice(QString &dev,int card,snd_pcm_t *pcm);
void AlsaInitCallback();
int GetAlsaOutputStream(int card);
void FreeAlsaOutputStream(int card,int stream);
void EmptyAlsaInputStream(int card,int stream);
void WriteAlsaBuffer(int card,int stream,short *buffer,unsigned len);
void FillAlsaOutputStream(int card,int stream);
struct alsa_format alsa_play_format[RD_MAX_CARDS];
struct alsa_format alsa_capture_format[RD_MAX_CARDS];
short alsa_input_volume_db[RD_MAX_CARDS][RD_MAX_STREAMS];
short alsa_output_volume_db[RD_MAX_CARDS][RD_MAX_PORTS][RD_MAX_STREAMS];
short alsa_passthrough_volume_db[RD_MAX_CARDS][RD_MAX_PORTS][RD_MAX_PORTS];
short *alsa_wave_buffer;
RDWaveFile *alsa_record_wave[RD_MAX_CARDS][RD_MAX_STREAMS];
RDWaveFile *alsa_play_wave[RD_MAX_CARDS][RD_MAX_STREAMS];
int alsa_offset[RD_MAX_CARDS][RD_MAX_STREAMS];
QTimer *alsa_fade_timer[RD_MAX_CARDS][RD_MAX_STREAMS];
QTimer *alsa_stop_timer[RD_MAX_CARDS][RD_MAX_STREAMS];
QTimer *alsa_record_timer[RD_MAX_CARDS][RD_MAX_PORTS];
bool alsa_fade_up[RD_MAX_CARDS][RD_MAX_STREAMS];
short alsa_fade_volume_db[RD_MAX_CARDS][RD_MAX_STREAMS];
short alsa_fade_increment[RD_MAX_CARDS][RD_MAX_STREAMS];
int alsa_fade_port[RD_MAX_CARDS][RD_MAX_STREAMS];
unsigned alsa_samples_recorded[RD_MAX_CARDS][RD_MAX_STREAMS];
#endif // ALSA
bool CheckLame();
//
// TwoLAME Encoder
//
bool LoadTwoLame();
bool InitTwoLameEncoder(int card,int stream,int chans,int samprate,
int bitrate);
void FreeTwoLameEncoder(int card,int stream);
void *twolame_handle;
#ifdef HAVE_TWOLAME
twolame_options *(*twolame_init)(void);
void (*twolame_set_mode)(twolame_options *,TWOLAME_MPEG_mode);
void (*twolame_set_num_channels)(twolame_options *,int);
void (*twolame_set_in_samplerate)(twolame_options *,int);
void (*twolame_set_out_samplerate)(twolame_options *,int);
void (*twolame_set_bitrate)(twolame_options *,int);
int (*twolame_init_params)(twolame_options *);
void (*twolame_close)(twolame_options **);
int (*twolame_encode_buffer_interleaved)(twolame_options *,const short int[],
int,unsigned char *,int);
int (*twolame_encode_buffer_float32_interleaved)
(twolame_options *,const float[],int,unsigned char *,int);
int (*twolame_encode_flush)(twolame_options *,unsigned char *,int);
int (*twolame_set_energy_levels)(twolame_options *,int);
twolame_options *twolame_lameopts[RD_MAX_CARDS][RD_MAX_STREAMS];
#endif // HAVE_TWOLAME
//
// MAD Decoder
//
bool LoadMad();
void InitMadDecoder(int card,int stream,RDWaveFile *wave);
void FreeMadDecoder(int card,int stream);
void *mad_handle;
#ifdef HAVE_MAD
void (*mad_stream_init)(struct mad_stream *);
void (*mad_frame_init)(struct mad_frame *);
void (*mad_synth_init)(struct mad_synth *);
void (*mad_stream_buffer)(struct mad_stream *,unsigned char const *,
unsigned long);
int (*mad_frame_decode)(struct mad_frame *, struct mad_stream *);
void (*mad_synth_frame)(struct mad_synth *, struct mad_frame const *);
void (*mad_frame_finish)(struct mad_frame *);
void (*mad_stream_finish)(struct mad_stream *);
struct mad_stream mad_stream[RD_MAX_CARDS][RD_MAX_STREAMS];
struct mad_frame mad_frame[RD_MAX_CARDS][RD_MAX_STREAMS];
struct mad_synth mad_synth[RD_MAX_CARDS][RD_MAX_STREAMS];
bool mad_active[RD_MAX_CARDS][RD_MAX_STREAMS];
int mad_frame_size[RD_MAX_CARDS][RD_MAX_STREAMS];
int mad_left_over[RD_MAX_CARDS][RD_MAX_STREAMS];
unsigned char *mad_mpeg[RD_MAX_CARDS][RD_MAX_STREAMS];
#endif // HAVE_MAD
};
#endif // CAE_H

1893
cae/cae_alsa.cpp Normal file

File diff suppressed because it is too large Load Diff

536
cae/cae_hpi.cpp Normal file
View File

@@ -0,0 +1,536 @@
// cae_hpi.cpp
//
// The HPI Driver for the Core Audio Engine component of Rivendell
//
// (C) Copyright 2002-2004 Fred Gleason <fredg@paravelsystems.com>
//
// $Id: cae_hpi.cpp,v 1.38.6.2 2012/11/30 16:14:58 cvs Exp $
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
//
// 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, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
#include <cae.h>
#include <rddebug.h>
void MainObject::hpiInit(RDStation *station)
{
#ifdef HPI
for(int i=0;i<RD_MAX_CARDS;i++) {
for(int j=0;j<RD_MAX_STREAMS;j++) {
record[i][j]=NULL;
play[i][j]=NULL;
}
}
sound_card=new RDHPISoundCard(this,"sound_card");
sound_card->setFadeProfile(RD_FADE_TYPE);
for(int i=0;i<sound_card->getCardQuantity();i++) {
cae_driver[i]=RDStation::Hpi;
station->setCardDriver(i,RDStation::Hpi);
station->setCardName(i,sound_card->getCardDescription(i));
station->setCardInputs(i,sound_card->getCardInputPorts(i));
station->setCardOutputs(i,sound_card->getCardOutputPorts(i));
}
#endif // HPI
}
void MainObject::hpiFree()
{
#ifdef HPI
#endif // HPI
}
QString MainObject::hpiVersion()
{
#ifdef HPI
if(sound_card==NULL) {
return QString("not active");
}
RDHPIInformation *info=sound_card->hpiInformation(0);
if(info->hpiVersion()==0) {
return QString("not active");
}
return QString().sprintf("%d.%02d.%02d",info->hpiMajorVersion(),
info->hpiMinorVersion(),info->hpiPointVersion());
#else
return QString("not enabled");
#endif // HPI
}
bool MainObject::hpiLoadPlayback(int card,QString wavename,int *stream)
{
#ifdef HPI
RDHPIPlayStream *playstream=new RDHPIPlayStream(sound_card);
playstream->setCard(card);
if(playstream->openWave(wavename)!=RDHPIPlayStream::Ok) {
LogLine(RDConfig::LogNotice,QString().sprintf(
"Error: hpiLoadPlayback(%s) openWave() failed to open file",
(const char *) wavename) );
delete playstream;
return false;
}
*stream=playstream->getStream();
play[card][*stream]=playstream;
connect(play[card][*stream],SIGNAL(stateChanged(int,int,int)),
this,SLOT(statePlayUpdate(int,int,int)));
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiUnloadPlayback(int card,int stream)
{
#ifdef HPI
if(play[card][stream]==NULL) {
return false;
}
if(play[card][stream]->getState()==RDHPIPlayStream::Playing) {
play[card][stream]->pause();
}
play[card][stream]->disconnect();
play[card][stream]->closeWave();
delete play[card][stream];
play[card][stream]=NULL;
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiPlaybackPosition(int card,int stream,unsigned pos)
{
#ifdef HPI
if(play[card][stream]==NULL) {
return false;
}
return play[card][stream]->
setPosition((unsigned)((double)play[card][stream]->getSamplesPerSec()*
(double)pos/1000.0));
#else
return false;
#endif // HPI
}
bool MainObject::hpiPlay(int card,int stream,int length,int speed,bool pitch,
bool rates)
{
#ifdef HPI
if(play[card][stream]==NULL) {
return false;
}
if(!play[card][stream]->setSpeed(speed,pitch,rates)) {
return false;
}
play[card][stream]->setPlayLength(length);
return play[card][stream]->play();
#else
return false;
#endif // HPI
}
bool MainObject::hpiStopPlayback(int card,int stream)
{
#ifdef HPI
if(play[card][stream]==NULL) {
return false;
}
play[card][stream]->pause();
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiTimescaleSupported(int card)
{
#ifdef HPI
return sound_card->haveTimescaling(card);
#else
return false;
#endif // HPI
}
bool MainObject::hpiLoadRecord(int card,int stream,int coding,int chans,
int samprate,int bitrate,QString wavename)
{
#ifdef HPI
record[card][stream]=new RDHPIRecordStream(sound_card);
connect(record[card][stream],SIGNAL(stateChanged(int,int,int)),
this,SLOT(stateRecordUpdate(int,int,int)));
record[card][stream]->setCard(card);
record[card][stream]->setStream(stream);
record[card][stream]->nameWave(wavename);
record[card][stream]->setChannels(chans);
record[card][stream]->setSamplesPerSec(samprate);
if(coding==0) { // PCM16
record[card][stream]->setFormatTag(WAVE_FORMAT_PCM);
record[card][stream]->setBitsPerSample(16);
}
if((coding>=1)&&(coding<=2)) { // MPEG-1
record[card][stream]->setFormatTag(WAVE_FORMAT_MPEG);
record[card][stream]->setHeadLayer(coding);
record[card][stream]->setHeadBitRate(bitrate);
record[card][stream]->setMextChunk(true);
switch(chans) {
case 1:
record[card][stream]->setHeadMode(ACM_MPEG_SINGLECHANNEL);
break;
case 2:
record[card][stream]->setHeadMode(ACM_MPEG_STEREO);
break;
default:
delete record[card][stream];
record[card][stream]=NULL;
return false;
}
record[card][stream]->setHeadFlags(ACM_MPEG_ID_MPEG1);
}
if(coding>2) {
delete record[card][stream];
record[card][stream]=NULL;
return false;
}
record[card][stream]->setBextChunk(true);
record[card][stream]->setCartChunk(true);
record[card][stream]->setLevlChunk(true);
if(record[card][stream]->createWave()!=RDHPIRecordStream::Ok) {
delete record[card][stream];
record[card][stream]=NULL;
return false;
}
chown((const char *)wavename,rd_config->uid(),rd_config->gid());
if(!record[card][stream]->recordReady()) {
delete record[card][stream];
record[card][stream]=NULL;
return false;
}
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiUnloadRecord(int card,int stream,unsigned *len)
{
#ifdef HPI
if(record[card][stream]==NULL) {
return false;
}
if(record[card][stream]->getState()==RDHPIRecordStream::Recording) {
record[card][stream]->pause();
}
record[card][stream]->disconnect();
*len=record[card][stream]->samplesRecorded();
record[card][stream]->closeWave();
delete record[card][stream];
record[card][stream]=NULL;
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiRecord(int card,int stream,int length,int thres)
{
#ifdef HPI
if(record[card][stream]==NULL) {
return false;
}
if(thres!=0) {
if(record[card][stream]->haveInputVOX()) {
record[card][stream]->setInputVOX(thres);
}
else {
return false;
}
}
record[card][stream]->setRecordLength(length);
record[card][stream]->record();
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiStopRecord(int card,int stream)
{
#ifdef HPI
if(record[card][stream]==NULL) {
return false;
}
record[card][stream]->pause();
record[card][stream]->setInputVOX(-10000);
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiSetClockSource(int card,int src)
{
#ifdef HPI
return sound_card->setClockSource(card,(RDHPISoundCard::ClockSource)src);
#else
return false;
#endif // HPI
}
bool MainObject::hpiSetInputVolume(int card,int stream,int level)
{
#ifdef HPI
sound_card->setInputVolume(card,stream,level);
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiSetOutputVolume(int card,int stream,int port,int level)
{
#ifdef HPI
sound_card->setOutputVolume(card,stream,port,level);
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiFadeOutputVolume(int card,int stream,int port,int level,
int length)
{
#ifdef HPI
sound_card->fadeOutputVolume(card,stream,port,level,length);
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiSetInputLevel(int card,int port,int level)
{
#ifdef HPI
sound_card->setInputLevel(card,port,level);
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiSetOutputLevel(int card,int port,int level)
{
#ifdef HPI
sound_card->setOutputLevel(card,port,level);
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiSetInputMode(int card,int stream,int mode)
{
#ifdef HPI
switch(mode) {
case 0:
sound_card->setInputMode(card,stream,RDHPISoundCard::Normal);
break;
case 1:
sound_card->setInputMode(card,stream,RDHPISoundCard::Swap);
break;
case 2:
sound_card->setInputMode(card,stream,RDHPISoundCard::LeftOnly);
break;
case 3:
sound_card->setInputMode(card,stream,RDHPISoundCard::RightOnly);
break;
default:
return false;
}
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiSetOutputMode(int card,int stream,int mode)
{
#ifdef HPI
switch(mode) {
case 0:
sound_card->setOutputMode(card,stream,RDHPISoundCard::Normal);
break;
case 1:
sound_card->setOutputMode(card,stream,RDHPISoundCard::Swap);
break;
case 2:
sound_card->setOutputMode(card,stream,RDHPISoundCard::LeftOnly);
break;
case 3:
sound_card->setOutputMode(card,stream,RDHPISoundCard::RightOnly);
break;
default:
return false;
}
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiSetInputVoxLevel(int card,int stream,int level)
{
#ifdef HPI
sound_card->setInputStreamVOX(card,stream,level);
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiSetInputType(int card,int port,int type)
{
#ifdef HPI
switch(type) {
case 0:
sound_card->setInputPortMux(card,port,RDHPISoundCard::LineIn);
break;
case 1:
sound_card->setInputPortMux(card,port,RDHPISoundCard::AesEbuIn);
break;
default:
return false;
}
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiGetInputStatus(int card,int port)
{
#ifdef HPI
if(sound_card->getInputPortError(card,port)!=0) {
return false;
}
return true;
#else
return false;
#endif // HPI
}
bool MainObject::hpiGetInputMeters(int card,int port,short levels[2])
{
#ifdef HPI
return sound_card->inputStreamMeter(card,port,levels);
#else
return false;
#endif // HPI
}
bool MainObject::hpiGetOutputMeters(int card,int port,short levels[2])
{
#ifdef HPI
if(rd_config->useStreamMeters()) {
//
// This is UGLY, but needed to semi-support cards (like the ASI4215)
// that lack output port metering.
//
for(int i=0;i<RD_MAX_STREAMS;i++) {
if(sound_card->getOutputVolume(card,i,port)>-10000) {
return sound_card->outputStreamMeter(card,i,levels);
}
}
levels[0]=-10000;
levels[1]=-10000;
return true;
}
return sound_card->outputPortMeter(card,port,levels);
#else
return false;
#endif // HPI
}
bool MainObject::hpiGetStreamOutputMeters(int card,int stream,short levels[2])
{
#ifdef HPI
return sound_card->outputStreamMeter(card,stream,levels);
#else
return false;
#endif // HPI
}
void MainObject::hpiGetOutputPosition(int card,unsigned *pos)
{
#ifdef HPI
for(int i=0;i<RD_MAX_STREAMS;i++) {
if(play[card][i]==NULL) {
pos[i]=0;
}
else {
pos[i]=1000*(unsigned long long)play[card][i]->currentPosition()/
play[card][i]->getSamplesPerSec();
}
}
#endif // HPI
return;
}
bool MainObject::hpiSetPassthroughLevel(int card,int in_port,int out_port,
int level)
{
#ifdef HPI
return sound_card->setPassthroughVolume(card,in_port,out_port,level);
#else
return false;
#endif // HPI
}

1607
cae/cae_jack.cpp Normal file

File diff suppressed because it is too large Load Diff

55
cae/cae_socket.cpp Normal file
View File

@@ -0,0 +1,55 @@
// socket.cpp
//
// The Core Audio Engine component of Rivendell
//
// (C) Copyright 2002 Fred Gleason <fredg@paravelsystems.com>
//
// $Id: cae_socket.cpp,v 1.9 2010/07/29 19:32:30 cvs Exp $
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
//
// 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, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
#include <qapplication.h>
#include <qobject.h>
#include <qserversocket.h>
#include <qhostaddress.h>
#include <unistd.h>
#include <stdio.h>
#include <signal.h>
#include <string.h>
#include <math.h>
#include <cae.h>
#include <cae_socket.h>
CaeSocket::CaeSocket(Q_UINT16 port,int backlog,QObject *parent,
const char *name)
: QServerSocket(port,0,parent,name)
{
}
CaeSocket::CaeSocket(const QHostAddress &address,Q_UINT16 port,int backlog,
QObject *parent,const char *name)
: QServerSocket(address,port,0,parent,name)
{
}
void CaeSocket::newConnection(int fd)
{
emit connection(fd);
}

50
cae/cae_socket.h Normal file
View File

@@ -0,0 +1,50 @@
// cae_socket.h
//
// The Core Audio Engine component of Rivendell
//
// (C) Copyright 2002 Fred Gleason <fredg@paravelsystems.com>
//
// $Id: cae_socket.h,v 1.7 2010/07/29 19:32:30 cvs Exp $
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
// published by the Free Software Foundation.
//
// 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, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//
#ifndef SOCKET_H
#define SOCKET_H
#include <qobject.h>
#include <qstring.h>
#include <qserversocket.h>
#include <qhostaddress.h>
class CaeSocket : public QServerSocket
{
Q_OBJECT
public:
CaeSocket(Q_UINT16 port,int backlog=0,QObject *parent=0,
const char *name=0);
CaeSocket(const QHostAddress &address,Q_UINT16 port,int backlog=0,
QObject *parent=0,const char *name=0);
void newConnection(int socket);
signals:
void connection(int);
private:
QServerSocket *socket;
};
#endif

54
conf/Makefile.am Normal file
View File

@@ -0,0 +1,54 @@
## automake.am
##
## Top level automake.am for Rivendell
##
## (C) Copyright 2002-2006 Fred Gleason <fredg@paravelsystems.com>
##
## $Id: Makefile.am,v 1.16.4.5 2013/09/12 23:26:09 cvs Exp $
## $Date: 2013/09/12 23:26:09 $
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License version 2 as
## published by the Free Software Foundation.
##
## 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, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
##
## Use automake to process this into a Makefile.in
EXTRA_DIST = my.cnf-master\
my.cnf-standby\
rd-bin.conf.in\
rd.conf-sample\
rd.conf-slax\
rd-sample.ini\
rlm_ando.conf\
rlm_facebook.conf\
rlm_filewrite.conf\
rlm_icecast2.conf\
rlm_inno713.conf\
rlm_liqcomp.conf\
rlm_padpoint.conf\
rlm_serial.conf\
rlm_shoutcast1.conf\
rlm_spinitron_plus.conf\
rlm_spottrap.conf\
rlm_twitter.conf\
rlm_udp.conf\
rlm_xds.conf\
rlm_xmpad.conf
CLEANFILES = *~
DISTCLEANFILES = rdfeed.conf
MAINTAINERCLEANFILES = *~\
aclocal.m4\
configure\
Makefile.in

59
conf/my.cnf-master Normal file
View File

@@ -0,0 +1,59 @@
# mySQL Configuration file for a Master Rivendell DB.
#
# by Fred Gleason <fredg@paravelsystems.com>
#
# This is recommended for use on a system acting as a master
# Rivendell server.
#
#
# The MySQL server
#
[mysqld]
server-id = 1
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
myisam_sort_buffer_size = 8M
log-bin
#
# Client Options
#
[client]
#password = your_password
port = 3306
socket = /var/lib/mysql/mysql.sock
#
# The safe_mysqld script
#
[safe_mysqld]
err-log=/var/lib/mysql/mysqld.log
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

78
conf/my.cnf-standby Normal file
View File

@@ -0,0 +1,78 @@
# mySQL configuration file for a Standby Rivendell DB.
#
# by Fred Gleason <fredg@paravelsystems.com>
#
# This is recommended for use on a system acting as a standby
# Rivendell server. Further information can be found in SRL
# Application Note #3, available at:
#
# http://www.salemradiolabs.com/appnotes/
#
# IMPORTANT NOTE:
# The 'server-id=' argument *must* be unique for each mySQL server
# across a given Rivendell network, or data replication will not
# work! By convention, the master server is assigned a server-id of
# '1', and standby servers are numbered sequentially starting with
# '100'.
#
# The MySQL server
#
[mysqld]
# #####################################################################
# You will need to customize the 'server-id' entry for your site:
# #####################################################################
server-id = 100
# #####################################################################
# No changes should be required below here.
# #####################################################################
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
myisam_sort_buffer_size = 8M
# master-host = server.example.com
# master-user = repl
# master-password = letmein
#
# Client Options
#
[client]
#password = your_password
port = 3306
socket = /var/lib/mysql/mysql.sock
#
# The safe_mysqld script
#
[safe_mysqld]
err-log=/var/lib/mysql/mysqld.log
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

51
conf/rd-bin.conf.in Normal file
View File

@@ -0,0 +1,51 @@
# rdfeed.conf
#
# This is the Apache Web Server configuration for Rivendell.
#
# (C) Copyright 2007,2010 Fred Gleason <fredg@paravelsystems.com>
#
# $Id: rd-bin.conf.in,v 1.5 2011/06/23 19:47:28 cvs Exp $
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# 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, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
<Directory "@libexecdir@">
Options ExecCGI FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
<Files *.gif>
SetHandler default-handler
</Files>
<Files *.png>
SetHandler default-handler
</Files>
<Files *.js>
SetHandler default-handler
</Files>
<Files *.html>
SetHandler default-handler
</Files>
<Files *.xml>
SetHandler cgi-script
</Files>
<Files *.cgi>
SetHandler cgi-script
</Files>
<Files *.mp3>
SetHandler cgi-script
</Files>
</Directory>
ScriptAlias /rd-bin/ "@libexecdir@/"
TimeOut 1200

118
conf/rd-sample.ini Executable file
View File

@@ -0,0 +1,118 @@
; rd.conf
;
; This is the default configuration file for Rivendell
;
; At the very least, you will need to change the 'AudioOwner='
; directive to point to a valid account on this machine!
;
; by Fred Gleason <fredg@paravelsystems.com>
;
[Identity]
; This section is used to define the default shell account used to
; run the Rivendell modules.
Password=letmein
AudioOwner=rd
AudioGroup=users
[mySQL]
; The connection parameters for the MySQL server.
Hostname=localhost
Loginname=rduser
Password=letmein
Database=Rivendell
Driver=QMYSQL3
[Logs]
; Set the method to be used for logging. Possible values are:
; Syslog = Use the syslog facility.
; File = Log directly to a file. See also the 'LogDirectory='
; and 'LogPattern=' parameters below.
; None = Don't generate logs at all.
Facility=Syslog
; The directory to write logs to. Used only if the 'Facility='
; parameter is set to 'File'.
LogDirectory=/home/rd/rdlogs
; The directory to to put core files in in the event of a daemon
; crash. For this to work, you must also configure your environment
; to allow the generation of core dumps (e.g. 'ulimit -c unlimited').
CoreDumpDirectory=/home/rd/rdlogs
; The name of the file to send logs to. The following wildcards can
; be used:
; %d - The day of the month (01 - 31)
; %h - The hour (00 - 23)
; %M - The month (01 - 12)
; %m - The minute (00 - 59)
; %n - The name of the originating module --e.g. 'rdairplay', 'caed'.
; %s - The second (00 - 60)
; %Y - The four digit year
; This parameter is used only if the 'Facility=' parameter is set to
; 'File'.
LogPattern=%n-%Y%M%d.log
[Alsa]
; ALSA Parameters
; (It should seldom be necessary to tweak these)
PeriodQuantity=2
PeriodSize=1024
; [SoftKeys]
;
; This section can be used to program the RDSoftKeys applet, or you
; can use the --map-file=<filename> switch to configure multiple soft
; key setups on the same host.
;
; Columns=10
;
; Command1=hithlum.srlabs.loc:GO 3 1 1 0!
; Legend1=Telos 1 ON
; Color1=red
;
; Command2=hithlum.srlabs.loc:GO 3 2 1 0!
; Legend2=Telos 2 ON
; Color2=red
;
[Tuning]
; This section defines the realtime parameters used when running
; audio components. Normally, these useful only for debugging.
UseRealtime=Yes
RealtimePriority=9
[Format]
; These values are used only by the ALSA driver, to set the basic sample
; rate to use when starting each sound card. Gernerally, you want
; this to match the rate used by files in your library, but some
; cheapie cards will only work with certain rates [e.g. 48000] here.
SampleRate=44100
Channels=2
[Hacks]
; If you are getting no output level meter indications with an older
; ASI card (such as the ASI4215, ASI4113 or ASI4111), try uncommenting
; the following line:
; UseStreamMeters=Yes
;
; Log Generation (old method, deprecated)
;
; These sections are here strictly for backward compatibility. See
; the [Logs] section for a much more powerful way to configure
; logging.
;
; [RDAirPlay]
; Logfile=/home/rd/rdairplay.log
;
; [RDCatchd]
; Logfile=/home/rd/rdcatchd.log
;
; [Ripcd]
; Logfile=/home/rd/ripcd.log
;
; [Caed]
; Logfile=/home/rd/caed.log
; EnableMixerLogging=No

133
conf/rd.conf-sample Normal file
View File

@@ -0,0 +1,133 @@
; rd.conf
;
; This is the default configuration file for Rivendell
;
; by Fred Gleason <fredg@paravelsystems.com>
;
[Identity]
; These entries are used to define the system user and group that will
; own the audio files.
AudioOwner=rivendell
AudioGroup=rivendell
; This password is used by the various Rivendell modules to log into
; Rivendell system services [caed(8), ripcd(8), rdcatchd(8)].
Password=letmein
; This entry is what will appear in RDSelect's list for this configuration.
Label=Default (Local)
[mySQL]
; The connection parameters for the MySQL server.
Hostname=localhost
Loginname=rduser
Password=letmein
Database=Rivendell
Driver=QMYSQL3
[AudioStore]
MountSource=
MountType=
MountOptions=defaults
CaeHostname=
XportHostname=
[Logs]
; Set the method to be used for logging. Possible values are:
; Syslog = Use the syslog facility.
; File = Log directly to a file. See also the 'LogDirectory='
; and 'LogPattern=' parameters below.
; None = Don't generate logs at all.
Facility=Syslog
; The directory to write logs to. Used only if the 'Facility='
; parameter is set to 'File'.
LogDirectory=/home/rd/rdlogs
; The directory to to put core files in in the event of a daemon
; crash. For this to work, you must also configure your environment
; to allow the generation of core dumps (e.g. 'ulimit -c unlimited').
CoreDumpDirectory=/home/rd/rdlogs
; The name of the file to send logs to. The following wildcards can
; be used:
; %d - The day of the month (01 - 31)
; %h - The hour (00 - 23)
; %M - The month (01 - 12)
; %m - The minute (00 - 59)
; %n - The name of the originating module --e.g. 'rdairplay', 'caed'.
; %s - The second (00 - 60)
; %Y - The four digit year
; This parameter is used only if the 'Facility=' parameter is set to
; 'File'.
LogPattern=%n-%Y%M%d.log
; Log upload/download debug data. You generally want to enable this only
; when debugging a specific upload/download problem, as *lots* of data
; can be generated. Valid arguments are 'Yes' or 'No'.
LogXloadDebugData=No
[Alsa]
; ALSA Parameters
; (It should seldom be necessary to tweak these)
PeriodQuantity=4
PeriodSize=1024
ChannelsPerPcm=-1
; [SoftKeys]
;
; This section can be used to program the RDSoftKeys applet, or you
; can use the --map-file=<filename> switch to configure multiple soft
; key setups on the same host.
;
; Columns=10
;
; Command1=hithlum.srlabs.loc:GO 3 1 1 0!
; Legend1=Telos 1 ON
; Color1=red
;
; Command2=hithlum.srlabs.loc:GO 3 2 1 0!
; Legend2=Telos 2 ON
; Color2=red
;
[Tuning]
; This section defines the realtime parameters used when running
; audio components. Normally, these are useful only for debugging.
UseRealtime=Yes
RealtimePriority=9
[Format]
; This value is used when testing and developing new features in the
; audio drivers. It should never be altered on a production system.
Channels=2
[Hacks]
; If you are getting no output level meter indications with an older
; ASI card (such as the ASI4215, ASI4113 or ASI4111), try uncommenting
; the following line:
; UseStreamMeters=Yes
; Completely disable maintenance checks on this host.
; DisableMaintChecks=Yes
;
; Log Generation (old method, deprecated)
;
; These sections are here strictly for backward compatibility. See
; the [Logs] section for a much more powerful way to configure
; logging.
;
; [RDAirPlay]
; Logfile=/home/rd/rdairplay.log
;
; [RDCatchd]
; Logfile=/home/rd/rdcatchd.log
;
; [Ripcd]
; Logfile=/home/rd/ripcd.log
;
; [Caed]
; Logfile=/home/rd/caed.log
; EnableMixerLogging=No

45
conf/rd.conf-slax Normal file
View File

@@ -0,0 +1,45 @@
; rd.conf
;
; This is the SLAX configuration file for Rivendell
;
; by Fred Gleason <fredg@paravelsystems.com>
;
[Identity]
Password=letmein
AudioOwner=salem
AudioGroup=users
[Tuning]
UseRealtime=Yes
RealtimePriority=9
[mySQL]
Hostname=localhost
Loginname=rduser
Password=letmein
Database=Rivendell
Driver=QMYSQL3
[Hacks]
; If you are getting no output level meter indications with an older
; ASI card (such as the ASI4215, ASI4113 or ASI4111), tru uncommenting
; the following line:
; UseStreamMeters=Yes
;
; Log Generation
;
; These are mainly useful for debugging!
;
; [RDAirPlay]
; Logfile=/home/myself/rdairplay.log
;
; [RDCatchd]
; Logfile=/home/myself/rdcatchd.log
;
; [Ripcd]
; Logfile=/home/myself/ripcd.log
;
; [Caed]
; Logfile=/home/myself/caed.log

84
conf/rlm_ando.conf Normal file
View File

@@ -0,0 +1,84 @@
; rlm_ando.conf
;
; This is the sample configuration file for the 'rlm_ando' module for
; Rivendell, which can be used to output Now & Next data to one or more
; ANDO Media Streaming systems, using one of the following formats:
;
; ^<artist>~<title>~<duration>~<group>~<album>~<cartnum>|
; ^<artist>~<title>~<duration>~<group>~<cartnum>~<album>~<label>|
;
; To enable this module, add it to the 'Loadable Modules' list in
; RDAdmin->ManageHosts->RDAirPlay->ConfigureNow&Next. The 'Argument'
; field should point to the location of this file.
; Section Header
;
; One section per remote ANDO system is configured, starting with 'System1' and
; working up consecutively
[System1]
; IP Address
;
; The IP address of the remote ANDO port, in dotted-quad notation.
IpAddress=192.168.10.29
; UDP Port
;
; The UDP port number of the remote ANDO system, in the range 0 - 65,535.
UdpPort=5273
; Field Definitions. The string to use to populate the <title>, <artist>,
; <album> and <label> fields sent to ANDO each time RDAirPlay changes play
; state. These can include wildcards as placeholders for metadata values.
;
; The <label> field is optional, and should be left blank unless you know
; that your specific ANDO configuration requires it.
;
; The following wildcards are available:
;
; Now Next Field
; ----------------------------------------------
; %n %N The Rivendell cart number
; %h %H Event length (in milliseconds)
; %g %G The Rivendell group name
; %t %T Title
; %a %A Artist
; %l %L Album
; %y %Y Year
; %b %B Record Label
; %c %C Client
; %e %E Agency
; %m %M Composer
; %p %P Publisher
; %r %R Conductor
; %s %S Song ID
; %u %U User Definied
; %o %O Outcue
; %i %I Description
Title=%t
Artist=%a
Album=%l
Label=
; Log Selection
;
; Set the status for each log to 'Yes', 'No' or 'Onair' to indicate whether
; state changes on that log should be output on this udp port. If set
; to 'Onair', then output will be generated only if RDAirPlay's OnAir flag
; is active.
MasterLog=Yes
Aux1Log=Yes
Aux2Log=Yes
; Additional ANDO systems can be configured by adding new sections...
;[System2]
;IpAddress=192.168.10.22
;UdpPort=6789
;Title=%u
;Artist=%a
;Album=%p
;Label=
;MasterLog=Yes
;Aux1Log=No
;Aux2Log=Onair

76
conf/rlm_facebook.conf Normal file
View File

@@ -0,0 +1,76 @@
; rlm_facebook.conf
;
; This is the sample configuration file for the 'rlm_facebook' module for
; Rivendell, which can be used to output Now & Next data to one or more
; Facebook accounts.
;
; To enable this module, add it to the 'Loadable Modules' list in
; RDAdmin->ManageHosts->RDAirPlay->ConfigureNow&Next. The 'Argument'
; field should point to the location of this file.
;
; For information about Facebook, see http://www.facebook.com/.
;
; This module requires the curl(1) network transfer tool, included with most
; Linux distros. It is also available at http://curl.haxx.se/.
; Section Header
;
; One section per remote Facebook account is configured, starting with
; 'Facebook1' and working up consecutively
[Facebook1]
; E-Mail Address
;
; The e-mail address of the Facebook account to which to send updates.
EmailAddress=someone@example.com
; Password
;
; The password of the Facebook account to which to send updates.
Password=letmein
; Format String. The string to be output each time RDAirPlay changes
; play state, including any wildcards as placeholders for metadata values.
; The following wildcards are available:
;
; Now Next Field
; ----------------------------------------------
; %n %N The Rivendell cart number
; %h %H Event length (in milliseconds)
; %g %G The Rivendell group name
; %t %T Title
; %a %A Artist
; %l %L Album
; %y %Y Year
; %b %B Record Label
; %c %C Client
; %e %E Agency
; %m %M Composer
; %p %P Publisher
; %r %R Conductor
; %s %S Song ID
; %u %U User Definied
; %o %O Outcue
; %i %I Description
FormatString=Now playing "%t" by "%a"
; Log Selection
;
; Set the status for each log to 'Yes', 'No' or 'Onair' to indicate whether
; state changes on that log should be output to this account. If set
; to 'Onair', then output will be generated only if RDAirPlays OnAir flag
; is active.
MasterLog=Yes
Aux1Log=Yes
Aux2Log=Yes
; Additional Facebook accounts can be configured by adding new sections...
;[Facebook2]
;EmailAddress=someoneelse@example.com
;Password=letmein
;FormatString=Artist: %a%r
;MasterLog=Yes
;Aux1Log=No
;Aux2Log=Onair

111
conf/rlm_filewrite.conf Normal file
View File

@@ -0,0 +1,111 @@
; rlm_filewrite.conf
;
; This is the sample configuration file for the 'rlm_filewrite' RLM for
; Rivendell, which can be used to write one or more files on the local
; system using Now & Next data.
;
; To enable this module, add it to the 'Loadable Modules' list in
; RDAdmin->ManageHosts->RDAirPlay->ConfigureNow&Next. The 'Argument'
; field should point to the location of this file.
; Section Header
;
; One section per file to be written should be configured, starting with
; 'File1' and working up consecutively
[File1]
; Filename
;
; The full path to the file to be written. The user running RDAirPlay
; must have write permissions for this location.
Filename=/tmp/rlm_filewrite.txt
; Append Mode
;
; If set to '0', the file will be completely overwritten with the contents
; of each PAD update. If set to '1', each update will be appended to the
; existing contents of the file.
Append=0
; Format String. The string to be output each time RDAirPlay changes
; play state, including any wildcards as placeholders for metadata values.
; The following wildcards are available:
;
; Now Next Field
; --------------------------------------------------------------------------
; %n %N The Rivendell cart number
; %h %H Event length (in milliseconds)
; %g %G The Rivendell group name
; %t %T Title
; %a %A Artist
; %l %L Album
; %y %Y Year
; %b %B Record Label
; %c %C Client
; %e %E Agency
; %m %M Composer
; %p %P Publisher
; %r %R Conductor
; %s %S Song ID
; %u %U User Definied
; %o %O Outcue
; %i %I Description
; \r \r Carriage Return (ASCII 13)
; \n \n Linefeed (ASCII 10)
; %d(<dt>) %D(<dt>) The start date/time, formatted according to <dt>. The
; following wildcards are available for <dt>:
; d - The day as a number without a leading zero (1 to 31).
; dd - The day as a number with a leading zero (01 to 31).
; ddd - The abbreviated localized day name ('Mon' or 'Sun').
; dddd - The long localized day name ('Monday' or 'Sunday').
; M - The month as a number without a leading zero
; (1 to 12).
; MM - The month as a number with a leading zero (01 to 12).
; MMM - The abbreviated localized month name ('Jan' or 'Dec').
; MMMM - The long localized month name ("January' or
; 'December').
; yy - The last two digits of the year.
; yyyy - The full four digits of the year.
; h - The hour without a leading zero (0 - 23, or 1 - 12
; if using AM/PM display).
; hh - The hour with a leading zero (00 - 23, or 01 -12 if
; using AM/PM display).
; m - The minute without a leading zero (0 - 59).
; mm - The minute with a leading zero (00 - 59).
; s - The second without a leading zero (00 - 60).
; ss - The second with a leading zero (00 - 60).
; z - The milliseconds without a leading zero (0 - 999).
; zzz - The milliseconds with leading zeros (000 - 999).
; AP - Use AM/PM display. The 'AP' will be replaced by
; 'AM' or 'PM' as appropriate.
; ap - Use AM/PM display. The 'ap' will be replaced by
; 'am' or 'pm' as appropriate.
FormatString=NOW: %d(ddd MMM d hh:mm:ss yyyy): %t - %a\nNEXT: %D(ddd MMM d hh:mm:ss yyyy): %T - %A\n
; Encoding. Defines the set of escapes to be applied to the PAD fields.
; The following options are available:
;
; 0 - Perform no character escaping.
; 1 - "XML" escaping: Escape reserved characters as per XML-v1.0
; 2 - "Web" escaping: Escape reserved characters as per RFC 2396 Section 2.4
Encoding=0
; Log Selection
;
; Set the status for each log to 'Yes', 'No' or 'Onair' to indicate whether
; state changes on that log should be output. If set to 'Onair', then
; output will be generated only if RDAirPlays OnAir flag is active.
MasterLog=Yes
Aux1Log=Yes
Aux2Log=Yes
; Additional files can be written by adding new sections...
;
;[File2]
;Filename=/home/rd/foo2.txt
;Append=1
;FormatString=%t by %a\r\n
;MasterLog=Yes
;Aux1Log=No
;Aux2Log=Onair

92
conf/rlm_icecast2.conf Normal file
View File

@@ -0,0 +1,92 @@
; rlm_icecast2.conf
;
; This is the sample configuration file for the 'rlm_icecast2' module for
; Rivendell, which can be used to update the metadata on an IceCast2
; mountpoint using Now & Next data.
;
; To enable this module, add it to the 'Loadable Modules' list in
; RDAdmin->ManageHosts->RDAirPlay->ConfigureNow&Next. The 'Argument'
; field should point to the location of this file.
;
; This module requires the curl(1) network transfer tool, included with most
; Linux distros. It is also available at http://curl.haxx.se/.
; Section Header
;
; One section per Icecast2 mountpoint is configured, starting with
; 'Icecast1' and working up consecutively
[Icecast1]
; User Name
;
; The username of the Icecast2 account to which to send updates.
Username=source
; Password
;
; The password of the Icecast2 account to which to send updates.
Password=hackme
; Host Name
;
; The fully-qualified domain name or IP address of the Icecast2 server
Hostname=icecast.example.com
; Host Port
;
; The TCP port number of the Icecast2 server
Tcpport=8000
; Mountpoint
;
; The Icecast2 mountpoint
Mountpoint=/audio.mp3
; Format String. The metadata to be sent each time RDAirPlay changes
; play state, including any wildcards as placeholders for metadata values.
; The following wildcards are available:
;
; Now Next Field
; ----------------------------------------------
; %n %N The Rivendell cart number
; %h %H Event length (in milliseconds)
; %g %G The Rivendell group name
; %t %T Title
; %a %A Artist
; %l %L Album
; %y %Y Year
; %b %B Record Label
; %c %C Client
; %e %E Agency
; %m %M Composer
; %p %P Publisher
; %r %R Conductor
; %s %S Song ID
; %u %U User Definied
; %o %O Outcue
; %i %I Description
FormatString=%t
; Log Selection
;
; Set the status for each log to 'Yes', 'No' or 'Onair' to indicate whether
; state changes on that log should be output to this account. If set
; to 'Onair', then output will be generated only if RDAirPlays OnAir flag
; is active.
MasterLog=Yes
Aux1Log=Yes
Aux2Log=Yes
; Additional Icecast2 mountpoints can be configured by adding new sections...
;[Icecast2]
;Username=source
;Password=letmein
;Hostname=anotherone.example.com
;Tcpport=80
;Mountpoint=moreaudio.mp3
;FormatString=%t by %a
;MasterLog=Yes
;Aux1Log=No
;Aux2Log=Onair

110
conf/rlm_inno713.conf Normal file
View File

@@ -0,0 +1,110 @@
; rlm_inno713.conf
;
; This is the sample configuration file for the 'rlm_inno713' module for
; Rivendell, which can be used to output Now & Next data to one or more
; Innovonics model 713 RDS encoders.
;
; To enable this module, add it to the 'Loadable Modules' list in
; RDAdmin->ManageHosts->RDAirPlay->ConfigureNow&Next. The 'Argument'
; field should point to the location of this file.
; Section Header
;
; One section per remote RDS unit is configured, starting with 'Rds1' and
; working up consecutively
[Rds1]
; Two methods of connecting to the unit are supported: TCP/IP or serial.
;
; *****************************************************************************
; TCP/IP Connection Settings
; IP Address
;
; The IP address of the UDP port to send updates to, in dotted-quad notation.
; If using a serial connection, leave this entry blank!
IpAddress=127.0.0.1
; UDP Port
;
; The UDP port number to send updates to, in the range 0 - 65,535.
UdpPort=10001
; *****************************************************************************
; *****************************************************************************
; Serial Connection Settings
;
; The device file that corresponds to the serial device that is connected
; to the unit. If using a TCP/IP connection, leave this entry blank!
;Device=/dev/ttyS0
; Serial Baud Rate (in bps)
Speed=9600
; Parity (0=none, 1=even, 2=odd)
Parity=0
; Number of bits per data 'word'.
WordSize=8
; *****************************************************************************
; Output Strings. The PAD data to output each time RDAirPlay changes
; play state, including any wildcards as placeholders for metadata values.
; Three different RDS values can be set:
;
; PS -- the standard "static" RDS PS field.
; Dynamic PS -- a special scrolling PS mode that allows strings longer than
; eight characters to be displayed on RDS compliant radios.
; See the model 713 manual for a discussion of the tradeoffs
; between the two PS display modes.
; Radiotext -- Standard RDS radiotext.
;
; The following wildcards are available:
;
; Now Next Field
; ----------------------------------------------
; %n %N The Rivendell cart number
; %h %H Event length (in milliseconds)
; %g %G The Rivendell group name
; %t %T Title
; %a %A Artist
; %l %L Album
; %y %Y Year
; %b %B Record Label
; %c %C Client
; %e %E Agency
; %m %M Composer
; %p %P Publisher
; %r %R Conductor
; %s %S Song ID
; %u %U User Definied
; %o %O Outcue
; %i %I Description
PsString=
DynamicPsString=%t
RadiotextString=%a
; Log Selection
;
; Set the status for each log to 'Yes', 'No' or 'Onair' to indicate whether
; state changes on that log should be output on this udp port. If set
; to 'Onair', then output will be generated only if RDAirPlays OnAir flag
; is active.
MasterLog=Yes
Aux1Log=Yes
Aux2Log=Yes
; Additional RDS encoders can be configured by adding new sections...
;[Rds2]
;IpAddress=192.168.10.22
;UdpPort=6789
;Device=/dev/ttyS0
;Speed=9600
;Parity=0
;WordSize=8
;PsString=
;DynamicPsString=%t
;RadiotextString=%a
;MasterLog=Yes
;Aux1Log=No
;Aux2Log=Onair

78
conf/rlm_liqcomp.conf Normal file
View File

@@ -0,0 +1,78 @@
; rlm_liqcomp.conf
;
; This is the sample configuration file for the 'rlm_liqcomp' module for
; Rivendell, which can be used to output Now & Next data to one or more
; Liquid Compass Internet streaming encoders, using the following format:
;
; |<title>|<artist>|<cart-num>|<length>|<group>|<album>|<label>|<lf>
;
; To enable this module, add it to the 'Loadable Modules' list in
; RDAdmin->ManageHosts->RDAirPlay->ConfigureNow&Next. The 'Argument'
; field should point to the location of this file.
; Section Header
;
; One section per remote encoder is configured, starting with 'System1' and
; working up consecutively
[System1]
; IP Address
;
; The IP address of the remote encoder, in dotted-quad notation.
IpAddress=192.168.10.22
; UDP Port
;
; The UDP port number of the remote encoder, in the range 0 - 65,535.
UdpPort=5273
; Field Definitions. The string to use to populate the <title>, <artist>,
; <album> and <label> fields sent to the encoder each time RDAirPlay changes
; play state. These can include wildcards as placeholders for metadata values.
; The following wildcards are available:
;
; Now Next Field
; ----------------------------------------------
; %n %N The Rivendell cart number
; %h %H Event length (in milliseconds)
; %g %G The Rivendell group name
; %t %T Title
; %a %A Artist
; %l %L Album
; %y %Y Year
; %b %B Record Label
; %c %C Client
; %e %E Agency
; %m %M Composer
; %p %P Publisher
; %r %R Conductor
; %s %S Song ID
; %u %U User Definied
; %o %O Outcue
; %i %I Description
Title=%t
Artist=%a
Album=%l
Label=%b
; Log Selection
;
; Set the status for each log to 'Yes', 'No' or 'Onair' to indicate whether
; state changes on that log should be output on this udp port. If set
; to 'Onair', then output will be generated only if the RDAirPlay OnAir flag
; is active.
MasterLog=Yes
Aux1Log=Yes
Aux2Log=Yes
; Additional encoders can be configured by adding new sections...
;[System2]
;IpAddress=192.168.10.22
;UdpPort=6789
;Title=%u
;Artist=%a
;Album=%p
;MasterLog=Yes
;Aux1Log=No
;Aux2Log=Onair

45
conf/rlm_padpoint.conf Normal file
View File

@@ -0,0 +1,45 @@
; rlm_padpoint.conf
;
; This is the sample configuration file for the 'rlm_padpoint' module for
; Rivendell, which can be used to output Now & Next data to one or more
; PadPoint PAD processors.
;
; To enable this module, add it to the 'Loadable Modules' list in
; RDAdmin->ManageHosts->RDAirPlay->ConfigureNow&Next. The 'Argument'
; field should point to the location of this file.
; Section Header
;
; One section per remote UDP port is configured, starting with 'PadPoint1' and
; working up consecutively
[PadPoint1]
; IP Address
;
; The IP address of the remote PadPoint UDP port, in dotted-quad notation.
IpAddress=192.168.10.30
; UDP Port
;
; The UDP port number of the remote PadPoint UDP port, in the range 0 - 65,535.
UdpPort=1234
; Log Selection
;
; Set the status for each log to 'Yes', 'No' or 'Onair' to indicate whether
; state changes on that log should be output on this udp port. If set
; to 'Onair', then output will be generated only if RDAirPlays OnAir flag
; is active.
MasterLog=Yes
Aux1Log=Yes
Aux2Log=Yes
; Additional UDP destinations can be configured by adding new sections...
;[Udp2]
;FormatString=Artist: %a%r
;IpAddress=192.168.10.22
;UdpPort=6789
;MasterLog=Yes
;Aux1Log=No
;Aux2Log=Onair

129
conf/rlm_serial.conf Normal file
View File

@@ -0,0 +1,129 @@
; rlm_serial.conf
;
; This is the sample configuration file for the 'rlm_serial' module for
; Rivendell, which can be used to output Now & Next data via one or more
; serial ports.
;
; To enable this module, add it to the 'Loadable Modules' list in
; RDAdmin->ManageHosts->RDAirPlay->ConfigureNow&Next. The 'Argument'
; field should point to the location of this file.
;
; NOTE: The serial ports configured here have NOTHING TO DO with the
; ports configured in RDAdmin! These ports are used strictly by the
; 'rlm_serial' plugin, and will not be usable by any other Rivendell
; component.
; Section Header
;
; One per serial device to be configured, starting with 'Serial1' and
; working up consecutively
[Serial1]
; Serial Device
;
; The device file that corresponds to the serial device.
Device=/dev/ttyS0
; Serial Baud Rate (in bps)
Speed=9600
; Parity (0=none, 1=even, 2=odd)
Parity=0
; Number of bits per data 'word'.
WordSize=8
; Format String. The string to be output each time RDAirPlay changes
; play state, including any wildcards as placeholders for metadata values.
; The following wildcards are available:
;
; Now Next Field
; --------------------------------------------------------------------------
; %n %N The Rivendell cart number
; %h %H Event length (in milliseconds)
; %g %G The Rivendell group name
; %t %T Title
; %a %A Artist
; %l %L Album
; %y %Y Year
; %b %B Record Label
; %c %C Client
; %e %E Agency
; %m %M Composer
; %p %P Publisher
; %r %R Conductor
; %s %S Song ID
; %u %U User Definied
; %o %O Outcue
; %i %I Description
; \r \r Carriage Return (ASCII 13)
; \n \n Linefeed (ASCII 10)
; %d(<dt>) %D(<dt>) The start date/time, formatted according to <dt>. The
; following wildcards are available for <dt>:
; d - The day as a number without a leading zero (1 to 31).
; dd - The day as a number with a leading zero (01 to 31).
; ddd - The abbreviated localized day name ('Mon' or 'Sun').
; dddd - The long localized day name ('Monday' or 'Sunday').
; M - The month as a number without a leading zero
; (1 to 12).
; MM - The month as a number with a leading zero (01 to 12).
; MMM - The abbreviated localized month name ('Jan' or 'Dec').
; MMMM - The long localized month name ("January' or
; 'December').
; yy - The last two digits of the year.
; yyyy - The full four digits of the year.
; h - The hour without a leading zero (0 - 23, or 1 - 12
; if using AM/PM display).
; hh - The hour with a leading zero (00 - 23, or 01 -12 if
; using AM/PM display).
; m - The minute without a leading zero (0 - 59).
; mm - The minute with a leading zero (00 - 59).
; s - The second without a leading zero (00 - 60).
; ss - The second with a leading zero (00 - 60).
; z - The milliseconds without a leading zero (0 - 999).
; zzz - The milliseconds with leading zeros (000 - 999).
; AP - Use AM/PM display. The 'AP' will be replaced by
; 'AM' or 'PM' as appropriate.
; ap - Use AM/PM display. The 'ap' will be replaced by
; 'am' or 'pm' as appropriate.
FormatString=NOW: %d(ddd MMM d hh:mm:ss yyyy): %t - %a\nNEXT: %D(ddd MMM d hh:mm:ss yyyy): %T - %A\n
; Encoding. Defines the set of escapes to be applied to the PAD fields.
; The following options are available:
;
; 0 - Perform no character escaping.
; 1 - "XML" escaping: Escape reserved characters as per XML-v1.0
; 2 - "Web" escaping: Escape reserved characters as per RFC 2396 Section 2.4
Encoding=0
; Null Update Handling. Defines how 'null' updates --i.e. those with a cart
; number of '0' -- should be handled.
;
; 0 - Process all updates regardless of cart values.
; 1 - Process update only if the 'now' cart is not null.
; 2 - Process update only if the 'next' cart is not null.
; 3 - Process update only if both the 'now' and 'next' carts are not null.
ProcessNullUpdates=0
; Log Selection
;
; Set the status for each log to 'Yes', 'No' or 'Onair' to indicate whether
; state changes on that log should be output on this serial port. If set
; to 'Onair', then output will be generated only if RDAirPlay's OnAir flag
; is active.
MasterLog=Yes
Aux1Log=Yes
Aux2Log=Yes
; Additional serial ports can be configured by adding new sections...
;[Serial2]
;Device=/dev/ttyS1
;Speed=9600
;Parity=0
;WordSize=8
;FormatString=%t
;ProcessNullUpdates=0
;MasterLog=Yes
;Aux1Log=No
;Aux2Log=Onair

82
conf/rlm_shoutcast1.conf Normal file
View File

@@ -0,0 +1,82 @@
; rlm_shoutcast1.conf
;
; This is the sample configuration file for the 'rlm_shoutcast1' module for
; Rivendell, which can be used to update the metadata on an Shoutcast 1.x
; server using Now & Next data.
;
; To enable this module, add it to the 'Loadable Modules' list in
; RDAdmin->ManageHosts->RDAirPlay->ConfigureNow&Next. The 'Argument'
; field should point to the location of this file.
;
; This module requires the curl(1) network transfer tool, included with most
; Linux distros. It is also available at http://curl.haxx.se/.
; Section Header
;
; One section per Shoutcast server instance is configured, starting with
; 'Shoutcast1' and working up consecutively
[Shoutcast1]
; Password
;
; The password of the Shoutcast server instance to which to send updates.
Password=changeme
; Host Name
;
; The fully-qualified domain name or IP address of the Shoutcast server
Hostname=shoutcast.example.com
; Host Port
;
; The TCP port number of the Shoutcast server
Tcpport=8000
; Format String. The metadata to be sent each time RDAirPlay changes
; play state, including any wildcards as placeholders for metadata values.
; The following wildcards are available:
;
; Now Next Field
; ----------------------------------------------
; %n %N The Rivendell cart number
; %h %H Event length (in milliseconds)
; %g %G The Rivendell group name
; %t %T Title
; %a %A Artist
; %l %L Album
; %y %Y Year
; %b %B Record Label
; %c %C Client
; %e %E Agency
; %m %M Composer
; %p %P Publisher
; %r %R Conductor
; %s %S Song ID
; %u %U User Definied
; %o %O Outcue
; %i %I Description
FormatString=%t
; Log Selection
;
; Set the status for each log to 'Yes', 'No' or 'Onair' to indicate whether
; state changes on that log should be output to this account. If set
; to 'Onair', then output will be generated only if RDAirPlays OnAir flag
; is active.
MasterLog=Yes
Aux1Log=Yes
Aux2Log=Yes
; Additional Shoutcast server instances can be configured by adding new
; sections...
;
;[Shoutcast2]
;Password=letmein
;Hostname=anotherone.example.com
;Tcpport=80
;FormatString=%t by %a
;MasterLog=Yes
;Aux1Log=No
;Aux2Log=Onair

View File

@@ -0,0 +1,129 @@
; rlm_spinitron_plus.conf
;
; This is the sample configuration file for the 'rlm_spinitron_plus' module
; for Rivendell, which can be used log Now & Next data to the Spinitron
; online playlist service [http://www.spinitron.com].
;
; To enable this module, add it to the 'Loadable Modules' list in
; RDAdmin->ManageHosts->RDAirPlay->ConfigureNow&Next. The 'Argument'
; field should point to the location of this file.
;
; This module requires the curl(1) network transfer tool, included with most
; Linux distros. It is also available at http://curl.haxx.se/.
; Section Header
;
; One section per Spinitron account is configured, starting with
; 'Spinitron1' and working up consecutively
[Spinitron1]
; Station;
;
; The station to be used for the Spinitron account to which to log the
; play-out.
Station=wxyz
; Username
;
; Username for the Spinitron account to which to log the play-out.
Username=user@example.com
; Password
;
; The password of the Spinitron account to which to log the play-out.
Password=changeme
; PlaylistMode
;
; Set the Spinitron playlist mode to use when sending updates.
;
; (For a discussion of the implications of this setting on your
; Spinitron playlists, see Section 3.2 of the 'Spinitron Automation
; Integration' document, available from Spinitron).
;
; The following options are recognized:
;
; Full - Always use the Spinitron 'Full Automation' mode.
; Assist - Always use the Spinitron 'Live Assist' mode.
; Follow - Use the Spinitron 'Full Automation' mode when RDAirPlay
; is in Automatic, otherwise use the Spinitron 'Live Assist' mode.
PlaylistMode=Follow
; Title. The string to be sent as the 'Title' field for each update,
; including any wildcards as placeholders for metadata values.
; The following wildcards are available:
;
; Now Next Field
; ----------------------------------------------
; %n %N The Rivendell cart number
; %h %H Event length (in milliseconds)
; %g %G The Rivendell group name
; %t %T Title
; %a %A Artist
; %l %L Album
; %y %Y Year
; %b %B Record Label
; %c %C Client
; %e %E Agency
; %m %M Composer
; %p %P Publisher
; %r %R Conductor
; %s %S Song ID
; %u %U User Definied
; %o %O Outcue
; %i %I Description
Title=%t
; Artist. The string to be sent as the 'Artist' field for each update,
; including any wildcards as placeholders for metadata values.
; (See the 'Title' section above for a list of available wildcards).
Artist=%a
; Album. The string to be sent as the 'Album' field for each update,
; including any wildcards as placeholders for metadata values.
; (See the 'Title' section above for a list of available wildcards).
Album=%l
; Label. The string to be sent as the 'Label' field for each update,
; including any wildcards as placeholders for metadata values.
; (See the 'Title' section above for a list of available wildcards).
Label=%b
; Composer. The string to be sent as the 'Composer' field for each update,
; including any wildcards as placeholders for metadata values.
; (See the 'Title' section above for a list of available wildcards).
Composer=%m
; Notes. The string to be sent as the 'Notes' field for each update,
; including any wildcards as placeholders for metadata values.
; (See the 'Title' section above for a list of available wildcards).
Notes=%u
; Log Selection
;
; Set the status for each log to 'Yes', 'No' or 'Onair' to indicate whether
; state changes on that log should be output to this account. If set
; to 'Onair', then output will be generated only if RDAirPlays OnAir flag
; is active.
MasterLog=Yes
Aux1Log=Yes
Aux2Log=Yes
; Additional Spinitron instances can be configured by adding new
; sections...
;
;[Spinitron2]
;Station=abcd
;Username=metoo
;Password=letmein
;Title=%t
;Artist=%a
;Album=%l
;Label=%b
;Composer=%m
;Notes=%u
;MasterLog=Yes
;Aux1Log=No
;Aux2Log=Onair

106
conf/rlm_spottrap.conf Normal file
View File

@@ -0,0 +1,106 @@
; rlm_spottrap.conf
;
; This is the sample configuration file for the 'rlm_spottrap' module for
; Rivendell, which can be used to output Now & Next data to one or more
; remote UDP ports on the basis of Group and Length.
;
; To enable this module, add it to the 'Loadable Modules' list in
; RDAdmin->ManageHosts->RDAirPlay->ConfigureNow&Next. The 'Argument'
; field should point to the location of this file.
;
; Module configuration consists of a list of rules, each of which consists
; in turn with a set of filter parameters and actions. Each PAD update is
; compared against the filter parameters of each rule. If the filter matches,
; then the rule actions are performed.
;
; Rule Header
;
; One section per rule is configured, starting with 'Rule1' and
; working up consecutively
[Rule1]
; FILTER PARAMETERS
;
; Group Name
;
; The name of the Rivendell group to match.
GroupName=BEDS
; Minimum Length
;
; The minimum length, in milliseconds. A PAD update with a Length of less
; than this value will not be matched.
MinimumLength=0
; Maximum Length
; The maximum length, in milliseconds. A PAD update with a Length of more
; than this value will not be matched.
MaximumLength=10000000
; ACTION PARAMETERS
;
; IP Address
;
; The IP address of the remote UDP port, in dotted-quad notation.
IpAddress=192.168.10.30
; UDP Port
;
; The UDP port number of the remote UDP port, in the range 0 - 65,535.
UdpPort=5859
; Format String. The string to be output each time RDAirPlay changes
; play state, including any wildcards as placeholders for metadata values.
; The following wildcards are available:
;
; Now Next Field
; ----------------------------------------------
; %n %N The Rivendell cart number
; %h %H Event length (in milliseconds)
; %g %G The Rivendell group name
; %t %T Title
; %a %A Artist
; %l %L Album
; %y %Y Year
; %b %B Record Label
; %c %C Client
; %e %E Agency
; %m %M Composer
; %p %P Publisher
; %r %R Conductor
; %s %S Song ID
; %u %U User Definied
; %o %O Outcue
; %i %I Description
FormatString=DX 1 %h!
; Default Format String. Similar to the 'FormatString=' parameter described
; above, but this string is output when the rule *doesn't* match. All of
; the wildcards described in the 'FormatString=' section apply here as well.
DefaultFormatString=DX 1 0!
; Log Selection
;
; Set the status for each log to 'Yes', 'No' or 'Onair' to indicate whether
; state changes on that log should be output on this udp port. If set
; to 'Onair', then output will be generated only if RDAirPlay's OnAir flag
; is active.
MasterLog=Yes
Aux1Log=Yes
Aux2Log=Yes
; Additional Rules can be configured by adding new sections...
;[Rule2]
;GroupName=TEST
;MinimumLength=0
;MaximumLength=1000000
;FormatString=Artist: %a%r
;DefaultFormatString=Artist: %a%r
;IpAddress=192.168.10.30
;UdpPort=6789
;MasterLog=Yes
;Aux1Log=No
;Aux2Log=Onair

76
conf/rlm_twitter.conf Normal file
View File

@@ -0,0 +1,76 @@
; rlm_twitter.conf
;
; This is the sample configuration file for the 'rlm_twitter' module for
; Rivendell, which can be used to output Now & Next data to one or more
; Twitter accounts.
;
; To enable this module, add it to the 'Loadable Modules' list in
; RDAdmin->ManageHosts->RDAirPlay->ConfigureNow&Next. The 'Argument'
; field should point to the location of this file.
;
; For information about the Twitter service, see http://www.twitter.com/.
;
; This module requires the curl(1) network transfer tool, included with most
; Linux distros. It is also available at http://curl.haxx.se/.
; Section Header
;
; One section per remote Twitter account is configured, starting with
; 'Twitter1' and working up consecutively
[Twitter1]
; E-Mail Address
;
; The e-mail address of the Twitter account to which to send updates.
EmailAddress=someone@example.com
; Password
;
; The password of the Twitter account to which to send updates.
Password=letmein
; Format String. The string to be output each time RDAirPlay changes
; play state, including any wildcards as placeholders for metadata values.
; The following wildcards are available:
;
; Now Next Field
; ----------------------------------------------
; %n %N The Rivendell cart number
; %h %H Event length (in milliseconds)
; %g %G The Rivendell group name
; %t %T Title
; %a %A Artist
; %l %L Album
; %y %Y Year
; %b %B Record Label
; %c %C Client
; %e %E Agency
; %m %M Composer
; %p %P Publisher
; %r %R Conductor
; %s %S Song ID
; %u %U User Definied
; %o %O Outcue
; %i %I Description
FormatString=Now playing "%t" by "%a"
; Log Selection
;
; Set the status for each log to 'Yes', 'No' or 'Onair' to indicate whether
; state changes on that log should be output to this account. If set
; to 'Onair', then output will be generated only if RDAirPlays OnAir flag
; is active.
MasterLog=Yes
Aux1Log=Yes
Aux2Log=Yes
; Additional Twitter accounts can be configured by adding new sections...
;[Twitter2]
;EmailAddress=someoneelse@example.com
;Password=letmein
;FormatString=Artist: %a%r
;MasterLog=Yes
;Aux1Log=No
;Aux2Log=Onair

118
conf/rlm_udp.conf Normal file
View File

@@ -0,0 +1,118 @@
; rlm_udp.conf
;
; This is the sample configuration file for the 'rlm_udp' module for
; Rivendell, which can be used to output Now & Next data to one or more
; remote UDP ports.
;
; To enable this module, add it to the 'Loadable Modules' list in
; RDAdmin->ManageHosts->RDAirPlay->ConfigureNow&Next. The 'Argument'
; field should point to the location of this file.
; Section Header
;
; One section per remote UDP port is configured, starting with 'Udp1' and
; working up consecutively
[Udp1]
; IP Address
;
; The IP address of the remote UDP port, in dotted-quad notation.
IpAddress=127.0.0.1
; UDP Port
;
; The UDP port number of the remote UDP port, in the range 0 - 65,535.
UdpPort=1234
; Format String. The string to be output each time RDAirPlay changes
; play state, including any wildcards as placeholders for metadata values.
; The following wildcards are available:
;
; Now Next Field
; --------------------------------------------------------------------------
; %n %N The Rivendell cart number
; %h %H Event length (in milliseconds)
; %g %G The Rivendell group name
; %t %T Title
; %a %A Artist
; %l %L Album
; %y %Y Year
; %b %B Record Label
; %c %C Client
; %e %E Agency
; %m %M Composer
; %p %P Publisher
; %r %R Conductor
; %s %S Song ID
; %u %U User Definied
; %o %O Outcue
; %i %I Description
; \r \r Carriage Return (ASCII 13)
; \n \n Linefeed (ASCII 10)
; %d(<dt>) %D(<dt>) The start date/time, formatted according to <dt>. The
; following wildcards are available for <dt>:
; d - The day as a number without a leading zero (1 to 31).
; dd - The day as a number with a leading zero (01 to 31).
; ddd - The abbreviated localized day name ('Mon' or 'Sun').
; dddd - The long localized day name ('Monday' or 'Sunday').
; M - The month as a number without a leading zero
; (1 to 12).
; MM - The month as a number with a leading zero (01 to 12).
; MMM - The abbreviated localized month name ('Jan' or 'Dec').
; MMMM - The long localized month name ("January' or
; 'December').
; yy - The last two digits of the year.
; yyyy - The full four digits of the year.
; h - The hour without a leading zero (0 - 23, or 1 - 12
; if using AM/PM display).
; hh - The hour with a leading zero (00 - 23, or 01 -12 if
; using AM/PM display).
; m - The minute without a leading zero (0 - 59).
; mm - The minute with a leading zero (00 - 59).
; s - The second without a leading zero (00 - 60).
; ss - The second with a leading zero (00 - 60).
; z - The milliseconds without a leading zero (0 - 999).
; zzz - The milliseconds with leading zeros (000 - 999).
; AP - Use AM/PM display. The 'AP' will be replaced by
; 'AM' or 'PM' as appropriate.
; ap - Use AM/PM display. The 'ap' will be replaced by
; 'am' or 'pm' as appropriate.
FormatString=NOW: %d(ddd MMM d hh:mm:ss yyyy): %t - %a\nNEXT: %D(ddd MMM d hh:mm:ss yyyy): %T - %A\n
; Encoding. Defines the set of escapes to be applied to the PAD fields.
; The following options are available:
;
; 0 - Perform no character escaping.
; 1 - "XML" escaping: Escape reserved characters as per XML-v1.0
; 2 - "Web" escaping: Escape reserved characters as per RFC 2396 Section 2.4
Encoding=0
; Null Update Handling. Defines how 'null' updates --i.e. those with a cart
; number of '0' -- should be handled.
;
; 0 - Process all updates regardless of cart values.
; 1 - Process update only if the 'now' cart is not null.
; 2 - Process update only if the 'next' cart is not null.
; 3 - Process update only if both the 'now' and 'next' carts are not null.
ProcessNullUpdates=0
; Log Selection
;
; Set the status for each log to 'Yes', 'No' or 'Onair' to indicate whether
; state changes on that log should be output on this udp port. If set
; to 'Onair', then output will be generated only if RDAirPlays OnAir flag
; is active.
MasterLog=Yes
Aux1Log=Yes
Aux2Log=Yes
; Additional UDP destinations can be configured by adding new sections...
;[Udp2]
;FormatString=Artist: %a%r
;IpAddress=192.168.10.22
;UdpPort=6789
;ProcessNullUpdates=0
;MasterLog=Yes
;Aux1Log=No
;Aux2Log=Onair

58
conf/rlm_xds.conf Normal file
View File

@@ -0,0 +1,58 @@
; rlm_xds.conf
;
; This is the sample configuration file for the 'rlm_xds' module for
; Rivendell, which can be used to output ISCI data for a Citidel X-Digital
; Vantive system via UDP.
;
;
; To enable this module, add it to the 'Loadable Modules' list in
; RDAdmin->ManageHosts->RDAirPlay->ConfigureNow&Next. The 'Argument'
; field should point to the location of this file.
; Section Header
;
; One section per Vantive UDP port is configured, starting with 'Udp1' and
; working up consecutively
[Udp1]
; IP Address
;
; The IP address of the remote UDP port, in dotted-quad notation.
IpAddress=192.168.20.15
; UDP Port
;
; The UDP port number of the remote UDP port, in the range 0 - 65,535.
UdpPort=1234
; TTY Device
;
; Use the specified TTY device instead of UDP to send CICs.
TtyDevice=/dev/ttyS0
TtySpeed=19200
; ISCI Prefix
;
; The string to prepend to transmitted ISCI code strings.
;
IsciPrefix=TEST_
; Log Selection
;
; Set the status for each log to 'Yes', 'No' or 'Onair' to indicate whether
; state changes on that log should be output on this port. If set
; to 'Onair', then output will be generated only if RDAirPlays OnAir flag
; is active.
MasterLog=Yes
Aux1Log=Yes
Aux2Log=Yes
; Additional Vantive destinations can be configured by adding new sections...
;[Udp2]
;IpAddress=192.168.10.22
;UdpPort=6789
;TtyDevice=/dev/ttyS1
;MasterLog=Yes
;Aux1Log=No
;Aux2Log=Onair

98
conf/rlm_xmpad.conf Normal file
View File

@@ -0,0 +1,98 @@
; rlm_xmpad.conf
;
; This is the sample configuration file for the 'rlm_xmpad' module for
; Rivendell, which can be used to output Now & Next data for an XM
; Satellite Radio channel.
;
; To enable this module, add it to the 'Loadable Modules' list in
; RDAdmin->ManageHosts->RDAirPlay->ConfigureNow&Next. The 'Argument'
; field should point to the location of this file.
;
; NOTE: The serial ports configured here have NOTHING TO DO with the
; ports configured in RDAdmin! These ports are used strictly by the
; 'rlm_serial' plugin, and will not be usable by any other Rivendell
; component.
; Section Header
;
; One per serial device to be configured, starting with 'Serial1' and
; working up consecutively
[Serial1]
; Serial Device
;
; The device file that corresponds to the serial device.
Device=/dev/ttyS0
; Serial Baud Rate (in bps)
Speed=4800
; Parity (0=none, 1=even, 2=odd)
Parity=0
; Number of bits per data 'word'.
WordSize=8
; Program ID
; A unique integer value, assigned by XM
ProgramID=1000000005
; Format Strings. There is one for each line of PAD data (total=2).
; The string is output each time RDAirPlay changes
; play state, including any wildcards as placeholders for metadata values.
; The following wildcards are available:
;
; Now Next Field
; ----------------------------------------------
; %n %N The Rivendell cart number
; %h %H Event length
; %g %G The Rivendell group name
; %t %T Title
; %a %A Artist
; %l %L Album
; %y %Y Year
; %b %B Record Label
; %c %C Client
; %e %E Agency
; %m %M Composer
; %p %P Publisher
; %r %R Conductor
; %s %S Song ID
; %u %U User Definied
; %o %O Outcue
; %i %I Description
FormatString1=%c
FormatString2=%e
; Display Size. The maximum length of text to be sent for each line.
DisplaySize1=8
DisplaySize2=10
; Record Flag. Set to 'Yes' to allow recording, or 'No' to disable.
Recording=Yes
; Heartbeat Interval. Should normally be set to '30'.
HeartbeatInterval=30
; Log Selection
;
; Set the status for each log to 'Yes', 'No' or 'Onair' to indicate whether
; state changes on that log should be output on this serial port. If set
; to 'Onair', then output will be generated only if RDAirPlay's OnAir flag
; is active.
MasterLog=Yes
Aux1Log=Yes
Aux2Log=Yes
; Additional serial ports can be configured by adding new sections...
;[Serial2]
;Device=/dev/ttyS1
;Speed=4800
;Parity=0
;WordSize=8
;FormatString1=%t
;FormatString2=%a
;MasterLog=Yes
;Aux1Log=No
;Aux2Log=Onair

543
configure.in Normal file
View File

@@ -0,0 +1,543 @@
4dnl configure.in
dnl
dnl Autoconf configuration for Rivendell.
dnl Use autoconf to process this into a configure script
dnl
dnl (C) Copyright 2002-2007 Fred Gleason <fredg@paravelsystems.com>
dnl
dnl $Id: configure.in,v 1.247.6.14.2.1 2014/07/15 18:49:45 cvs Exp $
dnl $Date: 2014/07/15 18:49:45 $
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License version 2 as
dnl published by the Free Software Foundation.
dnl
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public
dnl License along with this program; if not, write to the Free Software
dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
dnl
AC_INIT(rivendell,`cat PACKAGE_VERSION`,Fred Gleason <fredg@paravelsystems.com>)
AM_INIT_AUTOMAKE(rivendell,`cat PACKAGE_VERSION`)
AC_SUBST(RPM_RELEASE,1)
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
#
# Some Fully Resolved Install Paths
# (for the packaging system and friends)
#
if test ${prefix} = "NONE" ; then
PREFIX=/usr/local
AC_SUBST(LOCAL_PREFIX,/usr/local)
else
PREFIX=${prefix}
AC_SUBST(LOCAL_PREFIX,${prefix})
fi
#
# Basic Compiler Checks
#
AC_PROG_CXX
AC_PROG_LIBTOOL
AC_LANG(C++)
# to avoid rpath usage :
# http://wiki.debian.net/index.cgi?RpathIssue
case ${host} in
*-pc-linux-gnu)
AC_MSG_RESULT([Fixing libtool for -rpath problems.])
sed < libtool > libtool-2 \
's/^hardcode_libdir_flag_spec.*$/hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ "/'
mv libtool-2 libtool
chmod 755 libtool
;;
esac
#
# Option Switches
#
AC_ARG_ENABLE(hpi,[ --disable-hpi disable AudioScience HPI sound support],
[HPI_DISABLED=yes],[])
AC_ARG_ENABLE(jack,[ --disable-jack disable JACK sound support],
[JACK_DISABLED=yes],[])
AC_ARG_ENABLE(alsa,[ --disable-alsa disable direct ALSA sound support],
[ALSA_DISABLED=yes],[])
AC_ARG_ENABLE(gpio,[ --disable-gpio disable General Purpose Input/Output GPIO support],
[GPIO_DISABLED=yes],[])
AC_ARG_ENABLE(pam,[ --disable-pam disable Rivendell PAM pam_rd.so support],
[PAM_DISABLED=yes],[])
AC_ARG_ENABLE(mad,[ --disable-mad disable MPEG decode support],
[MAD_DISABLED=yes],[])
AC_ARG_ENABLE(twolame,[ --disable-twolame disable MPEG Layer 2 encode support],
[TWOLAME_DISABLED=yes],[])
AC_ARG_ENABLE(lame,[ --disable-lame disable MPEG Layer 3 encode support],
[LAME_DISABLED=yes],[])
AC_ARG_ENABLE(flac,[ --disable-flac disable FLAC encode/decode support],
[FLAC_DISABLED=yes],[])
#
# Check for Qt
#
BNV_HAVE_QT
if test $have_qt = "no" ; then
AC_MSG_ERROR([*** Qt toolkit not found, unable to continue ***])
fi
#
# Determine the target architecture
#
AR_GCC_TARGET()
AC_SUBST(VENDOR,$ar_gcc_distro)
AC_SUBST(ARCH,$ar_gcc_arch)
if test $ar_gcc_arch = x86_64 ; then
LIB_PATH=$PREFIX/lib64
AC_SUBST(RD_LIB_PATH,lib64)
else
LIB_PATH=$PREFIX/lib
AC_SUBST(RD_LIB_PATH,lib)
fi
#
# Determine Distro
#
AR_GET_DISTRO()
AC_SUBST(DISTRO,$ar_gcc_distro)
if test $ar_gcc_distro = suse ; then
AC_SUBST(APACHE_PKG,"apache2")
AC_SUBST(APACHE_CONFIG_DIR,"/etc/apache2/conf.d")
AC_SUBST(CONSOLEHELPER_RDALSACONFIG,"")
AC_SUBST(USERMODE_PKG,"")
AC_SUBST(QT3_MYSQL_PKG,"qt3-mysql")
AC_SUBST(QT3_DEVEL_PKG,"qt3-devel")
AC_SUBST(MYSQL_PKG,"mysql")
else
AC_SUBST(APACHE_PKG,"httpd")
AC_SUBST(APACHE_CONFIG_DIR,"/etc/httpd/conf.d")
AC_SUBST(CONSOLEHELPER_RDALSACONFIG,"/usr/bin/rdalsaconfig-root")
AC_SUBST(USERMODE_PKG,"usermode")
AC_SUBST(QT3_MYSQL_PKG,"qt-MySQL")
if test $ar_distro_major -ge 6 ; then
AC_SUBST(QT3_DEVEL_PKG,"qt3-devel")
else
AC_SUBST(QT3_DEVEL_PKG,"qt-devel")
fi
AC_SUBST(MYSQL_PKG,"mysqld")
fi
#
# Check for OggVorbis
#
AC_CHECK_HEADER(vorbis/vorbisfile.h,[VORBIS_FOUND=yes],[])
if test $VORBIS_FOUND = yes ; then
AC_DEFINE(HAVE_VORBIS)
AC_SUBST(LIBVORBIS,"-lvorbisfile -lvorbisenc")
else
AC_SUBST(LIBVORBIS,"")
fi
#
# Check for Secret Rabbit Code
#
AC_CHECK_HEADER(samplerate.h,[SRC_FOUND=yes],[AC_MSG_ERROR([*** LibSampleRate not found ***])])
AC_CHECK_FUNC(src_short_to_float_array,[SRC_CONV_FOUND=yes],[])
#
# Check for Libsndfile
#
AC_CHECK_HEADER(sndfile.h,[],[AC_MSG_ERROR([*** Libsndfile not found ***])])
#
# Check for LibParanoia
#
AC_CHECK_HEADER(cdda_interface.h,[PARANOIA_FOUND=yes],[])
if test $PARANOIA_FOUND ; then
AC_SUBST(PARANOIA_INCLUDES,"<cdda_interface.h>")
else
# RedHat/CentOS puts this in a subdirectory
AC_CHECK_HEADER(cdda/cdda_interface.h,[PARANOIA_FOUND=yes],[])
if test $PARANOIA_FOUND ; then
AC_SUBST(PARANOIA_INCLUDES,"<cdda/cdda_interface.h>")
else
AC_MSG_ERROR([*** LibParanoia not found ***])
fi
fi
#
# Check for Id3Lib
#
AC_CHECK_HEADER(id3/tag.h,[],[AC_MSG_ERROR([*** Id3Lib not found ***])])
#
# Check for LibCurl
#
AC_CHECK_HEADER(curl/curl.h,[],[AC_MSG_ERROR([*** LibCurl not found ***])])
#
# Check for PAM
#
AC_CHECK_HEADER(security/pam_appl.h,[],[AC_MSG_ERROR([*** PAM not found ***])])
#
# Check for SoundTouch
#
AC_CHECK_HEADER(soundtouch/SoundTouch.h,[],[AC_MSG_ERROR([*** SoundTouch not found ***])])
#
# Check for FLAC
#
if test -z $FLAC_DISABLED ; then
AC_CHECK_HEADER(FLAC++/encoder.h,[FLAC_FOUND=yes],[])
if test $FLAC_FOUND ; then
FLAC_LIBS="-lFLAC -lFLAC++"
AC_DEFINE(HAVE_FLAC)
fi
AC_CHECK_LIB(FLAC,FLAC__metadata_get_tags,[FLAC_METADATA_FOUND=yes],[])
fi
#
# Set Hard Library Dependencies
#
AC_SUBST(LIB_RDLIBS,"-lqui -lrd -lcurl -lid3 $FLAC_LIBS -lsndfile -lsamplerate -lcdda_interface -lcdda_paranoia -lcrypt -ldl -lpam -lSoundTouch")
#
# Setup MPEG Dependencies
#
AC_CHECK_HEADER(mad.h,[MAD_FOUND=yes],[])
AC_CHECK_HEADER(twolame.h,[TWOLAME_FOUND=yes],[])
AC_CHECK_HEADER(lame/lame.h,[LAME_FOUND=yes],[])
if test $MAD_FOUND ; then
if test -z $MAD_DISABLED ; then
AC_DEFINE(HAVE_MAD)
USING_MAD=yes
fi
fi
if test $TWOLAME_FOUND ; then
if test -z $TWOLAME_DISABLED ; then
AC_DEFINE(HAVE_TWOLAME)
USING_TWOLAME=yes
fi
fi
if test $LAME_FOUND ; then
if test -z $LAME_DISABLED ; then
AC_DEFINE(HAVE_LAME)
USING_LAME=yes
fi
fi
#
# Setup Sound API Dependencies
#
AC_CHECK_HEADER(asihpi/hpi.h,[HPI_FOUND=yes],[])
AC_CHECK_HEADER(jack/jack.h,[JACK_FOUND=yes],[])
AC_CHECK_HEADER(alsa/asoundlib.h,[ALSA_FOUND=yes],[])
if test $HPI_FOUND ; then
if test -z $HPI_DISABLED ; then
USING_HPI=yes
AC_DEFINE(HPI,yes)
AC_SUBST(LIBHPI,"-lrdhpi -lhpi")
AC_SUBST(HPI_FILE1,$LIB_PATH/librdhpi-$VERSION.so)
AC_SUBST(HPI_FILE2,$LIB_PATH/librdhpi.a)
AC_SUBST(HPI_FILE3,$LIB_PATH/librdhpi.la)
AC_SUBST(HPI_FILE4,$LIB_PATH/librdhpi.so)
AC_SUBST(HPI_FILE5,$PREFIX/bin/rdhpiinfo)
if test $ar_gcc_distro = suse ; then
AC_SUBST(HPI_FILE6,"")
else
AC_SUBST(HPI_FILE6,$PREFIX/bin/rdhpiinfo-root)
fi
AC_SUBST(HPI_FILE7,$PREFIX/share/rivendell/rdhpi_es.qm)
AC_SUBST(HPI_FILE8,$PREFIX/share/rivendell/rdhpi_cs.qm)
AC_SUBST(HPI_FILE9,$PREFIX/share/rivendell/rdhpi_de.qm)
AC_SUBST(HPI_FILE10,$PREFIX/share/rivendell/rdhpi_nn.qm)
AC_SUBST(HPI_FILE11,$PREFIX/share/rivendell/rdhpi_nb.qm)
AC_SUBST(HPI_FILE12,$PREFIX/share/rivendell/rdhpi_pt_BR.qm)
AC_SUBST(HPI_FILE13,$PREFIX/share/applications/rivendell-rdhpiinfo-root.desktop)
AC_SUBST(HPI_FILE14,/etc/pam.d/rdhpiinfo-root)
AC_SUBST(HPI_FILE15,/etc/security/console.apps/rdhpiinfo-root)
else
AC_SUBST(LIBHPI,"")
AC_SUBST(HPI_FILE1,"")
AC_SUBST(HPI_FILE2,"")
AC_SUBST(HPI_FILE3,"")
AC_SUBST(HPI_FILE4,"")
AC_SUBST(HPI_FILE5,"")
AC_SUBST(HPI_FILE6,"")
AC_SUBST(HPI_FILE7,"")
AC_SUBST(HPI_FILE8,"")
AC_SUBST(HPI_FILE9,"")
AC_SUBST(HPI_FILE10,"")
AC_SUBST(HPI_FILE11,"")
AC_SUBST(HPI_FILE12,"")
AC_SUBST(HPI_FILE13,"")
AC_SUBST(HPI_FILE14,"")
AC_SUBST(HPI_FILE15,"")
fi
else
AC_SUBST(LIBHPI,"")
AC_SUBST(HPI_FILE1,"")
AC_SUBST(HPI_FILE2,"")
AC_SUBST(HPI_FILE3,"")
AC_SUBST(HPI_FILE4,"")
AC_SUBST(HPI_FILE5,"")
AC_SUBST(HPI_FILE6,"")
AC_SUBST(HPI_FILE7,"")
AC_SUBST(HPI_FILE8,"")
AC_SUBST(HPI_FILE9,"")
AC_SUBST(HPI_FILE10,"")
AC_SUBST(HPI_FILE11,"")
AC_SUBST(HPI_FILE12,"")
AC_SUBST(HPI_FILE13,"")
AC_SUBST(HPI_FILE14,"")
AC_SUBST(HPI_FILE15,"")
fi
AM_CONDITIONAL([HPI_RD_AM], [test "$USING_HPI" = yes])
if test $JACK_FOUND ; then
if test -z $JACK_DISABLED ; then
if test -z $SRC_FOUND ; then
AC_MSG_ERROR([*** libsamplerate not found, but is needed for JACK support ***])
fi
AC_DEFINE(JACK,yes)
AC_SUBST(LIBJACK,-ljack)
SRC_NEEDED=yes
USING_JACK=yes
else
AC_SUBST(LIBJACK,"")
fi
else
AC_SUBST(LIBJACK,"")
fi
if test $ALSA_FOUND ; then
if test -z $ALSA_DISABLED ; then
if test -z $SRC_FOUND ; then
AC_MSG_ERROR([*** libsamplerate not found, but is needed for ALSA support ***])
fi
AC_DEFINE(ALSA,yes)
AC_SUBST(LIBALSA,-lasound)
SRC_NEEDED=yes
USING_ALSA=yes
else
AC_SUBST(LIBALSA,"")
fi
else
AC_SUBST(LIBALSA,"")
fi
AM_CONDITIONAL([ALSA_RD_AM], [test "$USING_ALSA" = yes])
if test -z $SRC_NEEDED ; then
AC_SUBST(LIBSRC,"")
else
AC_DEFINE(SRC,yes)
AC_SUBST(LIBSRC,-lsamplerate)
fi
if test -z $SRC_CONV_FOUND ; then
AC_MSG_NOTICE([Using local format converters])
else
AC_MSG_NOTICE([Using SRC format converters])
AC_DEFINE(HAVE_SRC_CONV,yes)
fi
if test -z $FLAC_METADATA_FOUND ; then
AC_MSG_NOTICE([Ogg Metadata tags will not be supported])
else
AC_DEFINE(HAVE_FLAC_METADATA,yes)
fi
#
# pam_rd hooks
#
if test -z $PAM_DISABLED ; then
AC_CHECK_HEADERS([security/pam_modules.h security/_pam_macros.h],[PAM_FOUND=yes],[PAM_FOUND=no;break])
if test $PAM_FOUND = yes ; then
USING_PAM=yes
fi
fi
AM_CONDITIONAL([PAM_RD_AM], [test "$USING_PAM" = yes])
#
# Distro-Specific Stuff
#
if test -f /etc/gentoo-release ; then
rm -f rivendell
ln -s rivendell-gentoo rivendell
AC_MSG_NOTICE([Configured to install Gentoo-specific init script])
else
rm -f rivendell
ln -s rivendell-suse rivendell
AC_MSG_NOTICE([Configured to install generic init script])
fi
#
# Configure RPM Build
#
AC_MSG_CHECKING([for $WIN32_SETUPS/rivendell-$VERSION-$RPM_RELEASE.exe])
if test -f $WIN32_SETUPS/rivendell-$VERSION-$RPM_RELEASE.exe ; then
AC_MSG_RESULT([yes])
AC_SUBST(WIN32_SOURCE,"$WIN32_SETUPS/rivendell-$VERSION-$RPM_RELEASE.exe")
AC_SUBST(WIN32_PATH,"/var/win32/rivendell-$VERSION-$RPM_RELEASE.exe")
else
AC_MSG_RESULT([no])
AC_SUBST(WIN32_SOURCE,"")
AC_SUBST(WIN32_PATH,"")
fi
AC_CHECK_PROG(RPMBUILD_FOUND,rpmbuild,[yes],[])
if test -z $RPMBUILD_FOUND ; then
AC_SUBST(RPMBUILD,rpm)
else
AC_SUBST(RPMBUILD,rpmbuild)
fi
if test -d /usr/src/redhat ; then
AC_SUBST(RPM_ROOT,/usr/src/redhat)
AC_SUBST(VENDOR,redhat)
else
AC_SUBST(RPM_ROOT,/usr/src/packages)
AC_SUBST(VENDOR,suse)
fi
AC_CONFIG_FILES([rivendell.spec \
Makefile \
make_slack \
slack-desc \
rivendell-suse \
rdrepld-suse \
conf/rd-bin.conf \
icons/Makefile \
helpers/Makefile \
lib/rdpaths.h \
lib/Makefile \
rdhpi/Makefile \
rlm/Makefile \
cae/Makefile \
utils/Makefile \
utils/rdalsaconfig/Makefile \
utils/rdcheckcuts/Makefile \
utils/rdchunk/Makefile \
utils/rdcollect/Makefile \
utils/rddbcheck/Makefile \
utils/rddelete/Makefile \
utils/rddgimport/Makefile \
utils/rddiscimport/Makefile \
utils/rdgen/Makefile \
utils/rdhpiinfo/Makefile \
utils/rdgpimon/Makefile \
utils/rdimport/Makefile \
utils/rdmaint/Makefile \
utils/rdmarkerset/Makefile \
utils/rdpopup/Makefile \
utils/rdpurgecasts/Makefile \
utils/rdsoftkeys/Makefile \
utils/rmlsend/Makefile \
utils/sas_shim/Makefile \
web/Makefile \
web/rdfeed/Makefile \
web/rdcastmanager/Makefile \
web/rdxport/Makefile \
web/tests/Makefile \
conf/Makefile \
docs/Makefile \
docs/tables/Makefile \
docs/examples/Makefile \
debian/Makefile \
debian/patches/Makefile \
xdg/Makefile \
rdadmin/Makefile \
scripts/Makefile \
ripcd/Makefile \
rdlogin/Makefile \
rdlibrary/Makefile \
rdcatch/Makefile \
rdcatchd/Makefile \
rdlogedit/Makefile \
rdlogmanager/Makefile \
rdairplay/Makefile \
rdpanel/Makefile \
rdcartslots/Makefile \
rdcastmanager/Makefile \
rdselect/Makefile \
rdmonitor/Makefile \
rdrepld/Makefile \
tests/Makefile \
importers/Makefile \
ios/Makefile \
ios/rmlsend/Makefile \
ios/rmlsend/Classes/Makefile \
ios/rmlsend/RMLSend.xcodeproj/Makefile \
pam_rd/Makefile ])
AC_OUTPUT()
chmod 755 make_slack
chmod 755 rivendell-suse
chmod 755 rdrepld-suse
#
# Configuration Results
#
AC_MSG_NOTICE()
AC_MSG_NOTICE("|-----------------------------------------------------|")
AC_MSG_NOTICE("| *** RIVENDELL CONFIGURATION SUMMARY *** |")
AC_MSG_NOTICE("|-----------------------------------------------------|")
AC_MSG_NOTICE("| Configured Audio Drivers: |")
if test -z $USING_ALSA ; then
AC_MSG_NOTICE("| Advanced Linux Sound Architecture (ALSA) ... No |")
else
AC_MSG_NOTICE("| Advanced Linux Sound Architecture (ALSA) ... Yes |")
fi
if test -z $USING_HPI ; then
AC_MSG_NOTICE("| AudioScience HPI ... No |")
else
AC_MSG_NOTICE("| AudioScience HPI ... Yes |")
fi
if test -z $USING_JACK ; then
AC_MSG_NOTICE("| JACK Audio Connection Kit ... No |")
else
AC_MSG_NOTICE("| JACK Audio Connection Kit ... Yes |")
fi
AC_MSG_NOTICE("| |")
AC_MSG_NOTICE("| Audio Codecs: |")
if test -z $FLAC_FOUND ; then
AC_MSG_NOTICE("| FLAC Encoding/Decoding Support ... No |")
else
AC_MSG_NOTICE("| FLAC Encoding/Decoding Support ... Yes |")
fi
if test -z $USING_MAD ; then
AC_MSG_NOTICE("| MPEG Decoding Support ... No |")
else
AC_MSG_NOTICE("| MPEG Decoding Support ... Yes |")
fi
if test -z $USING_TWOLAME ; then
AC_MSG_NOTICE("| MPEG Layer 2 Encoding Support ... No |")
else
AC_MSG_NOTICE("| MPEG Layer 2 Encoding Support ... Yes |")
fi
if test -z $USING_LAME ; then
AC_MSG_NOTICE("| MPEG Layer 3 Encoding Support ... No |")
else
AC_MSG_NOTICE("| MPEG Layer 3 Encoding Support ... Yes |")
fi
if test -z $VORBIS_FOUND ; then
AC_MSG_NOTICE("| OggVorbis Encoding/Decoding Support ... No |")
else
AC_MSG_NOTICE("| OggVorbis Encoding/Decoding Support ... Yes |")
fi
AC_MSG_NOTICE("| |")
AC_MSG_NOTICE("| Optional Components: |")
if test -z $USING_PAM ; then
AC_MSG_NOTICE("| Rivendell PAM pam_rd.so Support ... No |")
else
AC_MSG_NOTICE("| Rivendell PAM pam_rd.so Support ... Yes |")
fi
AC_MSG_NOTICE("|-----------------------------------------------------|")
AC_MSG_NOTICE()
if test $WIN32_SOURCE ; then
AC_MSG_NOTICE([Including RPM win32 setup from:])
AC_MSG_NOTICE([ $WIN32_SOURCE])
AC_MSG_NOTICE()
fi
AC_MSG_NOTICE()
AC_MSG_NOTICE(Now enter 'make' to build the software.)
AC_MSG_NOTICE()

68
debian/Makefile.am vendored Normal file
View File

@@ -0,0 +1,68 @@
## automake.am
##
## debian/automake.am for Rivendell
##
## Use automake to process this into a Makefile.in
##
## (C) Copyright 2002-2005 Fred Gleason <fredg@paravelsystems.com>
##
## $Id: Makefile.am,v 1.9.14.1 2012/11/29 01:37:35 cvs Exp $
## $Date: 2012/11/29 01:37:35 $
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License version 2 as
## published by the Free Software Foundation.
##
## 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, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
SUBDIRS = patches
EXTRA_DIST = changelog\
compat\
control\
copyright\
librivendell.install\
menu\
rdadmin.desktop\
rdadmin.xpm\
rdairplay.desktop\
rdairplay.xpm\
rdcatch.desktop\
rdcatch.xpm\
rdlibrary.desktop\
rdlibrary.xpm\
rdlogedit.desktop\
rdlogedit.xpm\
rdlogin.desktop\
rdlogin.xpm\
rdlogmanager.desktop\
rdlogmanager.xpm\
README.Debian\
rivendell.conffiles\
rivendell.config\
rivendell.docs.in\
rivendell.install\
rivendell.logrotate\
rivendell.templates\
rivendell.examples\
rivendell.init\
rivendell.postinst\
rivendell.postrm\
rules
CLEANFILES = *~\
rivendell.docs\
substvars
MAINTAINERCLEANFILES = *~\
aclocal.m4\
configure\
Makefile.in

55
debian/README.Debian vendored Normal file
View File

@@ -0,0 +1,55 @@
#
# Rivendell introduction:
#
The Rivendell radio broadcast automation solution has been installed.
The next step is to run the "rdadmin" command with a user that has permissions
to the rivendell system. The first time it will prompt for a MySQL userid and
password that has permissions to connect and create the database.
Once the database has been created, run the "rdadmin" command again. From this
point on, rdadmin will allow for configuring of Rivendell.
The default user accounts within Rivendell are "admin" and "user", both with no
password.
#
# Creating *nix user accounts that have permission to access Rivendell
#
# first create the user, such as foouser
adduser foouser
# add the user to the audio group, so they can access the sound card
adduser foouser audio
# add the user to the rivendell group, so they can access rivendell resources.
adduser foouser rivendell
#
# ALSA Rivendell integration
#
In order for Rivendell to recognize an ALSA sound adapter, there must exist a
standard ALSA configuration file with a card named "rd0" defined.
The ALSA configuration file can be global (/etc/asound.conf) or per user
(~/.asoundrc).
Sample contents for the configuration file to define rd0 follow:
pcm.rd0 {
type hw
card 1
}
ctl.rd0 {
type hw
card 1
}
More information on ALSA configuration files can be found here:
http://www.alsa-project.org/alsa-doc/doc-php/asoundrc.php
More information on Rivendell and ALSA can also be found in
/usr/share/doc/rivendell/ALSA.txt .

387
debian/changelog vendored Normal file
View File

@@ -0,0 +1,387 @@
rivendell (1.0.0~rc0-1) unstable; urgency=low
* New release.
-- Federico Grau <grauf@rfa.org> Thu, 10 Apr 2008 10:00:25 -0400
rivendell (0.9.83-1) unstable; urgency=low
* New release.
-- Federico Grau <grauf@rfa.org> Thu, 27 Dec 2007 10:00:58 -0500
rivendell (0.9.82-1) unstable; urgency=low
* New release.
-- Federico Grau <grauf@rfa.org> Wed, 12 Sep 2007 13:43:18 -0400
rivendell (0.9.81-1) unstable; urgency=low
* New release.
-- Federico Grau <grauf@rfa.org> Fri, 13 Jul 2007 10:45:59 -0400
rivendell (0.9.79-5) unstable; urgency=low
* Updated copyright with Fred Gleason's new email address.
-- Federico Grau <grauf@rfa.org> Thu, 15 Feb 2007 12:59:23 -0500
rivendell (0.9.79-4) unstable; urgency=low
* More work on the Audacity integration with Rivendell patch.
-- Federico Grau <grauf@rfa.org> Tue, 30 Jan 2007 14:44:07 -0500
rivendell (0.9.79-3) unstable; urgency=low
* Test build with 08_audacity patch which add audacity integration to
rivendell (thanks to Panvid Co and Pavel Domsa <pdomsa@seznam.cz> for the
initial patch).
-- Federico Grau <grauf@rfa.org> Mon, 29 Jan 2007 18:12:14 -0500
rivendell (0.9.79-2) unstable; urgency=low
* Added 07_extra_paren patch which corrects rdadmin/createdb.cpp bug
creating db.
-- Federico Grau <grauf@rfa.org> Tue, 12 Dec 2006 16:35:52 -0500
rivendell (0.9.79-1) unstable; urgency=low
* New upstream release.
-- Federico Grau <grauf@rfa.org> Thu, 7 Dec 2006 12:13:31 -0500
rivendell (0.9.77-1) unstable; urgency=low
* New upstream release.
-- Federico Grau <grauf@rfa.org> Mon, 4 Dec 2006 18:18:10 -0500
rivendell (0.9.74-2) unstable; urgency=low
* Added (and enabled) a patch to escape SQL column names when generating
reports 06_escapesql.dpatch .
-- Federico Grau <grauf@rfa.org> Fri, 29 Sep 2006 18:42:30 -0400
rivendell (0.9.74-1) unstable; urgency=low
* New upstream release.
* Disabled music scheduler patch.
-- Federico Grau <grauf@rfa.org> Thu, 28 Sep 2006 12:49:51 -0400
rivendell (0.9.73-1.2) unstable; urgency=low
* Added libhpi-dev to the build-dep list.
* Recompiling with libhpi-dev installed locally.
-- Henry Rivera <riverah@rfa.org> Thu, 14 Sep 2006 20:46:40 -0400
rivendell (0.9.73-1.1) unstable; urgency=low
* Enabled music scheduler patch.
-- Henry Rivera <riverah@rfa.org> Thu, 14 Sep 2006 07:31:04 -0400
rivendell (0.9.73-1) unstable; urgency=low
* New upstream release.
* Added libpam0g-dev to the build-dep package list.
-- Henry Rivera <riverah@rfa.org> Thu, 14 Sep 2006 06:04:49 -0400
rivendell (0.9.71-1) unstable; urgency=low
* New upstream release.
* corrected package description in control.
* Added rdlogin icon (xpm, desktop, menu) to debian dir.
-- Federico Grau <grauf@rfa.org> Mon, 14 Aug 2006 18:05:46 -0400
rivendell (0.9.70-4) unstable; urgency=low
* This time with the patch enabled :-/ .
-- Federico Grau <grauf@rfa.org> Wed, 9 Aug 2006 16:38:15 -0400
rivendell (0.9.70-3) unstable; urgency=low
* Add patch 05_pam_rd_hack, with edits to set the DEFAULTUSER instead of
regular user (thus no changes will be required to ripcd to pickup the user
change).
-- Federico Grau <grauf@rfa.org> Wed, 9 Aug 2006 15:08:19 -0400
rivendell (0.9.70-2) unstable; urgency=low
* Add patch 04_pam_rd_cvs_fixes.dpatch with pam_rd efforts in CVS since
0.9.70.
* disabled music scheduler patch for now.
-- Federico Grau <grauf@rfa.org> Wed, 9 Aug 2006 13:43:00 -0400
rivendell (0.9.70-1.4) unstable; urgency=low
* Update with a new music scheduler patch.
-- Federico Grau <grauf@rfa.org> Wed, 9 Aug 2006 12:44:56 -0400
rivendell (0.9.70-1.3) unstable; urgency=low
* This time with the patch enabled :-/ .
-- Federico Grau <grauf@rfa.org> Tue, 8 Aug 2006 13:50:23 -0400
rivendell (0.9.70-1.2) unstable; urgency=low
* Update the patch from Stefan Gabrial.
-- Federico Grau <grauf@rfa.org> Tue, 8 Aug 2006 12:35:46 -0400
rivendell (0.9.70-1.1) unstable; urgency=low
* Applied music scheduler patch from Stefan Gabriel <stg@st-gabriel.de> .
This is debian/patches/10_music_scheduler.
-- Federico Grau <grauf@rfa.org> Tue, 8 Aug 2006 11:14:27 -0400
rivendell (0.9.70-1) unstable; urgency=low
* New upstream release.
-- Federico Grau <grauf@rfa.org> Mon, 7 Aug 2006 15:54:57 -0400
rivendell (0.9.68-0) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Thu,25 May 2006 12:15:00 +0200
rivendell (0.9.64-0) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Mon,23 Jan 2005 10:30:00 +0100
rivendell (0.9.63-0) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Sat,17 Dec 2005 11:30:00 +0100
rivendell (0.9.62-0) unstable; urgency=low
* new upstream release
* added alsa dependency
-- Alban Peignier <alban.peignier@free.fr> Thu,1 Dec 2005 10:00:00 +0100
rivendell (0.9.55-0) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Wed,12 Oct 2005 09:30:00 +0200
rivendell (0.9.53-0) unstable; urgency=low
* added menus (patch from Federico Grau <grauf@rfa.org>)
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Sat,01 Oct 2005 11:45:00 +0200
rivendell (0.9.51-0) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Wed,31 Aug 2005 22:30:00 +0200
rivendell (0.9.49) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Thu,18 Aug 2005 19:10:00 +0200
rivendell (0.9.44) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Sat,16 Jul 2005 13:30:00 +0200
rivendell (0.9.39) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Mon,11 Jul 2005 12:30:00 +0200
rivendell (0.9.38) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Thu,07 Jul 2005 10:30:00 +0200
rivendell (0.9.34) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Fri,03 Jun 2005 00:30:00 +0200
rivendell (0.9.33+cvs20050523) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Mon,23 May 2005 15:30:00 +0200
rivendell (0.9.33) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Sat,21 May 2005 11:50:00 +0200
rivendell (0.9.32) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Tue,10 May 2005 23:50:00 +0200
rivendell (0.9.28+cvs20050430) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Sat,30 Apr 2005 10:15:00 +0200
rivendell (0.9.28) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Wed,09 Mar 2005 10:30:00 +0100
rivendell (0.9.26) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Fri,18 Feb 2005 08:45:00 +0100
rivendell (0.9.21) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Sun,30 Jan 2005 23:20:00 +0100
rivendell (0.9.17-1) unstable; urgency=low
* fixed the toolame dependency problem (notified by Richard Lamont)
-- Alban Peignier <alban.peignier@free.fr> Sat,22 Jan 2005 14:40:00 +0100
rivendell (0.9.17) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Tue,18 Jan 2005 20:55:00 +0100
rivendell (0.9.16) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Tue,28 Dec 2004 10:00:00 +0100
rivendell (0.9.15) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Sat,18 Dec 2004 17:00:00 +0100
rivendell (0.9.13+cvs20041216-1) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Fri,17 Dec 2004 09:00:00 +0100
rivendell (0.9.13+cvs20041209-1) unstable; urgency=low
* new upstream release
* use "rdadmin --check-db" into the init script
-- Alban Peignier <alban.peignier@free.fr> Thu,09 Dec 2004 19:40:00 +0100
rivendell (0.9.12+cvs20041207-1) unstable; urgency=low
* fixed a startup daemon problems, now use the AudioOwner defined into rd.conf
-- Alban Peignier <alban.peignier@free.fr> Mon,07 Dec 2004 19:40:00 +0100
rivendell (0.9.12+cvs20041206-1) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Mon,06 Dec 2004 21:40:00 +0100
rivendell (0.9.12+cvs20041124-1) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Wed,24 Nov 2004 23:30:00 +0100
rivendell (0.9.12+cvs20041124) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Wed,24 Nov 2004 10:30:00 +0100
rivendell (0.9.12+cvs20041118) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Thu,18 Nov 2004 08:30:00 +0100
rivendell (0.9.12) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Tue,16 Nov 2004 09:30:00 +0100
rivendell (0.9.11) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Sat,13 Nov 2004 11:30:00 +0100
rivendell (0.9.9) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Mon,04 Nov 2004 20:00:00 +0100
rivendell (0.9.4) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Thu, 28 Oct 2004 12:00:00 +0200
rivendell (0.9.0+cvs20040831-1) unstable; urgency=low
* docs directory now is packaged
* ChangeLog is now used as upstream changelog
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Tue, 31 Aug 2004 14:15:00 +0200
rivendell (0.9.0+cvs20040829-1) unstable; urgency=low
* add post installation operations to directories and a rivendell group
* add init.d script to start the daemon
* add configuration examples
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Sun, 29 Aug 2004 11:50:00 +0200
rivendell (0.9.0-1) unstable; urgency=low
* new upstream release
-- Alban Peignier <alban.peignier@free.fr> Mon, 24 Aug 2004 22:50:00 +0200

1
debian/compat vendored Normal file
View File

@@ -0,0 +1 @@
4

38
debian/control vendored Normal file
View File

@@ -0,0 +1,38 @@
Source: rivendell
Section: sound
Priority: optional
Maintainer: Alban Peignier <alban.peignier@free.fr>
Build-Depends: debhelper, autoconf, automake1.9, dpatch, libtool, libjack0.80.0-dev | libjack0.100.0-dev, libqt3-mt-dev, libasound2-dev, libsamplerate0-dev, libvorbis-dev, libtag1-dev, libid3-dev, libflac-dev, libpam0g-dev, libhpi-dev
Standards-Version: 3.6.1
Package: rivendell
Architecture: i386
Depends: ${shlibs:Depends}, bc, cdda2wav, cdparanoia, flac, lame, libqt3-mt-mysql | libqt3c102-mt-mysql, libhpi, mpg321, vorbis-tools
Recommends: jackd, logrotate
Description: Rivendell binaries - contains a full set of functionality needed to operate a radio
automation system, consisting of the following components:
.
RDAdmin: a comprehensive application for the administration and configuration
of Rivendell.
.
RDLibrary: the production audio interface.
.
RDCatch: the automatic recorder interface.
.
RDLogin: a small utility for logging users into and out of the system.
.
RDLogEdit: a basic air log creation and editing tool.
.
RDLogManager: a utility for the automatic generation of logs, based on
templates. It also supports importation of schedule information from a wide
variety of third-party traffic and music scheduling systems.
.
RDAirPlay: the on-air playout application.
Package: librivendell
Architecture: i386
Depends: ${shlibs:Depends}
Description: Rivendell library - C++ runtime library
Contains a full set of functionality needed to operate a radio
automation system, consisting of the following components.

15
debian/copyright vendored Normal file
View File

@@ -0,0 +1,15 @@
This package was debianized by Alban Peignier <alban.peignier@free.fr> on
Tue Aug 24, 2004 22:50:00 +0200
It was downloaded from http://www.rivendellaudio.org/rivendell/download.html
Upstream Author: Fred Gleason <fredg@paravelsystems.com>
Copyright 2002-2007 Fred Gleason <fredg@paravelsystems.com>
You should have received a copy of the GNU General Public License with the
Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL; if
not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite
330, Boston, MA 02111-1307 USA

6
debian/librivendell.install vendored Normal file
View File

@@ -0,0 +1,6 @@
lib/security
usr/lib/librdhpi-*.so
usr/lib/librdhpi.so
usr/lib/librd-*.so
usr/lib/librd.so
usr/share/srlabs/librd*.qm

42
debian/menu vendored Normal file
View File

@@ -0,0 +1,42 @@
?package(rivendell):\
needs="x11"\
section="Apps/Sound"\
title="rdadmin" command="/usr/bin/rdadmin" \
icon="/usr/share/srlabs/rdadmin.xpm"
?package(rivendell):\
needs="x11"\
section="Apps/Sound"\
title="rdairplay" command="/usr/bin/rdairplay" \
icon="/usr/share/srlabs/rdairplay.xpm"
?package(rivendell):\
needs="x11"\
section="Apps/Sound"\
title="rdcatch" command="/usr/bin/rdcatch" \
icon="/usr/share/srlabs/rdcatch.xpm"
?package(rivendell):\
needs="x11"\
section="Apps/Sound"\
title="rdlibrary" command="/usr/bin/rdlibrary" \
icon="/usr/share/srlabs/rdlibrary.xpm"
?package(rivendell):\
needs="x11"\
section="Apps/Sound"\
title="rdlogedit" command="/usr/bin/rdlogedit" \
icon="/usr/share/srlabs/rdlogedit.xpm"
?package(rivendell):\
needs="x11"\
section="Apps/Sound"\
title="rdlogin" command="/usr/bin/rdlogin" \
icon="/usr/share/srlabs/rdlogin.xpm"
?package(rivendell):\
needs="x11"\
section="Apps/Sound"\
title="rdlogmanager" command="/usr/bin/rdlogmanager" \
icon="/usr/share/srlabs/rdlogmanager.xpm"

4
debian/patches/00list vendored Normal file
View File

@@ -0,0 +1,4 @@
# This is part of the dpatch infrastructure.
# See dpatch (1) in the man pages for more info.
# Brief summary is to uncomment patches to be applied in this file.
#07_extra_paren

26
debian/patches/00template vendored Normal file
View File

@@ -0,0 +1,26 @@
#! /bin/sh /usr/share/dpatch/dpatch-run
#
# template file for dpatch. see dpatch-edit-patch(1) for more details.
#
##
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.
[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}"
if [ $# -lt 1 ]; then
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
fi
case "$1" in
-patch) patch $patch_opts -p1 < $0;;
-unpatch) patch $patch_opts -p1 -R < $0;;
*)
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1;;
esac
exit 0
@DPATCH@

38
debian/patches/07_extra_paren.dpatch vendored Normal file
View File

@@ -0,0 +1,38 @@
#! /bin/sh /usr/share/dpatch/dpatch-run
#
# template file for dpatch. see dpatch-edit-patch(1) for more details.
#
##
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.
[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}"
if [ $# -lt 1 ]; then
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
fi
case "$1" in
-patch) patch $patch_opts -p1 < $0;;
-unpatch) patch $patch_opts -p1 -R < $0;;
*)
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1;;
esac
exit 0
@DPATCH@
diff -urNad rivendell-0.9.79/rdadmin/createdb.cpp /home/grauf/tmp/dpep.gHhh0y/rivendell-0.9.79/rdadmin/createdb.cpp
--- rivendell-0.9.79/rdadmin/createdb.cpp 2006-12-05 14:25:32.000000000 -0500
+++ /home/grauf/tmp/dpep.gHhh0y/rivendell-0.9.79/rdadmin/createdb.cpp 2006-12-12 16:34:49.000000000 -0500
@@ -706,7 +706,7 @@
DEFAULT_TRANS_TYPE int default 0,\
BAR_ACTION int unsigned default 0,\
FLASH_PANEL enum('N','Y') default 'N',\
- PANEL_PAUSE_ENABLED enum('N','Y') default 'N'),\
+ PANEL_PAUSE_ENABLED enum('N','Y') default 'N',\
PAUSE_ENABLED enum('N','Y'),\
DEFAULT_SERVICE char(10),\
UDP_ADDR0 char(255),\

29
debian/patches/Makefile.am vendored Normal file
View File

@@ -0,0 +1,29 @@
## automake.am
##
## debian/automake.am for Rivendell
##
## Use automake to process this into a Makefile.in
##
## (C) Copyright 2002-2005 Fred Gleason <fredg@paravelsystems.com>
##
## $Id: Makefile.am,v 1.1 2007/06/07 15:09:43 grauf Exp $
## $Date: 2007/06/07 15:09:43 $
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License version 2 as
## published by the Free Software Foundation.
##
## 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, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
EXTRA_DIST = 00list 00template 07_extra_paren.dpatch
CLEANFILES = *~ substvars
MAINTAINERCLEANFILES = *~ Makefile.in

9
debian/rdadmin.desktop vendored Normal file
View File

@@ -0,0 +1,9 @@
[Desktop Entry]
Encoding=UTF-8
Name=rdadmin
Comment=Rivendell Admin
Exec=rdadmin
Terminal=false
Type=Application
Icon=/usr/share/srlabs/rdadmin.xpm
Categories=Application;AudioVideo;

768
debian/rdadmin.xpm vendored Normal file
View File

@@ -0,0 +1,768 @@
/* XPM */
static char * rdadmin_xpm[] = {
"32 32 733 2",
" c None",
". c #3D485E",
"+ c #3D485F",
"@ c #364156",
"# c #3B475D",
"$ c #414F69",
"% c #37435A",
"& c #36425B",
"* c #3B4A68",
"= c #2F3645",
"- c #4B5871",
"; c #505D74",
"> c #4D586E",
", c #454F62",
"' c #606E88",
") c #5B6985",
"! c #414D64",
"~ c #536280",
"{ c #4E5F81",
"] c #3F4E69",
"^ c #435478",
"/ c #384868",
"( c #2E384D",
"_ c #424D5E",
": c #576375",
"< c #57606E",
"[ c #525B6A",
"} c #778192",
"| c #3B414B",
"1 c #8A98A8",
"2 c #404753",
"3 c #758398",
"4 c #4B5669",
"5 c #58667F",
"6 c #51607E",
"7 c #404D68",
"8 c #47587A",
"9 c #394868",
"0 c #364566",
"a c #30353E",
"b c #485468",
"c c #677281",
"d c #484F5D",
"e c #8F96A5",
"f c #3D414E",
"g c #A1A6B3",
"h c #4D5363",
"i c #8992A1",
"j c #686E79",
"k c #E11313",
"l c #3C4454",
"m c #586581",
"n c #6478A1",
"o c #3D4964",
"p c #46587D",
"q c #4A5D87",
"r c #323E5C",
"s c #354464",
"t c #23262D",
"u c #636F7E",
"v c #404551",
"w c #9BA1A7",
"x c #222531",
"y c #C7C8CD",
"z c #393C48",
"A c #A3A6B3",
"B c #7A7D86",
"C c #404557",
"D c #535768",
"E c #8FA0B8",
"F c #5E6983",
"G c #3D465C",
"H c #6A7EA7",
"I c #506285",
"J c #45567B",
"K c #445983",
"L c #3A4A70",
"M c #293246",
"N c #404B5C",
"O c #48505C",
"P c #6F7A88",
"Q c #636570",
"R c #888A94",
"S c #20222B",
"T c #DBDDE2",
"U c #50535F",
"V c #6C6E76",
"W c #D1D3DC",
"X c #2A2E3F",
"Y c #C4C9D3",
"Z c #353A44",
"` c #8092AC",
" . c #7283A0",
".. c #3B4359",
"+. c #3F4C67",
"@. c #5B72A2",
"#. c #425379",
"$. c #3E4C6F",
"%. c #3C4F7A",
"&. c #374668",
"*. c #2A2E35",
"=. c #54627A",
"-. c #9299A1",
";. c #3C404D",
">. c #878996",
",. c #878A99",
"'. c #373E55",
"). c #CCCDD6",
"!. c #767989",
"~. c #3C435E",
"{. c #A8AAB4",
"]. c #565A68",
"^. c #353E56",
"/. c #54617C",
"(. c #86A2D2",
"_. c #5E6F96",
":. c #4A557A",
"<. c #45567D",
"[. c #5975B2",
"}. c #3E4E75",
"|. c #3A4362",
"1. c #202023",
"2. c #627183",
"3. c #394152",
"4. c #B8BBC3",
"5. c #2A2D39",
"6. c #848591",
"7. c #A0A3B3",
"8. c #1C202C",
"9. c #A2A8BE",
"0. c #C9CAD3",
"a. c #212431",
"b. c #4D5164",
"c. c #8B8C95",
"d. c #36384A",
"e. c #4D5160",
"f. c #8495AC",
"g. c #424C72",
"h. c #3B4560",
"i. c #5F749D",
"j. c #6A86B9",
"k. c #526288",
"l. c #5F6D9F",
"m. c #415582",
"n. c #5572B5",
"o. c #2F3D5B",
"p. c #47566D",
"q. c #7D8C9E",
"r. c #33343A",
"s. c #C6C7CF",
"t. c #242A3A",
"u. c #6E7792",
"v. c #CFD1D8",
"w. c #424A62",
"x. c #494C57",
"y. c #DFE0E3",
"z. c #8C8E9C",
"A. c #DDDEE2",
"B. c #838692",
"C. c #404357",
"D. c #8293AB",
"E. c #97AFD1",
"F. c #444C73",
"G. c #4A5579",
"H. c #607DB6",
"I. c #5977B2",
"J. c #333E59",
"K. c #464E6C",
"L. c #4D6399",
"M. c #363F4B",
"N. c #4B596D",
"O. c #8492A4",
"P. c #363A46",
"Q. c #CFD0D4",
"R. c #3F4C6D",
"S. c #3C4256",
"T. c #ECEEF5",
"U. c #5F6169",
"V. c #555B77",
"W. c #8E909D",
"X. c #DCDCE3",
"Y. c #24252D",
"Z. c #616472",
"`. c #E8EBF3",
" + c #A0A9BC",
".+ c #424C70",
"++ c #8BA3C8",
"@+ c #96B6E9",
"#+ c #647AA9",
"$+ c #293044",
"%+ c #46506E",
"&+ c #667BB3",
"*+ c #6A8CD6",
"=+ c #7090DC",
"-+ c #313A54",
";+ c #1F242E",
">+ c #222326",
",+ c #657B92",
"'+ c #3C4558",
")+ c #919FB2",
"!+ c #262C3C",
"~+ c #BEC1CA",
"{+ c #676C7D",
"]+ c #384467",
"^+ c #ADADB5",
"/+ c #C9CDDC",
"(+ c #2A2D3A",
"_+ c #3D4253",
":+ c #C5C6CD",
"<+ c #53586E",
"[+ c #34384B",
"}+ c #4E5365",
"|+ c #C1D2E5",
"1+ c #212331",
"2+ c #3F486A",
"3+ c #7E9BD4",
"4+ c #84AAEF",
"5+ c #5A70A8",
"6+ c #252C3C",
"7+ c #242938",
"8+ c #4B5F90",
"9+ c #5D82D2",
"0+ c #48649F",
"a+ c #273147",
"b+ c #6F8398",
"c+ c #333841",
"d+ c #A0ABB5",
"e+ c #283454",
"f+ c #99A1B7",
"g+ c #A8AFBF",
"h+ c #21283B",
"i+ c #878EA8",
"j+ c #EBECF2",
"k+ c #71778C",
"l+ c #2D344D",
"m+ c #D4D8E4",
"n+ c #BDC0CB",
"o+ c #41465B",
"p+ c #454E73",
"q+ c #464C60",
"r+ c #9AAEC8",
"s+ c #6876A0",
"t+ c #353B57",
"u+ c #272C3C",
"v+ c #3E4C6D",
"w+ c #7DA2EA",
"x+ c #6487CB",
"y+ c #647CAB",
"z+ c #535E85",
"A+ c #2B3550",
"B+ c #3A4E7A",
"C+ c #5170A4",
"D+ c #4C4E51",
"E+ c #8096AC",
"F+ c #2C323F",
"G+ c #B7C4D0",
"H+ c #3C4A6C",
"I+ c #4C5773",
"J+ c #DCDCE1",
"K+ c #5D6A8F",
"L+ c #242D47",
"M+ c #9A9EAD",
"N+ c #DBDBDE",
"O+ c #3F4A70",
"P+ c #404456",
"Q+ c #DFE5F3",
"R+ c #D5E0F0",
"S+ c #3D4453",
"T+ c #3A4568",
"U+ c #4E5982",
"V+ c #6D87B6",
"W+ c #62709E",
"X+ c #555F8A",
"Y+ c #343A4F",
"Z+ c #3F537E",
"`+ c #668EDD",
" @ c #597DC5",
".@ c #303E5C",
"+@ c #3A4357",
"@@ c #445072",
"#@ c #333C52",
"$@ c #44494F",
"%@ c #7C95A3",
"&@ c #262E3D",
"*@ c #A0A9B1",
"=@ c #5E6980",
"-@ c #324576",
";@ c #C8CAD2",
">@ c #9BA3B7",
",@ c #2E3445",
"'@ c #4F5978",
")@ c #D8D9DE",
"!@ c #2B3142",
"~@ c #455681",
"{@ c #565E72",
"]@ c #BFCFD9",
"^@ c #B6CCE5",
"/@ c #5B698A",
"(@ c #23293B",
"_@ c #56638D",
":@ c #7B9DD7",
"<@ c #7DA1E1",
"[@ c #475A80",
"}@ c #434C67",
"|@ c #5C6A98",
"1@ c #677BB2",
"2@ c #6685C4",
"3@ c #6791E1",
"4@ c #7BA5EB",
"5@ c #4B5C7B",
"6@ c #1E2026",
"7@ c #444D55",
"8@ c #79868D",
"9@ c #4B5259",
"0@ c #6B7786",
"a@ c #B1C0D7",
"b@ c #2B334A",
"c@ c #788AAD",
"d@ c #EBEDF2",
"e@ c #66779C",
"f@ c #242C39",
"g@ c #D9DCE2",
"h@ c #C2CEE3",
"i@ c #464F63",
"j@ c #374458",
"k@ c #546173",
"l@ c #97ADC6",
"m@ c #B5D5F7",
"n@ c #8BA3C4",
"o@ c #323A4F",
"p@ c #515D77",
"q@ c #6E8CBE",
"r@ c #729BE0",
"s@ c #779FE7",
"t@ c #455981",
"u@ c #202530",
"v@ c #242832",
"w@ c #2D374D",
"x@ c #55729B",
"y@ c #A9CAD7",
"z@ c #677A89",
"A@ c #465159",
"B@ c #616D7B",
"C@ c #88909B",
"D@ c #2F3747",
"E@ c #CCD7DF",
"F@ c #525C70",
"G@ c #4F638E",
"H@ c #B3B5BA",
"I@ c #BDC0C7",
"J@ c #6C80A8",
"K@ c #DFEDF4",
"L@ c #A6BBCB",
"M@ c #374869",
"N@ c #232A39",
"O@ c #526286",
"P@ c #7288A8",
"Q@ c #A0C5F3",
"R@ c #87A7CE",
"S@ c #384150",
"T@ c #282C35",
"U@ c #4D6083",
"V@ c #8DB7F3",
"W@ c #7DADF3",
"X@ c #7199CA",
"Y@ c #7D9DC6",
"Z@ c #5C71A3",
"`@ c #424E66",
" # c #576478",
".# c #5A6B87",
"+# c #414954",
"@# c #4F5E73",
"## c #B0BCC5",
"$# c #363F4C",
"%# c #BBCDE3",
"&# c #D3E3F0",
"*# c #2A3242",
"=# c #51648B",
"-# c #DEE0E4",
";# c #313E5E",
"># c #374871",
",# c #62728D",
"'# c #C5E2F2",
")# c #A2BCD1",
"!# c #596B91",
"~# c #272C38",
"{# c #484F64",
"]# c #6A7C9E",
"^# c #89ADDB",
"/# c #77869D",
"(# c #454F65",
"_# c #2E3647",
":# c #354258",
"<# c #89AABE",
"[# c #CCE9F5",
"}# c #92B3C9",
"|# c #4D5E76",
"1# c #242935",
"2# c #17181C",
"3# c #4B556B",
"4# c #515F72",
"5# c #89939D",
"6# c #6A7B8E",
"7# c #6B7C8D",
"8# c #D8DBE0",
"9# c #5A6682",
"0# c #2C3D64",
"a# c #EAF0F8",
"b# c #A1B7C2",
"c# c #6E7D8C",
"d# c #5D6D8D",
"e# c #677BA9",
"f# c #6C82AE",
"g# c #97B5D5",
"h# c #A2C5E9",
"i# c #8DB5F4",
"j# c #6B87C8",
"k# c #3A4665",
"l# c #3F4862",
"m# c #545D78",
"n# c #4C5569",
"o# c #9DADC8",
"p# c #2B3A58",
"q# c #798AAF",
"r# c #D4DEF0",
"s# c #454D5E",
"t# c #6D778D",
"u# c #E6EDF2",
"v# c #9FAFCF",
"w# c #29324C",
"x# c #435283",
"y# c #4D5566",
"z# c #B2C3D0",
"A# c #CAE4F1",
"B# c #A3B5CB",
"C# c #4F5464",
"D# c #43454F",
"E# c #656975",
"F# c #85A2BF",
"G# c #9EC5F4",
"H# c #7694C8",
"I# c #3E4B6B",
"J# c #252A37",
"K# c #1E2028",
"L# c #16171C",
"M# c #1F2229",
"N# c #384564",
"O# c #343D54",
"P# c #3A4158",
"Q# c #616D94",
"R# c #333E5F",
"S# c #868EAA",
"T# c #49567A",
"U# c #2A3F72",
"V# c #A6AEBF",
"W# c #333D5B",
"X# c #8690A5",
"Y# c #D0DFF5",
"Z# c #7B88AC",
"`# c #353E5B",
" $ c #454F6E",
".$ c #464E62",
"+$ c #A4B8D4",
"@$ c #A9C6F3",
"#$ c #8599C5",
"$$ c #676F88",
"%$ c #40424B",
"&$ c #97ABD1",
"*$ c #7A98DC",
"=$ c #7293E3",
"-$ c #5F7ABB",
";$ c #627BB1",
">$ c #586988",
",$ c #2B2F3B",
"'$ c #16171B",
")$ c #18191C",
"!$ c #36405E",
"~$ c #5A6896",
"{$ c #2D3244",
"]$ c #909ACA",
"^$ c #3D5189",
"/$ c #475070",
"($ c #7D87B1",
"_$ c #374D8F",
":$ c #262F49",
"<$ c #6876A1",
"[$ c #ABB7E6",
"}$ c #8792BF",
"|$ c #545D7F",
"1$ c #3D4257",
"2$ c #404352",
"3$ c #67708B",
"4$ c #879BDB",
"5$ c #819AE3",
"6$ c #8796C2",
"7$ c #525970",
"8$ c #3D414C",
"9$ c #373C4D",
"0$ c #404C6D",
"a$ c #556BA5",
"b$ c #536DB0",
"c$ c #5874BB",
"d$ c #5770B2",
"e$ c #344164",
"f$ c #3C486C",
"g$ c #515878",
"h$ c #313545",
"i$ c #5E617B",
"j$ c #7E89B8",
"k$ c #2B334C",
"l$ c #A8ADDC",
"m$ c #8492D1",
"n$ c #252A3B",
"o$ c #2B3048",
"p$ c #636C93",
"q$ c #919AC9",
"r$ c #8792BE",
"s$ c #51576E",
"t$ c #575B6C",
"u$ c #5E5F69",
"v$ c #565B6C",
"w$ c #6F7BA2",
"x$ c #7187CC",
"y$ c #6377B4",
"z$ c #5B6581",
"A$ c #4B5169",
"B$ c #535E7E",
"C$ c #6373A1",
"D$ c #566796",
"E$ c #3D4866",
"F$ c #38476D",
"G$ c #37476F",
"H$ c #323646",
"I$ c #394059",
"J$ c #545971",
"K$ c #202128",
"L$ c #696B8C",
"M$ c #2A3A6B",
"N$ c #565F84",
"O$ c #9297CD",
"P$ c #7579A1",
"Q$ c #414B72",
"R$ c #37405F",
"S$ c #525D80",
"T$ c #70779D",
"U$ c #8993C2",
"V$ c #686F8E",
"W$ c #525563",
"X$ c #525462",
"Y$ c #4D4E58",
"Z$ c #454A5E",
"`$ c #68759C",
" % c #3A4872",
".% c #2A324C",
"+% c #1D212D",
"@% c #21232C",
"#% c #3A3C47",
"$% c #303444",
"%% c #191B1E",
"&% c #34394B",
"*% c #404764",
"=% c #484B5E",
"-% c #242632",
";% c #6681CC",
">% c #2D3855",
",% c #424E77",
"'% c #8388B9",
")% c #7C83B8",
"!% c #383E58",
"~% c #404969",
"{% c #434A63",
"]% c #5C6485",
"^% c #717AA6",
"/% c #666E95",
"(% c #5A5F76",
"_% c #4A4C56",
":% c #656B7F",
"<% c #606A84",
"[% c #3B4159",
"}% c #3C4B76",
"|% c #44578F",
"1% c #3C4D7E",
"2% c #364570",
"3% c #303C61",
"4% c #2E364D",
"5% c #323546",
"6% c #444A66",
"7% c #8399CC",
"8% c #6E819E",
"9% c #3E507C",
"0% c #344169",
"a% c #6A79B5",
"b% c #7376A1",
"c% c #565C7B",
"d% c #434D69",
"e% c #4F597A",
"f% c #49506B",
"g% c #5B6381",
"h% c #535C81",
"i% c #5B678F",
"j% c #454B66",
"k% c #40465A",
"l% c #474E69",
"m% c #4D5261",
"n% c #282A2F",
"o% c #24293C",
"p% c #333D59",
"q% c #303C5F",
"r% c #2D2F3B",
"s% c #373D54",
"t% c #3C4057",
"u% c #3F5083",
"v% c #849ABA",
"w% c #334373",
"x% c #344578",
"y% c #525D8F",
"z% c #686E9B",
"A% c #5B6282",
"B% c #424A67",
"C% c #4D5B81",
"D% c #444D65",
"E% c #434B68",
"F% c #5B668C",
"G% c #58638C",
"H% c #465074",
"I% c #414B6E",
"J% c #2F364B",
"K% c #252830",
"L% c #3F4046",
"M% c #343740",
"N% c #191A1E",
"O% c #1A1B21",
"P% c #2D303E",
"Q% c #373E59",
"R% c #3F4154",
"S% c #3C3D50",
"T% c #262C3D",
"U% c #495672",
"V% c #6477A2",
"W% c #3D4D7A",
"X% c #33426E",
"Y% c #363F5F",
"Z% c #4B5171",
"`% c #525875",
" & c #4F5774",
".& c #444C68",
"+& c #485375",
"@& c #3E455E",
"#& c #454F70",
"$& c #56638A",
"%& c #383F57",
"&& c #313A57",
"*& c #3D496E",
"=& c #323D60",
"-& c #364265",
";& c #222736",
">& c #2C2F3D",
",& c #31374C",
"'& c #33374A",
")& c #3A3C4D",
"!& c #1D1F26",
"~& c #303850",
"{& c #4E5B8D",
"]& c #43496D",
"^& c #344068",
"/& c #3B466A",
"(& c #353E5D",
"_& c #49506E",
":& c #454A64",
"<& c #414864",
"[& c #495372",
"}& c #292D3B",
"|& c #3B3D49",
"1& c #1F2128",
"2& c #363C51",
"3& c #1D212F",
"4& c #272A36",
"5& c #2B3146",
"6& c #2F364E",
"7& c #383B4E",
"8& c #3F496A",
"9& c #303751",
"0& c #3A3E55",
"a& c #3C3E52",
"b& c #3A4059",
"c& c #394260",
"d& c #2C334A",
"e& c #383F56",
"f& c #383D51",
"g& c #353A4C",
"h& c #32384C",
"i& c #31374B",
"j& c #333950",
"k& c #282E41",
"l& c #202431",
"m& c #1A1B1F",
"n& c #262B37",
"o& c #282C3D",
"p& c #303547",
"q& c #393D53",
"r& c #32384E",
"s& c #343B54",
"t& c #292C38",
"u& c #2F3242",
"v& c #2C303F",
"w& c #2C2F3C",
"x& c #252832",
"y& c #2D313E",
"z& c #262935",
"A& c #2A2E3C",
"B& c #21242F",
"C& c #20242E",
"D& c #222429",
"E& c #262A3B",
"F& c #1A1C22",
"G& c #282C3B",
"H& c #30364C",
"I& c #333A54",
"J& c #2A3044",
"K& c #272A37",
"L& c #292E3F",
"M& c #2A2F42",
"N& c #272D3F",
"O& c #1E212A",
"P& c #1B1C1F",
"Q& c #1C1E21",
"R& c #1D1F22",
"S& c #22242D",
"T& c #232631",
"U& c #222734",
"V& c #1C1D23",
"W& c #1E1F22",
"X& c #1C1D21",
" . + @ # $ % & * ",
" = - ; > , ' ) ! ~ { ] ^ / ( ",
" _ : < [ } | 1 2 3 4 5 6 7 8 9 0 ",
" a b c d e f g h i j k k l m n o p q r s ",
" t u v w x y z A B C k D k E F G H I J K L M ",
" N O P Q R S T U V W X k Y k Z ` ...+.@.#.$.%.&. ",
" *.=.-.;.>.,.'.).!.~.{.k k ].k k ^./.(._.:.<.[.}.|.1. ",
" 2.3.4.5.6.7.8.9.0.a.b.k c.d.e.k f.g.h.i.j.k.l.m.n.o. ",
" p.q.r.s.t.u.v.w.x.y.z.k k A.B.C.k D.E.6 F.G.H.I.J.K.L.0 ",
" M.N.O.P.Q.R.S.T.U.V.W.X.k Y.Z.`. +k .+++@+#+$+%+&+*+=+-+;+>+ ",
" ,+'+)+!+~+{+]+^+/+(+_+:+k <+[+}+|+k k 1+2+3+4+5+6+7+8+9+0+a+ ",
" b+c+d+e+f+g+h+i+j+k+l+k m+n+o+p+q+r+k s+t+u+v+w+x+y+z+A+B+C+ ",
"D+E+F+G+H+I+J+K+L+M+N+k O+P+Q+R+S+T+U+k k V+W+X+Y+Z+`+ @.@+@@@#@",
"$@%@&@*@=@-@;@>@,@'@)@k !@~@{@]@^@/@(@_@k :@<@[@}@|@1@2@3@4@5@6@",
"7@8@9@0@a@b@c@d@e@f@k g@h@i@j@k@l@m@n@o@k p@q@r@s@t@u@v@w@x@y@z@",
"A@B@C@D@E@F@G@H@I@k k J@K@L@M@N@O@P@Q@R@k S@T@U@V@W@X@Y@Z@`@ #.#",
"+#@###$#%#&#*#=#-#k ;#>#,#'#)#!#~#{#]#^#k k /#(#_#:#<#[#}#|#1#2#",
"3#4#5#6#7#8#9#0#k a#k k k k k k k k k k k k b#c#d#e#f#g#h#i#j#k#",
"l#m#n#o#p#q#r#s#k t#u#v#w#x#y#z#A#B#C#D#E#k F#G#H#I#J#K#L#M#N#O#",
"P#Q#R#S#T#U#V#k k W#X#Y#Z#`# $.$+$@$#$$$%$k k &$*$=$-$;$>$,$'$)$",
" !$~${$]$^$/$k ($_$:$<$[$}$|$1$2$3$4$5$6$7$k 8$9$0$a$b$c$d$e$ ",
" f$g$h$i$j$k$k l$m$n$o$p$q$r$s$t$u$v$w$x$y$k z$A$B$C$D$E$F$G$ ",
" H$I$J$K$L$k M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$`$k k %.%+%@%#%$%%% ",
" &%*%=%-%k ;%>%,%'%)%!%~%{%]%^%/%(%_%:%<%[%k }%|%1%2%3%4% ",
" 5%6%k k 7%8%9%0%a%b%c%d%e%f%g%h%i%j%k%l%k m%n%o%p%q% ",
" r%s%k t%u%v%D.w%x%y%z%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O% ",
" P%Q%R%S%T%U%V%W%X%Y%Z%`% &.&+&@&#&$&%&&&*&=&-&;& ",
" >&,&'&)&!&~&{&]&^&/&(&_&:&<&%&[&}&|&1&2&;&3& ",
" 4&5&6&7&8&9&0&a&b&c&d&e&f&g&h&i&j&k&l&m& ",
" n&o&p&q&r&s&t&u&v&w&x&y&z&A&B&C& ",
" D&E&F&G&t&H&I&J&K&L&M&N&O&P& ",
" Q&R&S&T&U&V&W&X& "};

9
debian/rdairplay.desktop vendored Normal file
View File

@@ -0,0 +1,9 @@
[Desktop Entry]
Encoding=UTF-8
Name=rdairplay
Comment=Rivendell Airplay
Exec=rdairplay
Terminal=false
Type=Application
Icon=/usr/share/srlabs/rdairplay.xpm
Categories=Application;AudioVideo;

738
debian/rdairplay.xpm vendored Normal file
View File

@@ -0,0 +1,738 @@
/* XPM */
static char * rdairplay_xpm[] = {
"32 32 703 2",
" c None",
". c #3D485E",
"+ c #3D485F",
"@ c #364156",
"# c #3B475D",
"$ c #414F69",
"% c #37435A",
"& c #36425B",
"* c #3B4A68",
"= c #2F3645",
"- c #4B5871",
"; c #505D74",
"> c #4D586E",
", c #454F62",
"' c #606E88",
") c #5B6985",
"! c #414D64",
"~ c #536280",
"{ c #4E5F81",
"] c #3F4E69",
"^ c #435478",
"/ c #384868",
"( c #2E384D",
"_ c #424D5E",
": c #576375",
"< c #57606E",
"[ c #525B6A",
"} c #778192",
"| c #3B414B",
"1 c #8A98A8",
"2 c #404753",
"3 c #758398",
"4 c #4B5669",
"5 c #58667F",
"6 c #51607E",
"7 c #404D68",
"8 c #47587A",
"9 c #394868",
"0 c #364566",
"a c #30353E",
"b c #E11313",
"c c #484F5D",
"d c #8F96A5",
"e c #3D414E",
"f c #A1A6B3",
"g c #4D5363",
"h c #8992A1",
"i c #686E79",
"j c #545E70",
"k c #8494A9",
"l c #3C4454",
"m c #586581",
"n c #6478A1",
"o c #3D4964",
"p c #46587D",
"q c #4A5D87",
"r c #323E5C",
"s c #354464",
"t c #23262D",
"u c #636F7E",
"v c #222531",
"w c #C7C8CD",
"x c #393C48",
"y c #A3A6B3",
"z c #7A7D86",
"A c #404557",
"B c #BEC3D0",
"C c #535768",
"D c #434B5E",
"E c #5E6983",
"F c #3D465C",
"G c #6A7EA7",
"H c #506285",
"I c #45567B",
"J c #445983",
"K c #3A4A70",
"L c #293246",
"M c #404B5C",
"N c #48505C",
"O c #6F7A88",
"P c #20222B",
"Q c #DBDDE2",
"R c #50535F",
"S c #6C6E76",
"T c #D1D3DC",
"U c #2A2E3F",
"V c #505564",
"W c #C4C9D3",
"X c #5C6374",
"Y c #3C4F7A",
"Z c #374668",
"` c #2A2E35",
" . c #54627A",
".. c #9299A1",
"+. c #3C404D",
"@. c #373E55",
"#. c #CCCDD6",
"$. c #767989",
"%. c #3C435E",
"&. c #A8AAB4",
"*. c #A8AAB8",
"=. c #363B4E",
"-. c #565A68",
";. c #C2CEDA",
">. c #353E56",
",. c #54617C",
"'. c #86A2D2",
"). c #5E6F96",
"!. c #4A557A",
"~. c #45567D",
"{. c #5975B2",
"]. c #3A4362",
"^. c #202023",
"/. c #627183",
"(. c #394152",
"_. c #B8BBC3",
":. c #848591",
"<. c #1C202C",
"[. c #A2A8BE",
"}. c #C9CAD3",
"|. c #212431",
"1. c #4D5164",
"2. c #D7D7DB",
"3. c #8B8C95",
"4. c #36384A",
"5. c #4D5160",
"6. c #8495AC",
"7. c #424C72",
"8. c #3B4560",
"9. c #5F749D",
"0. c #6A86B9",
"a. c #526288",
"b. c #5F6D9F",
"c. c #5572B5",
"d. c #2F3D5B",
"e. c #47566D",
"f. c #7D8C9E",
"g. c #33343A",
"h. c #C6C7CF",
"i. c #6E7792",
"j. c #424A62",
"k. c #494C57",
"l. c #DFE0E3",
"m. c #8C8E9C",
"n. c #22242C",
"o. c #616471",
"p. c #DDDEE2",
"q. c #838692",
"r. c #404357",
"s. c #8293AB",
"t. c #97AFD1",
"u. c #444C73",
"v. c #4A5579",
"w. c #607DB6",
"x. c #5977B2",
"y. c #464E6C",
"z. c #4D6399",
"A. c #363F4B",
"B. c #4B596D",
"C. c #8492A4",
"D. c #363A46",
"E. c #CFD0D4",
"F. c #3C4256",
"G. c #5F6169",
"H. c #555B77",
"I. c #8E909D",
"J. c #DCDCE3",
"K. c #717385",
"L. c #24252D",
"M. c #616472",
"N. c #E8EBF3",
"O. c #A0A9BC",
"P. c #424C70",
"Q. c #8BA3C8",
"R. c #96B6E9",
"S. c #647AA9",
"T. c #293044",
"U. c #46506E",
"V. c #667BB3",
"W. c #313A54",
"X. c #1F242E",
"Y. c #222326",
"Z. c #657B92",
"`. c #3C4558",
" + c #919FB2",
".+ c #262C3C",
"++ c #BEC1CA",
"@+ c #384467",
"#+ c #C9CDDC",
"$+ c #2A2D3A",
"%+ c #3D4253",
"&+ c #C5C6CD",
"*+ c #D6D6DF",
"=+ c #53586E",
"-+ c #34384B",
";+ c #4E5365",
">+ c #C1D2E5",
",+ c #505A79",
"'+ c #212331",
")+ c #3F486A",
"!+ c #7E9BD4",
"~+ c #84AAEF",
"{+ c #5A70A8",
"]+ c #252C3C",
"^+ c #242938",
"/+ c #5D82D2",
"(+ c #48649F",
"_+ c #273147",
":+ c #6F8398",
"<+ c #333841",
"[+ c #A0ABB5",
"}+ c #283454",
"|+ c #99A1B7",
"1+ c #21283B",
"2+ c #EBECF2",
"3+ c #71778C",
"4+ c #2D344D",
"5+ c #4C4E5D",
"6+ c #D4D8E4",
"7+ c #BDC0CB",
"8+ c #41465B",
"9+ c #454E73",
"0+ c #464C60",
"a+ c #A3BEDE",
"b+ c #6876A0",
"c+ c #353B57",
"d+ c #272C3C",
"e+ c #3E4C6D",
"f+ c #7DA2EA",
"g+ c #6487CB",
"h+ c #2B3550",
"i+ c #3A4E7A",
"j+ c #5170A4",
"k+ c #4C4E51",
"l+ c #8096AC",
"m+ c #2C323F",
"n+ c #B7C4D0",
"o+ c #3C4A6C",
"p+ c #DCDCE1",
"q+ c #5D6A8F",
"r+ c #242D47",
"s+ c #DBDBDE",
"t+ c #575D70",
"u+ c #3F4A70",
"v+ c #404456",
"w+ c #DFE5F3",
"x+ c #D5E0F0",
"y+ c #3D4453",
"z+ c #3A4568",
"A+ c #67799B",
"B+ c #9EC0F4",
"C+ c #6D87B6",
"D+ c #62709E",
"E+ c #555F8A",
"F+ c #343A4F",
"G+ c #3F537E",
"H+ c #597DC5",
"I+ c #303E5C",
"J+ c #3A4357",
"K+ c #445072",
"L+ c #333C52",
"M+ c #44494F",
"N+ c #7C95A3",
"O+ c #262E3D",
"P+ c #A0A9B1",
"Q+ c #5E6980",
"R+ c #C8CAD2",
"S+ c #9BA3B7",
"T+ c #2E3445",
"U+ c #D8D9DE",
"V+ c #CAD0E2",
"W+ c #2B3142",
"X+ c #455681",
"Y+ c #565E72",
"Z+ c #BFCFD9",
"`+ c #B6CCE5",
" @ c #5B698A",
".@ c #56638D",
"+@ c #6A7EAB",
"@@ c #7B9DD7",
"#@ c #7DA1E1",
"$@ c #475A80",
"%@ c #677BB2",
"&@ c #6685C4",
"*@ c #6791E1",
"=@ c #7BA5EB",
"-@ c #4B5C7B",
";@ c #1E2026",
">@ c #444D55",
",@ c #79868D",
"'@ c #4B5259",
")@ c #6B7786",
"!@ c #788AAD",
"~@ c #EBEDF2",
"{@ c #66779C",
"]@ c #7B8DAB",
"^@ c #D9DCE2",
"/@ c #C2CEE3",
"(@ c #464F63",
"_@ c #374458",
":@ c #546173",
"<@ c #97ADC6",
"[@ c #B5D5F7",
"}@ c #8BA3C4",
"|@ c #383F4C",
"1@ c #515D77",
"2@ c #455981",
"3@ c #202530",
"4@ c #242832",
"5@ c #2D374D",
"6@ c #55729B",
"7@ c #A9CAD7",
"8@ c #677A89",
"9@ c #465159",
"0@ c #616D7B",
"a@ c #88909B",
"b@ c #2F3747",
"c@ c #525C70",
"d@ c #4F638E",
"e@ c #B3B5BA",
"f@ c #BDC0C7",
"g@ c #313D4E",
"h@ c #6C80A8",
"i@ c #DFEDF4",
"j@ c #A6BBCB",
"k@ c #374869",
"l@ c #232A39",
"m@ c #526286",
"n@ c #7288A8",
"o@ c #A0C5F3",
"p@ c #4D6083",
"q@ c #8DB7F3",
"r@ c #7DADF3",
"s@ c #7199CA",
"t@ c #7D9DC6",
"u@ c #5C71A3",
"v@ c #424E66",
"w@ c #576478",
"x@ c #5A6B87",
"y@ c #414954",
"z@ c #4F5E73",
"A@ c #B0BCC5",
"B@ c #363F4C",
"C@ c #D3E3F0",
"D@ c #2A3242",
"E@ c #51648B",
"F@ c #DEE0E4",
"G@ c #313E5E",
"H@ c #374871",
"I@ c #62728D",
"J@ c #C5E2F2",
"K@ c #A2BCD1",
"L@ c #596B91",
"M@ c #272C38",
"N@ c #484F64",
"O@ c #6A7C9E",
"P@ c #8EBBEB",
"Q@ c #819FC2",
"R@ c #77869D",
"S@ c #454F65",
"T@ c #2E3647",
"U@ c #354258",
"V@ c #89AABE",
"W@ c #CCE9F5",
"X@ c #92B3C9",
"Y@ c #4D5E76",
"Z@ c #242935",
"`@ c #17181C",
" # c #4B556B",
".# c #515F72",
"+# c #89939D",
"@# c #8E9AB4",
"## c #252B3F",
"$# c #42568E",
"%# c #56667D",
"&# c #D9F3FC",
"*# c #BED0D8",
"=# c #6F7586",
"-# c #30333F",
";# c #515667",
"># c #88A5B6",
",# c #C5E7F6",
"'# c #A1B7C2",
")# c #6E7D8C",
"!# c #5D6D8D",
"~# c #677BA9",
"{# c #6C82AE",
"]# c #97B5D5",
"^# c #A2C5E9",
"/# c #8DB5F4",
"(# c #6B87C8",
"_# c #3A4665",
":# c #3F4862",
"<# c #545D78",
"[# c #4C5569",
"}# c #2B3A58",
"|# c #798AAF",
"1# c #D4DEF0",
"2# c #454D5E",
"3# c #374D81",
"4# c #E6EDF2",
"5# c #9FAFCF",
"6# c #29324C",
"7# c #435283",
"8# c #4D5566",
"9# c #B2C3D0",
"0# c #CAE4F1",
"a# c #A3B5CB",
"b# c #4F5464",
"c# c #656975",
"d# c #69768D",
"e# c #85A2BF",
"f# c #9EC5F4",
"g# c #7694C8",
"h# c #3E4B6B",
"i# c #252A37",
"j# c #1E2028",
"k# c #16171C",
"l# c #1F2229",
"m# c #384564",
"n# c #343D54",
"o# c #3A4158",
"p# c #616D94",
"q# c #868EAA",
"r# c #49567A",
"s# c #2A3F72",
"t# c #A6AEBF",
"u# c #999EB2",
"v# c #435A8F",
"w# c #8690A5",
"x# c #D0DFF5",
"y# c #7B88AC",
"z# c #353E5B",
"A# c #454F6E",
"B# c #464E62",
"C# c #A4B8D4",
"D# c #A9C6F3",
"E# c #8599C5",
"F# c #40424B",
"G# c #7F89A4",
"H# c #97ABD1",
"I# c #7A98DC",
"J# c #7293E3",
"K# c #5F7ABB",
"L# c #627BB1",
"M# c #586988",
"N# c #2B2F3B",
"O# c #16171B",
"P# c #18191C",
"Q# c #36405E",
"R# c #2D3244",
"S# c #909ACA",
"T# c #3D5189",
"U# c #475070",
"V# c #ADB5E0",
"W# c #7D87B1",
"X# c #262F49",
"Y# c #6876A1",
"Z# c #ABB7E6",
"`# c #8792BF",
" $ c #545D7F",
".$ c #3D4257",
"+$ c #404352",
"@$ c #67708B",
"#$ c #879BDB",
"$$ c #8796C2",
"%$ c #525970",
"&$ c #3D414C",
"*$ c #373C4D",
"=$ c #404C6D",
"-$ c #556BA5",
";$ c #536DB0",
">$ c #5874BB",
",$ c #5770B2",
"'$ c #344164",
")$ c #515878",
"!$ c #313545",
"~$ c #5E617B",
"{$ c #7E89B8",
"]$ c #2B334C",
"^$ c #48506F",
"/$ c #A8ADDC",
"($ c #252A3B",
"_$ c #2B3048",
":$ c #636C93",
"<$ c #919AC9",
"[$ c #8792BE",
"}$ c #51576E",
"|$ c #575B6C",
"1$ c #5E5F69",
"2$ c #565B6C",
"3$ c #6F7BA2",
"4$ c #6377B4",
"5$ c #6F80AC",
"6$ c #5B6581",
"7$ c #4B5169",
"8$ c #535E7E",
"9$ c #6373A1",
"0$ c #566796",
"a$ c #3D4866",
"b$ c #38476D",
"c$ c #37476F",
"d$ c #394059",
"e$ c #545971",
"f$ c #202128",
"g$ c #696B8C",
"h$ c #656FA5",
"i$ c #2A3A6B",
"j$ c #565F84",
"k$ c #9297CD",
"l$ c #414B72",
"m$ c #37405F",
"n$ c #525D80",
"o$ c #70779D",
"p$ c #8993C2",
"q$ c #686F8E",
"r$ c #525563",
"s$ c #525462",
"t$ c #4D4E58",
"u$ c #68759C",
"v$ c #52649C",
"w$ c #4F64A0",
"x$ c #3A4872",
"y$ c #2A324C",
"z$ c #1D212D",
"A$ c #21232C",
"B$ c #3A3C47",
"C$ c #303444",
"D$ c #191B1E",
"E$ c #34394B",
"F$ c #404764",
"G$ c #484B5E",
"H$ c #242632",
"I$ c #8596DE",
"J$ c #6681CC",
"K$ c #2D3855",
"L$ c #424E77",
"M$ c #7C83B8",
"N$ c #383E58",
"O$ c #404969",
"P$ c #434A63",
"Q$ c #5C6485",
"R$ c #717AA6",
"S$ c #666E95",
"T$ c #5A5F76",
"U$ c #4A4C56",
"V$ c #606A84",
"W$ c #3B4159",
"X$ c #323B56",
"Y$ c #3C4B76",
"Z$ c #44578F",
"`$ c #3C4D7E",
" % c #364570",
".% c #303C61",
"+% c #2E364D",
"@% c #323546",
"#% c #444A66",
"$% c #3D3F4F",
"%% c #404A66",
"&% c #8399CC",
"*% c #6E819E",
"=% c #3E507C",
"-% c #6A79B5",
";% c #7376A1",
">% c #565C7B",
",% c #434D69",
"'% c #4F597A",
")% c #49506B",
"!% c #5B6381",
"~% c #535C81",
"{% c #5B678F",
"]% c #40465A",
"^% c #474E69",
"/% c #5A688F",
"(% c #4D5261",
"_% c #282A2F",
":% c #24293C",
"<% c #333D59",
"[% c #303C5F",
"}% c #2D2F3B",
"|% c #373D54",
"1% c #474A5F",
"2% c #3C4057",
"3% c #3F5083",
"4% c #849ABA",
"5% c #344578",
"6% c #525D8F",
"7% c #686E9B",
"8% c #5B6282",
"9% c #424A67",
"0% c #4D5B81",
"a% c #444D65",
"b% c #434B68",
"c% c #5B668C",
"d% c #58638C",
"e% c #465074",
"f% c #414B6E",
"g% c #2F364B",
"h% c #252830",
"i% c #3F4046",
"j% c #343740",
"k% c #191A1E",
"l% c #1A1B21",
"m% c #2D303E",
"n% c #373E59",
"o% c #3F4154",
"p% c #3C3D50",
"q% c #262C3D",
"r% c #495672",
"s% c #6477A2",
"t% c #33426E",
"u% c #363F5F",
"v% c #4B5171",
"w% c #525875",
"x% c #4F5774",
"y% c #444C68",
"z% c #485375",
"A% c #3E455E",
"B% c #454F70",
"C% c #56638A",
"D% c #383F57",
"E% c #313A57",
"F% c #3D496E",
"G% c #323D60",
"H% c #364265",
"I% c #222736",
"J% c #2C2F3D",
"K% c #31374C",
"L% c #33374A",
"M% c #3A3C4D",
"N% c #1D1F26",
"O% c #303850",
"P% c #4E5B8D",
"Q% c #43496D",
"R% c #344068",
"S% c #3B466A",
"T% c #353E5D",
"U% c #49506E",
"V% c #454A64",
"W% c #414864",
"X% c #495372",
"Y% c #292D3B",
"Z% c #3B3D49",
"`% c #1F2128",
" & c #363C51",
".& c #1D212F",
"+& c #272A36",
"@& c #2B3146",
"#& c #2F364E",
"$& c #383B4E",
"%& c #3F496A",
"&& c #303751",
"*& c #3A3E55",
"=& c #3C3E52",
"-& c #3A4059",
";& c #394260",
">& c #2C334A",
",& c #383F56",
"'& c #383D51",
")& c #353A4C",
"!& c #32384C",
"~& c #31374B",
"{& c #333950",
"]& c #282E41",
"^& c #202431",
"/& c #1A1B1F",
"(& c #262B37",
"_& c #282C3D",
":& c #303547",
"<& c #393D53",
"[& c #32384E",
"}& c #343B54",
"|& c #292C38",
"1& c #2F3242",
"2& c #2C303F",
"3& c #2C2F3C",
"4& c #252832",
"5& c #2D313E",
"6& c #262935",
"7& c #2A2E3C",
"8& c #21242F",
"9& c #20242E",
"0& c #222429",
"a& c #262A3B",
"b& c #1A1C22",
"c& c #282C3B",
"d& c #30364C",
"e& c #333A54",
"f& c #2A3044",
"g& c #272A37",
"h& c #292E3F",
"i& c #2A2F42",
"j& c #272D3F",
"k& c #1E212A",
"l& c #1B1C1F",
"m& c #1C1E21",
"n& c #1D1F22",
"o& c #22242D",
"p& c #232631",
"q& c #222734",
"r& c #1C1D23",
"s& c #1E1F22",
"t& c #1C1D21",
" . + @ # $ % & * ",
" = - ; > , ' ) ! ~ { ] ^ / ( ",
" _ : < [ } | 1 2 3 4 5 6 7 8 9 0 ",
" a b b c d e f g h i j k l m n o p q r s ",
" t u b b v w x y z A B C D b E F G H I J K L ",
" M N O b b P Q R S T U V W X b b b b b b b b Y Z ",
" ` ...+.b b @.#.$.%.&.*.=.-.;.b >.,.'.).!.~.{.b ].^. ",
" /.(._.b :.b <.[.}.|.1.2.3.4.5.b 6.7.8.9.0.a.b.b c.d. ",
" e.f.g.h.b i.b j.k.l.m.n.o.p.q.r.b s.t.6 u.v.w.x.b y.z.0 ",
" A.B.C.D.E.b F.b G.H.I.J.K.L.M.N.O.b P.Q.R.S.T.U.V.b b W.X.Y. ",
" Z.`. +.+++b @+b #+$+%+&+*+=+-+;+>+b ,+'+)+!+~+{+]+^+b /+(+_+ ",
" :+<+[+}+|+b 1+b 2+3+4+5+6+7+8+9+0+b a+b+c+d+e+f+g+b b h+i+j+ ",
"k+l+m+n+o+b p+q+r+b s+t+u+v+w+x+y+z+b A+B+C+D+E+F+G+b H+I+J+K+L+",
"M+N+O+P+Q+b R+S+T+b U+V+W+X+Y+Z+`+ @b .@+@@@#@$@b b %@&@*@=@-@;@",
">@,@'@)@b b !@~@{@b ]@^@/@(@_@:@<@[@}@b |@1@b b b 2@3@4@5@6@7@8@",
"9@0@a@b@b c@d@e@f@b g@h@i@j@k@l@m@n@o@b b b b p@q@r@s@t@u@v@w@x@",
"y@z@A@B@b C@D@E@F@b G@H@I@J@K@L@M@N@O@b P@Q@R@S@T@U@V@W@X@Y@Z@`@",
" #.#+#b b b b b b b @###$#%#&#*#=#-#;#b >#,#'#)#!#~#{#]#^#/#(#_#",
":#<#[#b }#|#1#2#3#b 4#5#6#7#8#9#0#a#b#b c#d#e#f#g#h#i#j#k#l#m#n#",
"o#p#b q#r#s#t#u#v#b w#x#y#z#A#B#C#D#E#b F#5.G#H#I#J#K#L#M#N#O#P#",
" Q#b R#S#T#U#V#W#b X#Y#Z#`# $.$+$@$#$b $$%$D.&$*$=$-$;$>$,$'$ ",
" b )$!$~${$]$^$/$b ($_$:$<$[$}$|$1$2$3$b 4$5$6$7$8$9$0$a$b$c$ ",
"b b d$e$f$g$h$i$j$k$b l$m$n$o$p$q$r$s$t$b u$v$w$x$y$z$A$B$C$D$ ",
"b b E$F$G$H$I$J$K$L$b M$N$O$P$Q$R$S$T$U$b V$W$X$Y$Z$`$ %.%+% ",
"b b @%#%$%%%&%*%=%b -%;%>%,%'%)%!%~%{%b ]%^%/%(%_%:%<%[% ",
" }%|%1%2%3%4%s.b 5%6%7%8%9%0%a%b%c%d%e%f%g%h%i%j%k%l% ",
" m%n%o%p%q%r%s%b t%u%v%w%x%y%z%A%B%C%D%E%F%G%H%I% ",
" J%K%L%M%N%O%P%Q%R%S%T%U%V%W%D%X%Y%Z%`% &I%.& ",
" +&@&#&$&%&&&*&=&-&;&>&,&'&)&!&~&{&]&^&/& ",
" (&_&:&<&[&}&|&1&2&3&4&5&6&7&8&9& ",
" 0&a&b&c&|&d&e&f&g&h&i&j&k&l& ",
" m&n&o&p&q&r&s&t& "};

9
debian/rdcatch.desktop vendored Normal file
View File

@@ -0,0 +1,9 @@
[Desktop Entry]
Encoding=UTF-8
Name=rdcatch
Comment=Rivendell Catch
Exec=rdcatch
Terminal=false
Type=Application
Icon=/usr/share/srlabs/rdcatch.xpm
Categories=Application;AudioVideo;

780
debian/rdcatch.xpm vendored Normal file
View File

@@ -0,0 +1,780 @@
/* XPM */
static char * rdcatch_xpm[] = {
"32 32 745 2",
" c None",
". c #3D485E",
"+ c #3D485F",
"@ c #364156",
"# c #3B475D",
"$ c #414F69",
"% c #37435A",
"& c #36425B",
"* c #3B4A68",
"= c #2F3645",
"- c #4B5871",
"; c #505D74",
"> c #4D586E",
", c #454F62",
"' c #606E88",
") c #5B6985",
"! c #414D64",
"~ c #536280",
"{ c #4E5F81",
"] c #3F4E69",
"^ c #435478",
"/ c #384868",
"( c #2E384D",
"_ c #424D5E",
": c #576375",
"< c #57606E",
"[ c #525B6A",
"} c #778192",
"| c #3B414B",
"1 c #8A98A8",
"2 c #404753",
"3 c #758398",
"4 c #4B5669",
"5 c #58667F",
"6 c #51607E",
"7 c #404D68",
"8 c #47587A",
"9 c #394868",
"0 c #364566",
"a c #30353E",
"b c #485468",
"c c #677281",
"d c #484F5D",
"e c #8F96A5",
"f c #3D414E",
"g c #A1A6B3",
"h c #4D5363",
"i c #8992A1",
"j c #686E79",
"k c #545E70",
"l c #8494A9",
"m c #3C4454",
"n c #586581",
"o c #6478A1",
"p c #3D4964",
"q c #46587D",
"r c #4A5D87",
"s c #323E5C",
"t c #354464",
"u c #23262D",
"v c #636F7E",
"w c #404551",
"x c #9BA1A7",
"y c #222531",
"z c #C7C8CD",
"A c #393C48",
"B c #A3A6B3",
"C c #7A7D86",
"D c #404557",
"E c #BEC3D0",
"F c #535768",
"G c #434B5E",
"H c #8FA0B8",
"I c #5E6983",
"J c #3D465C",
"K c #6A7EA7",
"L c #506285",
"M c #45567B",
"N c #445983",
"O c #3A4A70",
"P c #293246",
"Q c #404B5C",
"R c #48505C",
"S c #6F7A88",
"T c #636570",
"U c #888A94",
"V c #20222B",
"W c #DBDDE2",
"X c #50535F",
"Y c #6C6E76",
"Z c #D1D3DC",
"` c #2A2E3F",
" . c #505564",
".. c #C4C9D3",
"+. c #5C6374",
"@. c #E11313",
"#. c #425379",
"$. c #3E4C6F",
"%. c #3C4F7A",
"&. c #374668",
"*. c #2A2E35",
"=. c #54627A",
"-. c #9299A1",
";. c #3C404D",
">. c #878996",
",. c #878A99",
"'. c #373E55",
"). c #CCCDD6",
"!. c #767989",
"~. c #3C435E",
"{. c #A8AAB4",
"]. c #A8AAB8",
"^. c #363B4E",
"/. c #353E56",
"(. c #54617C",
"_. c #86A2D2",
":. c #5E6F96",
"<. c #3E4E75",
"[. c #3A4362",
"}. c #202023",
"|. c #627183",
"1. c #394152",
"2. c #B8BBC3",
"3. c #2A2D39",
"4. c #848591",
"5. c #A0A3B3",
"6. c #1C202C",
"7. c #A2A8BE",
"8. c #C9CAD3",
"9. c #212431",
"0. c #4D5164",
"a. c #4D5160",
"b. c #AEBFD0",
"c. c #8495AC",
"d. c #424C72",
"e. c #3B4560",
"f. c #5F749D",
"g. c #6A86B9",
"h. c #526288",
"i. c #5F6D9F",
"j. c #415582",
"k. c #5572B5",
"l. c #2F3D5B",
"m. c #47566D",
"n. c #7D8C9E",
"o. c #33343A",
"p. c #C6C7CF",
"q. c #242A3A",
"r. c #6E7792",
"s. c #CFD1D8",
"t. c #424A62",
"u. c #494C57",
"v. c #DFE0E3",
"w. c #8C8E9C",
"x. c #DDDEE2",
"y. c #838692",
"z. c #404357",
"A. c #4F5777",
"B. c #8293AB",
"C. c #97AFD1",
"D. c #444C73",
"E. c #4A5579",
"F. c #607DB6",
"G. c #5977B2",
"H. c #333E59",
"I. c #464E6C",
"J. c #4D6399",
"K. c #363F4B",
"L. c #4B596D",
"M. c #8492A4",
"N. c #363A46",
"O. c #CFD0D4",
"P. c #3F4C6D",
"Q. c #3C4256",
"R. c #ECEEF5",
"S. c #5F6169",
"T. c #555B77",
"U. c #717385",
"V. c #24252D",
"W. c #616472",
"X. c #E8EBF3",
"Y. c #A0A9BC",
"Z. c #222430",
"`. c #424C70",
" + c #8BA3C8",
".+ c #96B6E9",
"++ c #647AA9",
"@+ c #293044",
"#+ c #46506E",
"$+ c #667BB3",
"%+ c #6A8CD6",
"&+ c #7090DC",
"*+ c #313A54",
"=+ c #1F242E",
"-+ c #222326",
";+ c #657B92",
">+ c #3C4558",
",+ c #919FB2",
"'+ c #262C3C",
")+ c #BEC1CA",
"!+ c #676C7D",
"~+ c #384467",
"{+ c #ADADB5",
"]+ c #3D4253",
"^+ c #C5C6CD",
"/+ c #D6D6DF",
"(+ c #53586E",
"_+ c #34384B",
":+ c #4E5365",
"<+ c #C1D2E5",
"[+ c #B1C4E5",
"}+ c #505A79",
"|+ c #212331",
"1+ c #3F486A",
"2+ c #7E9BD4",
"3+ c #84AAEF",
"4+ c #5A70A8",
"5+ c #252C3C",
"6+ c #242938",
"7+ c #4B5F90",
"8+ c #5D82D2",
"9+ c #48649F",
"0+ c #273147",
"a+ c #6F8398",
"b+ c #333841",
"c+ c #A0ABB5",
"d+ c #283454",
"e+ c #99A1B7",
"f+ c #A8AFBF",
"g+ c #21283B",
"h+ c #71778C",
"i+ c #2D344D",
"j+ c #4C4E5D",
"k+ c #D4D8E4",
"l+ c #BDC0CB",
"m+ c #41465B",
"n+ c #454E73",
"o+ c #464C60",
"p+ c #9AAEC8",
"q+ c #A3BEDE",
"r+ c #6876A0",
"s+ c #353B57",
"t+ c #272C3C",
"u+ c #3E4C6D",
"v+ c #7DA2EA",
"w+ c #6487CB",
"x+ c #647CAB",
"y+ c #535E85",
"z+ c #2B3550",
"A+ c #3A4E7A",
"B+ c #5170A4",
"C+ c #4C4E51",
"D+ c #8096AC",
"E+ c #2C323F",
"F+ c #B7C4D0",
"G+ c #3C4A6C",
"H+ c #4C5773",
"I+ c #DCDCE1",
"J+ c #5D6A8F",
"K+ c #9A9EAD",
"L+ c #DBDBDE",
"M+ c #575D70",
"N+ c #3F4A70",
"O+ c #404456",
"P+ c #DFE5F3",
"Q+ c #D5E0F0",
"R+ c #3D4453",
"S+ c #3A4568",
"T+ c #4E5982",
"U+ c #67799B",
"V+ c #9EC0F4",
"W+ c #6D87B6",
"X+ c #62709E",
"Y+ c #555F8A",
"Z+ c #343A4F",
"`+ c #3F537E",
" @ c #668EDD",
".@ c #597DC5",
"+@ c #303E5C",
"@@ c #3A4357",
"#@ c #445072",
"$@ c #333C52",
"%@ c #44494F",
"&@ c #7C95A3",
"*@ c #262E3D",
"=@ c #A0A9B1",
"-@ c #5E6980",
";@ c #324576",
">@ c #C8CAD2",
",@ c #2E3445",
"'@ c #4F5978",
")@ c #D8D9DE",
"!@ c #CAD0E2",
"~@ c #2B3142",
"{@ c #455681",
"]@ c #565E72",
"^@ c #BFCFD9",
"/@ c #B6CCE5",
"(@ c #5B698A",
"_@ c #23293B",
":@ c #56638D",
"<@ c #6A7EAB",
"[@ c #7B9DD7",
"}@ c #7DA1E1",
"|@ c #475A80",
"1@ c #434C67",
"2@ c #5C6A98",
"3@ c #677BB2",
"4@ c #6685C4",
"5@ c #6791E1",
"6@ c #7BA5EB",
"7@ c #4B5C7B",
"8@ c #1E2026",
"9@ c #444D55",
"0@ c #79868D",
"a@ c #4B5259",
"b@ c #6B7786",
"c@ c #B1C0D7",
"d@ c #2B334A",
"e@ c #788AAD",
"f@ c #66779C",
"g@ c #242C39",
"h@ c #7B8DAB",
"i@ c #D9DCE2",
"j@ c #C2CEE3",
"k@ c #464F63",
"l@ c #374458",
"m@ c #546173",
"n@ c #97ADC6",
"o@ c #B5D5F7",
"p@ c #8BA3C4",
"q@ c #323A4F",
"r@ c #383F4C",
"s@ c #515D77",
"t@ c #6E8CBE",
"u@ c #729BE0",
"v@ c #779FE7",
"w@ c #455981",
"x@ c #202530",
"y@ c #242832",
"z@ c #2D374D",
"A@ c #55729B",
"B@ c #A9CAD7",
"C@ c #677A89",
"D@ c #465159",
"E@ c #616D7B",
"F@ c #88909B",
"G@ c #2F3747",
"H@ c #CCD7DF",
"I@ c #525C70",
"J@ c #4F638E",
"K@ c #BDC0C7",
"L@ c #506A96",
"M@ c #313D4E",
"N@ c #6C80A8",
"O@ c #DFEDF4",
"P@ c #A6BBCB",
"Q@ c #374869",
"R@ c #232A39",
"S@ c #526286",
"T@ c #7288A8",
"U@ c #A0C5F3",
"V@ c #87A7CE",
"W@ c #5E7091",
"X@ c #384150",
"Y@ c #282C35",
"Z@ c #4D6083",
"`@ c #8DB7F3",
" # c #7DADF3",
".# c #7199CA",
"+# c #7D9DC6",
"@# c #5C71A3",
"## c #424E66",
"$# c #576478",
"%# c #5A6B87",
"&# c #414954",
"*# c #4F5E73",
"=# c #B0BCC5",
"-# c #363F4C",
";# c #BBCDE3",
"># c #D3E3F0",
",# c #2A3242",
"'# c #DEE0E4",
")# c #B7BEC8",
"!# c #313E5E",
"~# c #374871",
"{# c #62728D",
"]# c #C5E2F2",
"^# c #A2BCD1",
"/# c #596B91",
"(# c #272C38",
"_# c #484F64",
":# c #6A7C9E",
"<# c #89ADDB",
"[# c #8EBBEB",
"}# c #819FC2",
"|# c #77869D",
"1# c #454F65",
"2# c #2E3647",
"3# c #354258",
"4# c #89AABE",
"5# c #CCE9F5",
"6# c #92B3C9",
"7# c #4D5E76",
"8# c #242935",
"9# c #17181C",
"0# c #4B556B",
"a# c #515F72",
"b# c #89939D",
"c# c #6A7B8E",
"d# c #6B7C8D",
"e# c #D8DBE0",
"f# c #5A6682",
"g# c #778195",
"h# c #EAF0F8",
"i# c #8E9AB4",
"j# c #252B3F",
"k# c #42568E",
"l# c #56667D",
"m# c #D9F3FC",
"n# c #BED0D8",
"o# c #6F7586",
"p# c #30333F",
"q# c #515667",
"r# c #6B7794",
"s# c #88A5B6",
"t# c #C5E7F6",
"u# c #A1B7C2",
"v# c #6E7D8C",
"w# c #5D6D8D",
"x# c #677BA9",
"y# c #6C82AE",
"z# c #97B5D5",
"A# c #A2C5E9",
"B# c #8DB5F4",
"C# c #6B87C8",
"D# c #3A4665",
"E# c #3F4862",
"F# c #545D78",
"G# c #4C5569",
"H# c #9DADC8",
"I# c #2B3A58",
"J# c #798AAF",
"K# c #D4DEF0",
"L# c #374D81",
"M# c #6D778D",
"N# c #E6EDF2",
"O# c #9FAFCF",
"P# c #29324C",
"Q# c #435283",
"R# c #4D5566",
"S# c #B2C3D0",
"T# c #CAE4F1",
"U# c #A3B5CB",
"V# c #4F5464",
"W# c #43454F",
"X# c #656975",
"Y# c #69768D",
"Z# c #85A2BF",
"`# c #9EC5F4",
" $ c #7694C8",
".$ c #3E4B6B",
"+$ c #252A37",
"@$ c #1E2028",
"#$ c #16171C",
"$$ c #1F2229",
"%$ c #384564",
"&$ c #343D54",
"*$ c #3A4158",
"=$ c #616D94",
"-$ c #333E5F",
";$ c #868EAA",
">$ c #49567A",
",$ c #2A3F72",
"'$ c #A6AEBF",
")$ c #435A8F",
"!$ c #333D5B",
"~$ c #8690A5",
"{$ c #D0DFF5",
"]$ c #7B88AC",
"^$ c #353E5B",
"/$ c #454F6E",
"($ c #464E62",
"_$ c #A4B8D4",
":$ c #A9C6F3",
"<$ c #8599C5",
"[$ c #676F88",
"}$ c #40424B",
"|$ c #7F89A4",
"1$ c #97ABD1",
"2$ c #7A98DC",
"3$ c #7293E3",
"4$ c #5F7ABB",
"5$ c #627BB1",
"6$ c #586988",
"7$ c #2B2F3B",
"8$ c #16171B",
"9$ c #18191C",
"0$ c #36405E",
"a$ c #5A6896",
"b$ c #2D3244",
"c$ c #909ACA",
"d$ c #3D5189",
"e$ c #475070",
"f$ c #ADB5E0",
"g$ c #374D8F",
"h$ c #262F49",
"i$ c #6876A1",
"j$ c #ABB7E6",
"k$ c #8792BF",
"l$ c #545D7F",
"m$ c #3D4257",
"n$ c #404352",
"o$ c #67708B",
"p$ c #879BDB",
"q$ c #819AE3",
"r$ c #8796C2",
"s$ c #525970",
"t$ c #3D414C",
"u$ c #373C4D",
"v$ c #404C6D",
"w$ c #556BA5",
"x$ c #536DB0",
"y$ c #5874BB",
"z$ c #5770B2",
"A$ c #344164",
"B$ c #3C486C",
"C$ c #515878",
"D$ c #313545",
"E$ c #5E617B",
"F$ c #7E89B8",
"G$ c #2B334C",
"H$ c #48506F",
"I$ c #252A3B",
"J$ c #2B3048",
"K$ c #636C93",
"L$ c #919AC9",
"M$ c #8792BE",
"N$ c #51576E",
"O$ c #575B6C",
"P$ c #5E5F69",
"Q$ c #565B6C",
"R$ c #6F7BA2",
"S$ c #7187CC",
"T$ c #6377B4",
"U$ c #6F80AC",
"V$ c #5B6581",
"W$ c #4B5169",
"X$ c #535E7E",
"Y$ c #6373A1",
"Z$ c #566796",
"`$ c #3D4866",
" % c #38476D",
".% c #37476F",
"+% c #323646",
"@% c #394059",
"#% c #545971",
"$% c #202128",
"%% c #696B8C",
"&% c #656FA5",
"*% c #2A3A6B",
"=% c #565F84",
"-% c #414B72",
";% c #37405F",
">% c #525D80",
",% c #70779D",
"'% c #8993C2",
")% c #686F8E",
"!% c #525563",
"~% c #525462",
"{% c #4D4E58",
"]% c #454A5E",
"^% c #68759C",
"/% c #52649C",
"(% c #4F64A0",
"_% c #3A4872",
":% c #2A324C",
"<% c #1D212D",
"[% c #21232C",
"}% c #3A3C47",
"|% c #303444",
"1% c #191B1E",
"2% c #34394B",
"3% c #404764",
"4% c #484B5E",
"5% c #242632",
"6% c #8596DE",
"7% c #6681CC",
"8% c #2D3855",
"9% c #424E77",
"0% c #8388B9",
"a% c #434A63",
"b% c #5C6485",
"c% c #717AA6",
"d% c #666E95",
"e% c #5A5F76",
"f% c #4A4C56",
"g% c #656B7F",
"h% c #606A84",
"i% c #3B4159",
"j% c #364570",
"k% c #303C61",
"l% c #2E364D",
"m% c #323546",
"n% c #444A66",
"o% c #3D3F4F",
"p% c #404A66",
"q% c #8399CC",
"r% c #6E819E",
"s% c #3E507C",
"t% c #344169",
"u% c #6A79B5",
"v% c #7376A1",
"w% c #565C7B",
"x% c #4D5261",
"y% c #282A2F",
"z% c #24293C",
"A% c #333D59",
"B% c #303C5F",
"C% c #2D2F3B",
"D% c #373D54",
"E% c #474A5F",
"F% c #3C4057",
"G% c #3F5083",
"H% c #849ABA",
"I% c #334373",
"J% c #344578",
"K% c #525D8F",
"L% c #686E9B",
"M% c #5B6282",
"N% c #424A67",
"O% c #4D5B81",
"P% c #444D65",
"Q% c #434B68",
"R% c #5B668C",
"S% c #58638C",
"T% c #465074",
"U% c #414B6E",
"V% c #2F364B",
"W% c #252830",
"X% c #3F4046",
"Y% c #343740",
"Z% c #191A1E",
"`% c #1A1B21",
" & c #2D303E",
".& c #373E59",
"+& c #3F4154",
"@& c #3C3D50",
"#& c #262C3D",
"$& c #495672",
"%& c #6477A2",
"&& c #3D4D7A",
"*& c #33426E",
"=& c #363F5F",
"-& c #4B5171",
";& c #525875",
">& c #4F5774",
",& c #444C68",
"'& c #485375",
")& c #3E455E",
"!& c #454F70",
"~& c #56638A",
"{& c #383F57",
"]& c #313A57",
"^& c #3D496E",
"/& c #323D60",
"(& c #364265",
"_& c #222736",
":& c #2C2F3D",
"<& c #31374C",
"[& c #33374A",
"}& c #3A3C4D",
"|& c #1D1F26",
"1& c #303850",
"2& c #4E5B8D",
"3& c #43496D",
"4& c #344068",
"5& c #3B466A",
"6& c #353E5D",
"7& c #49506E",
"8& c #454A64",
"9& c #414864",
"0& c #495372",
"a& c #292D3B",
"b& c #3B3D49",
"c& c #1F2128",
"d& c #363C51",
"e& c #1D212F",
"f& c #272A36",
"g& c #2B3146",
"h& c #2F364E",
"i& c #383B4E",
"j& c #3F496A",
"k& c #303751",
"l& c #3A3E55",
"m& c #3C3E52",
"n& c #3A4059",
"o& c #394260",
"p& c #2C334A",
"q& c #383F56",
"r& c #383D51",
"s& c #353A4C",
"t& c #32384C",
"u& c #31374B",
"v& c #333950",
"w& c #282E41",
"x& c #202431",
"y& c #1A1B1F",
"z& c #262B37",
"A& c #282C3D",
"B& c #303547",
"C& c #393D53",
"D& c #32384E",
"E& c #343B54",
"F& c #292C38",
"G& c #2F3242",
"H& c #2C303F",
"I& c #2C2F3C",
"J& c #252832",
"K& c #2D313E",
"L& c #262935",
"M& c #2A2E3C",
"N& c #21242F",
"O& c #20242E",
"P& c #222429",
"Q& c #262A3B",
"R& c #1A1C22",
"S& c #282C3B",
"T& c #30364C",
"U& c #333A54",
"V& c #2A3044",
"W& c #272A37",
"X& c #292E3F",
"Y& c #2A2F42",
"Z& c #272D3F",
"`& c #1E212A",
" * c #1B1C1F",
".* c #1C1E21",
"+* c #1D1F22",
"@* c #22242D",
"#* c #232631",
"$* c #222734",
"%* c #1C1D23",
"&* c #1E1F22",
"** c #1C1D21",
" . + @ # $ % & * ",
" = - ; > , ' ) ! ~ { ] ^ / ( ",
" _ : < [ } | 1 2 3 4 5 6 7 8 9 0 ",
" a b c d e f g h i j k l m n o p q r s t ",
" u v w x y z A B C D E F G H I J K L M N O P ",
" Q R S T U V W X Y Z ` ...+.@.@.@.@.@.@.#.$.%.&. ",
" *.=.-.;.>.,.'.).!.~.{.].^.@.@.@./.(._.:.@.@.@.<.[.}. ",
" |.1.2.3.4.5.6.7.8.9.0.@.@.@.a.b.c.d.e.f.g.h.i.j.k.l. ",
" m.n.o.p.q.r.s.t.u.v.w.@.@.x.y.z.A.B.C.6 D.E.F.G.H.I.J.0 ",
" K.L.M.N.O.P.Q.R.S.T.@.@.U.V.W.X.Y.Z.`. +.+++@+#+$+%+&+*+=+-+ ",
" ;+>+,+'+)+!+~+{+@.@.]+^+/+(+_+:+<+[+}+|+1+2+3+4+5+6+7+8+9+0+ ",
" a+b+c+d+e+f+g+@.@.h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+A+B+ ",
"C+D+E+F+G+H+I+J+@.K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@",
"%@&@*@=@-@;@>@@.,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@2@3@4@5@6@7@8@",
"9@0@a@b@c@d@e@@.f@g@h@i@j@k@l@m@n@o@p@q@r@s@t@u@v@w@x@y@z@A@B@C@",
"D@E@F@G@H@I@J@@.K@L@M@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@`@ #.#+#@###$#%#",
"&#*#=#-#;#>#,#@.'#)#!#~#{#]#^#/#(#_#:#<#[#}#|#1#2#3#4#5#6#7#8#9#",
"0#a#b#c#d#e#f#@.g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#A#B#C#D#",
"E#F#G#H#I#J#K#@.L#M#N#O#P#Q#R#S#T#U#V#W#X#Y#Z#`# $.$+$@$#$$$%$&$",
"*$=$-$;$>$,$'$@.)$!$~${$]$^$/$($_$:$<$[$}$a.|$1$2$3$4$5$6$7$8$9$",
" 0$a$b$c$d$e$f$@.g$h$i$j$k$l$m$n$o$p$q$r$s$N.t$u$v$w$x$y$z$A$ ",
" B$C$D$E$F$G$H$@.@.I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$`$ %.% ",
" +%@%#%$%%%&%*%=%@.@.-%;%>%,%'%)%!%~%{%]%^%/%(%_%:%<%[%}%|%1% ",
" 2%3%4%5%6%7%8%9%0%@.@.@.a%b%c%d%e%f%g%h%i%@.@.@.@.j%k%l% ",
" m%n%o%p%q%r%s%t%u%v%w%@.@.@.@.@.@.@.@.@.@.x%y%z%A%B% ",
" C%D%E%F%G%H%B.I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%`% ",
" &.&+&@&#&$&%&&&*&=&-&;&>&,&'&)&!&~&{&]&^&/&(&_& ",
" :&<&[&}&|&1&2&3&4&5&6&7&8&9&{&0&a&b&c&d&_&e& ",
" f&g&h&i&j&k&l&m&n&o&p&q&r&s&t&u&v&w&x&y& ",
" z&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O& ",
" P&Q&R&S&F&T&U&V&W&X&Y&Z&`& * ",
" .*+*@*#*$*%*&*** "};

9
debian/rdlibrary.desktop vendored Normal file
View File

@@ -0,0 +1,9 @@
[Desktop Entry]
Encoding=UTF-8
Name=rdlibrary
Comment=Rivendell Library
Exec=rdlibrary
Terminal=false
Type=Application
Icon=/usr/share/srlabs/rdlibrary.xpm
Categories=Application;AudioVideo;

788
debian/rdlibrary.xpm vendored Normal file
View File

@@ -0,0 +1,788 @@
/* XPM */
static char * rdlibrary_xpm[] = {
"32 32 753 2",
" c None",
". c #3D485E",
"+ c #3D485F",
"@ c #364156",
"# c #3B475D",
"$ c #414F69",
"% c #37435A",
"& c #36425B",
"* c #3B4A68",
"= c #2F3645",
"- c #4B5871",
"; c #505D74",
"> c #4D586E",
", c #454F62",
"' c #606E88",
") c #5B6985",
"! c #414D64",
"~ c #536280",
"{ c #4E5F81",
"] c #3F4E69",
"^ c #435478",
"/ c #384868",
"( c #2E384D",
"_ c #424D5E",
": c #576375",
"< c #57606E",
"[ c #525B6A",
"} c #778192",
"| c #3B414B",
"1 c #8A98A8",
"2 c #404753",
"3 c #758398",
"4 c #4B5669",
"5 c #58667F",
"6 c #51607E",
"7 c #404D68",
"8 c #47587A",
"9 c #394868",
"0 c #364566",
"a c #30353E",
"b c #485468",
"c c #677281",
"d c #484F5D",
"e c #8F96A5",
"f c #3D414E",
"g c #A1A6B3",
"h c #4D5363",
"i c #8992A1",
"j c #686E79",
"k c #545E70",
"l c #8494A9",
"m c #3C4454",
"n c #586581",
"o c #6478A1",
"p c #3D4964",
"q c #46587D",
"r c #4A5D87",
"s c #323E5C",
"t c #354464",
"u c #23262D",
"v c #636F7E",
"w c #404551",
"x c #E11313",
"y c #222531",
"z c #C7C8CD",
"A c #393C48",
"B c #A3A6B3",
"C c #7A7D86",
"D c #404557",
"E c #BEC3D0",
"F c #535768",
"G c #434B5E",
"H c #8FA0B8",
"I c #5E6983",
"J c #3D465C",
"K c #6A7EA7",
"L c #506285",
"M c #45567B",
"N c #445983",
"O c #3A4A70",
"P c #293246",
"Q c #404B5C",
"R c #48505C",
"S c #6F7A88",
"T c #636570",
"U c #20222B",
"V c #DBDDE2",
"W c #50535F",
"X c #6C6E76",
"Y c #D1D3DC",
"Z c #2A2E3F",
"` c #505564",
" . c #C4C9D3",
".. c #5C6374",
"+. c #353A44",
"@. c #8092AC",
"#. c #7283A0",
"$. c #3B4359",
"%. c #3F4C67",
"&. c #5B72A2",
"*. c #425379",
"=. c #3E4C6F",
"-. c #3C4F7A",
";. c #374668",
">. c #2A2E35",
",. c #54627A",
"'. c #9299A1",
"). c #3C404D",
"!. c #878996",
"~. c #373E55",
"{. c #CCCDD6",
"]. c #767989",
"^. c #3C435E",
"/. c #A8AAB4",
"(. c #A8AAB8",
"_. c #363B4E",
":. c #565A68",
"<. c #C2CEDA",
"[. c #76829B",
"}. c #353E56",
"|. c #54617C",
"1. c #86A2D2",
"2. c #5E6F96",
"3. c #4A557A",
"4. c #45567D",
"5. c #5975B2",
"6. c #3E4E75",
"7. c #3A4362",
"8. c #202023",
"9. c #627183",
"0. c #394152",
"a. c #B8BBC3",
"b. c #2A2D39",
"c. c #848591",
"d. c #1C202C",
"e. c #A2A8BE",
"f. c #C9CAD3",
"g. c #212431",
"h. c #4D5164",
"i. c #D7D7DB",
"j. c #8B8C95",
"k. c #36384A",
"l. c #4D5160",
"m. c #AEBFD0",
"n. c #8495AC",
"o. c #424C72",
"p. c #3B4560",
"q. c #5F749D",
"r. c #6A86B9",
"s. c #526288",
"t. c #5F6D9F",
"u. c #415582",
"v. c #5572B5",
"w. c #2F3D5B",
"x. c #47566D",
"y. c #7D8C9E",
"z. c #33343A",
"A. c #C6C7CF",
"B. c #242A3A",
"C. c #6E7792",
"D. c #CFD1D8",
"E. c #494C57",
"F. c #DFE0E3",
"G. c #8C8E9C",
"H. c #22242C",
"I. c #616471",
"J. c #DDDEE2",
"K. c #838692",
"L. c #404357",
"M. c #4F5777",
"N. c #8293AB",
"O. c #97AFD1",
"P. c #444C73",
"Q. c #4A5579",
"R. c #607DB6",
"S. c #5977B2",
"T. c #333E59",
"U. c #464E6C",
"V. c #4D6399",
"W. c #363F4B",
"X. c #4B596D",
"Y. c #8492A4",
"Z. c #363A46",
"`. c #CFD0D4",
" + c #3F4C6D",
".+ c #3C4256",
"++ c #ECEEF5",
"@+ c #555B77",
"#+ c #8E909D",
"$+ c #DCDCE3",
"%+ c #717385",
"&+ c #24252D",
"*+ c #616472",
"=+ c #E8EBF3",
"-+ c #A0A9BC",
";+ c #222430",
">+ c #424C70",
",+ c #8BA3C8",
"'+ c #96B6E9",
")+ c #647AA9",
"!+ c #293044",
"~+ c #46506E",
"{+ c #667BB3",
"]+ c #6A8CD6",
"^+ c #7090DC",
"/+ c #313A54",
"(+ c #1F242E",
"_+ c #222326",
":+ c #657B92",
"<+ c #3C4558",
"[+ c #919FB2",
"}+ c #262C3C",
"|+ c #BEC1CA",
"1+ c #676C7D",
"2+ c #384467",
"3+ c #ADADB5",
"4+ c #2A2D3A",
"5+ c #3D4253",
"6+ c #C5C6CD",
"7+ c #D6D6DF",
"8+ c #53586E",
"9+ c #34384B",
"0+ c #4E5365",
"a+ c #C1D2E5",
"b+ c #B1C4E5",
"c+ c #505A79",
"d+ c #212331",
"e+ c #3F486A",
"f+ c #7E9BD4",
"g+ c #84AAEF",
"h+ c #5A70A8",
"i+ c #252C3C",
"j+ c #242938",
"k+ c #4B5F90",
"l+ c #5D82D2",
"m+ c #48649F",
"n+ c #273147",
"o+ c #6F8398",
"p+ c #333841",
"q+ c #A0ABB5",
"r+ c #283454",
"s+ c #99A1B7",
"t+ c #A8AFBF",
"u+ c #21283B",
"v+ c #878EA8",
"w+ c #71778C",
"x+ c #2D344D",
"y+ c #4C4E5D",
"z+ c #D4D8E4",
"A+ c #BDC0CB",
"B+ c #41465B",
"C+ c #454E73",
"D+ c #464C60",
"E+ c #9AAEC8",
"F+ c #A3BEDE",
"G+ c #6876A0",
"H+ c #353B57",
"I+ c #272C3C",
"J+ c #3E4C6D",
"K+ c #7DA2EA",
"L+ c #6487CB",
"M+ c #647CAB",
"N+ c #535E85",
"O+ c #2B3550",
"P+ c #3A4E7A",
"Q+ c #5170A4",
"R+ c #4C4E51",
"S+ c #8096AC",
"T+ c #2C323F",
"U+ c #B7C4D0",
"V+ c #3C4A6C",
"W+ c #4C5773",
"X+ c #DCDCE1",
"Y+ c #5D6A8F",
"Z+ c #242D47",
"`+ c #575D70",
" @ c #3F4A70",
".@ c #404456",
"+@ c #DFE5F3",
"@@ c #D5E0F0",
"#@ c #3D4453",
"$@ c #3A4568",
"%@ c #4E5982",
"&@ c #67799B",
"*@ c #9EC0F4",
"=@ c #6D87B6",
"-@ c #62709E",
";@ c #555F8A",
">@ c #343A4F",
",@ c #3F537E",
"'@ c #668EDD",
")@ c #597DC5",
"!@ c #303E5C",
"~@ c #3A4357",
"{@ c #445072",
"]@ c #333C52",
"^@ c #44494F",
"/@ c #7C95A3",
"(@ c #262E3D",
"_@ c #A0A9B1",
":@ c #5E6980",
"<@ c #324576",
"[@ c #C8CAD2",
"}@ c #9BA3B7",
"|@ c #2E3445",
"1@ c #4F5978",
"2@ c #CAD0E2",
"3@ c #2B3142",
"4@ c #455681",
"5@ c #565E72",
"6@ c #BFCFD9",
"7@ c #B6CCE5",
"8@ c #5B698A",
"9@ c #23293B",
"0@ c #56638D",
"a@ c #6A7EAB",
"b@ c #7B9DD7",
"c@ c #7DA1E1",
"d@ c #475A80",
"e@ c #434C67",
"f@ c #5C6A98",
"g@ c #677BB2",
"h@ c #6685C4",
"i@ c #6791E1",
"j@ c #7BA5EB",
"k@ c #4B5C7B",
"l@ c #1E2026",
"m@ c #444D55",
"n@ c #79868D",
"o@ c #4B5259",
"p@ c #6B7786",
"q@ c #B1C0D7",
"r@ c #2B334A",
"s@ c #788AAD",
"t@ c #EBEDF2",
"u@ c #66779C",
"v@ c #242C39",
"w@ c #D9DCE2",
"x@ c #C2CEE3",
"y@ c #464F63",
"z@ c #374458",
"A@ c #546173",
"B@ c #97ADC6",
"C@ c #B5D5F7",
"D@ c #8BA3C4",
"E@ c #323A4F",
"F@ c #383F4C",
"G@ c #515D77",
"H@ c #6E8CBE",
"I@ c #729BE0",
"J@ c #779FE7",
"K@ c #455981",
"L@ c #202530",
"M@ c #242832",
"N@ c #2D374D",
"O@ c #55729B",
"P@ c #A9CAD7",
"Q@ c #677A89",
"R@ c #465159",
"S@ c #616D7B",
"T@ c #88909B",
"U@ c #2F3747",
"V@ c #CCD7DF",
"W@ c #525C70",
"X@ c #4F638E",
"Y@ c #B3B5BA",
"Z@ c #BDC0C7",
"`@ c #506A96",
" # c #6C80A8",
".# c #DFEDF4",
"+# c #A6BBCB",
"@# c #374869",
"## c #232A39",
"$# c #526286",
"%# c #7288A8",
"&# c #A0C5F3",
"*# c #87A7CE",
"=# c #5E7091",
"-# c #384150",
";# c #282C35",
"># c #4D6083",
",# c #8DB7F3",
"'# c #7DADF3",
")# c #7199CA",
"!# c #7D9DC6",
"~# c #5C71A3",
"{# c #424E66",
"]# c #576478",
"^# c #5A6B87",
"/# c #414954",
"(# c #4F5E73",
"_# c #B0BCC5",
":# c #363F4C",
"<# c #BBCDE3",
"[# c #D3E3F0",
"}# c #2A3242",
"|# c #51648B",
"1# c #DEE0E4",
"2# c #B7BEC8",
"3# c #374871",
"4# c #62728D",
"5# c #C5E2F2",
"6# c #A2BCD1",
"7# c #596B91",
"8# c #272C38",
"9# c #484F64",
"0# c #6A7C9E",
"a# c #89ADDB",
"b# c #8EBBEB",
"c# c #819FC2",
"d# c #77869D",
"e# c #454F65",
"f# c #2E3647",
"g# c #354258",
"h# c #89AABE",
"i# c #CCE9F5",
"j# c #92B3C9",
"k# c #4D5E76",
"l# c #242935",
"m# c #17181C",
"n# c #4B556B",
"o# c #515F72",
"p# c #89939D",
"q# c #6A7B8E",
"r# c #6B7C8D",
"s# c #D8DBE0",
"t# c #5A6682",
"u# c #2C3D64",
"v# c #778195",
"w# c #EAF0F8",
"x# c #252B3F",
"y# c #42568E",
"z# c #56667D",
"A# c #D9F3FC",
"B# c #BED0D8",
"C# c #6F7586",
"D# c #30333F",
"E# c #515667",
"F# c #6B7794",
"G# c #88A5B6",
"H# c #C5E7F6",
"I# c #A1B7C2",
"J# c #6E7D8C",
"K# c #5D6D8D",
"L# c #677BA9",
"M# c #6C82AE",
"N# c #97B5D5",
"O# c #A2C5E9",
"P# c #8DB5F4",
"Q# c #6B87C8",
"R# c #3A4665",
"S# c #3F4862",
"T# c #545D78",
"U# c #4C5569",
"V# c #9DADC8",
"W# c #2B3A58",
"X# c #798AAF",
"Y# c #D4DEF0",
"Z# c #454D5E",
"`# c #374D81",
" $ c #6D778D",
".$ c #9FAFCF",
"+$ c #29324C",
"@$ c #435283",
"#$ c #4D5566",
"$$ c #B2C3D0",
"%$ c #CAE4F1",
"&$ c #A3B5CB",
"*$ c #4F5464",
"=$ c #43454F",
"-$ c #656975",
";$ c #69768D",
">$ c #85A2BF",
",$ c #9EC5F4",
"'$ c #7694C8",
")$ c #3E4B6B",
"!$ c #252A37",
"~$ c #1E2028",
"{$ c #16171C",
"]$ c #1F2229",
"^$ c #384564",
"/$ c #343D54",
"($ c #3A4158",
"_$ c #616D94",
":$ c #333E5F",
"<$ c #868EAA",
"[$ c #49567A",
"}$ c #2A3F72",
"|$ c #A6AEBF",
"1$ c #999EB2",
"2$ c #435A8F",
"3$ c #333D5B",
"4$ c #D0DFF5",
"5$ c #7B88AC",
"6$ c #353E5B",
"7$ c #454F6E",
"8$ c #464E62",
"9$ c #A4B8D4",
"0$ c #A9C6F3",
"a$ c #8599C5",
"b$ c #676F88",
"c$ c #40424B",
"d$ c #7F89A4",
"e$ c #97ABD1",
"f$ c #7A98DC",
"g$ c #7293E3",
"h$ c #5F7ABB",
"i$ c #627BB1",
"j$ c #586988",
"k$ c #2B2F3B",
"l$ c #16171B",
"m$ c #18191C",
"n$ c #36405E",
"o$ c #5A6896",
"p$ c #2D3244",
"q$ c #909ACA",
"r$ c #3D5189",
"s$ c #475070",
"t$ c #ADB5E0",
"u$ c #7D87B1",
"v$ c #374D8F",
"w$ c #6876A1",
"x$ c #ABB7E6",
"y$ c #8792BF",
"z$ c #545D7F",
"A$ c #3D4257",
"B$ c #404352",
"C$ c #67708B",
"D$ c #879BDB",
"E$ c #819AE3",
"F$ c #8796C2",
"G$ c #525970",
"H$ c #3D414C",
"I$ c #373C4D",
"J$ c #404C6D",
"K$ c #556BA5",
"L$ c #536DB0",
"M$ c #5874BB",
"N$ c #5770B2",
"O$ c #344164",
"P$ c #3C486C",
"Q$ c #515878",
"R$ c #313545",
"S$ c #5E617B",
"T$ c #7E89B8",
"U$ c #2B334C",
"V$ c #48506F",
"W$ c #A8ADDC",
"X$ c #8492D1",
"Y$ c #2B3048",
"Z$ c #636C93",
"`$ c #919AC9",
" % c #8792BE",
".% c #51576E",
"+% c #575B6C",
"@% c #5E5F69",
"#% c #565B6C",
"$% c #6F7BA2",
"%% c #7187CC",
"&% c #6377B4",
"*% c #6F80AC",
"=% c #5B6581",
"-% c #4B5169",
";% c #535E7E",
">% c #6373A1",
",% c #566796",
"'% c #3D4866",
")% c #38476D",
"!% c #37476F",
"~% c #323646",
"{% c #394059",
"]% c #545971",
"^% c #202128",
"/% c #696B8C",
"(% c #656FA5",
"_% c #2A3A6B",
":% c #565F84",
"<% c #7579A1",
"[% c #414B72",
"}% c #37405F",
"|% c #525D80",
"1% c #70779D",
"2% c #8993C2",
"3% c #686F8E",
"4% c #525563",
"5% c #525462",
"6% c #4D4E58",
"7% c #454A5E",
"8% c #68759C",
"9% c #52649C",
"0% c #4F64A0",
"a% c #3A4872",
"b% c #2A324C",
"c% c #1D212D",
"d% c #21232C",
"e% c #3A3C47",
"f% c #303444",
"g% c #191B1E",
"h% c #34394B",
"i% c #404764",
"j% c #484B5E",
"k% c #242632",
"l% c #8596DE",
"m% c #6681CC",
"n% c #2D3855",
"o% c #8388B9",
"p% c #7C83B8",
"q% c #383E58",
"r% c #404969",
"s% c #434A63",
"t% c #5C6485",
"u% c #717AA6",
"v% c #666E95",
"w% c #5A5F76",
"x% c #4A4C56",
"y% c #656B7F",
"z% c #606A84",
"A% c #3B4159",
"B% c #323B56",
"C% c #3C4B76",
"D% c #44578F",
"E% c #3C4D7E",
"F% c #364570",
"G% c #303C61",
"H% c #2E364D",
"I% c #323546",
"J% c #444A66",
"K% c #3D3F4F",
"L% c #404A66",
"M% c #8399CC",
"N% c #6E819E",
"O% c #2D2F3B",
"P% c #373D54",
"Q% c #474A5F",
"R% c #3C4057",
"S% c #3F5083",
"T% c #849ABA",
"U% c #5B6282",
"V% c #424A67",
"W% c #4D5B81",
"X% c #444D65",
"Y% c #434B68",
"Z% c #5B668C",
"`% c #58638C",
" & c #465074",
".& c #414B6E",
"+& c #2F364B",
"@& c #252830",
"#& c #3F4046",
"$& c #343740",
"%& c #191A1E",
"&& c #1A1B21",
"*& c #2D303E",
"=& c #373E59",
"-& c #3F4154",
";& c #3C3D50",
">& c #262C3D",
",& c #495672",
"'& c #6477A2",
")& c #3D4D7A",
"!& c #33426E",
"~& c #363F5F",
"{& c #4B5171",
"]& c #525875",
"^& c #4F5774",
"/& c #444C68",
"(& c #485375",
"_& c #3E455E",
":& c #454F70",
"<& c #56638A",
"[& c #383F57",
"}& c #313A57",
"|& c #3D496E",
"1& c #323D60",
"2& c #364265",
"3& c #222736",
"4& c #2C2F3D",
"5& c #31374C",
"6& c #33374A",
"7& c #3A3C4D",
"8& c #1D1F26",
"9& c #303850",
"0& c #4E5B8D",
"a& c #43496D",
"b& c #344068",
"c& c #3B466A",
"d& c #353E5D",
"e& c #49506E",
"f& c #454A64",
"g& c #414864",
"h& c #495372",
"i& c #292D3B",
"j& c #3B3D49",
"k& c #1F2128",
"l& c #363C51",
"m& c #1D212F",
"n& c #272A36",
"o& c #2B3146",
"p& c #2F364E",
"q& c #383B4E",
"r& c #3F496A",
"s& c #303751",
"t& c #3A3E55",
"u& c #3C3E52",
"v& c #3A4059",
"w& c #394260",
"x& c #2C334A",
"y& c #383F56",
"z& c #383D51",
"A& c #353A4C",
"B& c #32384C",
"C& c #31374B",
"D& c #333950",
"E& c #282E41",
"F& c #202431",
"G& c #1A1B1F",
"H& c #262B37",
"I& c #282C3D",
"J& c #303547",
"K& c #393D53",
"L& c #32384E",
"M& c #343B54",
"N& c #292C38",
"O& c #2F3242",
"P& c #2C303F",
"Q& c #2C2F3C",
"R& c #252832",
"S& c #2D313E",
"T& c #262935",
"U& c #2A2E3C",
"V& c #21242F",
"W& c #20242E",
"X& c #222429",
"Y& c #262A3B",
"Z& c #1A1C22",
"`& c #282C3B",
" * c #30364C",
".* c #333A54",
"+* c #2A3044",
"@* c #272A37",
"#* c #292E3F",
"$* c #2A2F42",
"%* c #272D3F",
"&* c #1E212A",
"** c #1B1C1F",
"=* c #1C1E21",
"-* c #1D1F22",
";* c #22242D",
">* c #232631",
",* c #222734",
"'* c #1C1D23",
")* c #1E1F22",
"!* c #1C1D21",
" . + @ # $ % & * ",
" = - ; > , ' ) ! ~ { ] ^ / ( ",
" _ : < [ } | 1 2 3 4 5 6 7 8 9 0 ",
" a b c d e f g h i j k l m n o p q r s t ",
" u v w x y z A B C D E F G H I J K L M N O P ",
" Q R S T x U V W X Y Z ` ...+.@.#.$.%.&.*.=.-.;. ",
" >.,.'.).!.x ~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8. ",
" 9.0.a.b.c.x d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w. ",
" x.y.z.A.B.C.D.x E.F.G.H.I.J.K.L.M.N.O.6 P.Q.R.S.T.U.V.0 ",
" W.X.Y.Z.`. +.+++x @+#+$+%+&+*+=+-+;+>+,+'+)+!+~+{+]+^+/+(+_+ ",
" :+<+[+}+|+1+2+3+x 4+5+6+7+8+9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+ ",
" o+p+q+r+s+t+u+v+x w+x+y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+ ",
"R+S+T+U+V+W+X+Y+Z+x x `+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@",
"^@/@(@_@:@<@[@}@|@1@x 2@3@4@5@6@7@8@9@0@a@b@c@d@e@f@g@h@i@j@k@l@",
"m@n@o@p@q@r@s@t@u@v@x w@x@y@z@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@",
"R@S@T@U@V@W@X@Y@Z@`@x #.#+#@###$#%#&#*#=#-#;#>#,#'#)#!#~#{#]#^#",
"/#(#_#:#<#[#}#|#1#2#x 3#4#5#6#7#8#9#0#a#b#c#d#e#f#g#h#i#j#k#l#m#",
"n#o#p#q#r#s#t#u#v#w#x x#y#z#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#",
"S#T#U#V#W#X#Y#Z#`# $x .$+$@$#$$$%$&$*$=$-$;$>$,$'$)$!$~${$]$^$/$",
"($_$:$<$[$}$|$1$2$3$x 4$5$6$7$8$9$0$a$b$c$l.d$e$f$g$h$i$j$k$l$m$",
" n$o$p$q$r$s$t$u$v$x w$x$y$z$A$B$C$D$E$F$G$Z.H$I$J$K$L$M$N$O$ ",
" P$Q$R$S$T$U$V$W$X$x Y$Z$`$ %.%+%@%#%$%%%&%*%=%-%;%>%,%'%)%!% ",
" ~%{%]%^%/%(%_%:%x <%[%}%|%1%2%3%4%5%6%7%8%9%0%a%b%c%d%e%f%g% ",
" h%i%j%k%l%m%n%x o%p%q%r%s%t%u%v%w%x%y%z%A%B%C%D%E%F%G%H% ",
" I%J%K%L%M%N%x x x x x x x x x x x x x x x x x x x x ",
" O%P%Q%R%S%T%x x x x x U%V%W%X%Y%Z%`% &.&+&@&#&$&%&&& ",
" *&=&-&;&>&,&'&)&!&~&{&]&^&/&(&_&:&<&[&}&|&1&2&3& ",
" 4&5&6&7&8&9&0&a&b&c&d&e&f&g&[&h&i&j&k&l&3&m& ",
" n&o&p&q&r&s&t&u&v&w&x&y&z&A&B&C&D&E&F&G& ",
" H&I&J&K&L&M&N&O&P&Q&R&S&T&U&V&W& ",
" X&Y&Z&`&N& *.*+*@*#*$*%*&*** ",
" =*-*;*>*,*'*)*!* "};

9
debian/rdlogedit.desktop vendored Normal file
View File

@@ -0,0 +1,9 @@
[Desktop Entry]
Encoding=UTF-8
Name=rdlogedit
Comment=Rivendell Logedit
Exec=rdlogedit
Terminal=false
Type=Application
Icon=/usr/share/srlabs/rdlogedit.xpm
Categories=Application;AudioVideo;

751
debian/rdlogedit.xpm vendored Normal file
View File

@@ -0,0 +1,751 @@
/* XPM */
static char * rdlogedit_xpm[] = {
"32 32 716 2",
" c None",
". c #3D485E",
"+ c #3D485F",
"@ c #364156",
"# c #3B475D",
"$ c #414F69",
"% c #37435A",
"& c #36425B",
"* c #3B4A68",
"= c #2F3645",
"- c #4B5871",
"; c #505D74",
"> c #4D586E",
", c #454F62",
"' c #606E88",
") c #5B6985",
"! c #414D64",
"~ c #536280",
"{ c #4E5F81",
"] c #3F4E69",
"^ c #435478",
"/ c #384868",
"( c #2E384D",
"_ c #424D5E",
": c #576375",
"< c #57606E",
"[ c #525B6A",
"} c #778192",
"| c #3B414B",
"1 c #8A98A8",
"2 c #404753",
"3 c #758398",
"4 c #4B5669",
"5 c #58667F",
"6 c #51607E",
"7 c #404D68",
"8 c #47587A",
"9 c #394868",
"0 c #364566",
"a c #30353E",
"b c #485468",
"c c #677281",
"d c #484F5D",
"e c #8F96A5",
"f c #3D414E",
"g c #A1A6B3",
"h c #4D5363",
"i c #8992A1",
"j c #686E79",
"k c #545E70",
"l c #8494A9",
"m c #3C4454",
"n c #586581",
"o c #6478A1",
"p c #3D4964",
"q c #46587D",
"r c #4A5D87",
"s c #323E5C",
"t c #354464",
"u c #E11313",
"v c #636F7E",
"w c #404551",
"x c #9BA1A7",
"y c #222531",
"z c #C7C8CD",
"A c #393C48",
"B c #A3A6B3",
"C c #7A7D86",
"D c #404557",
"E c #BEC3D0",
"F c #535768",
"G c #434B5E",
"H c #8FA0B8",
"I c #5E6983",
"J c #3D465C",
"K c #6A7EA7",
"L c #404B5C",
"M c #6F7A88",
"N c #636570",
"O c #888A94",
"P c #20222B",
"Q c #DBDDE2",
"R c #50535F",
"S c #6C6E76",
"T c #D1D3DC",
"U c #2A2E3F",
"V c #505564",
"W c #C4C9D3",
"X c #3F4C67",
"Y c #5B72A2",
"Z c #425379",
"` c #3E4C6F",
" . c #3C4F7A",
".. c #374668",
"+. c #2A2E35",
"@. c #54627A",
"#. c #3C404D",
"$. c #878996",
"%. c #878A99",
"&. c #373E55",
"*. c #CCCDD6",
"=. c #767989",
"-. c #3C435E",
";. c #A8AAB4",
">. c #A8AAB8",
",. c #363B4E",
"'. c #565A68",
"). c #76829B",
"!. c #353E56",
"~. c #54617C",
"{. c #86A2D2",
"]. c #5E6F96",
"^. c #4A557A",
"/. c #45567D",
"(. c #5975B2",
"_. c #3E4E75",
":. c #3A4362",
"<. c #202023",
"[. c #627183",
"}. c #394152",
"|. c #2A2D39",
"1. c #848591",
"2. c #A0A3B3",
"3. c #1C202C",
"4. c #A2A8BE",
"5. c #C9CAD3",
"6. c #212431",
"7. c #4D5164",
"8. c #D7D7DB",
"9. c #8B8C95",
"0. c #36384A",
"a. c #AEBFD0",
"b. c #8495AC",
"c. c #424C72",
"d. c #3B4560",
"e. c #5F749D",
"f. c #6A86B9",
"g. c #526288",
"h. c #5F6D9F",
"i. c #415582",
"j. c #5572B5",
"k. c #2F3D5B",
"l. c #47566D",
"m. c #7D8C9E",
"n. c #33343A",
"o. c #242A3A",
"p. c #6E7792",
"q. c #CFD1D8",
"r. c #424A62",
"s. c #494C57",
"t. c #DFE0E3",
"u. c #8C8E9C",
"v. c #22242C",
"w. c #616471",
"x. c #DDDEE2",
"y. c #838692",
"z. c #4F5777",
"A. c #8293AB",
"B. c #97AFD1",
"C. c #444C73",
"D. c #4A5579",
"E. c #607DB6",
"F. c #5977B2",
"G. c #333E59",
"H. c #464E6C",
"I. c #4D6399",
"J. c #363F4B",
"K. c #4B596D",
"L. c #8492A4",
"M. c #363A46",
"N. c #3F4C6D",
"O. c #3C4256",
"P. c #ECEEF5",
"Q. c #5F6169",
"R. c #555B77",
"S. c #8E909D",
"T. c #DCDCE3",
"U. c #717385",
"V. c #24252D",
"W. c #616472",
"X. c #E8EBF3",
"Y. c #222430",
"Z. c #424C70",
"`. c #8BA3C8",
" + c #96B6E9",
".+ c #647AA9",
"++ c #293044",
"@+ c #46506E",
"#+ c #667BB3",
"$+ c #6A8CD6",
"%+ c #7090DC",
"&+ c #313A54",
"*+ c #1F242E",
"=+ c #222326",
"-+ c #657B92",
";+ c #3C4558",
">+ c #919FB2",
",+ c #262C3C",
"'+ c #676C7D",
")+ c #384467",
"!+ c #ADADB5",
"~+ c #C9CDDC",
"{+ c #2A2D3A",
"]+ c #3D4253",
"^+ c #C5C6CD",
"/+ c #D6D6DF",
"(+ c #53586E",
"_+ c #34384B",
":+ c #4E5365",
"<+ c #B1C4E5",
"[+ c #505A79",
"}+ c #212331",
"|+ c #3F486A",
"1+ c #7E9BD4",
"2+ c #84AAEF",
"3+ c #5A70A8",
"4+ c #252C3C",
"5+ c #242938",
"6+ c #4B5F90",
"7+ c #5D82D2",
"8+ c #48649F",
"9+ c #273147",
"0+ c #6F8398",
"a+ c #333841",
"b+ c #A0ABB5",
"c+ c #283454",
"d+ c #A8AFBF",
"e+ c #21283B",
"f+ c #878EA8",
"g+ c #EBECF2",
"h+ c #71778C",
"i+ c #2D344D",
"j+ c #4C4E5D",
"k+ c #D4D8E4",
"l+ c #BDC0CB",
"m+ c #41465B",
"n+ c #454E73",
"o+ c #9AAEC8",
"p+ c #A3BEDE",
"q+ c #6876A0",
"r+ c #353B57",
"s+ c #272C3C",
"t+ c #3E4C6D",
"u+ c #7DA2EA",
"v+ c #6487CB",
"w+ c #647CAB",
"x+ c #535E85",
"y+ c #2B3550",
"z+ c #3A4E7A",
"A+ c #5170A4",
"B+ c #4C4E51",
"C+ c #8096AC",
"D+ c #2C323F",
"E+ c #B7C4D0",
"F+ c #3C4A6C",
"G+ c #DCDCE1",
"H+ c #5D6A8F",
"I+ c #242D47",
"J+ c #9A9EAD",
"K+ c #DBDBDE",
"L+ c #575D70",
"M+ c #3F4A70",
"N+ c #404456",
"O+ c #DFE5F3",
"P+ c #D5E0F0",
"Q+ c #3D4453",
"R+ c #4E5982",
"S+ c #67799B",
"T+ c #9EC0F4",
"U+ c #6D87B6",
"V+ c #62709E",
"W+ c #555F8A",
"X+ c #343A4F",
"Y+ c #3F537E",
"Z+ c #668EDD",
"`+ c #597DC5",
" @ c #303E5C",
".@ c #3A4357",
"+@ c #445072",
"@@ c #333C52",
"#@ c #44494F",
"$@ c #7C95A3",
"%@ c #262E3D",
"&@ c #A0A9B1",
"*@ c #5E6980",
"=@ c #C8CAD2",
"-@ c #9BA3B7",
";@ c #2E3445",
">@ c #4F5978",
",@ c #D8D9DE",
"'@ c #CAD0E2",
")@ c #2B3142",
"!@ c #455681",
"~@ c #565E72",
"{@ c #BFCFD9",
"]@ c #B6CCE5",
"^@ c #23293B",
"/@ c #56638D",
"(@ c #6A7EAB",
"_@ c #7B9DD7",
":@ c #7DA1E1",
"<@ c #475A80",
"[@ c #434C67",
"}@ c #5C6A98",
"|@ c #677BB2",
"1@ c #6685C4",
"2@ c #6791E1",
"3@ c #7BA5EB",
"4@ c #4B5C7B",
"5@ c #1E2026",
"6@ c #444D55",
"7@ c #79868D",
"8@ c #4B5259",
"9@ c #6B7786",
"0@ c #B1C0D7",
"a@ c #788AAD",
"b@ c #EBEDF2",
"c@ c #66779C",
"d@ c #242C39",
"e@ c #7B8DAB",
"f@ c #D9DCE2",
"g@ c #C2CEE3",
"h@ c #464F63",
"i@ c #374458",
"j@ c #546173",
"k@ c #97ADC6",
"l@ c #8BA3C4",
"m@ c #323A4F",
"n@ c #383F4C",
"o@ c #515D77",
"p@ c #6E8CBE",
"q@ c #729BE0",
"r@ c #779FE7",
"s@ c #455981",
"t@ c #202530",
"u@ c #242832",
"v@ c #2D374D",
"w@ c #55729B",
"x@ c #A9CAD7",
"y@ c #677A89",
"z@ c #465159",
"A@ c #616D7B",
"B@ c #88909B",
"C@ c #2F3747",
"D@ c #CCD7DF",
"E@ c #4F638E",
"F@ c #B3B5BA",
"G@ c #BDC0C7",
"H@ c #506A96",
"I@ c #313D4E",
"J@ c #6C80A8",
"K@ c #DFEDF4",
"L@ c #A6BBCB",
"M@ c #374869",
"N@ c #232A39",
"O@ c #526286",
"P@ c #576478",
"Q@ c #5A6B87",
"R@ c #414954",
"S@ c #4F5E73",
"T@ c #B0BCC5",
"U@ c #363F4C",
"V@ c #BBCDE3",
"W@ c #2A3242",
"X@ c #51648B",
"Y@ c #DEE0E4",
"Z@ c #B7BEC8",
"`@ c #313E5E",
" # c #374871",
".# c #62728D",
"+# c #C5E2F2",
"@# c #A2BCD1",
"## c #596B91",
"$# c #272C38",
"%# c #484F64",
"&# c #89ADDB",
"*# c #8EBBEB",
"=# c #819FC2",
"-# c #77869D",
";# c #454F65",
"># c #2E3647",
",# c #354258",
"'# c #89AABE",
")# c #CCE9F5",
"!# c #92B3C9",
"~# c #4D5E76",
"{# c #242935",
"]# c #17181C",
"^# c #4B556B",
"/# c #515F72",
"(# c #89939D",
"_# c #6A7B8E",
":# c #6B7C8D",
"<# c #5A6682",
"[# c #2C3D64",
"}# c #778195",
"|# c #EAF0F8",
"1# c #8E9AB4",
"2# c #252B3F",
"3# c #42568E",
"4# c #56667D",
"5# c #D9F3FC",
"6# c #BED0D8",
"7# c #6F7586",
"8# c #30333F",
"9# c #6B7794",
"0# c #88A5B6",
"a# c #C5E7F6",
"b# c #A1B7C2",
"c# c #6E7D8C",
"d# c #5D6D8D",
"e# c #677BA9",
"f# c #6C82AE",
"g# c #97B5D5",
"h# c #A2C5E9",
"i# c #8DB5F4",
"j# c #6B87C8",
"k# c #3A4665",
"l# c #3F4862",
"m# c #545D78",
"n# c #4C5569",
"o# c #9DADC8",
"p# c #2B3A58",
"q# c #D4DEF0",
"r# c #454D5E",
"s# c #374D81",
"t# c #6D778D",
"u# c #E6EDF2",
"v# c #9FAFCF",
"w# c #29324C",
"x# c #435283",
"y# c #4D5566",
"z# c #B2C3D0",
"A# c #CAE4F1",
"B# c #A3B5CB",
"C# c #43454F",
"D# c #656975",
"E# c #69768D",
"F# c #85A2BF",
"G# c #9EC5F4",
"H# c #7694C8",
"I# c #3E4B6B",
"J# c #252A37",
"K# c #1E2028",
"L# c #16171C",
"M# c #1F2229",
"N# c #384564",
"O# c #343D54",
"P# c #3A4158",
"Q# c #616D94",
"R# c #333E5F",
"S# c #868EAA",
"T# c #49567A",
"U# c #A6AEBF",
"V# c #999EB2",
"W# c #435A8F",
"X# c #333D5B",
"Y# c #8690A5",
"Z# c #D0DFF5",
"`# c #7B88AC",
" $ c #353E5B",
".$ c #454F6E",
"+$ c #464E62",
"@$ c #A4B8D4",
"#$ c #A9C6F3",
"$$ c #676F88",
"%$ c #40424B",
"&$ c #4D5160",
"*$ c #7F89A4",
"=$ c #97ABD1",
"-$ c #7A98DC",
";$ c #7293E3",
">$ c #5F7ABB",
",$ c #627BB1",
"'$ c #586988",
")$ c #2B2F3B",
"!$ c #16171B",
"~$ c #18191C",
"{$ c #36405E",
"]$ c #5A6896",
"^$ c #2D3244",
"/$ c #909ACA",
"($ c #475070",
"_$ c #ADB5E0",
":$ c #7D87B1",
"<$ c #374D8F",
"[$ c #262F49",
"}$ c #6876A1",
"|$ c #ABB7E6",
"1$ c #8792BF",
"2$ c #545D7F",
"3$ c #3D4257",
"4$ c #404352",
"5$ c #67708B",
"6$ c #819AE3",
"7$ c #8796C2",
"8$ c #525970",
"9$ c #3D414C",
"0$ c #373C4D",
"a$ c #404C6D",
"b$ c #556BA5",
"c$ c #536DB0",
"d$ c #5874BB",
"e$ c #5770B2",
"f$ c #344164",
"g$ c #3C486C",
"h$ c #515878",
"i$ c #313545",
"j$ c #5E617B",
"k$ c #2B334C",
"l$ c #48506F",
"m$ c #A8ADDC",
"n$ c #8492D1",
"o$ c #252A3B",
"p$ c #2B3048",
"q$ c #636C93",
"r$ c #919AC9",
"s$ c #8792BE",
"t$ c #51576E",
"u$ c #575B6C",
"v$ c #5E5F69",
"w$ c #6F7BA2",
"x$ c #7187CC",
"y$ c #6377B4",
"z$ c #6F80AC",
"A$ c #5B6581",
"B$ c #4B5169",
"C$ c #535E7E",
"D$ c #6373A1",
"E$ c #566796",
"F$ c #3D4866",
"G$ c #38476D",
"H$ c #37476F",
"I$ c #323646",
"J$ c #394059",
"K$ c #545971",
"L$ c #202128",
"M$ c #656FA5",
"N$ c #2A3A6B",
"O$ c #565F84",
"P$ c #9297CD",
"Q$ c #7579A1",
"R$ c #414B72",
"S$ c #37405F",
"T$ c #525D80",
"U$ c #70779D",
"V$ c #8993C2",
"W$ c #686F8E",
"X$ c #525563",
"Y$ c #4D4E58",
"Z$ c #454A5E",
"`$ c #68759C",
" % c #52649C",
".% c #4F64A0",
"+% c #3A4872",
"@% c #2A324C",
"#% c #1D212D",
"$% c #21232C",
"%% c #3A3C47",
"&% c #303444",
"*% c #191B1E",
"=% c #34394B",
"-% c #404764",
";% c #484B5E",
">% c #8596DE",
",% c #6681CC",
"'% c #2D3855",
")% c #424E77",
"!% c #8388B9",
"~% c #7C83B8",
"{% c #383E58",
"]% c #404969",
"^% c #434A63",
"/% c #5C6485",
"(% c #717AA6",
"_% c #666E95",
":% c #4A4C56",
"<% c #656B7F",
"[% c #606A84",
"}% c #3B4159",
"|% c #323B56",
"1% c #3C4B76",
"2% c #44578F",
"3% c #3C4D7E",
"4% c #364570",
"5% c #303C61",
"6% c #2E364D",
"7% c #323546",
"8% c #444A66",
"9% c #404A66",
"0% c #8399CC",
"a% c #6E819E",
"b% c #3E507C",
"c% c #344169",
"d% c #6A79B5",
"e% c #7376A1",
"f% c #565C7B",
"g% c #434D69",
"h% c #4F597A",
"i% c #49506B",
"j% c #5B6381",
"k% c #5B678F",
"l% c #454B66",
"m% c #40465A",
"n% c #474E69",
"o% c #5A688F",
"p% c #4D5261",
"q% c #282A2F",
"r% c #24293C",
"s% c #333D59",
"t% c #303C5F",
"u% c #2D2F3B",
"v% c #373D54",
"w% c #3C4057",
"x% c #3F5083",
"y% c #849ABA",
"z% c #334373",
"A% c #344578",
"B% c #525D8F",
"C% c #686E9B",
"D% c #5B6282",
"E% c #424A67",
"F% c #4D5B81",
"G% c #444D65",
"H% c #5B668C",
"I% c #58638C",
"J% c #465074",
"K% c #414B6E",
"L% c #2F364B",
"M% c #252830",
"N% c #3F4046",
"O% c #343740",
"P% c #191A1E",
"Q% c #1A1B21",
"R% c #373E59",
"S% c #3F4154",
"T% c #3C3D50",
"U% c #262C3D",
"V% c #495672",
"W% c #6477A2",
"X% c #3D4D7A",
"Y% c #33426E",
"Z% c #363F5F",
"`% c #4B5171",
" & c #525875",
".& c #4F5774",
"+& c #444C68",
"@& c #353E5D",
"#& c #49506E",
"$& c #454A64",
"%& c #414864",
"&& c #383F57",
"*& c #495372",
"=& c #292D3B",
"-& c #3B3D49",
";& c #1F2128",
">& c #363C51",
",& c #222736",
"'& c #1D212F",
")& c #272A36",
"!& c #2B3146",
"~& c #2F364E",
"{& c #383B4E",
"]& c #3F496A",
"^& c #303751",
"/& c #3A3E55",
"(& c #3C3E52",
"_& c #3A4059",
":& c #394260",
"<& c #2C334A",
"[& c #383F56",
"}& c #383D51",
"|& c #353A4C",
"1& c #32384C",
"2& c #31374B",
"3& c #333950",
"4& c #282E41",
"5& c #202431",
"6& c #1A1B1F",
"7& c #262B37",
"8& c #282C3D",
"9& c #303547",
"0& c #393D53",
"a& c #32384E",
"b& c #343B54",
"c& c #292C38",
"d& c #2F3242",
"e& c #2C303F",
"f& c #2C2F3C",
"g& c #252832",
"h& c #2D313E",
"i& c #262935",
"j& c #2A2E3C",
"k& c #21242F",
"l& c #20242E",
"m& c #222429",
"n& c #262A3B",
"o& c #1A1C22",
"p& c #282C3B",
"q& c #30364C",
"r& c #333A54",
"s& c #2A3044",
"t& c #272A37",
"u& c #292E3F",
"v& c #2A2F42",
"w& c #272D3F",
"x& c #1E212A",
"y& c #1B1C1F",
"z& c #1C1E21",
"A& c #1D1F22",
"B& c #22242D",
"C& c #232631",
"D& c #222734",
"E& c #1C1D23",
"F& c #1E1F22",
"G& c #1C1D21",
" . + @ # $ % & * ",
" = - ; > , ' ) ! ~ { ] ^ / ( ",
" _ : < [ } | 1 2 3 4 5 6 7 8 9 0 ",
" a b c d e f g h i j k l m n o p q r s t ",
" u u v w x y z A B C D E F G H I J K u u u u u ",
" L u M N O P Q R S T U V W u u u u u X Y Z ` ... ",
" +.@.u #.$.%.&.*.=.-.;.>.,.'.u ).!.~.{.].^./.(._.:.<. ",
" [.}.u |.1.2.3.4.5.6.7.8.9.0.u a.b.c.d.e.f.g.h.i.j.k. ",
" l.m.n.u o.p.q.r.s.t.u.v.w.x.y.u z.A.B.6 C.D.E.F.G.H.I.0 ",
" J.K.L.M.u N.O.P.Q.R.S.T.U.V.W.X.u Y.Z.`. +.+++@+#+$+%+&+*+=+ ",
" -+;+>+,+u '+)+!+~+{+]+^+/+(+_+:+u <+[+}+|+1+2+3+4+5+6+7+8+9+ ",
" 0+a+b+c+u d+e+f+g+h+i+j+k+l+m+n+u o+p+q+r+s+t+u+v+w+x+y+z+A+ ",
"B+C+D+E+F+u G+H+I+J+K+L+M+N+O+P+Q+u R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@",
"#@$@%@&@*@u =@-@;@>@,@'@)@!@~@{@]@u ^@/@(@_@:@<@[@}@|@1@2@3@4@5@",
"6@7@8@9@0@u a@b@c@d@e@f@g@h@i@j@k@u l@m@n@o@p@q@r@s@t@u@v@w@x@y@",
"z@A@B@C@D@u E@F@G@H@I@J@K@L@M@N@O@u u u u u u u u u u u u u P@Q@",
"R@S@T@U@V@u W@X@Y@Z@`@ #.#+#@###$#%#u &#*#=#-#;#>#,#'#)#!#~#{#]#",
"^#/#(#_#:#u <#[#}#|#1#2#3#4#5#6#7#8#u 9#0#a#b#c#d#e#f#g#h#i#j#k#",
"l#m#n#o#p#u q#r#s#t#u#v#w#x#y#z#A#B#u C#D#E#F#G#H#I#J#K#L#M#N#O#",
"P#Q#R#S#T#u U#V#W#X#Y#Z#`# $.$+$@$#$u $$%$&$*$=$-$;$>$,$'$)$!$~$",
" {$]$^$/$u ($_$:$<$[$}$|$1$2$3$4$5$u 6$7$8$M.9$0$a$b$c$d$e$f$ ",
" g$h$i$j$u k$l$m$n$o$p$q$r$s$t$u$v$u w$x$y$z$A$B$C$D$E$F$G$H$ ",
" I$J$K$L$u M$N$O$P$Q$R$S$T$U$V$W$X$u Y$Z$`$ %.%+%@%#%$%%%&%*% ",
" =%-%;%u >%,%'%)%!%~%{%]%^%/%(%_%u :%<%[%}%|%1%2%3%4%5%6% ",
" 7%8%u 9%0%a%b%c%d%e%f%g%h%i%j%u k%l%m%n%o%p%q%r%s%t% ",
" u%v%u w%x%y%A.z%A%B%C%D%E%F%G%u H%I%J%K%L%M%N%O%P%Q% ",
" u R%S%T%U%V%W%X%Y%Z%`% &.&+&u u u u u u u u u u ",
" u u u u u u u u u u u @&#&$&%&&&*&=&-&;&>&,&'& ",
" )&!&~&{&]&^&/&(&_&:&<&[&}&|&1&2&3&4&5&6& ",
" 7&8&9&0&a&b&c&d&e&f&g&h&i&j&k&l& ",
" m&n&o&p&c&q&r&s&t&u&v&w&x&y& ",
" z&A&B&C&D&E&F&G& "};

9
debian/rdlogin.desktop vendored Normal file
View File

@@ -0,0 +1,9 @@
[Desktop Entry]
Encoding=UTF-8
Name=rdlogin
Comment=Rivendell Login Utility
Exec=rdlogin
Terminal=false
Type=Application
Icon=/usr/share/srlabs/rdlogin.xpm
Categories=Application;AudioVideo;

715
debian/rdlogin.xpm vendored Normal file
View File

@@ -0,0 +1,715 @@
/* XPM */
static char * rdlogin_xpm[] = {
"32 32 680 2",
" c None",
". c #3D485E",
"+ c #3D485F",
"@ c #364156",
"# c #3B475D",
"$ c #414F69",
"% c #37435A",
"& c #36425B",
"* c #3B4A68",
"= c #2F3645",
"- c #4B5871",
"; c #505D74",
"> c #4D586E",
", c #454F62",
"' c #606E88",
") c #5B6985",
"! c #414D64",
"~ c #536280",
"{ c #4E5F81",
"] c #3F4E69",
"^ c #435478",
"/ c #384868",
"( c #2E384D",
"_ c #424D5E",
": c #576375",
"< c #57606E",
"[ c #525B6A",
"} c #778192",
"| c #3B414B",
"1 c #8A98A8",
"2 c #404753",
"3 c #758398",
"4 c #4B5669",
"5 c #58667F",
"6 c #51607E",
"7 c #404D68",
"8 c #47587A",
"9 c #394868",
"0 c #364566",
"a c #30353E",
"b c #485468",
"c c #677281",
"d c #484F5D",
"e c #8F96A5",
"f c #3D414E",
"g c #A1A6B3",
"h c #4D5363",
"i c #8992A1",
"j c #686E79",
"k c #545E70",
"l c #8494A9",
"m c #3C4454",
"n c #586581",
"o c #6478A1",
"p c #3D4964",
"q c #46587D",
"r c #4A5D87",
"s c #323E5C",
"t c #354464",
"u c #23262D",
"v c #636F7E",
"w c #404551",
"x c #E11313",
"y c #222531",
"z c #C7C8CD",
"A c #393C48",
"B c #A3A6B3",
"C c #7A7D86",
"D c #404557",
"E c #BEC3D0",
"F c #535768",
"G c #434B5E",
"H c #8FA0B8",
"I c #5E6983",
"J c #3D465C",
"K c #6A7EA7",
"L c #506285",
"M c #45567B",
"N c #445983",
"O c #3A4A70",
"P c #293246",
"Q c #404B5C",
"R c #48505C",
"S c #6F7A88",
"T c #636570",
"U c #20222B",
"V c #DBDDE2",
"W c #50535F",
"X c #6C6E76",
"Y c #D1D3DC",
"Z c #2A2E3F",
"` c #505564",
" . c #C4C9D3",
".. c #5C6374",
"+. c #353A44",
"@. c #8092AC",
"#. c #7283A0",
"$. c #3B4359",
"%. c #3F4C67",
"&. c #5B72A2",
"*. c #425379",
"=. c #3E4C6F",
"-. c #3C4F7A",
";. c #374668",
">. c #2A2E35",
",. c #54627A",
"'. c #9299A1",
"). c #3C404D",
"!. c #878996",
"~. c #373E55",
"{. c #CCCDD6",
"]. c #767989",
"^. c #3C435E",
"/. c #A8AAB4",
"(. c #A8AAB8",
"_. c #363B4E",
":. c #565A68",
"<. c #C2CEDA",
"[. c #76829B",
"}. c #353E56",
"|. c #54617C",
"1. c #86A2D2",
"2. c #5E6F96",
"3. c #4A557A",
"4. c #45567D",
"5. c #5975B2",
"6. c #3E4E75",
"7. c #3A4362",
"8. c #202023",
"9. c #627183",
"0. c #394152",
"a. c #B8BBC3",
"b. c #2A2D39",
"c. c #848591",
"d. c #1C202C",
"e. c #A2A8BE",
"f. c #C9CAD3",
"g. c #212431",
"h. c #4D5164",
"i. c #D7D7DB",
"j. c #8B8C95",
"k. c #36384A",
"l. c #4D5160",
"m. c #AEBFD0",
"n. c #8495AC",
"o. c #5572B5",
"p. c #2F3D5B",
"q. c #47566D",
"r. c #7D8C9E",
"s. c #33343A",
"t. c #C6C7CF",
"u. c #242A3A",
"v. c #6E7792",
"w. c #CFD1D8",
"x. c #494C57",
"y. c #DFE0E3",
"z. c #8C8E9C",
"A. c #22242C",
"B. c #616471",
"C. c #DDDEE2",
"D. c #838692",
"E. c #404357",
"F. c #4D6399",
"G. c #363F4B",
"H. c #4B596D",
"I. c #8492A4",
"J. c #363A46",
"K. c #CFD0D4",
"L. c #3F4C6D",
"M. c #3C4256",
"N. c #ECEEF5",
"O. c #555B77",
"P. c #8E909D",
"Q. c #DCDCE3",
"R. c #717385",
"S. c #24252D",
"T. c #616472",
"U. c #E8EBF3",
"V. c #A0A9BC",
"W. c #96B6E9",
"X. c #647AA9",
"Y. c #293044",
"Z. c #46506E",
"`. c #313A54",
" + c #1F242E",
".+ c #222326",
"++ c #657B92",
"@+ c #3C4558",
"#+ c #919FB2",
"$+ c #262C3C",
"%+ c #BEC1CA",
"&+ c #676C7D",
"*+ c #384467",
"=+ c #ADADB5",
"-+ c #2A2D3A",
";+ c #3D4253",
">+ c #C5C6CD",
",+ c #D6D6DF",
"'+ c #53586E",
")+ c #34384B",
"!+ c #4E5365",
"~+ c #C1D2E5",
"{+ c #212331",
"]+ c #3F486A",
"^+ c #7E9BD4",
"/+ c #84AAEF",
"(+ c #5A70A8",
"_+ c #273147",
":+ c #6F8398",
"<+ c #333841",
"[+ c #A0ABB5",
"}+ c #283454",
"|+ c #99A1B7",
"1+ c #A8AFBF",
"2+ c #21283B",
"3+ c #878EA8",
"4+ c #71778C",
"5+ c #2D344D",
"6+ c #4C4E5D",
"7+ c #D4D8E4",
"8+ c #BDC0CB",
"9+ c #41465B",
"0+ c #454E73",
"a+ c #6876A0",
"b+ c #353B57",
"c+ c #272C3C",
"d+ c #3E4C6D",
"e+ c #7DA2EA",
"f+ c #6487CB",
"g+ c #5170A4",
"h+ c #4C4E51",
"i+ c #8096AC",
"j+ c #2C323F",
"k+ c #B7C4D0",
"l+ c #3C4A6C",
"m+ c #4C5773",
"n+ c #DCDCE1",
"o+ c #5D6A8F",
"p+ c #242D47",
"q+ c #575D70",
"r+ c #3F4A70",
"s+ c #404456",
"t+ c #DFE5F3",
"u+ c #D5E0F0",
"v+ c #3D4453",
"w+ c #67799B",
"x+ c #9EC0F4",
"y+ c #6D87B6",
"z+ c #62709E",
"A+ c #555F8A",
"B+ c #343A4F",
"C+ c #445072",
"D+ c #333C52",
"E+ c #44494F",
"F+ c #7C95A3",
"G+ c #262E3D",
"H+ c #A0A9B1",
"I+ c #5E6980",
"J+ c #324576",
"K+ c #C8CAD2",
"L+ c #9BA3B7",
"M+ c #2E3445",
"N+ c #4F5978",
"O+ c #CAD0E2",
"P+ c #2B3142",
"Q+ c #455681",
"R+ c #565E72",
"S+ c #BFCFD9",
"T+ c #B6CCE5",
"U+ c #56638D",
"V+ c #6A7EAB",
"W+ c #7B9DD7",
"X+ c #7DA1E1",
"Y+ c #475A80",
"Z+ c #434C67",
"`+ c #7BA5EB",
" @ c #4B5C7B",
".@ c #1E2026",
"+@ c #444D55",
"@@ c #79868D",
"#@ c #4B5259",
"$@ c #6B7786",
"%@ c #B1C0D7",
"&@ c #2B334A",
"*@ c #788AAD",
"=@ c #EBEDF2",
"-@ c #66779C",
";@ c #242C39",
">@ c #D9DCE2",
",@ c #C2CEE3",
"'@ c #464F63",
")@ c #374458",
"!@ c #546173",
"~@ c #97ADC6",
"{@ c #323A4F",
"]@ c #383F4C",
"^@ c #515D77",
"/@ c #6E8CBE",
"(@ c #729BE0",
"_@ c #2D374D",
":@ c #55729B",
"<@ c #A9CAD7",
"[@ c #677A89",
"}@ c #465159",
"|@ c #616D7B",
"1@ c #88909B",
"2@ c #2F3747",
"3@ c #CCD7DF",
"4@ c #525C70",
"5@ c #4F638E",
"6@ c #B3B5BA",
"7@ c #BDC0C7",
"8@ c #506A96",
"9@ c #6C80A8",
"0@ c #DFEDF4",
"a@ c #A6BBCB",
"b@ c #374869",
"c@ c #232A39",
"d@ c #526286",
"e@ c #7199CA",
"f@ c #7D9DC6",
"g@ c #5C71A3",
"h@ c #424E66",
"i@ c #576478",
"j@ c #5A6B87",
"k@ c #414954",
"l@ c #4F5E73",
"m@ c #B0BCC5",
"n@ c #363F4C",
"o@ c #BBCDE3",
"p@ c #D3E3F0",
"q@ c #2A3242",
"r@ c #51648B",
"s@ c #DEE0E4",
"t@ c #B7BEC8",
"u@ c #374871",
"v@ c #62728D",
"w@ c #C5E2F2",
"x@ c #A2BCD1",
"y@ c #596B91",
"z@ c #272C38",
"A@ c #484F64",
"B@ c #354258",
"C@ c #89AABE",
"D@ c #CCE9F5",
"E@ c #92B3C9",
"F@ c #4D5E76",
"G@ c #242935",
"H@ c #17181C",
"I@ c #4B556B",
"J@ c #515F72",
"K@ c #89939D",
"L@ c #6A7B8E",
"M@ c #6B7C8D",
"N@ c #D8DBE0",
"O@ c #5A6682",
"P@ c #2C3D64",
"Q@ c #778195",
"R@ c #EAF0F8",
"S@ c #252B3F",
"T@ c #42568E",
"U@ c #56667D",
"V@ c #D9F3FC",
"W@ c #BED0D8",
"X@ c #6F7586",
"Y@ c #30333F",
"Z@ c #515667",
"`@ c #6B7794",
" # c #88A5B6",
".# c #C5E7F6",
"+# c #5D6D8D",
"@# c #677BA9",
"## c #6C82AE",
"$# c #97B5D5",
"%# c #A2C5E9",
"&# c #8DB5F4",
"*# c #6B87C8",
"=# c #3A4665",
"-# c #3F4862",
";# c #545D78",
"># c #4C5569",
",# c #9DADC8",
"'# c #2B3A58",
")# c #798AAF",
"!# c #D4DEF0",
"~# c #454D5E",
"{# c #374D81",
"]# c #6D778D",
"^# c #9FAFCF",
"/# c #29324C",
"(# c #435283",
"_# c #4D5566",
":# c #B2C3D0",
"<# c #CAE4F1",
"[# c #A3B5CB",
"}# c #4F5464",
"|# c #43454F",
"1# c #656975",
"2# c #69768D",
"3# c #85A2BF",
"4# c #9EC5F4",
"5# c #7694C8",
"6# c #3E4B6B",
"7# c #252A37",
"8# c #1E2028",
"9# c #16171C",
"0# c #1F2229",
"a# c #384564",
"b# c #343D54",
"c# c #3A4158",
"d# c #616D94",
"e# c #333E5F",
"f# c #868EAA",
"g# c #49567A",
"h# c #2A3F72",
"i# c #A6AEBF",
"j# c #999EB2",
"k# c #435A8F",
"l# c #333D5B",
"m# c #D0DFF5",
"n# c #7B88AC",
"o# c #353E5B",
"p# c #454F6E",
"q# c #464E62",
"r# c #A4B8D4",
"s# c #A9C6F3",
"t# c #8599C5",
"u# c #676F88",
"v# c #40424B",
"w# c #7F89A4",
"x# c #97ABD1",
"y# c #7A98DC",
"z# c #7293E3",
"A# c #5F7ABB",
"B# c #627BB1",
"C# c #586988",
"D# c #2B2F3B",
"E# c #16171B",
"F# c #18191C",
"G# c #36405E",
"H# c #5A6896",
"I# c #2D3244",
"J# c #909ACA",
"K# c #3D5189",
"L# c #475070",
"M# c #ADB5E0",
"N# c #7D87B1",
"O# c #374D8F",
"P# c #6876A1",
"Q# c #ABB7E6",
"R# c #8792BF",
"S# c #545D7F",
"T# c #3D4257",
"U# c #404352",
"V# c #67708B",
"W# c #879BDB",
"X# c #819AE3",
"Y# c #8796C2",
"Z# c #525970",
"`# c #3D414C",
" $ c #373C4D",
".$ c #404C6D",
"+$ c #556BA5",
"@$ c #536DB0",
"#$ c #5874BB",
"$$ c #5770B2",
"%$ c #344164",
"&$ c #3C486C",
"*$ c #515878",
"=$ c #313545",
"-$ c #5E617B",
";$ c #7E89B8",
">$ c #2B334C",
",$ c #48506F",
"'$ c #A8ADDC",
")$ c #8492D1",
"!$ c #2B3048",
"~$ c #636C93",
"{$ c #919AC9",
"]$ c #8792BE",
"^$ c #51576E",
"/$ c #575B6C",
"($ c #5E5F69",
"_$ c #565B6C",
":$ c #6F7BA2",
"<$ c #7187CC",
"[$ c #6377B4",
"}$ c #6F80AC",
"|$ c #5B6581",
"1$ c #4B5169",
"2$ c #535E7E",
"3$ c #6373A1",
"4$ c #566796",
"5$ c #3D4866",
"6$ c #38476D",
"7$ c #37476F",
"8$ c #323646",
"9$ c #394059",
"0$ c #545971",
"a$ c #202128",
"b$ c #696B8C",
"c$ c #656FA5",
"d$ c #2A3A6B",
"e$ c #565F84",
"f$ c #7579A1",
"g$ c #414B72",
"h$ c #37405F",
"i$ c #525D80",
"j$ c #70779D",
"k$ c #8993C2",
"l$ c #686F8E",
"m$ c #525563",
"n$ c #525462",
"o$ c #4D4E58",
"p$ c #454A5E",
"q$ c #68759C",
"r$ c #52649C",
"s$ c #4F64A0",
"t$ c #3A4872",
"u$ c #2A324C",
"v$ c #1D212D",
"w$ c #21232C",
"x$ c #3A3C47",
"y$ c #303444",
"z$ c #191B1E",
"A$ c #34394B",
"B$ c #404764",
"C$ c #484B5E",
"D$ c #242632",
"E$ c #8596DE",
"F$ c #6681CC",
"G$ c #2D3855",
"H$ c #8388B9",
"I$ c #7C83B8",
"J$ c #383E58",
"K$ c #404969",
"L$ c #434A63",
"M$ c #5C6485",
"N$ c #717AA6",
"O$ c #666E95",
"P$ c #5A5F76",
"Q$ c #4A4C56",
"R$ c #656B7F",
"S$ c #606A84",
"T$ c #3B4159",
"U$ c #323B56",
"V$ c #3C4B76",
"W$ c #44578F",
"X$ c #3C4D7E",
"Y$ c #364570",
"Z$ c #303C61",
"`$ c #2E364D",
" % c #323546",
".% c #444A66",
"+% c #3D3F4F",
"@% c #404A66",
"#% c #8399CC",
"$% c #6E819E",
"%% c #2D2F3B",
"&% c #373D54",
"*% c #474A5F",
"=% c #3C4057",
"-% c #3F5083",
";% c #849ABA",
">% c #5B6282",
",% c #424A67",
"'% c #4D5B81",
")% c #444D65",
"!% c #434B68",
"~% c #5B668C",
"{% c #58638C",
"]% c #465074",
"^% c #414B6E",
"/% c #2F364B",
"(% c #252830",
"_% c #3F4046",
":% c #343740",
"<% c #191A1E",
"[% c #1A1B21",
"}% c #2D303E",
"|% c #373E59",
"1% c #3F4154",
"2% c #3C3D50",
"3% c #262C3D",
"4% c #495672",
"5% c #6477A2",
"6% c #3D4D7A",
"7% c #33426E",
"8% c #363F5F",
"9% c #4B5171",
"0% c #525875",
"a% c #4F5774",
"b% c #444C68",
"c% c #485375",
"d% c #3E455E",
"e% c #454F70",
"f% c #56638A",
"g% c #383F57",
"h% c #313A57",
"i% c #3D496E",
"j% c #323D60",
"k% c #364265",
"l% c #222736",
"m% c #2C2F3D",
"n% c #31374C",
"o% c #33374A",
"p% c #3A3C4D",
"q% c #1D1F26",
"r% c #303850",
"s% c #4E5B8D",
"t% c #43496D",
"u% c #344068",
"v% c #3B466A",
"w% c #353E5D",
"x% c #49506E",
"y% c #454A64",
"z% c #414864",
"A% c #495372",
"B% c #292D3B",
"C% c #3B3D49",
"D% c #1F2128",
"E% c #363C51",
"F% c #1D212F",
"G% c #272A36",
"H% c #2B3146",
"I% c #2F364E",
"J% c #383B4E",
"K% c #3F496A",
"L% c #303751",
"M% c #3A3E55",
"N% c #3C3E52",
"O% c #3A4059",
"P% c #394260",
"Q% c #2C334A",
"R% c #383F56",
"S% c #383D51",
"T% c #353A4C",
"U% c #32384C",
"V% c #31374B",
"W% c #333950",
"X% c #282E41",
"Y% c #202431",
"Z% c #1A1B1F",
"`% c #262B37",
" & c #282C3D",
".& c #303547",
"+& c #393D53",
"@& c #32384E",
"#& c #343B54",
"$& c #292C38",
"%& c #2F3242",
"&& c #2C303F",
"*& c #2C2F3C",
"=& c #252832",
"-& c #2D313E",
";& c #262935",
">& c #2A2E3C",
",& c #21242F",
"'& c #20242E",
")& c #222429",
"!& c #262A3B",
"~& c #1A1C22",
"{& c #282C3B",
"]& c #30364C",
"^& c #333A54",
"/& c #2A3044",
"(& c #272A37",
"_& c #292E3F",
":& c #2A2F42",
"<& c #272D3F",
"[& c #1E212A",
"}& c #1B1C1F",
"|& c #1C1E21",
"1& c #1D1F22",
"2& c #22242D",
"3& c #232631",
"4& c #222734",
"5& c #1C1D23",
"6& c #1E1F22",
"7& c #1C1D21",
" . + @ # $ % & * ",
" = - ; > , ' ) ! ~ { ] ^ / ( ",
" _ : < [ } | 1 2 3 4 5 6 7 8 9 0 ",
" a b c d e f g h i j k l m n o p q r s t ",
" u v w x y z A B C D E F G H I J K L M N O P ",
" Q R S T x U V W X Y Z ` ...+.@.#.$.%.&.*.=.-.;. ",
" >.,.'.).!.x ~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8. ",
" 9.0.a.b.c.x d.e.f.g.h.i.j.k.l.m.n.x x x x x x x o.p. ",
" q.r.s.t.u.v.w.x x.y.z.A.B.C.D.E.x x x x x x x x x x F.0 ",
" G.H.I.J.K.L.M.N.x O.P.Q.R.S.T.U.V.x x x W.X.Y.Z.x x x `. +.+ ",
" ++@+#+$+%+&+*+=+x -+;+>+,+'+)+!+~+x x {+]+^+/+(+x x x x x _+ ",
" :+<+[+}+|+1+2+3+x 4+5+6+7+8+9+0+x x x a+b+c+d+e+f+x x x x g+ ",
"h+i+j+k+l+m+n+o+p+x x q+r+s+t+u+v+x x w+x+y+z+A+B+x x x x x C+D+",
"E+F+G+H+I+J+K+L+M+N+x O+P+Q+R+S+T+x x U+V+W+X+Y+Z+x x x x `+ @.@",
"+@@@#@$@%@&@*@=@-@;@x >@,@'@)@!@~@x x {@]@^@/@(@x x x x _@:@<@[@",
"}@|@1@2@3@4@5@6@7@8@x 9@0@a@b@c@d@x x x x x x x x x e@f@g@h@i@j@",
"k@l@m@n@o@p@q@r@s@t@x u@v@w@x@y@z@A@x x x x x x x B@C@D@E@F@G@H@",
"I@J@K@L@M@N@O@P@Q@R@x S@T@U@V@W@X@Y@Z@`@ #.#x x +#@###$#%#&#*#=#",
"-#;#>#,#'#)#!#~#{#]#x ^#/#(#_#:#<#[#}#|#1#2#3#4#5#6#7#8#9#0#a#b#",
"c#d#e#f#g#h#i#j#k#l#x m#n#o#p#q#r#s#t#u#v#l.w#x#y#z#A#B#C#D#E#F#",
" G#H#I#J#K#L#M#N#O#x P#Q#R#S#T#U#V#W#X#Y#Z#J.`# $.$+$@$#$$$%$ ",
" &$*$=$-$;$>$,$'$)$x !$~${$]$^$/$($_$:$<$[$}$|$1$2$3$4$5$6$7$ ",
" 8$9$0$a$b$c$d$e$x f$g$h$i$j$k$l$m$n$o$p$q$r$s$t$u$v$w$x$y$z$ ",
" A$B$C$D$E$F$G$x H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$`$ ",
" %.%+%@%#%$%x x x x x x x x x x x x x x x x x x x x ",
" %%&%*%=%-%;%x x x x x >%,%'%)%!%~%{%]%^%/%(%_%:%<%[% ",
" }%|%1%2%3%4%5%6%7%8%9%0%a%b%c%d%e%f%g%h%i%j%k%l% ",
" m%n%o%p%q%r%s%t%u%v%w%x%y%z%g%A%B%C%D%E%l%F% ",
" G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z% ",
" `% &.&+&@&#&$&%&&&*&=&-&;&>&,&'& ",
" )&!&~&{&$&]&^&/&(&_&:&<&[&}& ",
" |&1&2&3&4&5&6&7& "};

9
debian/rdlogmanager.desktop vendored Normal file
View File

@@ -0,0 +1,9 @@
[Desktop Entry]
Encoding=UTF-8
Name=rdlogmanager
Comment=Rivendell Log Manager
Exec=rdlogmanager
Terminal=false
Type=Application
Icon=/usr/share/srlabs/rdlogmanager.xpm
Categories=Application;AudioVideo;

745
debian/rdlogmanager.xpm vendored Normal file
View File

@@ -0,0 +1,745 @@
/* XPM */
static char * rdlogmanager_xpm[] = {
"32 32 710 2",
" c None",
". c #3D485E",
"+ c #3D485F",
"@ c #364156",
"# c #3B475D",
"$ c #414F69",
"% c #37435A",
"& c #36425B",
"* c #3B4A68",
"= c #2F3645",
"- c #4B5871",
"; c #505D74",
"> c #4D586E",
", c #454F62",
"' c #606E88",
") c #5B6985",
"! c #414D64",
"~ c #536280",
"{ c #4E5F81",
"] c #3F4E69",
"^ c #435478",
"/ c #384868",
"( c #2E384D",
"_ c #424D5E",
": c #576375",
"< c #57606E",
"[ c #525B6A",
"} c #778192",
"| c #3B414B",
"1 c #8A98A8",
"2 c #404753",
"3 c #758398",
"4 c #4B5669",
"5 c #58667F",
"6 c #51607E",
"7 c #404D68",
"8 c #47587A",
"9 c #394868",
"0 c #364566",
"a c #30353E",
"b c #485468",
"c c #677281",
"d c #484F5D",
"e c #8F96A5",
"f c #3D414E",
"g c #A1A6B3",
"h c #4D5363",
"i c #8992A1",
"j c #686E79",
"k c #545E70",
"l c #8494A9",
"m c #3C4454",
"n c #586581",
"o c #6478A1",
"p c #3D4964",
"q c #46587D",
"r c #4A5D87",
"s c #323E5C",
"t c #354464",
"u c #23262D",
"v c #E11313",
"w c #404551",
"x c #9BA1A7",
"y c #222531",
"z c #C7C8CD",
"A c #393C48",
"B c #A3A6B3",
"C c #7A7D86",
"D c #404557",
"E c #BEC3D0",
"F c #535768",
"G c #434B5E",
"H c #8FA0B8",
"I c #5E6983",
"J c #3D465C",
"K c #6A7EA7",
"L c #506285",
"M c #45567B",
"N c #445983",
"O c #3A4A70",
"P c #293246",
"Q c #404B5C",
"R c #48505C",
"S c #636570",
"T c #888A94",
"U c #20222B",
"V c #DBDDE2",
"W c #50535F",
"X c #6C6E76",
"Y c #D1D3DC",
"Z c #2A2E3F",
"` c #505564",
" . c #C4C9D3",
".. c #5C6374",
"+. c #353A44",
"@. c #8092AC",
"#. c #7283A0",
"$. c #3B4359",
"%. c #3F4C67",
"&. c #5B72A2",
"*. c #425379",
"=. c #3E4C6F",
"-. c #3C4F7A",
";. c #374668",
">. c #2A2E35",
",. c #54627A",
"'. c #9299A1",
"). c #878996",
"!. c #878A99",
"~. c #373E55",
"{. c #CCCDD6",
"]. c #767989",
"^. c #3C435E",
"/. c #A8AAB4",
"(. c #A8AAB8",
"_. c #363B4E",
":. c #565A68",
"<. c #C2CEDA",
"[. c #76829B",
"}. c #353E56",
"|. c #54617C",
"1. c #86A2D2",
"2. c #5E6F96",
"3. c #4A557A",
"4. c #45567D",
"5. c #5975B2",
"6. c #3E4E75",
"7. c #3A4362",
"8. c #202023",
"9. c #627183",
"0. c #394152",
"a. c #B8BBC3",
"b. c #848591",
"c. c #A0A3B3",
"d. c #1C202C",
"e. c #A2A8BE",
"f. c #C9CAD3",
"g. c #212431",
"h. c #4D5164",
"i. c #D7D7DB",
"j. c #8B8C95",
"k. c #36384A",
"l. c #4D5160",
"m. c #424C72",
"n. c #3B4560",
"o. c #5F749D",
"p. c #6A86B9",
"q. c #526288",
"r. c #5F6D9F",
"s. c #415582",
"t. c #47566D",
"u. c #7D8C9E",
"v. c #33343A",
"w. c #C6C7CF",
"x. c #6E7792",
"y. c #CFD1D8",
"z. c #424A62",
"A. c #494C57",
"B. c #DFE0E3",
"C. c #8C8E9C",
"D. c #22242C",
"E. c #616471",
"F. c #DDDEE2",
"G. c #838692",
"H. c #404357",
"I. c #8293AB",
"J. c #444C73",
"K. c #4A5579",
"L. c #607DB6",
"M. c #5977B2",
"N. c #333E59",
"O. c #363F4B",
"P. c #4B596D",
"Q. c #8492A4",
"R. c #363A46",
"S. c #CFD0D4",
"T. c #3C4256",
"U. c #ECEEF5",
"V. c #5F6169",
"W. c #555B77",
"X. c #8E909D",
"Y. c #DCDCE3",
"Z. c #717385",
"`. c #24252D",
" + c #616472",
".+ c #E8EBF3",
"++ c #A0A9BC",
"@+ c #424C70",
"#+ c #96B6E9",
"$+ c #647AA9",
"%+ c #293044",
"&+ c #46506E",
"*+ c #667BB3",
"=+ c #7090DC",
"-+ c #1F242E",
";+ c #222326",
">+ c #657B92",
",+ c #3C4558",
"'+ c #919FB2",
")+ c #262C3C",
"!+ c #BEC1CA",
"~+ c #384467",
"{+ c #ADADB5",
"]+ c #C9CDDC",
"^+ c #2A2D3A",
"/+ c #3D4253",
"(+ c #C5C6CD",
"_+ c #D6D6DF",
":+ c #53586E",
"<+ c #34384B",
"[+ c #4E5365",
"}+ c #C1D2E5",
"|+ c #505A79",
"1+ c #212331",
"2+ c #7E9BD4",
"3+ c #84AAEF",
"4+ c #5A70A8",
"5+ c #4B5F90",
"6+ c #5D82D2",
"7+ c #273147",
"8+ c #6F8398",
"9+ c #333841",
"0+ c #A0ABB5",
"a+ c #283454",
"b+ c #99A1B7",
"c+ c #21283B",
"d+ c #878EA8",
"e+ c #EBECF2",
"f+ c #71778C",
"g+ c #2D344D",
"h+ c #4C4E5D",
"i+ c #D4D8E4",
"j+ c #BDC0CB",
"k+ c #41465B",
"l+ c #454E73",
"m+ c #464C60",
"n+ c #A3BEDE",
"o+ c #6876A0",
"p+ c #272C3C",
"q+ c #3E4C6D",
"r+ c #7DA2EA",
"s+ c #647CAB",
"t+ c #535E85",
"u+ c #2B3550",
"v+ c #5170A4",
"w+ c #4C4E51",
"x+ c #8096AC",
"y+ c #2C323F",
"z+ c #B7C4D0",
"A+ c #3C4A6C",
"B+ c #4C5773",
"C+ c #5D6A8F",
"D+ c #242D47",
"E+ c #9A9EAD",
"F+ c #DBDBDE",
"G+ c #575D70",
"H+ c #3F4A70",
"I+ c #404456",
"J+ c #DFE5F3",
"K+ c #D5E0F0",
"L+ c #3D4453",
"M+ c #3A4568",
"N+ c #67799B",
"O+ c #9EC0F4",
"P+ c #6D87B6",
"Q+ c #555F8A",
"R+ c #3F537E",
"S+ c #668EDD",
"T+ c #597DC5",
"U+ c #303E5C",
"V+ c #445072",
"W+ c #333C52",
"X+ c #44494F",
"Y+ c #7C95A3",
"Z+ c #262E3D",
"`+ c #A0A9B1",
" @ c #5E6980",
".@ c #324576",
"+@ c #9BA3B7",
"@@ c #2E3445",
"#@ c #4F5978",
"$@ c #D8D9DE",
"%@ c #CAD0E2",
"&@ c #2B3142",
"*@ c #455681",
"=@ c #565E72",
"-@ c #BFCFD9",
";@ c #B6CCE5",
">@ c #5B698A",
",@ c #56638D",
"'@ c #6A7EAB",
")@ c #7B9DD7",
"!@ c #475A80",
"~@ c #5C6A98",
"{@ c #677BB2",
"]@ c #6685C4",
"^@ c #6791E1",
"/@ c #4B5C7B",
"(@ c #1E2026",
"_@ c #444D55",
":@ c #79868D",
"<@ c #4B5259",
"[@ c #6B7786",
"}@ c #B1C0D7",
"|@ c #2B334A",
"1@ c #EBEDF2",
"2@ c #66779C",
"3@ c #242C39",
"4@ c #7B8DAB",
"5@ c #D9DCE2",
"6@ c #C2CEE3",
"7@ c #464F63",
"8@ c #374458",
"9@ c #546173",
"0@ c #97ADC6",
"a@ c #B5D5F7",
"b@ c #323A4F",
"c@ c #383F4C",
"d@ c #515D77",
"e@ c #6E8CBE",
"f@ c #455981",
"g@ c #202530",
"h@ c #242832",
"i@ c #2D374D",
"j@ c #A9CAD7",
"k@ c #677A89",
"l@ c #465159",
"m@ c #616D7B",
"n@ c #88909B",
"o@ c #2F3747",
"p@ c #CCD7DF",
"q@ c #525C70",
"r@ c #B3B5BA",
"s@ c #BDC0C7",
"t@ c #506A96",
"u@ c #313D4E",
"v@ c #6C80A8",
"w@ c #DFEDF4",
"x@ c #A6BBCB",
"y@ c #374869",
"z@ c #232A39",
"A@ c #526286",
"B@ c #7288A8",
"C@ c #87A7CE",
"D@ c #5E7091",
"E@ c #384150",
"F@ c #282C35",
"G@ c #8DB7F3",
"H@ c #7DADF3",
"I@ c #7199CA",
"J@ c #7D9DC6",
"K@ c #5C71A3",
"L@ c #576478",
"M@ c #5A6B87",
"N@ c #414954",
"O@ c #4F5E73",
"P@ c #B0BCC5",
"Q@ c #363F4C",
"R@ c #BBCDE3",
"S@ c #D3E3F0",
"T@ c #51648B",
"U@ c #DEE0E4",
"V@ c #B7BEC8",
"W@ c #313E5E",
"X@ c #374871",
"Y@ c #62728D",
"Z@ c #C5E2F2",
"`@ c #A2BCD1",
" # c #596B91",
".# c #272C38",
"+# c #484F64",
"@# c #89ADDB",
"## c #8EBBEB",
"$# c #819FC2",
"%# c #77869D",
"&# c #454F65",
"*# c #2E3647",
"=# c #354258",
"-# c #89AABE",
";# c #CCE9F5",
"># c #92B3C9",
",# c #242935",
"'# c #17181C",
")# c #4B556B",
"!# c #515F72",
"~# c #89939D",
"{# c #6A7B8E",
"]# c #6B7C8D",
"^# c #D8DBE0",
"/# c #2C3D64",
"(# c #778195",
"_# c #EAF0F8",
":# c #8E9AB4",
"<# c #252B3F",
"[# c #42568E",
"}# c #56667D",
"|# c #D9F3FC",
"1# c #BED0D8",
"2# c #6F7586",
"3# c #30333F",
"4# c #6B7794",
"5# c #88A5B6",
"6# c #C5E7F6",
"7# c #A1B7C2",
"8# c #6E7D8C",
"9# c #5D6D8D",
"0# c #677BA9",
"a# c #6C82AE",
"b# c #97B5D5",
"c# c #A2C5E9",
"d# c #6B87C8",
"e# c #3A4665",
"f# c #3F4862",
"g# c #545D78",
"h# c #4C5569",
"i# c #9DADC8",
"j# c #2B3A58",
"k# c #798AAF",
"l# c #454D5E",
"m# c #374D81",
"n# c #6D778D",
"o# c #E6EDF2",
"p# c #9FAFCF",
"q# c #29324C",
"r# c #435283",
"s# c #4D5566",
"t# c #B2C3D0",
"u# c #CAE4F1",
"v# c #A3B5CB",
"w# c #656975",
"x# c #69768D",
"y# c #85A2BF",
"z# c #9EC5F4",
"A# c #7694C8",
"B# c #3E4B6B",
"C# c #252A37",
"D# c #1E2028",
"E# c #16171C",
"F# c #384564",
"G# c #343D54",
"H# c #3A4158",
"I# c #616D94",
"J# c #333E5F",
"K# c #868EAA",
"L# c #49567A",
"M# c #2A3F72",
"N# c #999EB2",
"O# c #435A8F",
"P# c #333D5B",
"Q# c #8690A5",
"R# c #D0DFF5",
"S# c #7B88AC",
"T# c #353E5B",
"U# c #454F6E",
"V# c #464E62",
"W# c #A4B8D4",
"X# c #A9C6F3",
"Y# c #8599C5",
"Z# c #40424B",
"`# c #7F89A4",
" $ c #97ABD1",
".$ c #7A98DC",
"+$ c #7293E3",
"@$ c #5F7ABB",
"#$ c #627BB1",
"$$ c #586988",
"%$ c #16171B",
"&$ c #18191C",
"*$ c #36405E",
"=$ c #5A6896",
"-$ c #2D3244",
";$ c #909ACA",
">$ c #3D5189",
",$ c #ADB5E0",
"'$ c #7D87B1",
")$ c #374D8F",
"!$ c #262F49",
"~$ c #6876A1",
"{$ c #ABB7E6",
"]$ c #8792BF",
"^$ c #545D7F",
"/$ c #3D4257",
"($ c #404352",
"_$ c #67708B",
":$ c #879BDB",
"<$ c #8796C2",
"[$ c #525970",
"}$ c #3D414C",
"|$ c #373C4D",
"1$ c #404C6D",
"2$ c #556BA5",
"3$ c #536DB0",
"4$ c #5874BB",
"5$ c #344164",
"6$ c #3C486C",
"7$ c #515878",
"8$ c #313545",
"9$ c #5E617B",
"0$ c #7E89B8",
"a$ c #48506F",
"b$ c #A8ADDC",
"c$ c #8492D1",
"d$ c #252A3B",
"e$ c #2B3048",
"f$ c #636C93",
"g$ c #919AC9",
"h$ c #8792BE",
"i$ c #51576E",
"j$ c #575B6C",
"k$ c #5E5F69",
"l$ c #565B6C",
"m$ c #7187CC",
"n$ c #6377B4",
"o$ c #6F80AC",
"p$ c #5B6581",
"q$ c #4B5169",
"r$ c #535E7E",
"s$ c #6373A1",
"t$ c #566796",
"u$ c #3D4866",
"v$ c #37476F",
"w$ c #323646",
"x$ c #394059",
"y$ c #545971",
"z$ c #202128",
"A$ c #696B8C",
"B$ c #2A3A6B",
"C$ c #565F84",
"D$ c #9297CD",
"E$ c #7579A1",
"F$ c #414B72",
"G$ c #37405F",
"H$ c #525D80",
"I$ c #70779D",
"J$ c #8993C2",
"K$ c #686F8E",
"L$ c #525563",
"M$ c #525462",
"N$ c #454A5E",
"O$ c #68759C",
"P$ c #52649C",
"Q$ c #4F64A0",
"R$ c #3A4872",
"S$ c #2A324C",
"T$ c #1D212D",
"U$ c #21232C",
"V$ c #3A3C47",
"W$ c #34394B",
"X$ c #404764",
"Y$ c #484B5E",
"Z$ c #242632",
"`$ c #8596DE",
" % c #2D3855",
".% c #424E77",
"+% c #8388B9",
"@% c #7C83B8",
"#% c #383E58",
"$% c #404969",
"%% c #434A63",
"&% c #5C6485",
"*% c #717AA6",
"=% c #666E95",
"-% c #5A5F76",
";% c #656B7F",
">% c #606A84",
",% c #3B4159",
"'% c #323B56",
")% c #3C4B76",
"!% c #44578F",
"~% c #3C4D7E",
"{% c #364570",
"]% c #303C61",
"^% c #2E364D",
"/% c #323546",
"(% c #444A66",
"_% c #3D3F4F",
":% c #404A66",
"<% c #6E819E",
"[% c #3E507C",
"}% c #344169",
"|% c #6A79B5",
"1% c #7376A1",
"2% c #565C7B",
"3% c #434D69",
"4% c #4F597A",
"5% c #49506B",
"6% c #5B6381",
"7% c #535C81",
"8% c #454B66",
"9% c #40465A",
"0% c #474E69",
"a% c #5A688F",
"b% c #4D5261",
"c% c #282A2F",
"d% c #24293C",
"e% c #333D59",
"f% c #303C5F",
"g% c #2D2F3B",
"h% c #373D54",
"i% c #474A5F",
"j% c #3C4057",
"k% c #849ABA",
"l% c #334373",
"m% c #344578",
"n% c #525D8F",
"o% c #686E9B",
"p% c #5B6282",
"q% c #424A67",
"r% c #4D5B81",
"s% c #444D65",
"t% c #434B68",
"u% c #58638C",
"v% c #465074",
"w% c #414B6E",
"x% c #2F364B",
"y% c #252830",
"z% c #3F4046",
"A% c #343740",
"B% c #191A1E",
"C% c #1A1B21",
"D% c #2D303E",
"E% c #373E59",
"F% c #3F4154",
"G% c #262C3D",
"H% c #495672",
"I% c #6477A2",
"J% c #3D4D7A",
"K% c #33426E",
"L% c #363F5F",
"M% c #4B5171",
"N% c #525875",
"O% c #4F5774",
"P% c #444C68",
"Q% c #485375",
"R% c #3E455E",
"S% c #454F70",
"T% c #56638A",
"U% c #383F57",
"V% c #313A57",
"W% c #3D496E",
"X% c #323D60",
"Y% c #364265",
"Z% c #222736",
"`% c #2C2F3D",
" & c #31374C",
".& c #454A64",
"+& c #414864",
"@& c #495372",
"#& c #292D3B",
"$& c #3B3D49",
"%& c #1F2128",
"&& c #363C51",
"*& c #1D212F",
"=& c #272A36",
"-& c #2B3146",
";& c #2F364E",
">& c #383B4E",
",& c #3F496A",
"'& c #303751",
")& c #3A3E55",
"!& c #3C3E52",
"~& c #3A4059",
"{& c #394260",
"]& c #2C334A",
"^& c #383F56",
"/& c #383D51",
"(& c #353A4C",
"_& c #32384C",
":& c #31374B",
"<& c #333950",
"[& c #282E41",
"}& c #202431",
"|& c #1A1B1F",
"1& c #262B37",
"2& c #282C3D",
"3& c #303547",
"4& c #393D53",
"5& c #32384E",
"6& c #343B54",
"7& c #292C38",
"8& c #2F3242",
"9& c #2C303F",
"0& c #2C2F3C",
"a& c #252832",
"b& c #2D313E",
"c& c #262935",
"d& c #2A2E3C",
"e& c #21242F",
"f& c #20242E",
"g& c #222429",
"h& c #262A3B",
"i& c #1A1C22",
"j& c #282C3B",
"k& c #30364C",
"l& c #333A54",
"m& c #2A3044",
"n& c #272A37",
"o& c #292E3F",
"p& c #2A2F42",
"q& c #272D3F",
"r& c #1E212A",
"s& c #1B1C1F",
"t& c #1C1E21",
"u& c #1D1F22",
"v& c #22242D",
"w& c #232631",
"x& c #222734",
"y& c #1C1D23",
"z& c #1E1F22",
"A& c #1C1D21",
" . + @ # $ % & * ",
" = - ; > , ' ) ! ~ { ] ^ / ( ",
" _ : < [ } | 1 2 3 4 5 6 7 8 9 0 ",
" a b c d e f g h i j k l m n o p q r s t ",
" u v w x y z A B C D E F G H I J K L M N O P ",
" Q R v S T U V W X Y Z ` ...+.@.#.$.%.&.*.=.-.;. ",
" >.,.'.v ).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6.7.8. ",
" 9.0.a.v b.c.d.e.f.g.h.i.j.k.l.v v m.n.o.p.q.r.s.v v ",
" t.u.v.w.v x.y.z.A.B.C.D.E.F.G.H.v I.v 6 J.K.L.M.N.v v 0 ",
" O.P.Q.R.S.v T.U.V.W.X.Y.Z.`. +.+++v @+v #+$+%+&+*+v =+v -+;+ ",
" >+,+'+)+!+v ~+{+]+^+/+(+_+:+<+[+}+v |+1+v 2+3+4+v v 5+6+v 7+ ",
" 8+9+0+a+b+v c+d+e+f+g+h+i+j+k+l+m+v n+o+v p+q+r+v s+t+u+v v+ ",
"w+x+y+z+A+B+v C+D+E+F+G+H+I+J+K+L+M+v N+O+P+v Q+v R+S+T+U+v V+W+",
"X+Y+Z+`+ @.@v +@@@#@$@%@&@*@=@-@;@>@v ,@'@)@v !@v ~@{@]@^@v /@(@",
"_@:@<@[@}@|@v 1@2@3@4@5@6@7@8@9@0@a@v b@c@d@e@v v f@g@h@i@v j@k@",
"l@m@n@o@p@q@v r@s@t@u@v@w@x@y@z@A@B@v C@D@E@F@v G@H@I@J@K@v L@M@",
"N@O@P@Q@R@S@v T@U@V@W@X@Y@Z@`@ #.#+#v @###$#%#&#*#=#-#;#>#v ,#'#",
")#!#~#{#]#^#v /#(#_#:#<#[#}#|#1#2#3#v 4#5#6#7#8#9#0#a#b#c#v d#e#",
"f#g#h#i#j#k#v l#m#n#o#p#q#r#s#t#u#v#v v w#x#y#z#A#B#C#D#E#v F#G#",
"H#I#J#K#L#M#v N#O#P#Q#R#S#T#U#V#W#X#Y#v Z#l.`# $.$+$@$#$$$v %$&$",
" *$=$-$;$>$v ,$'$)$!$~${$]$^$/$($_$:$v <$[$R.}$|$1$2$3$4$v 5$ ",
" 6$7$8$9$0$v a$b$c$d$e$f$g$h$i$j$k$l$v m$n$o$p$q$r$s$t$u$v v$ ",
" w$x$y$z$A$v B$C$D$E$F$G$H$I$J$K$L$M$v N$O$P$Q$R$S$T$U$V$v v ",
" W$X$Y$Z$`$v %.%+%@%#%$%%%&%*%=%-%v ;%>%,%'%)%!%~%{%]%^%v ",
" /%(%_%:%v <%[%}%|%1%2%3%4%5%6%7%v 8%9%0%a%b%c%d%e%f% v ",
" g%h%i%j%v k%I.l%m%n%o%p%q%r%s%t%v u%v%w%x%y%z%A%B%C% v ",
" D%E%F%v G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z% ",
" `% &v v v v v v v v v v .&+&U%@&#&$&%&&&Z%*& ",
" =&-&;&>&,&'&)&!&~&{&]&^&/&(&_&:&<&[&}&|& ",
" 1&2&3&4&5&6&7&8&9&0&a&b&c&d&e&f& ",
" g&h&i&j&7&k&l&m&n&o&p&q&r&s& ",
" t&u&v&w&x&y&z&A& "};

1
debian/rivendell.conffiles vendored Normal file
View File

@@ -0,0 +1 @@
/etc/logrotate.d/rivendell

110
debian/rivendell.config vendored Normal file
View File

@@ -0,0 +1,110 @@
#!/bin/sh -e
# if we do not have debconf, we just skip this
. /usr/share/debconf/confmodule || exit 0
db_version 2.0
db_title "Rivendell configuration"
# FIXME: initially, I am not going to even try to parse the config file and retreive the previous settings. ... for now, take values from user and generate the config file. The config file is windows style, and I do not know a decent parser for that (maybe make a python script ;-D).
# debconf enable or not
db_input high rivendell/debconfenable || true
db_go
# If user doesn't want to use debconf then leave...
db_get rivendell/debconfenable || true
if [ "$RET" = "false" ]; then
exit 0
fi
# general Rivendell questions
db_input high rivendell/postrm_remove_data || true
db_go
db_input high rivendell/run_mode || true
db_go
# Identify section
db_input high rivendell/identity/password || true
db_go
db_input high rivendell/identity/audioowner || true
db_go
db_input high rivendell/identity/audiogroup || true
db_go
# Format section
db_input high rivendell/format/samplerate || true
db_go
db_input medium rivendell/format/channels || true
db_go
# MySQL section
db_input high rivendell/mysql/hostname || true
db_go
db_input high rivendell/mysql/loginname || true
db_go
# Populate the password with the value entered above.
db_get rivendell/identity/password
db_set rivendell/mysql/password $RET
db_input high rivendell/mysql/password || true
db_go
db_input medium rivendell/mysql/database || true
db_go
db_input low rivendell/mysql/driver || true
db_go
# CAE section
db_input medium rivendell/cae/audioroot || true
db_go
db_input medium rivendell/cae/audioextension || true
db_go
db_input low rivendell/cae/allownonstandardrates || true
db_go
# Tuning section
db_input low rivendell/tuning/userealtime || true
db_go
# RDAirPlay section
db_input low rivendell/rdairplay/logfile || true
db_go
# RDCatchd section
db_input low rivendell/rdcatchd/logfile || true
db_go
# Ripcd section
db_input low rivendell/ripcd/logfile || true
db_go
# Caed section
db_input low rivendell/caed/logfile || true
db_go
# Audio adapters section
db_input high rivendell/audioadapters/selections || true
db_go
db_get rivendell/audioadapters/selections || true
if echo "$RET" | grep -s ALSA > /dev/null 2> /dev/null ; then
db_input high rivendell/audioadapters/alsaintro || true
db_go
fi
# Introduction
db_input high rivendell/intro || true
db_go
# vim:tabstop=4:expandtab:shiftwidth=4

9
debian/rivendell.docs.in vendored Normal file
View File

@@ -0,0 +1,9 @@
AUTHORS
ChangeLog
COPYING
INSTALL
NEWS
README
SupportedCards
ToDo
CODINGSTYLE

2
debian/rivendell.examples vendored Normal file
View File

@@ -0,0 +1,2 @@
conf/rd.conf-complete-sample
conf/rd.conf-sample

83
debian/rivendell.init vendored Executable file
View File

@@ -0,0 +1,83 @@
#!/bin/bash -e
#
# /etc/init.d/rivendell
#
DAEMONS="caed ripcd rdcatchd"
PIDDIR=/var/run/rivendell
NAME=rivendell
LABEL="Rivendell daemons"
# Defaults
RUN_MODE="init.d"
# Read config file (will override defaults above)
[ -r /etc/default/rivendell ] && . /etc/default/rivendell
if [ ! -f "/etc/rd.conf" ]; then
echo "No /etc/rd.conf found. See documentation and /usr/share/doc/rivendell/examples/." >&2
exit 0
fi
DAEMON_USER=`sed -n 's/^AudioOwner=\(.*\)$/\1/p' /etc/rd.conf`
# For Ubuntu, create run directory to store pid files.
AUDIOGROUP=`sed -n 's/^AudioGroup=\(.*\)$/\1/p' /etc/rd.conf`
if [ ! -d /var/run/rivendell ]; then
install --directory --mode 02775 --owner="$DAEMON_USER" --group="$AUDIOGROUP" /var/run/rivendell
fi
# Check if Rivendell daemons are started by init scripts or pam_rd.
if [ "$RUN_MODE" != "init.d" ]; then
exit 0
fi
for daemon in $DAEMONS; do
test -x /usr/bin/$daemon || exit 0
done
function start() {
echo -n "Starting $LABEL:"
for daemon in $DAEMONS; do
start-stop-daemon --start --oknodo --chuid $DAEMON_USER --exec "/usr/bin/$daemon"
echo -n " $daemon"
done
echo "."
}
function stop() {
echo -n "Stopping $LABEL:"
for daemon in $DAEMONS; do
start-stop-daemon --stop --pidfile "$PIDDIR/$daemon.pid" --oknodo --user $DAEMON_USER --exec "/usr/bin/$daemon"
echo -n " $daemon"
done
echo "."
# caed forgets sometimes the shared memory 0x5005
ipcrm -M 0x5005 2> /dev/null || true
}
case "$1" in
start)
if ! /usr/bin/rdadmin --check-db; then
echo "No database available, check that MySQL is running" >&2;
exit 0;
fi
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}"
exit 1
;;
esac
exit 0

5
debian/rivendell.install vendored Normal file
View File

@@ -0,0 +1,5 @@
usr/bin
usr/sbin
usr/share/applications/rd*.desktop
usr/share/srlabs/rd*.qm
usr/share/srlabs/rd*.xpm

27
debian/rivendell.logrotate vendored Normal file
View File

@@ -0,0 +1,27 @@
/var/log/rivendell/rdairplay.log {
rotate 30
daily
compress
missingok
}
/var/log/rivendell/rdcatchd.log {
rotate 30
daily
compress
missingok
}
/var/log/rivendell/ripcd.log {
rotate 30
daily
compress
missingok
}
/var/log/rivendell/caed.log {
rotate 30
daily
compress
missingok
}

315
debian/rivendell.postinst vendored Normal file
View File

@@ -0,0 +1,315 @@
#!/bin/bash -e
case "$1" in
configure)
# Default values, in case debconf was not used to set them. These will
# be used for system configurations down below after debconf values are
# read.
# NOTE: make sure to match these defaults with the rivendell.postrm script
AUDIOUSER="rduser"
AUDIOGROUP="rivendell"
AUDIOROOT="/var/snd"
REMOVEDATA="false"
# create configuration file, based on debconf entries
. /usr/share/debconf/confmodule
# Is the user configuring with debconf?
db_get rivendell/debconfenable
if [ "$RET" = "true" ]; then
# generate the rd.conf file from debconf settings.
dc="/etc/rd.conf"
if [ -e "$dc" ]; then
cp -a "$dc" "${dc}.dpkg-save"
fi
echo "; NOTE: this file was generated by the rivendell debian package" > "$dc"
echo ";" >> "$dc"
echo "; DO NOT EDIT THIS FILE! Your changes will be lost on the next upgrade." >> "$dc"
echo ";" >> "$dc"
echo "; To regenerate this file (or to select manual configuration) run the command:" >> "$dc"
echo "; dpkg-reconfigure rivendell" >> "$dc"
echo ";"
echo "" >> "$dc"
echo "[Identity]" >> "$dc"
db_get rivendell/identity/password
echo "Password=$RET" >> "$dc"
db_get rivendell/identity/audioowner
echo "AudioOwner=$RET" >> "$dc"
AUDIOUSER="$RET"
db_get rivendell/identity/audiogroup
echo "AudioGroup=$RET" >> "$dc"
AUDIOGROUP="$RET"
echo "" >> "$dc"
echo "[Format]" >> "$dc"
db_get rivendell/format/samplerate
echo "SampleRate=$RET" >> "$dc"
db_get rivendell/format/channels
echo "Channels=$RET" >> "$dc"
echo "" >> "$dc"
echo "[mySQL]" >> "$dc"
db_get rivendell/mysql/hostname
echo "Hostname=$RET" >> "$dc"
db_get rivendell/mysql/loginname
echo "Loginname=$RET" >> "$dc"
db_get rivendell/mysql/password
echo "Password=$RET" >> "$dc"
db_get rivendell/mysql/database
echo "Database=$RET" >> "$dc"
db_get rivendell/mysql/driver
echo "Driver=$RET" >> "$dc"
echo "" >> "$dc"
echo "[Cae]" >> "$dc"
db_get rivendell/cae/audioroot
echo "AudioRoot=$RET" >> "$dc"
AUDIOROOT="$RET"
db_get rivendell/cae/audioextension
echo "AudioExtension=$RET" >> "$dc"
db_get rivendell/cae/allownonstandardrates
echo "AllowNonstandardRates=$RET" >> "$dc"
echo "" >> "$dc"
echo "[Tuning]" >> "$dc"
db_get rivendell/tuning/userealtime
echo "UseRealtime=$RET" >> "$dc"
echo "" >> "$dc"
echo ";" >> "$dc"
echo "; Log Generation, mainly useful for debugging" >> "$dc"
echo ";" >> "$dc"
echo "" >> "$dc"
echo "[RDAirPlay]" >> "$dc"
db_get rivendell/rdairplay/logfile
echo "Logfile=$RET" >> "$dc"
echo "" >> "$dc"
echo "[RDCatchd]" >> "$dc"
db_get rivendell/rdcatchd/logfile
echo "Logfile=$RET" >> "$dc"
echo "" >> "$dc"
echo "[Ripcd]" >> "$dc"
db_get rivendell/ripcd/logfile
echo "Logfile=$RET" >> "$dc"
echo "" >> "$dc"
echo "[Caed]" >> "$dc"
db_get rivendell/caed/logfile
echo "Logfile=$RET" >> "$dc"
echo "" >> "$dc"
db_get rivendell/audioadapters/selections
JACK_CARD=0 # initialize JACK card to 0
# no configuration needed for HPI, simply increment JACK card
if echo "$RET" | grep -s "Audioscience HPI" &> /dev/null ; then
let JACK_CARD=$JACK_CARD+1
fi
# no configuration needed for ALSA, simply increment JACK card
if echo "$RET" | grep -s "ALSA" &> /dev/null ; then
let JACK_CARD=$JACK_CARD+1
fi
# JACK configuration file portion
if echo "$RET" | grep -s "JACK" &> /dev/null ; then
cat >> "$dc" << EOF
;
; JACK Session Management
;
; See the 'JACK.txt' file for details on how this works!
;
[JackSession]
Source1=rivendell_${JACK_CARD}:playout_0L
Destination1=alsa_pcm:playback_1
Source2=rivendell_${JACK_CARD}:playout_0R
Destination2=alsa_pcm:playback_2
Source3=rivendell_${JACK_CARD}:playout_1L
Destination3=alsa_pcm:playback_1
Source4=rivendell_${JACK_CARD}:playout_1R
Destination4=alsa_pcm:playback_2
Source5=rivendell_${JACK_CARD}:playout_2L
Destination5=alsa_pcm:playback_1
Source6=rivendell_${JACK_CARD}:playout_2R
Destination6=alsa_pcm:playback_2
Source7=rivendell_${JACK_CARD}:playout_3L
Destination7=alsa_pcm:playback_1
Source8=rivendell_${JACK_CARD}:playout_3R
Destination8=alsa_pcm:playback_2
Source9=rivendell_${JACK_CARD}:playout_4L
Destination9=alsa_pcm:playback_1
Source10=rivendell_${JACK_CARD}:playout_4R
Destination10=alsa_pcm:playback_2
Source11=rivendell_${JACK_CARD}:playout_5L
Destination11=alsa_pcm:playback_1
Source12=rivendell_${JACK_CARD}:playout_5R
Destination12=alsa_pcm:playback_2
Source13=rivendell_${JACK_CARD}:playout_6L
Destination13=alsa_pcm:playback_1
Source14=rivendell_${JACK_CARD}:playout_6R
Destination14=alsa_pcm:playback_2
Source15=rivendell_${JACK_CARD}:playout_7L
Destination15=alsa_pcm:playback_1
Source16=rivendell_${JACK_CARD}:playout_7R
Destination16=alsa_pcm:playback_2
Source17=alsa_pcm:capture_1
Destination17=rivendell_${JACK_CARD}:record_0L
Source18=alsa_pcm:capture_2
Destination18=rivendell_${JACK_CARD}:record_0R
EOF
# generate global /etc/jackdrc configuration file
dc="/etc/jackdrc"
if [ -e "$dc" ]; then
cp -a "$dc" "${dc}.dpkg-save"
fi
db_get rivendell/format/samplerate
echo "/usr/bin/jackd --realtime --temporary --driver alsa --rate $RET" > "$dc"
# FIXME: unfortunately jackd cannot parse comments, so none can be added at this time to /etc/jackdrc
# generate global X11 Xsession.d configuration file to set JACK_START_SERVER environment variable
dc="/etc/X11/Xsession.d/98jack-environment"
if [ -e "$dc" ]; then
cp -a "$dc" "${dc}.dpkg-save"
fi
echo "# NOTE: this file was generated by the rivendell debian package" > "$dc"
echo "#" >> "$dc"
echo "# DO NOT EDIT THIS FILE! Your changes will be lost on the next upgrade." >> "$dc"
echo "#" >> "$dc"
echo "# To regenerate this file (or to select manual configuration) run the command:" >> "$dc"
echo "# dpkg-reconfigure rivendell" >> "$dc"
echo "" >> "$dc"
echo "# set environment variable for JACK to start if not running" >> "$dc"
echo "# (NOTE: /etc/jackdrc is read for the jackd command line)." >> "$dc"
echo "export JACK_START_SERVER=1" >> "$dc"
fi # End of if rivendell/audioadapters/selections has JACK
# End of generate the rd.conf file from debconf settings.
# generate init script configuration file from debconf settings.
dc="/etc/default/rivendell"
if [ -e "$dc" ]; then
cp -a "$dc" "${dc}.dpkg-save"
fi
echo "# Defaults for rivendell initscript." > "$dc"
echo "# Sourced by /etc/init.d/rivendell ." >> "$dc"
echo "# NOTE: this file was generated by the rivendell debian package." >> "$dc"
echo "#" >> "$dc"
echo "# To regenerate this file (or to select manual configuration) run the command:" >> "$dc"
echo "# dpkg-reconfigure rivendell" >> "$dc"
echo "#" >> "$dc"
echo "# This is a POSIX shell fragment." >> "$dc"
echo "#" >> "$dc"
echo "" >> "$dc"
echo "# How should Rivendell daemons (caed, ripcd, rdcatchd) run?" >> "$dc"
echo "# Possible values are 'init.d' or 'pam_rd'." >> "$dc"
db_get rivendell/run_mode || true
echo "RUN_MODE=\"$RET\" " >> "$dc"
# populate PAM scripts with pam_rd hooks if requested by the user and it is not already in there
db_get rivendell/run_mode
if [ "$RET" = "pam_rd" ]; then
DISPLAY_MANAGER=`cat /etc/X11/default-display-manager`
DISPLAY_MANAGER=`basename "$DISPLAY_MANAGER"`
dc="/etc/pam.d/$DISPLAY_MANAGER"
if [ `grep --count "pam_rd.so" "$dc"` -eq 0 ] ; then
cp -a "$dc" "${dc}.dpkg-save"
# sed command to
# replace (substitute):
# @include common-auth
# with
# auth optional pam_rd.so debug kill_rd_daemons destroy_shm ignore_pass \\
# @include common-auth
# note only 1 backslash after first line, as we don't want an extra blank line in the output file.
sed -e "s/^[[:space:]]*@include common-auth[[:space:]]*/\
auth optional pam_rd.so debug kill_rd_daemons destroy_shm ignore_pass \\
@include common-auth/" \
< ${dc} >${dc}.dpkg-tmp
mv -f ${dc}.dpkg-tmp ${dc}
fi
fi # End of populate PAM scripts.
fi # End of if rivendell/debconfenable = true
db_stop # End of debconf section
# Do other system configurations, using debconf values if set, and
# falling back to defaults if not using debconf.
# create Rivendell user and group
if ! getent group "$AUDIOGROUP" >/dev/null; then
# Adding system group:
addgroup --system "$AUDIOGROUP" 2> /dev/null || true
fi
if ! getent passwd "$AUDIOUSER" >/dev/null; then
# Adding system user:
adduser \
--system \
--group \
--home $AUDIOROOT \
--no-create-home \
--shell /bin/bash \
--gecos "Rivendell system account" \
$AUDIOUSER >/dev/null
fi
if ! getent group "$AUDIOGROUP" | grep -q "$AUDIOUSER"; then
# Add the user to the group
adduser $AUDIOUSER $AUDIOGROUP
fi
# Create audio store directory and set permissions.
if [ ! -d "$AUDIOROOT" ]; then
install --directory --mode 02775 --owner="$AUDIOUSER" --group="$AUDIOGROUP" "$AUDIOROOT"
fi
# Create run directory to store pid files .
if [ ! -d /var/run/rivendell ]; then
install --directory --mode 02775 --owner="$AUDIOUSER" --group="$AUDIOGROUP" /var/run/rivendell
fi
# Create log directory to store log files .
#FIXME: better integrate with debconf (debconf currently only has various log file paths).
if [ ! -d /var/log/rivendell ]; then
install --directory --mode 02775 --owner="$AUDIOUSER" --group="$AUDIOGROUP" /var/log/rivendell
fi
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "$0 called with unknown argument \`$1'" >&2
exit 1
;;
esac
# dh_makeshlibs doesn't add it automaticaly (?!)
if [ "$1" = "configure" ]; then
ldconfig
fi
#DEBHELPER#

77
debian/rivendell.postrm vendored Normal file
View File

@@ -0,0 +1,77 @@
#!/bin/sh -e
# dh_makeshlibs doesn't add it automaticaly (?!)
if [ "$1" = "remove" ]; then
ldconfig
fi
case "$1" in
purge)
# Default values, in case debconf was not used to set them. These will
# be used for system configurations down below after debconf values are
# read.
# NOTE: make sure to match these defaults with the rivendell.postinst script
AUDIOUSER="rduser"
AUDIOGROUP="rivendell"
AUDIOROOT="/var/snd"
REMOVEDATA="false"
# get debconf entries if used.
. /usr/share/debconf/confmodule
# Is the user configuring with debconf?
db_get rivendell/debconfenable || true
if [ "$RET" = "true" ]; then
db_get rivendell/identity/audioowner || true
[ -n ${RET} ] && AUDIOUSER="$RET"
db_get rivendell/identity/audiogroup || true
[ -n ${RET} ] && AUDIOGROUP="$RET"
db_get rivendell/cae/audioroot || true
[ -n ${RET} ] && AUDIOROOT="$RET"
db_get rivendell/postrm_remove_data || true
[ -n ${RET} ] && REMOVEDATA="$RET"
fi
# Remove init.d configuration file
rm -f /etc/default/rivendell
# Remove pam_rd hooks from PAM scripts
DISPLAY_MANAGER=`cat /etc/X11/default-display-manager`
DISPLAY_MANAGER=`basename "$DISPLAY_MANAGER"`
dc="/etc/pam.d/$DISPLAY_MANAGER"
grep -v "pam_rd.so" "$dc" > "${dc}.dpkg-tmp"
mv -f "${dc}.dpkg-tmp" "$dc"
# Remove user and group
deluser $AUDIOUSER $AUDIOGROUP 2> /dev/null || true
deluser $AUDIOUSER 2> /dev/null || true
groupdel $AUDIOGROUP 2> /dev/null || true
if [ "$REMOVEDATA" = "true" ]; then
[ -d "$AUDIOROOT" ] && rm -rf "$AUDIOROOT" || true
mysqladmin --force drop Rivendell || true
fi
[ -d /var/run/rivendell ] && rm -rf /var/run/rivendell || true
[ -d /var/log/rivendell ] && rm -rf /var/log/rivendell || true
# Clean out debconf stuff
if [ -e /usr/share/debconf/confmodule ]; then
. /usr/share/debconf/confmodule
db_purge
fi
;;
remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
# Nothing to do here
;;
*)
echo "$0 called with unknown argument \`$1'" >&2
exit 1
;;
esac
# NOTE: debhelper section is at the end, so the debconf values can be used during a purge
#DEBHELPER#

228
debian/rivendell.templates vendored Normal file
View File

@@ -0,0 +1,228 @@
Template: rivendell/debconfenable
Type: boolean
Default: true
Description: Configure Rivendell and rd.conf through debconf?
The rest of the configuration of Rivendell deals with questions that
affect parameters in /etc/rd.conf, which is the file used to configure
the Rivendell programs.
.
If you don't use debconf to configure rd.conf, you will have to handle
any configuration changes yourself, and will not be able to take
advantage of periodic configuration enhancements.
Template: rivendell/postrm_remove_data
Type: boolean
Default: false
Description: Remove Rivendell audio store and database if purging Rivendell?
Should the Rivendell audio store (the contents of /var/snd) and the Rivendell
database be removed when the Rivendell package is purged?
Template: rivendell/run_mode
Type: select
Choices: init.d, pam_rd
Default: init.d
Description: How should the Rivendell daemons be started?
The Rivendell daemons can be started by the init.d scripts during system boot,
or the pam_rd PAM module can be used to start the Rivendell daemons as
needed by each user when they use a Rivendell app.
.
init.d - only a single UNIX user account should be used to run Rivendell apps
.
pam_rd - multiple UNIX user accounts can be used, with pam_rd clearing any old
daemons when a user logs in to an X session.
Template: rivendell/identity/password
Type: string
Default: letmein
Description: Password for Rivendell:
The password used to identify Rivendell.
.
This is used within Rivendell by ripcd to authenticate.
Template: rivendell/identity/audioowner
Type: string
Default: rduser
Description: UNIX user account for Rivendell:
The unix user account to use for Rivendell.
Template: rivendell/identity/audiogroup
Type: string
Default: rivendell
Description: UNIX group account for Rivendell:
The unix group account to use for Rivendell.
Template: rivendell/format/samplerate
Type: select
Choices: 32000, 44100, 48000
Default: 44100
Description: Select the samplerate to use for Rivendell:
Select the samplerate to use for Rivendell. The sample rate is in Hz.
Template: rivendell/format/channels
Type: select
Choices: 1, 2
Default: 2
Description: Select the numer of system channels to use in Rivendell:
Select the number of system channels to use in Rivendell. One (1)
channel is for each input to be treated seperately, while two (2)
channels is for treating the inputs as stereo pairs.
.
NOTE: This is different from channels used to record files within
Rivendell, that is configured via rdadmin and the Rivendell
applications.
Template: rivendell/mysql/hostname
Type: string
Default: localhost
Description: Enter the hostname of the Rivendell MySQL server:
The hostname of the MySQL server for Rivendell to connect to. If the
server is running locally, localhost should work.
Template: rivendell/mysql/loginname
Type: string
Default: rduser
Description: Enter the MySQL account with which to connect to the MySQL server:
The MySQL user account which should be used to connect to the MySQL
server.
.
This account will be created during the initial database creation.
Template: rivendell/mysql/password
Type: string
Default: letmein
Description: Enter the MySQL account password to use when connecting to the MySQL server:
This is the password used to authenticate when connecting to the MySQL
serer.
Template: rivendell/mysql/database
Type: string
Default: Rivendell
Description: Enter the name of the database for Rivendell in the MySQL server:
This is the name of the database within the MySQL server.
.
It will be created during the initial database creation when running
rdadmin.
Template: rivendell/mysql/driver
Type: select
Choices: QMYSQL3, FIXME
Description: Select the driver used to connect to the database:
This is the driver used to connect to the database, which may or may
not be a MySQL database.
Template: rivendell/cae/audioroot
Type: string
Default: /var/snd
Description: Enter the path to the audio store directory:
Path to the directory for Rivendell to store audio. This may be a
local directory or an NFS mounted directory from a remote server.
.
The directory must be read/write by the UNIX user account specified
above.
Template: rivendell/cae/audioextension
Type: string
Default: wav
Description: Enter the default extension to use for audio files:
This will be the extention used for audio files in the audio store.
Template: rivendell/cae/allownonstandardrates
Type: boolean
Default: true
Description: Should non standard sample rates be permitted
If true, then non-standard rates can exist in the audio store.
.
FIXME: is this samplerate or bitrate or both.
Template: rivendell/tuning/userealtime
Type: boolean
Default: true
Description: Use realtime scheduling for CAE?
Use realtime scheduling for the core audio engine (CAE), when talking
via JACK and or ALSA.
Template: rivendell/rdairplay/logfile
Type: string
Default: /var/log/rivendell/rdairplay.log
Description: Enter the path to the rdairplay log file:
This is the path to the rdairplay log file.
.
NOTE: If a non-default value is used, the path may have to be created.
Template: rivendell/rdcatchd/logfile
Type: string
Default: /var/log/rivendell/rdcatchd.log
Description: Enter the path to the rdcatchd log file:
This is the path to the rdcatchd log file.
.
NOTE: If a non-default value is used, the path may have to be created.
Template: rivendell/ripcd/logfile
Type: string
Default: /var/log/rivendell/ripcd.log
Description: Enter the path to the ripcd log file:
This is the path to the ripcd log file.
.
NOTE: If a non-default value is used, the path may have to be created.
Template: rivendell/caed/logfile
Type: string
Default: /var/log/rivendell/caed.log
Description: Enter the path to the caed log file:
This is the path to the caed log file.
.
NOTE: If a non-default value is used, the path may have to be created.
Template: rivendell/audioadapters/selections
Type: multiselect
Choices: Audioscience HPI, ALSA, JACK
Default: JACK
Description: Select the audio adapters to use:
Rivendell can use several different types of audio adapters, both
independantly or simultaneously.
Template: rivendell/audioadapters/alsaintro
Type: note
Description: ALSA Rivendell integration.
In order for Rivendell to recognize an ALSA sound adapter, there must
exist a standard ALSA configuration file with a card named "rd0"
defined.
.
The ALSA configuration file can be global (/etc/asound.conf) or per
user (~/.asoundrc).
.
Sample contents for the configuration file to define rd0 follow:
pcm.rd0 {
type hw
card 1
}
ctl.rd0 {
type hw
card 1
}
.
More information on ALSA configuration files can be found here:
http://www.alsa-project.org/alsa-doc/doc-php/asoundrc.php
.
More information on Rivendell and ALSA can also be found in
/usr/share/doc/rivendell/ALSA.txt .
.
This information is repeated in /usr/share/doc/rivendell/README.Debian
Template: rivendell/intro
Type: note
Description: Rivendell introduction.
The Rivendell radio broadcast automation solution has been installed.
.
The next step is to run the "rdadmin" command with a user that has permissions
to the rivendell system. The first time it will prompt for a MySQL userid and
password that has permissions to connect and create the database.
.
Once the database has been created, run the "rdadmin" command again.
From this point on, rdadmin will allow for configuring of Rivendell.
.
The default user accounts within Rivendell are "admin" and "user", both
with no password.
.
This information is repeated in /usr/share/doc/rivendell/README.Debian

117
debian/rules vendored Executable file
View File

@@ -0,0 +1,117 @@
#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# This file is public domain software, originally written by Joey Hess.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
export QTDIR=/usr/share/qt3
# Include dpatch stuff.
PACKAGE=rivendell
include /usr/share/dpatch/dpatch.make
configure: configure-stamp
configure-stamp: patch-stamp
dh_testdir
[ -x ./autogen.sh ] && ./autogen.sh
./configure --libexecdir=/usr/lib/cgi-bin/rivendell/
touch configure-stamp
build: build-stamp
build-stamp: configure
dh_testdir
# Add here commands to compile the package.
$(MAKE)
touch build-stamp
clean: clean-patched unpatch
clean-patched:
dh_testdir
dh_testroot
rm -f build-stamp configure-stamp
# Add here commands to clean up after the build process.
-$(MAKE) clean
-$(MAKE) distclean
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
# Add here commands to install the package into debian/<packagename>
$(MAKE) DESTDIR=`pwd`/debian/tmp prefix=/usr install-debian
# rm -f `pwd`/debian/tmp/usr/bin/toolame
install -m 644 $(CURDIR)/debian/rdadmin.xpm $(CURDIR)/debian/tmp/usr/share/srlabs
install -m 644 $(CURDIR)/debian/rdairplay.xpm $(CURDIR)/debian/tmp/usr/share/srlabs
install -m 644 $(CURDIR)/debian/rdcatch.xpm $(CURDIR)/debian/tmp/usr/share/srlabs
install -m 644 $(CURDIR)/debian/rdlibrary.xpm $(CURDIR)/debian/tmp/usr/share/srlabs
install -m 644 $(CURDIR)/debian/rdlogedit.xpm $(CURDIR)/debian/tmp/usr/share/srlabs
install -m 644 $(CURDIR)/debian/rdlogin.xpm $(CURDIR)/debian/tmp/usr/share/srlabs
install -m 644 $(CURDIR)/debian/rdlogmanager.xpm $(CURDIR)/debian/tmp/usr/share/srlabs
# FIXME: there may be a better way to get this directory created...
install -d -m 755 $(CURDIR)/debian/tmp/usr/share/applications
install -m 644 $(CURDIR)/debian/rdadmin.desktop $(CURDIR)/debian/tmp/usr/share/applications
install -m 644 $(CURDIR)/debian/rdairplay.desktop $(CURDIR)/debian/tmp/usr/share/applications
install -m 644 $(CURDIR)/debian/rdcatch.desktop $(CURDIR)/debian/tmp/usr/share/applications
install -m 644 $(CURDIR)/debian/rdlibrary.desktop $(CURDIR)/debian/tmp/usr/share/applications
install -m 644 $(CURDIR)/debian/rdlogedit.desktop $(CURDIR)/debian/tmp/usr/share/applications
install -m 644 $(CURDIR)/debian/rdlogin.desktop $(CURDIR)/debian/tmp/usr/share/applications
install -m 644 $(CURDIR)/debian/rdlogmanager.desktop $(CURDIR)/debian/tmp/usr/share/applications
dh_install --sourcedir=debian/tmp --autodest
# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.
# Build architecture-dependent files here.
binary-arch: build install
dh_testdir
dh_testroot
dh_installchangelogs ChangeLog
#
cat debian/rivendell.docs.in > debian/rivendell.docs
find docs -type f -and ! \( -regex ".*CVS.*" -or -regex ".*Makefile.*" \) >> debian/rivendell.docs
dh_installdocs
#dh_installdocs -X CVS -X Makefile
#
dh_installexamples
# dh_install
dh_installmenu
dh_installdebconf
dh_installlogrotate
# dh_installemacsen
# dh_installcatalogs
# dh_installpam
# dh_installmime
dh_installinit
# dh_installcron
# dh_installinfo
# dh_undocumented
dh_installman
dh_link
dh_strip
dh_compress
dh_fixperms
# dh_perl
# dh_python
dh_makeshlibs
dh_installdeb
dh_shlibdeps -ldebian/librivendell/usr/lib
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install

42
docs/ALSA.txt Normal file
View File

@@ -0,0 +1,42 @@
ALSA Support in Rivendell
Rivendell can optionally be compiled to provide direct support for
soundcards using the Advanced Linux Sound Architecture (ALSA).
Instructions on enabling such support can be found in the INSTALL
file. Information about ALSA itself can be found at:
http://www.alsa-project.org/
STARTING UP RIVENDELL WITH ALSA
When Rivendell's audio daemon, caed(8) is started, and ALSA support is
enabled, caed(8) will look for PCM devices named rd<n>, where <n> is a
number between 0 and 7. If it finds one or more, it will attempt to
open the devices(s) for both playback and capture. If successful, the
devices will then be available as Rivendell virtual 'card' resources,
starting with the next available card number after any HPI or JACK
devices have been started.
CONFIGURING PCM DEVICE NAMES
PCM device names for ALSA can be configured by means of entries in the ALSA
configuration file. The ALSA configuration file can either be an '.asoundrc'
file in the home directory of the user running the Rivendell daemons (normally
'root') or an '/etc/asound.conf' file which will apply to all users. For the
simple case of a single ALSA soundcard to be made visible to Rivendell, one
would create an ALSA configuration file containing the following lines:
pcm.rd0 {
type hw
card 0
}
ctl.rd0 {
type hw
card 0
}
This would create an 'alias' for the first ALSA soundcard in the
system, called 'rd0'.
More details regarding the syntax and uses of .asoundrc can be found
on the ALSA web site in the documentation section.

93
docs/ENCODERS.txt Normal file
View File

@@ -0,0 +1,93 @@
File Exporting and Encoders in Rivendell
Rivendell has the capability to export audio in many different formats using
several different modules (RDLibrary, RDCatch and RDCastManager). To
accomplish this, Rivendell uses audio *encoder* objects, each of which enable
one or more particular 'export formats'. A list of all
recognized export formats for each host can be found by looking in
RDAdmin->ManageHosts->AudioResources, under 'Supported Export Formats'.
Encoders in Rivendell come in two different basic types, "built-in", and
"custom". Each type is discussed separately below.
BUILT-IN ENCODERS
Some built-in encoders are enabled automatically as part of the basic
Rivendell installation process, while others require one or more external
library packages in order to be recognized and used. The following chart
shows the dependencies:
FORMAT REQUIRED PACKAGE(S) AVAILABLE AT
-------------------------------------------------------------------------
Linear PCM16 [included]
MPEG 1,2 Layer 2 [included]
MPEG 1,2 Layer 3 Lame http://lame.sourceforge.net
FLAC Flac http://flac.sourceforge.net
OggVorbis LibOgg, LibVorbis http://www.vorbis.com
CUSTOM ENCODERS
It is possible to configure a Rivendell host to export audio in a format not
supported by one of the built-in encoders by configuring a 'custom' encoder.
Generally, all that is needed is an encoder program that can be invoked from
the Linux command-line. The configuration is done in
RDAdmin->ManageHosts->CustomEncoders. Each encoder needs the following
information:
NAME
A unique-per-host name for the encoder.
DEFAULT EXTENSION
A typically two- or three-letter long file extension to associate with this
encoder.
COMMAND LINE
The command line that Rivendell should invoke to encode a file. When invoked,
Rivendell will pipe the source audio data into standard input of the program
shown here, using sixteen-bit little-endian format with no headers (so-called
'raw' mode) and with channelization and sample rate as indicated in the
configuration for the specific export being executed. The following
wildcard characters can be used to pass parameters from the specfic export
configuration:
%f - Full destination path/name.
%c - Number of channels
%r - Sample rate, in samples/sec
%b - Bitrate, in bits/sec
ALLOWABLE PARAMETERS
Finally, each encoder can be provided with a list of zero or more 'allowed'
values for Channel, Sample Rate and Bit Rate. Rivendell will use these values
(along with the 'NAME' value, see above) to populate the approriate controls
in the Edit Export Settings dialog. If no values are configured for a
particular parameter, then the correponding control in the dialog will be
shown as disabled ("greyed-out"), in which case it is assumed that the encoder
being invoked either does not need the parameter or has had it hard-coded in
the configured command line.
EXAMPLE
As an example, let's set up a custom encoder to produce 'Flash' encoded audio
files using the FFmpeg multimedia transcoder (http://ffmpeg.mplayerhq.hu/) and
the Freeware Advanced Audio Coder (http://sourceforge.net/projects/faac/).
After installing these packages and verifying that Flash files can be
successfully generated from the command line, we go into
RDAdmin->ManageHosts->CustomEncoders, click the 'Add' button and fill out the
name:
New Encoder Name: Flash AAC
Click 'Ok', and the Edit Encoder dialog will open. Fill out the parameters
as follows:
Default Extension: flv
Command Line: ffmpeg -y -vn -f s16le -ac %c -ar %r -i - -vn -f flv -acodec libfaac -ac %c -ar %r -ab %b %f
Allow Channels: 1,2
Allow Sample Rates: 22050,44100
Allow Bit Rates: 8,16
Note that the bit rates here are specified in kbps!
Click 'OK' to save, then go to RDAdmin->ManageHosts->AudioResources. You
should now see a 'Flash AAC [Custom]' entry in the 'SUPPORTED EXPORT FORMATS'
list.

185
docs/GPIO.txt Normal file
View File

@@ -0,0 +1,185 @@
GPIO Notes for Rivendell
Rivendell supports the following General Purpose Input/Output (GPIO)
devices:
Gameport Joystick Buttons
USB Joystick Buttons
Measurement Computing PCI-PDIS08 Board
Measurement Computing PCI-PDIS16 Board
Measurement Computing PCI-DIO24 Board
Several supported switcher devices feature GPIO capabiities as well,
see the file 'SWITCHERS.txt' for more info.
JOYSTICK DEVICES
Joystick support utilizes the Linux Input Device subsystem. Inputs
are active-low, and should be wired as follows:
02: Input 1
04: Ground
07: Input 2
05: Ground
10: Input 3
12: Ground
14: Input 4
12: Ground
In addition, you will need to connect 47 kohm resistors between the
following pins: 1-3, 6-8, 9-11 and 13-15. While not strictly needed
for the GPI portion of the interface to work, the kernel's analog
joystick driver will refuse to initialize the port if these resistors
(or a real joystick) are not present.
The device name of the joystick will be one of the /dev/input/event<n>
devices.
NOTE: There have been reports that some port models do not internally
connect pin 12 to ground. The symptom of this situation will be that
Inputs 1 and 2 work, but not Inputs 3 and 4. If this is the case,
connecting the ground for Inputs 3 and 4 to pins 04 or 05 should remedy
the problem.
MEASUREMENT COMPUTER GPIO BOARDS
To configure one of the supported MeasurementComputing GPIO boards,
proceed as follows:
1) Install the card(s) in the computer. In the case of the PCI-DIO24,
two cards may be necessary, as each seperate card is entirely
utilized as either inputs or outputs.
2) Test it out. Two programs exist for this purpose: 'gpitest' tests
GPI inputs, and 'gpotest' tests GPO outputs. These programs come
with the 'libradio' package.
3) Define a GPIO device in RDAdmin->Stations->Switcher/GPIO. Use
a device type of 'Local GPIO'.
-----------------------------------------------------------------------------
GPIO BOARD-SPECIFIC NOTES
The Measurement Computing PCI-PDIS08 and PCI-PDIS16 boards feature
floating, opto-isolated inputs. The inputs are not polarity sensitive
and may be driven by either AC or DC. The outputs are electro-mechanical
relays with dry contacts. Connector pinouts are as follows:
PCI-PDIS08 -- DB37 Male Connector
PCI-PDIS16 -- DB37 Male Connector (using C50F-37F Cable)
Pin Signal
----------------
1 Input 8/16
20 Input 8/16
2 Input 7/15
21 Input 7/15
3 Input 6/14
22 Input 6/14
4 Input 5/13
23 Input 5/13
5 Input 4/12
24 Input 4/12
6 Input 3/11
25 Input 3/11
7 Input 2/10
26 Input 2/10
8 Input 1/9
27 Input 1/9
9 Output 8/16 C
28 Output 8/16 N/O
10 Output 7/15 C
29 Output 7/15 N/O
11 Output 6/14 C
30 Output 6/14 N/O
12 Output 5/13 N/C
13 Output 5/13 N/O
31 Output 5/13 C
14 Output 4/12 C
32 Output 4/12 N/C
33 Output 4/12 N/O
15 Output 3/11 N/C
16 Output 3/11 N/O
34 Output 3/11 C
17 Output 2/10 C
35 Output 2/10 N/C
36 Output 2/10 N/O
18 Output 1/9 N/C
19 Output 1/9 N/O
37 Output 1/9 C
----------------------
C = Common
N/O = Normally Open
N/C = Normally Closed
-----------------------------------------------------------------------------
The Measurement Computing PCI-DIO24 board features TTL logic-level
connections, which can be configured to operate either as inputs or
outputs. Connector pinouts are as follows:
PCI-DIO24 -- DB37 Male Connector
Pin Signal
---------------------
37 Input/Output 1
36 Input/Output 2
35 Input/Output 3
34 Input/Output 4
33 Input/Output 5
32 Input/Output 6
31 Input/Output 7
30 Input/Output 8
10 Input/Output 9
9 Input/Output 10
8 Input/Output 11
7 Input/Output 12
6 Input/Output 13
5 Input/Output 14
4 Input/Output 15
3 Input/Output 16
29 Input/Output 17
28 Input/Output 18
27 Input/Output 19
26 Input/Output 20
25 Input/Output 21
24 Input/Output 22
23 Input/Output 23
22 Input/Output 24
11 Ground
13 Ground
15 Ground
17 Ground
19 Ground
21 Ground
18 +5 VDC
20 +5 VDC
16 +12 VDC
14 -12 VDC
WARNING: The +5 VDC, +12 VDC and -12 VDC pins are connected directly to
the power supply buss of the host PC. Improper use of these pins can
cause serious damage to your computer!
-----------------------------------------------------------------------------

110
docs/JACK.txt Normal file
View File

@@ -0,0 +1,110 @@
JACK Support in Rivendell
Rivendell can optionally be compiled to provide full support for the
JACK Audio Connection Kit. Instructions on enabling such support can
be found in the INSTALL file. Information about JACK itself can be
found at:
http://jackit.sourceforge.net/
STARTING UP RIVENDELL WITH JACK
When Rivendell's audio daemon, caed(8) is started, and JACK support is
enabled, caed(8) will look for a running jackd(1). If it finds one,
it will attempt to join the graph and create the following ports:
rivendell_<N>:capture_<M>L
rivendell_<N>:capture_<M>R
...
rivendell_<N>:playout_<M>L
rivendell_<N>:playout_<M>R
...
where <N> is the number of the virtual 'card' Rivendell will use to
access JACK, and <M> is the number of the virtual 'port' within that
'card'. The card number is selected automatically by caed(8), and
will be the first unused card number after any ASI adapters found in
the system are initialized. The 'L' and 'R' stand for 'left' and
'right' stereo channels, respectively. These card/port pairs can be
assigned within RDAdmin just like any other Rivendell audio resource.
JACK DAEMON MANAGEMENT
On distros that use a SysV-ish init system (such as SuSE), it's
possible to configure Rivendell to automatically start and stop the
jackd(8) daemon as needed. To do this, proceed as follows:
On SuSE
Fire up Yast2, click 'System' and then select 'Editor for
/etc/sysconfig Files'. Under 'Configuration Options', select
'Applications' and then 'Rivendell'. Configure the parameters there
as desired, then click 'Finish' to save them.
Other Distros
Edit the file '/etc/sysconfig/rivendell' and set the variables to
the desired settings.
JACK SESSION MANAGEMENT
Simple session connection management is possible by placing entries
within the [JackSession] section of /etc/rd.conf. The format is as
follows:
[JackSession]
Source<n>=<src-port>
Destination<n>=<dest-port>
where:
<n> = Arbitrary connection number, must start at '1' and go up
consecutively.
<src-port> = The name of the source JACK port to connect, in
standard CLIENTNAME:PORTNAME format.
<dest-port> = The name of the destination JACK port to connect, in
standard CLIENTNAME:PORTNAME format.
Here is an example [JackSession] section:
[JackSession]
Source1=rivendell_1:playout_0L
Destination1=alsa_pcm:playback_1
Source2=rivendell_1:playout_0R
Destination2=alsa_pcm:playback_2
Source3=rivendell_1:playout_1L
Destination3=alsa_pcm:playback_3
Source4=rivendell_1:playout_1R
Destination4=alsa_pcm:playback_4
Source5=rivendell_1:playout_2L
Destination5=alsa_pcm:playback_9
Source6=rivendell_1:playout_2R
Destination6=alsa_pcm:playback_10
Source7=alsa_pcm:capture_1
Destination7=rivendell_1:record_0L
Source8=alsa_pcm:capture_2
Destination8=rivendell_1:record_0R
Source9=alsa_pcm:capture_3
Destination9=rivendell_1:record_1L
Source10=alsa_pcm:capture_4
Destination10=rivendell_1:record_1R
Source11=alsa_pcm:capture_9
Destination11=rivendell_1:record_2L
Source12=alsa_pcm:capture_10
Destination12=rivendell_1:record_2R
This example sets up an ICE1712-based soundcard (a Midiman Delta-66,
in this case) to use the first three playout and record ports of Card
1 in Rivendell. It is, of course, fully possible to dynamically
manage the port assignments through use of a JACK patchbay (such as
QJackConnect) as well.

9
docs/MESSAGE_BOX.txt Normal file
View File

@@ -0,0 +1,9 @@
Message Box RML Notes
When using the 'Message Box' ['MB'} RML, it may be necessary to configure
the X server to allow local connections from other processes. One way to
do this is to execute the following command as the local Rivendell user:
xhost +local:
For more information, see the xhost(1) man page.

62
docs/Makefile.am Normal file
View File

@@ -0,0 +1,62 @@
## automake.am
##
## docs/automake.am for Rivendell
##
## (C) Copyright 2002-2006 Fred Gleason <fredg@paravelsystems.com>
##
## $Id: Makefile.am,v 1.21.6.5 2012/11/29 01:37:35 cvs Exp $
## $Date: 2012/11/29 01:37:35 $
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License version 2 as
## published by the Free Software Foundation.
##
## 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, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
## Use automake to process this into a Makefile.in
SUBDIRS = examples\
tables
EXTRA_DIST = ALSA.txt\
ando_interface.odt\
asound.conf-sample\
cae.sxw\
catchd.txt\
colors\
copy_split_format.odt\
datetime_wildcards.txt\
implemented_macros.txt\
ENCODERS.txt\
GPIO.txt\
JACK.txt\
MESSAGE_BOX.txt\
NEXGEN_FILTER.txt\
NOW+NEXT.txt\
pam_rd.txt\
PODCASTING.txt\
RDMONITOR.txt\
reports.txt\
ripc.txt\
RIVENDELL_FILTER.txt\
rml.sxw\
SAGE_ENDEC.txt\
scheduler_formats.ods\
SWITCHERS.txt\
web_api.odt\
WIN32.txt\
WINGS_FILTER.txt
CLEANFILES = *~
MAINTAINERCLEANFILES = *~\
aclocal.m4\
configure\
Makefile.in

0
docs/NEXGEN_FILTER.txt Normal file
View File

57
docs/NOW+NEXT.txt Normal file
View File

@@ -0,0 +1,57 @@
CONFIGURING NOW & NEXT IN RIVENDELL
SCOPE
Rivendell has the ability to automatically send information regarding
the current and next-to-play events in RDAirPlay logs to external
systems (such as RDS/RDBS encoders or web servers) using TCP/IP UDP
datagrams. This capability is referred to in Rivendell as 'Now &
Next'. This document provides some pointers on setting up this
capability.
CONFIGURATION
Now and Next is configured in RDAdmin->ManageHosts->RDAirPlay.
Pressing the 'Configure Now & Next Parameters' button here will open a
dialog. Each RDAirPlay log machine can be seperately configured, as
follows:
IP ADDRESS: The IP address, in dotted-quad notation, to which
packets should be sent.
UDP PORT: The UDP port number to which packets should be sent.
UDP STRING: The contents of the update string. The following
placeholder macros can be used, which will be replaced
appropriately when a packet is sent:
%n - The currently-playing CART NUMBER
%g - The currently-playing GROUP NAME
%t - The currently-playing TITLE field
%a - The currently-playing ARTIST field
%l - The currently-playing ALBUM field
%y - The currently-playing YEAR field
%b - The currently-playing LABEL field
%c - The currently-playing CLIENT field
%e - The currently-playing AGENCY field
%u - The currently-playing USER DEFINED field
%h - The length of the currently playing cut, in mS.
%r - A "Unix" style newline (naked ASCII 10)
%R - An "MS-DOS" style newsline (ASCII 13/10)
%% - A literal '%'.
Additionally, with the exception of the '%r', '%R' and '%%'
placeholders, the corresponding field for the next-to-play
event can be specified by simply uppercasing the above
placeholders. Any other characters will be sent unchanged.
ENABLING AUDIO
Before any data is sent, RDAirPlay checks to see that the Group
to which the event's cart belongs has been enabled to send Now & Next
data. This can be set on a group-by-group basis in
RDAdmin->ManageGroups by setting the 'Transmit Now & Next data' box
appropriately.
OPERATION
Once properly configured, RDAirPlay will send a UDP packet as
specified every time the corresponding log changes status.

132
docs/PODCASTING.txt Normal file
View File

@@ -0,0 +1,132 @@
Rivendell has the ability to manage multiple RSS audio feeds, including
capabilities for posting and expiring audio automatically as well as updating
associated cast metadata.
CREATING AND POPULATING RSS FEEDS
--------------------------------
Setting up a new RSS feed is a matter of accomplishing the following steps:
1) Create and configure the feed in RDAdmin
2) Schedule the audio posts by means of one or more Upload Events in RDCatch.
3) Manage the metadata in RDCastManager.
We'll cover each of these steps in turn.
1) Creating RSS Feeds
Base parameters for each RSS feed are configured in RDAdmin->ManageFeeds. The
'CHANNEL VALUES' section shows metadata values that will be common to the feed
as a whole (as opposed to specific podcasts within it). The other parameters
are used as follows:
Key Name - A unique name, eight-characters or less in length, used to
identify the feed within Rivendell.
Audio Upload URL - This is the URL of the directory to which the audio
files will be uploaded. It is also the URL that the
system will use when deleting expired audio from the
system (e.g. by means of an FTP 'DELETE' command);
hence the specified 'Username' and 'Password' should grant
sufficient rights to allow contents in the directory
to be deleted. Currently supported protocols are
'file:', 'ftp:' and 'smb:'.
Audio Download URL - This is the URL of the directory from which the audio
files will be downloaded. The URL listed should be
world-readable by 'anonymous' users. Often, this will
be the same as the 'Audio Upload URL' above.
Enable AutoPost - If enabled, each new cast in the feed will become
'visible' immediately following upload, using the
default metadata as configured in the channel values.
If not enabled, then all new casts are placed on hold
pending the customization of the metadata for the
particular cast in RDCastManager.
Audio Extension - The file extension to use for files posted to the feed
(default: 'mp3'). NOTE: when using a non-default value,
it is necessary to manually create a corresponding
symbolic link on the web server running the 'rdfeed.xml'
script with the appropriate extension that points to the
script. For example, if using an extension of 'aac', one
would do:
cd <rd-bin-dir>
ln -s rdfeed.xml rdfeed.aac
Max. Shelf Life - Sets the maximum period (in days) that a piece of audio
can be set in RDCastManager to remain in the feed until
purged. If set to 'None', then no limit is enforced.
This value also establishes the default expiration date
for each cast (with 'Off' resulting in no expiration
date being set --i.e. the cast remains TFN).
XML Data Fields - The various 'XML' fields contain customizable templates that
Rivendell uses to construct the actual XML code that goes into the RSS file.
The following variables are automatically substituted on-the-fly when the XML
is rendered by the 'rdfeed.xml' script:
CHANNEL PARAMETERS (from CHANNEL PARAMETERS)
-- VARIABLE -- -- Meaning -------------------
----------------------------------------------
%TITLE% Channel Title
%CATEGORY% Channel Category
%LINK% Channel Link
%COPYRIGHT% Channel Copyright Notice
%WEBMASTER% Channel Webmaster Address
%DESCRIPTION% Channel Description
%BUILD_DATE% Last Build Date
%PUBLISH_DATE% Date of feed creation
%GENERATOR% Name and Version of RSS Generator
ITEM PARAMETERS (from individual cast record in RDCastManager)
-- VARIABLE ------- -- Meaning -----------------------------
-------------------------------------------------------------
%ITEM_TITLE% Item Title
%ITEM_CATEGORY% ITem Category
%ITEM_DESCRIPTION% Item Description
%ITEM_LINK% Item Link
%ITEM_AUTHOR% Item Author
%ITEM_SOURCE_TEXT% Item Third-Party Source - Human Readable
%ITEM_SOURCE_URL% Item Third-Party Source - URL Link
%ITEM_COMMENTS% Item Comments
%ITEM_AUDIO_URL% Item Audio Download URL
%ITEM_AUDIO_LENGTH% Item Audio File Length in bytes
%ITEM_AUDIO_TIME% Item Audio Playout Time in MM:SS format
%ITEM_PUBLISH_DATE% Date of cast creation
%ITEM_GUID% Globally Unique ID String
2) Posting Audio
Once the RSS feed(s) are set up, individual podcasts can be added by
scheduling one or more Upload events in RDCatch. To associate a given upload
to a particular feed, simply select the desired feed in the 'RSS Feed'
control of the Edit Upload dialog, being sure that it gets uploaded to the
location specified in the 'Audio Base URL' for the feed. RDCatch will
automatically add the audio to the feed's XML file after the upload.
3) Editing Podcast Metadata
The metadata for individual podcasts (including the cast's expiration date and
posting status) can be edited by means of the RDCastManager module. Operation
of the module should be largely self-explanatory.
POSTING THE RSS FEED FILE
-------------------------
The RSS file for each feed is generated dynamically by the RDFeed
script. The specific location of the script is determined by the value
given in the '--libexecdir=' parameter to './configure' (see the
'INSTALL' file for more details) and will also be influenced by the specific
configuration used by the web server. A typical link would looks as
follows:
http://www.example.com/rd-bin/rdfeed.xml?TEST
This link would serve the RSS file for the feed with the Key Name 'TEST'.

58
docs/RDMONITOR.txt Normal file
View File

@@ -0,0 +1,58 @@
RDMonitor / RDSelect Configuration
The Rivendell RDMonitor module can be used to monitor the health state
(Database + Audio Store) of a system. Optionally, it can also be used
with RDSelect to allow a host to be switched between multiple Database +
AudioStore setups. This document describes the procedure for converting
an existing Rivendell setup to allow this functionality.
1) OVERVIEW
Rivendell requires that a configuration file exist at '/etc/rd.conf'
that describes basic parameters (such as login information for the MySQL
database server). RDMonitor/RDSelect build on this foundation by
utilizing a set of one or more configuration files located in the
'/etc/rivendell/' directory, with the 'current' configuration indicated
by a symbolic link at '/etc/rd.conf' that points to the desired configuration
in '/etc/rivendell.d/'. Several new parameters have been added to
rd.conf(5) to support this mode of operation, including:
[Identity]
Label=<label>
[AudioStore]
MountSource=<mnt-src>
MountType=<mnt-type>
MountOptions=<mnt-opts>
Where:
<label> - A text string that is displayed to indicate the overall name
of this configuration.
<mnt-src> - The filesystem to be mounted at '/var/snd' when using this
configuration, such as would be provided in fstab(5). If the desired
audio store resides on the root filesystem, then this field should be
left blank.
<mnt-type> - The type of audio store mount, such as would be specified in
fstab(5).
<mnt-opts> - The mount point options for the audio store, such as would
be specified in fstab(5).
2) CONVERTING AN OLD-STYLE SETUP
An 'old-style' setup --i.e. one that consists of a single configuration
file at '/etc/rd.conf'-- can be converted to the new layout through the
following steps:
A) Create the configuration directory:
mkdir -p /etc/rivendell.d
B) Move the original configuration file:
mv /etc/rd.conf /etc/rivendell.d/rd-default.conf
C) Create the symbolic link:
ln -s /etc/rivendell.d/rd-default.conf /etc/rd.conf

70
docs/RIVENDELL_FILTER.txt Normal file
View File

@@ -0,0 +1,70 @@
Usage Notes for the 'rivendell_filter' Import Script.
Rivendell_filter is a script designed to be used to import existing audio
and meta-data from another Rivendell system. It is invoked as follows:
USAGE
rivendell_filter -h <hostname> -u <username> -p <password> -A <audio-dir>
-g <default-group> -s <start-cartnum> -e <end-cartnum>
Where:
<hostname> = The MySQL hostname of the source Rivendell database.
<username> = The MySQL username of the source Rivendell database.
<password> = The MySQL password of the source Rivendell database.
<audio-dir> = The name of the directory containing the source
Rivendell audio files.
<default-group> = The name of the group in which to place carts
belonging to a source Group for which there
is no corresponding destination Group.
<start-cartnum> = The first cart in the range of those to be transferred.
<end-cartnum> = The last cart in the range of those to be trasnferred.
OVERVIEW
In order transfer carts from an external Rivendell system, proceed as
follows:
1) CREATE RIVENDELL GROUPS
In RDAdmin->ManageGroups, create a Group to correspond to each Rivendell
Group that exists in the library to be imported, and an additional
group to catch any carts that may not have a corresponding Group.
2) LOCATE THE EXTERNAL RIVENDELL DATABASE AND AUDIO FILES
The directory containing the audio files can be mounted from a remote
system if needs be. Read-only access is adequate (and in fact recommended),
as the script does not modify these items in any way.
3) VERIFY AVAILABLE DISK SPACE
Verify that enough disk space is available in the '/var/snd/'
directory of the destination system to accomodate the audio to be
imported. You should have at least the amount of space currently occupied
by the source files, plus 5 percent additional.
4) INVOKE SCRIPT
Start up the script, as described in the USAGE section above. The
script will print progress reports as it proceeds, or notify you of
error conditions as required.
WARNING
If a cart from the source system has the same number as one one the
destination, the destination cart (data and *all* audio) will be overwritten!
NOTE ON AUDIO PROCESSING
Rivendell_filter does not alter or reencode the audio sample data in any
way, and thus does *not* incurr any generation or transcoding loss of
quality. At the same time, this means that the incoming audio will be
brought into the new Rivendell system *exactly* as it exists in the
source system, with all parameters (e.g. sample rate, bit rate, level,
etc) unaltered. If you need to alter one or more of these parameters as
part of the import process, we suggest you use the RDImport script
instead.
NOTE ON GROUP ASSIGNMENTS
WARNING: Rivendell_filter makes no attempt to enforce group numbering rules!
If a group to which a given source cart belongs exists on the destination
system, the cart will be placed in that group, regardless of numbering rules.

24
docs/SAGE_ENDEC.txt Normal file
View File

@@ -0,0 +1,24 @@
Automating Required Weekly Tests on a Sage Digital ENDEC
Rivendell can be configured to allow Required Weekly Tests (RWTs) for the
Emergency Alert System (EAS) to be executed directly from a macro cart,
using the Digital ENDEC Emergency Alert (EAS) Unit Manufactured by Sage
Systems.
PROCEDURES
Create a macro cart and populate it with the following RML:
RN sage_endec_rwt.sh <ip-addr> <web-user> <web-password>!
where:
<ip-addr> - The IP address of the ENDEC system..
<web-user> - The name used to log in to the ENDEC's web interface.
<web-password> - The password used to log into the ENDEC's web interface.
For example, for an ENDEC at 192.168.0.1 with a login name of 'admin'
and a login password of 'letmein', you'd use:
RN sage_endec_rwt.sh 192.168.0.1 admin letmein!
Whenever this macro cart is executed, the ENDEC will run an RWT.

631
docs/SWITCHERS.txt Normal file
View File

@@ -0,0 +1,631 @@
Switcher Application Notes for Rivendell
The following devices are supported as switchers under Rivendell:
360 Systems AM-16/B Audio Crosspoint Switcher
Broadcast Tools 10x1 Audio Switcher
Broadcast Tools 16x1 Audio Switcher
Broadcast Tools 16x2 Audio Switcher
Broadcast Tools 8x2 Audio Switcher
Broadcast Tools Sentinel 4 Web AES Switcher
Broadcast Tools SS 12.4 Audio Switcher
Broadcast Tools SS 16.4 Audio Switcher
Broadcast Tools SS 4.2 Audio Switcher
Broadcast Tools SS 4.4 Audio Switcher
Broadcast Tools ACS 8.2 Audio Control Switcher
Broadcast Tools SS 8.2 Audio Switcher
Harlond Virtual Mixer
LiveWire LWRP Audio
LiveWire LWRP GPIO
LiveWire Multicast GPIO
Local Audio Adapter
Logitek vGuest
Quartz Electronics Type 1 Routing Protocol
Sierra Automated Systems 32000 Audio Router
Sierra Automated Systems 64000 Audio Router
Sierra Automated Systems Universal Serial Interface (USI)
Sine Systems ACU-1 (Prophet version)
StarGuide III Satellite Receiver
Wegener Unity4000 DVB Satellite Receiver
See the sections below for notes on each specific model.
----------------------------------------------------------------------------
360 SYSTEMS AM-16/B AUDIO CROSSPOINT SWITCHER
Driver Name: 360 Systems AM-16/B
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of MIDI connections to the 'MIDI IN' and
'MIDI OUT' ports on the back of the unit, with the appropriate MIDI device
specified in the 'Device:' field in RDAdmin->ManageHosts->Switchers/GPIO.
The following settings should be configured on the AM-16/B:
Control Port Type: MIDI (jumper JMP1)
Program Send: OFF
Receive Channel: o (Omni mode)
Memory Protect: OFF
The driver uses MIDI programs '0' and '1' on the AM-16/B when processing
crosspoint changes; anything previously saved in those programs will
be overwritten!
----------------------------------------------------------------------------
BROADCAST TOOLS 10x1
Driver Name: BroadcastTools 10x1
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
parameters should be set to 2400 baud rate, no parity, 8 data bits, 1
stop bit, CR/LF termination.
----------------------------------------------------------------------------
BROADCAST TOOLS 16x1
Driver Name: BroadcastTools 16x1
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
parameters should be set to 9600 baud rate, no parity, 8 data bits, 1
stop bit, CR/LF termination.
Driver Name: BroadcastTools 16x2
Supported RML Commands:
Switch Take ('ST')
GPO Set ('GO')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
parameters should be set to 9600 baud rate, no parity, 8 data bits, 1
stop bit, CR/LF termination.
Operation in 'multidrop' mode is not supported.
----------------------------------------------------------------------------
BROADCAST TOOLS 8x2
Driver Name: BroadcastTools 8x2
Supported RML Commands:
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
parameters should be set to 2400 baud rate, no parity, 8 data bits, 1
stop bit, CR/LF termination.
The 8x2 should be configured to use 'Mix' mode. This can be done by holding
down the F1 button on the switcher while powering up.
Operation in 'multidrop' mode is not supported.
----------------------------------------------------------------------------
BROADCAST TOOLS SENTINEL 4 WEB AES SWITCHER
Driver Name: BroadcastTools Sentinel 4 Web
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of a TCP/IP connection to the unit's integrated
Ethernet port.
On the 'Email/Network Setup' page of the unit, be sure that the 'TCP Enabled'
box is checked and that 'TCP Listen Port' is set to the same number as is
used in the 'IP Port' setting in Rivendell's driver configuration
('56' by default).
----------------------------------------------------------------------------
BROADCAST TOOLS SS 12.4
Driver Name: BroadcastTools SS 12.4
Supported RML Commands:
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
parameters should be set to 9600 baud rate, no parity, 8 data bits, 1
stop bit, CR/LF termination.
The SS 12.4 should be configured to use 'Mix' mode. This can be done
by setting DIP switches SW1-7 and SW-1-3 to OFF.
Operation in 'multidrop' mode is not supported.
Driver Name: BroadcastTools SS 16.4
Supported RML Commands:
GPO Set ('GO')
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
parameters should be set to 9600 baud rate, no parity, 8 data bits, 1
stop bit, CR/LF termination.
A total of 24 GPO outputs are supported, with the relays appearing as
GPO lines 1-8 and the open collector outputs as lines 9-24. All 24
'PIP' inputs are supported as GPI devices.
The SS 16.4 should be configured to use 'Mix' mode and to have 'PIP'
mode enabled. This can be done by setting DIP switches SW24-5, SW24-6
and SW24-8 to ON.
Operation in 'multidrop' mode is not supported.
----------------------------------------------------------------------------
BROADCAST TOOLS SS 4.2
Driver Name: BroadcastTools SS4.2
Supported RML Commands:
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
speed on the SS 4.2 should be set to 9600 (DIP switches SW13-3 and
SW13-4 set to 'off'). Serial port parameters in RDAdmin should be set
to 9600 baud rate, no parity, 8 data bits, 1 stop bit, CR/LF termination.
The SS 4.2 should be configured to use 'Mix' mode --i.e. DIP switches
SW13-5 and SW13-6 should both be 'on', and the unit ID should be set to
'0', with DIP switches SW13-1 and SW13-2 both 'off'.
Operation in 'multidrop' mode is not supported. If you wish to use
GPI (referred to as 'PIP', for 'Parallel Input Port' in the Broadcast
Tools documentation), then you will also need to be sure that DIP
switch SW13-7 is ON.
----------------------------------------------------------------------------
BROADCAST TOOLS SS 4.4
Driver Name: BroadcastTools SS4.4
Supported RML Commands:
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
speed on the SS 4.4 should be set to 9600 (DIP switch SW3 set to 'off').
Serial port parameters in RDAdmin should be set to 9600 baud rate, no parity,
8 data bits, 1 stop bit, CR/LF termination.
The SS 4.4 should be configured to use 'Mix' mode --i.e. DIP switches
SW4 and SW5 should both be 'on', and the unit ID should be set to
'0', with DIP switches SW1 and SW2 both 'off'.
Operation in 'multidrop' mode is not supported. If you wish to use
GPI (referred to as 'PIP', for 'Parallel Input Port' in the Broadcast
Tools documentation), then you will also need to be sure that DIP
switch SW8 is 'on'. If you wish to use the open collector and relay outputs
as GPO, then you will also need to be sure that DIP switch SW6 is 'off'.
----------------------------------------------------------------------------
BROADCAST TOOLS ACS 8.2
Driver Name: BroadcastTools ACS8.2
Supported RML Commands:
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
Switch Level ('SL') [Output #1 only]
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
speed on the ACS 8.2 should be set to 9600. Serial port parameters
should be set to 9600 baud rate, no parity, 8 data bits, 1 stop bit,
no termination.
The ACS 8.2 should be configured to use 'Mix' mode --i.e. DIP switches
SW17-5 and SW17-6 should both be 'on', and the unit ID should be
'0', with DIP switches SW17-1 and SW17-2 both 'off'.
Operation in 'multidrop' mode is not supported. If you wish to use
GPI (referred to as 'PIP', for 'Parallel Input Port' in the Broadcast
Tools documentation), then you will also need to be sure that DIP
switch SW17-10 is ON.
The ACS 8.2 supports the Switch Level [SL] RML for connections to
Output 1. Six different gain levels are supported: 0 dB, -3 dB,
-6 dB, -10 dB, -15 dB and -20 dB. For for a specified gain level of
greater than or equal to -20, the applied gain will be rounded down
to the next supported level. For gain levels of less than -20 dB, the
minimum supported gain (-20 dB) will be applied.
----------------------------------------------------------------------------
BROADCAST TOOLS SS 8.2
Driver Name: BroadcastTools SS8.2
Supported RML Commands:
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
GENERAL NOTES:
Control is done by means of an RS-232C connection to a four pin RJ11
modular jack on the back of the unit (an adapter to a standard DB9
connector is supplied by Broadcast Tools with the unit). Serial port
speed on the SS 8.2 should be set to 19200 (some have found 9600 to work
instead). Do *not* use 38400, as there are known bugs within the SS 8.2
when used with this speed! Serial port parameters should be set to
19200 baud rate (or 9600 if that worked instead), No parity, 8 data
bits, 1 stop bit, CR/LF termination (or potentially no termination).
The SS 8.2 should be configured to use 'Mix' mode --i.e. DIP switches
SW-14-4 and SW-14-5 should both be 'on', and the unit ID should be
'0', with DIP switches SW-14-1, SW-14-2 and SW-14-3 all 'off'.
Operation in 'multidrop' mode is not supported. If you wish to use
GPI (referred to as 'PIP', for 'Parallel Input Port' in the Broadcast
Tools documentation), then you will also need to be sure that DIP
switch SW-14-10 is ON.
----------------------------------------------------------------------------
Harlond Virtual Mixer
Driver Name: Harlond Virtual Mixer
Supported RML Commands:
Fire Salvo ('FS')
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
Switch Add ('SA')
Switch Level ('SL')
Switch Remove ('SR')
Switch Take ('ST')
GENERAL NOTES:
Control is by means of a TCP/IP connection to port 5002. Output busses are
mapped as follows:
OUTPUT BUSS
------ ----
1 PGM
2 AUD
3 UTL
4 CUE
Input channel ON/OFF is sensed/controlled by means of the respective GPIO
number using GE/GI/GO RMLs.
----------------------------------------------------------------------------
LiveWire LWRP Audio
Driver Name: LiveWire LWRP Audio
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
LiveWire is a distributed audio router and control system, with the
components (called 'nodes') configured and controled via TCP/IP. More
information can be found at http://www.axiaaudio.com/.
This driver can be used to create and remove connections between audio
sources and destinations via LiveWire Routing Protocol (LWRP).
Configuration is a matter of entering the IP address, password and base
output number for each node in
RDAdmin->ManageHosts->Switcher/GPIO->LiveWire Nodes. The driver
will autodetect all other parameters from the nodes themselves. The
resulting constellation of nodes can be controled with the 'Switch Take'
['ST'] RML by specifying the LiveWire source stream number as the <input>
parameter and the the base output number+the slot number-1 for the <output>
parameter.
----------------------------------------------------------------------------
LiveWire LWRP GPIO
Driver Name: LiveWire LWRP GPIO
Supported RML Commands:
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
GENERAL NOTES:
LiveWire is a distributed audio router and control system, with the
components (called 'nodes') configured and controled via TCP/IP. More
information can be found at http://www.axiaaudio.com/.
This driver can be used to control LiveWire's GPIO subsystem by means of
the LiveWire Routing Protocol (LWRP) with both physical as well as 'virtual'
GPIO devices.
Only two items need to be specified in the configuration: the IP address
of the device to control and the 'Layer', with 'V' specifying a virtual
GPIO device and 'D' specifying an actual physical one. The driver
will autodetect all other parameters (e.g. the number of input and output
lines) from the device itself.
----------------------------------------------------------------------------
LiveWire Multicast GPIO
Driver Name: LiveWire Multicast GPIO
Supported RML Commands:
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
GENERAL NOTES:
LiveWire is a distributed audio router and control system, with the
components (called 'nodes') configured and controled via TCP/IP. More
information can be found at http://www.axiaaudio.com/.
This driver provides the ability to access GPIO functions from LiveWire-
enabled control surfaces for setups that lack a virtual GPIO device --e.g.
when interfacing audio directly to a LiveWire node without using a native
LiveWire software audio driver or audio adapter.
When configuring it, the 'IP Address' field should contain the address
of the local interface to which the LiveWire network is attached, while
the 'LiveWire GPIOs' list should be populated with the stream number - GPIO
line associations to be used.
----------------------------------------------------------------------------
Driver Name: Local Audio Adapter
Supported RML Commands:
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
Switch Add with Gain ('SX')
GENERAL NOTES:
It's possible to use one or more of the actual audio adapters as a
switcher device using this driver. Doing so makes it possible to
route audio directly from the adapter inputs to outputs, while at the
same time using it for audio capture/playout in the usual manner.
Driver Name: Logitek vGuest
Supported RML Commands:
GPI Enable ('GE')
GPI Set ('GI')
GPO Set ('GO')
Set Display ('SD')
Switch Take ('ST')
GENERAL NOTES:
Before using the driver, the resources within the Logitek Audio Engine
system that you wish to control must be made available in a 'vGuest'
account within the Logitek 'Supervisor' system. Then, those same
resources must be mapped within the Rivendell driver. For the 'ST'
RML, the Logitek Engine Numbers and Device Numbers are mapped to
logical Rivendell 'Inputs' and 'Outputs' within the 'Configure Inputs'
and 'Configure Outputs' dialogs. For the GPO RMLs, various Logitek
'switches' (by which we mean anything that can be turned on and off,
such as faders feeds, not just GPIO) are mapped to logical Rivendell
GPIO lines by means of their Logitek Engine, Device and Buss numbers.
----------------------------------------------------------------------------
Quartz Electronics Type 1 Routing Protocol
Driver Name: Quartz Type 1
Supported RML Commands:
Switch Take ('ST')
Fire Salvo ('FS')
GENERAL NOTES:
Control can done either by means of an RS-232C connection or by means of
TCP/IP to TCP port 23.
SIERRA AUTOMATED SYSTEMS 32000 AUDIO ROUTER
Driver Name: SAS 32000
Supported RML Commands:
Switch Take ('ST')
Switch Add ('SA')
Switch Remove ('SR')
Switch Level ('SL') [requires appropriate SAS hardware support]
GENERAL NOTES:
Control is done by means of an RS-232C connection to the 'Computer
RS-232' port on the AXC-8 System Controller. Serial port parameters
should be set to 9600 baud rate, no parity, 8 data bits, 1 stop bit
and no terminator. The AXC-8 must be equipped with firmware built to
use the 'conventional' command protocol -- the 'enhanced' version will
not work!
----------------------------------------------------------------------------
SIERRA AUTOMATED SYSTEMS 64000 AUDIO ROUTER
Rivendell contains two drivers that support this switcher, depending
upon how the physical connection is made. If possible, use the 'SAS
64000-GPI' driver, as it is better tested and provides superior
performance.
Driver Name: SAS 64000
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of an RS-232C connection to the 'Computer
RS-232' port on the AXC-8 System Controller. Serial port parameters
should be set to 9600 baud rate, no parity, 8 data bits, 1 stop bit
and no terminator. The AXC-8 must be equipped with firmware built to
use the 'conventional' command protocol -- the 'enhanced' version will
not work!
Driver Name: SAS 64000-GPI
Supported RML Commands:
Switch Take ('ST')
GPO Set ('GO')
GENERAL NOTES:
Control is done by means of an RS-232C connection to the 'Computer
RS-232' port on a GPI-1600 GPIO interface. Serial port parameters
should be set to 19200 baud rate, no parity, 8 data bits, 1 stop bit
and no terminator. This driver allows control of the system's GPO
outputs as well as audio crosspoints.
----------------------------------------------------------------------------
SIERRA AUTOMATED SYSTEMS Universal Serial Interface (USI)
Driver Name: SAS User Serial Interface
Supported RML Commands:
Switch Take ('ST')
Switch Take With Gain ('SG')
Switch Add ('SA')
Switch Remove ('SR')
Switch Level ('SL')
Switch Crosspoint Gain ('SX')
GPO Set ('GO')
Fire Salvo ('FS')
Console Label ('CL')
GENERAL NOTES:
Control can done either by means of an RS-232C connection to one of
the serial ports on a DRC-16E card or by means of TCP/IP to a PC
running SAS's Server Module software. TCP connections are normally made
to port 1350 on the Server Module system.
----------------------------------------------------------------------------
SINE SYSTEMS ACU-1 (PROPHET VERSION)
Driver Name: Since ACU-1 (Prophet)
Supported RML Commands:
Switch Add ('SA')
Switch Remove ('SR')
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of an RS-232C connection to the RS-232 port on
the unit. Serial port parameters in RDAdmin should be set to 57600 baud
rate, even parity, 8 data bits, 1 stop bit and no terminator.
The ACU-1 should be set to use factory default settings. This can be done
by simultaneously pressing buttons 1 and 8 on the front panel of the unit
for at least one second.
----------------------------------------------------------------------------
STARGUIDE III Satellite Receiver
Driver Name: StarGuide III
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of an RS-232C connection to the
RS-232 port on the unit. The port should be configured on the
receiver to use a speed of 9600. Serial port parameters in RDAdmin
should be set to 9600 baud rate, no parity, 8 data bits, 1 stop bit
and no terminator. Once configured, use RDAdmin to create inputs that
correspond to the StarGuide Provider and Source IDs available on the
selected DVB carrier. Provider and Source ID data is available from
the provider network.
----------------------------------------------------------------------------
WEGENER UNITY4000 DVB SATELLITE RECEIVER
Driver Name: Wegener Unity 4000
Supported RML Commands:
Switch Take ('ST')
GENERAL NOTES:
Control is done by means of an RS-232C connection to one of the two
RS-232 ports on the unit. If possible, use serial port number one,
as the reciever uses a larger data buffer with that port. The
selected port should be configured in the reciever to be of type
"Terminal" with a speed of 19200. Serial port parameters should be
set to 19200 baud rate, no parity, 8 data bits, 1 stop bit
and no terminator. Once configured, use RDAdmin to create inputs that
correspond to the DVB stream names available on the selected DVB
carrier.
Caution is needed when scheduling record events from the Unity4000, as
the unit is capable of outputting a given DVB stream to only a single
output at a time. Commanding a stream to an output will cause that
stream to be silently deselected from a previously selected output.
----------------------------------------------------------------------------

25
docs/WIN32.txt Normal file
View File

@@ -0,0 +1,25 @@
WINDOWS SUPPORT FOR RIVENDELL
A Windows port of Rivendell exists, consisting of just the RDLogEdit,
RDLogManager and RMLSend tools, primarily intended for use on systems
employing Windows-based traffic and music schedulers. Current binary
versions can be found at:
ftp://ftp.salemradiolabs.com/pub/srlabs/rivendell/win32/
If you wish to build the Windows port from source, please see the
'INSTALL' file.
INSTALLING THE BIANRY VERSION
The binary version comes with a standard setup program that will do
most of the work of getting Rivendell installed. After the
installation is complete, you will need to edit the 'rd.ini' file,
located in the Rivendell installation directory (by default,
'C:\ProgramFiles\SalemRadioLabs\Rivendell\') and supply the hostname
and login password to the 'rduser' account on the site's mySQL server.
This file can contain all of the directives and arguments used in
Rivendell's standard '/etc/rd.conf' file (although only a few will
have any real effect in the Windows envrionment). The default
file provided should help get you started.

67
docs/WINGS_FILTER.txt Normal file
View File

@@ -0,0 +1,67 @@
Usage Notes for the 'wings_filter' Import Script.
Wings_filter is a script designed to be used to import existing audio
and meta-data from an AirForce 'Wings' automation system. It is
invoked as follows:
USAGE
wings_filter -g <default-group> -d <db-file> -A <audio-dir> [-e <audio-ext>]
Where:
<default-group> = The name of the group in which to place carts
belonging to a source tab in Wings for which there
is no corresponding Rivendell Group.
<db-file> = The name of the Wings database file.
<audio-dir> = The name of the directory containing the Wings ATX
audio files.
<audio-ext> = The filetype extension fo the Wings ATX files. By
default, this is 'ATX', but can be changed to
other values here if necessary.
OVERVIEW
In order import audio from an existing Wings system, proceed as
follows:
1) CREATE RIVENDELL GROUPS
In RDAdmin->ManageGroups, create a Group to correspond to each Wings
Tab value that exists in the library to be imported, and an additional
group to catch any Wings entries that may not have a valid Group.
When creating these groups, it is essential that a default cart number
range be configured for each group that is large enough to accomodate
all anticipated imports.
2) LOCATE THE 'WINGS' DATABASE AND AUDIO FILES
These can be mounted from a remote system if needs be. Read-only
access is adequate, as the script does not modify these items in any
way.
3) VERIFY AVAILABLE DISK SPACE
Verify that enough disk space is available in the '/var/snd/'
directory to accomodate the audio to be imported. You should have at
least the amount of space currently occupied by the Wings ATX files,
plus 5 percent additional.
4) INVOKE SCRIPT
Start up the script, as described in the USAGE section above. The
script will print progress reports as it proceeds, or notify you of
error conditions as required.
5) CLEAN UP
If desired, use RDAdmin->ManageGroups to rename the single-letter
import groups to more intuitive names.
NOTE ON AUDIO PROCESSING
Wings_filter does not alter or reencode the audio sample data in any
way, and thus does *not* incurr any generation or transcoding loss of
quality. At the same time, this means that the incoming audio will be
brought into Rivendell *exactly* as it exists in the Wings system,
with all parameters (e.g. sample rate, bit rate, level, etc)
unaltered. If you need to alter one or more of these parameters as
part of the import process, we suggest you use the RDImport script
instead.

BIN
docs/ando_interface.odt Normal file

Binary file not shown.

11
docs/asound.conf-sample Normal file
View File

@@ -0,0 +1,11 @@
# *** Start of Rivendell configuration generated by rdalsaconfig(1) ***
pcm.rd0 {
type hw
card 0
device 0
}
ctl.rd0 {
type hw
card 0
}
# *** End of Rivendell configuration generated by rdalsaconfig(1) ***

BIN
docs/cae.sxw Normal file

Binary file not shown.

117
docs/catchd.txt Normal file
View File

@@ -0,0 +1,117 @@
Rivendell Netcatcher Communication Protocol
This defines the IP protocol used for communication between different
modules of Rivendell and the 'rdcatchd' daemon.
Connection to ripcd is by means of a TCP SOCK_STREAM connection to TCP
port 6006. The format of a message is as follows:
<cmd>[<arg>][...]!
where:
<cmd> is a two-letter code indicating the nature of the message.
<arg> is zero or more arguments.
! is an ASCII character 0x21.
UNPRIVILEDGED COMMANDS -- no authentication is required to execute these.
DC! -- DROP CONNECTION
End the session and drop the TCP connection.
PW <passwd>! -- SEND PASSWORD
Send a password to authenticate the connection. Ripcd will respond
with 'PW +!' or 'PW -!', indicating the success or failure of the
authentication.
PRIVILEDGED - a connection must be authenticated before these can be
executed.
RD! -- Reload Deck List
Reload the record/play deck configuration. Rdcatchd will respond with RD
+!.
RS! -- Reload Event List
Reload the list of scheduled events. Rdcatchd will respond with
RS +!.
RA <id>! -- Add Event
Add event number <id> to the event list. Rdcatchd will respond with
RA <id> +!
RR <id>! -- Remove Event
Remove event number <id> from the event list. Rdcatchd will respond with
RR <id> +!
RU <id>! -- Update Event
Refresh event number <id> in the event list. Rdcatchd will respond with
RU <id> +!
RE <channel>! -- Request Status
<channel> = Channel number
If <channel> is greater than zero, rdcatchd will respond with
RE <channel> <status> <id> <cutname>!
<channel> = Channel number
<status> = 0 - Deck is offline
1 - Deck is Idle
2 - Deck is Ready
3 - Deck is active (playing or recording)
4 - Deck is waiting for GPI
<id> = ID number of current event (from RECORDINGS table)
<cutname> = The cutname of the event (present only for <status>==3).
If <channel> is zero, rdcatchd will respond for every event whose
status is non-idle.
An RE packet will also be sent automatically to all active connections
upon any change of deck status.
RM <state>! -- Enable/Disable Metering
<state> = 0 - Turn metering off
1 - Turn metering on
When metering is active, meter data packets will be periodically sent,
as follows:
RM <deck> <chan> <level>!
<deck> = Deck number
<chan> = Channel, 0 = Left, 1 = Right
<level> = Left audio level, in 1/100 of dbFS
SR <deck>! -- Stop
<deck> = Deck Number
PE <id>! -- Purge Event
Received from the daemon upon completion of an event with the ONE_SHOT
flag set, meaning that the event has been removed from the database.
RO! -- Reload Time Offset
RH! -- Reload Heartbeat Configuration
HB! -- Heartbeat Pulse
MN <deck> <state>! -- Monitor State
Turn the input monitor for deck <deck> on or off.
RX! -- Restart dropbox instances
SC <id> <code> <msg>!
Set exit code of event <id> to <code>.

Some files were not shown because too many files have changed in this diff Show More