commit
afd67c7af8
1508 changed files with 405304 additions and 0 deletions
-
47AUTHORS
-
201CODINGSTYLE
-
340COPYING
-
14297ChangeLog
-
185INSTALL
-
162Makefile.am
-
2743NEWS
-
1PACKAGE_VERSION
-
71README
-
74UPGRADING
-
504acinclude.m4
-
48autogen.sh
-
37build_win32.bat
-
55cae/Makefile.am
-
2276cae/cae.cpp
-
410cae/cae.h
-
1893cae/cae_alsa.cpp
-
536cae/cae_hpi.cpp
-
1607cae/cae_jack.cpp
-
55cae/cae_socket.cpp
-
50cae/cae_socket.h
-
54conf/Makefile.am
-
59conf/my.cnf-master
-
78conf/my.cnf-standby
-
51conf/rd-bin.conf.in
-
118conf/rd-sample.ini
-
133conf/rd.conf-sample
-
45conf/rd.conf-slax
-
84conf/rlm_ando.conf
-
76conf/rlm_facebook.conf
-
111conf/rlm_filewrite.conf
-
92conf/rlm_icecast2.conf
-
110conf/rlm_inno713.conf
-
78conf/rlm_liqcomp.conf
-
45conf/rlm_padpoint.conf
-
129conf/rlm_serial.conf
-
82conf/rlm_shoutcast1.conf
-
129conf/rlm_spinitron_plus.conf
-
106conf/rlm_spottrap.conf
-
76conf/rlm_twitter.conf
-
118conf/rlm_udp.conf
-
58conf/rlm_xds.conf
-
98conf/rlm_xmpad.conf
-
543configure.in
-
68debian/Makefile.am
-
55debian/README.Debian
-
387debian/changelog
-
1debian/compat
-
38debian/control
-
15debian/copyright
-
6debian/librivendell.install
-
42debian/menu
-
4debian/patches/00list
-
26debian/patches/00template
-
38debian/patches/07_extra_paren.dpatch
-
29debian/patches/Makefile.am
-
9debian/rdadmin.desktop
-
768debian/rdadmin.xpm
-
9debian/rdairplay.desktop
-
738debian/rdairplay.xpm
-
9debian/rdcatch.desktop
-
780debian/rdcatch.xpm
-
9debian/rdlibrary.desktop
-
788debian/rdlibrary.xpm
-
9debian/rdlogedit.desktop
-
751debian/rdlogedit.xpm
-
9debian/rdlogin.desktop
-
715debian/rdlogin.xpm
-
9debian/rdlogmanager.desktop
-
745debian/rdlogmanager.xpm
-
1debian/rivendell.conffiles
-
110debian/rivendell.config
-
9debian/rivendell.docs.in
-
2debian/rivendell.examples
-
83debian/rivendell.init
-
5debian/rivendell.install
-
27debian/rivendell.logrotate
-
315debian/rivendell.postinst
-
77debian/rivendell.postrm
-
228debian/rivendell.templates
-
117debian/rules
-
42docs/ALSA.txt
-
93docs/ENCODERS.txt
-
185docs/GPIO.txt
-
110docs/JACK.txt
-
9docs/MESSAGE_BOX.txt
-
62docs/Makefile.am
-
0docs/NEXGEN_FILTER.txt
-
57docs/NOW+NEXT.txt
-
132docs/PODCASTING.txt
-
58docs/RDMONITOR.txt
-
70docs/RIVENDELL_FILTER.txt
-
24docs/SAGE_ENDEC.txt
-
631docs/SWITCHERS.txt
-
25docs/WIN32.txt
-
67docs/WINGS_FILTER.txt
-
BINdocs/ando_interface.odt
-
11docs/asound.conf-sample
-
BINdocs/cae.sxw
-
117docs/catchd.txt
@ -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 |
|||
|
@ -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. |
|||
|
|||
|
|||
|
@ -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
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
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/'. |
@ -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
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1 @@ |
|||
2.9.0 |
@ -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. |
@ -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.) |
@ -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 |
|||
]) |
@ -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 |
|||
} |
@ -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 |
@ -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
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
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 |
|||