* Added an rdauth(1) utility in 'utils/rdauth/'.
* Fixed a regression in 'lib/rdcart.cpp' that caused the 'Import'
web API call to fail with an 'unsupported format' error.
* Fixed a regression in 'web/rdxport/rdxport.cpp' that broke
the CreateTicket web API call when connecting from localhost
or the machines registered IP address.
* Added a 'USERS.LOCAL_AUTH' field to the database.
* Added a 'USERS.PAM_SERVICE' field to the database.
* Added an index on 'STATIONS.IPV4_ADDRESS' to the database.
* Incremented the database version to 262.
* Added 'RDUser::localAuthentication()',
'RDUser::setLocalAuthentication()', 'RDUser::pamService()' and
'RDUser::setPamService()' methods in 'lib/rduser.cpp' and
'lib/rduser.h'.
* Added 'PAM Service' and 'Authenticate This User Locally' controls
to the Edit User dialog in 'rdadmin/edit_user.cpp' and
'rdadmin/edit_user.h'.
* Added a PAM service configuration in 'conf/rivendell.pam'.
* Changed the result code of the 'AddCart' service when the cart
already exists from '403' to '400'.
* Changed the result code of the 'EditCart' service when attempting
to set a forced length on a macro cart from '403' to '400'.
* Changed the result code of the 'EditCart' service when attempting
to set a forced length outside of the valid range from '403' to '400'.
* Changed the result code of the 'Export' service when attempting
to export from a cut with no audio content from '403' to '404'.
* Changed the '401' result code of the 'EditCart' service to be 403.
* Changed the '401' result code of the 'DeleteAudio' service to be 403.
* Changed the '401' result code of the 'Export' service to be 403.
* Added a 'CUTS.SHA1_HASH' field to the database.
* Incremented the database version to 261.
* Added a 'Sha1' column to the Cut List in 'rdlibrary/audio_cart.cpp'.
* Added 'RDCut::sha1Hash()' and 'RDCut::setSha1Hash()' methods in
'lib/rdcut.cpp' and 'lib/rdcut.h'.
* Added a '--rehash=' directive to rddbcheck(8).
* Added a 'Rehash' Web API call.
* Added an 'RDRehash' class in 'lib/rdrehash.cpp' and 'lib/rdrehash.h'.
* Added a 'WEBAPI_AUTHS' table to the database.
* Added a 'USERS.WEBAPI_AUTH_TIMEOUT' field to the database.
* Incremented the database version to 260.
* Added 'RDUser::webapiAuthTimeout()' and
'RDUser::setWebapiAuthTimeout()' methods in 'lib/rduser.cpp' and
'lib/rduser.h'.
* Added a 'WebAPI Timeout' control to the Edit User dialog in
'rdadmin/edit_user.cpp' and 'rdadmin/edit_user.h'.
* Implemented a 'CreateTicket' Web API call.
* Fixed a bug in 'lib/rdaudioconvert.cpp' that caused conversions
from MPEG Layer 3 VBR data to be truncated when no end point
was specified.
* Fixed a bug in 'web/rdxport/import.cpp' that caused the
end marker to be positioned incorrectly when importing MPEG
Layer 3 VBR files.
* Added 'RDCart::xmlSql()' and second 'RDCart::xml()' methods.
* Refactored the 'RDCart::xml()' method to use a SQL query.
* Refactored the Cart and Cut web methods in 'web/rdxport/carts.cpp'
to use SQL queries.
* Modified 'lib/rdformpost.cpp' to use read-only accessors for
std::map values.
* Added a check for valid event IDs for the 'SaveLog' method in
'web/rdxport/logs.cpp'.
* Added an 'AddLog' method to the Web API.
* Added an 'DeleteLog' method to the Web API.
* Added a 'SaveLog' method to the Web API.
* Added 'eventLength', 'linkEventName', 'linkStartSlop',
'linkEndSlop', 'linkId', 'linkEmbedded', 'extStartTime',
'extLength', 'extCartName', 'extData', 'extEventId',
and 'extAnncType' XML fields to the return of the ListLog web
API method
* Implemented storage of RDXML data structures within a 'rdxl'
user defined information frame in ID3 tags 'lib/rdwavefile.cpp' and
'lib/rdaudio_convert.cpp'.
* Added an entry for the Broadcast Tools SRC-16 in
'docs/SWITCHERS.txt'.
* Added a 'CUT_EVENTS' table to the database.
* Added a 'DECK_EVENTS' table to the database.
* Incremented the database version to 256.
* Implemented a 'Cut Event' ['CE'] RML.
* Added a 'Event Carts' section to the Edit Deck dialog in
'rdadmin/edit_deck.cpp' and 'rdadmin/edit_deck.h'.
* Update web test methods in 'web/tests/'.
* Added an 'RDSchedCode' class in 'lib/rdschedcode.cpp' and
'lib/rdschedcode.h'.
* Implemented the 'ListSchedCodes' web method in
'web/rdxport/schedcodes.cpp'.
* Implemented the 'AssignSchedCode' web method in
'web/rdxport/schedcodes.cpp'.
* Implemented the 'UnassignSchedCode' web method in
'web/rdxport/schedcodes.cpp'.
* Implemented the 'ListCartSchedCodes' web method in
'web/rdxport/schedcodes.cpp'.
* Extended 'RDGetWebTime()' and 'RDGetWebDateTime()' functions to
support XML 'xs' namespace formats.
* Implemented '*_POINT' fields in the 'EditCut' web method in
'web/rdxport/carts.cpp'.
* Modified the 'RDCart::removeSchedCode()' method so as to treat
scheduler codes in a case-insensitve manner.
* Modified the return of the 'EditCut' web method to provide a full
<cutList> record in 'web/rdxport/carts.cpp'.
* Added a 'Type' control to 'web/tests/listcart.html'.
* Fixed a bug in 'web/rdxport/carts.cpp' that broke the 'ListCarts'
API call when no group was specified.
* Added an 'RDAudioConvert::Stage3Pcm24()' method in
'lib/rdaudioconvert.cpp' and 'lib/rdaudioconvert.h'.
* Added a 'Format::Pcm24' value to the 'RDSettings::Format'
enumeration in 'lib/rdsettings.h'.
* Modified the 'RDAudioConvert' class to support generating PCM24
output in 'lib/rdaudioconvert.cpp' and 'lib/rdaudioconvert.h'.
* Modified the 'RDPlayStream' class to support playing PCM24
data in 'rdhpi/rdplaystream.cpp'.
* Modified the 'RDRecordStream' class to support capturing PCM24
data in 'rdhpi/rdrecordstream.cpp'.
* Added an 'audio_peaks_test' harness in 'tests/audio_peaks_test.cpp'
and 'tests/audio_peaks_test.h'.
* Added 'PCM24' to the list of available formats in
'rdadmin/edit_rdlibrary.cpp' and 'rdadmin/edit_rdlibrary.h'.
* Added 'PCM24' to the list of available formats in
'rdadmin/edit_decks.cpp'.
* Added PCM24 support for file importation in
'web/rdxport/import.cpp'.
* Added an 'RDCae::Pcm24' value to the 'RDCae::AudioCoding
enumeration in 'lib/rdcae.h'.
* Implemented the 'RDXPORT_COMMAND_AUDIOSTORE' web API call in
'web/rdxport/audiostore.cpp', 'web/rdxport/rdxport.cpp' and
'web/rdxport/rdxport.h'.
* Added an 'RDAudioStore' class in 'lib/rdaudiostore.cpp' and
'lib/rdaudiostore.h'.
* Modified the Desk Gauge widget in 'rdlibrary/disk_gauge.cpp'
and 'rdlibrary/disk_gauge.h' to use the 'RDAudioStore' class
[fixes GitHub issue #000035].
* Fixed a bug in 'Makefile.am' that broke the 'make install' rule
when using DESTDIR.
* Fixed a bug in 'icons/Makefile.am' that broke the 'make install'
rule when using DESTDIR.
* Fixed a bug in 'rlm/Makefile.am' that broke the 'make install'
rule when using DESTDIR.
* Fixed a bug in 'scripts/Makefile.am' that broke the 'make install'
rule when using DESTDIR.
* Fixed a bug in 'xdg/Makefile.am' that broke the 'make install'
rule when using DESTDIR.
* Fixed a bug in 'rdselect/Makefile.am' that broke the 'make install'
rule when using DESTDIR.
* Fixed a bug in 'web/rdxport/Makefile.am' that broke the
'make install' rule when using DESTDIR.
* Fixed a bug in 'configure.ac' that cause an incorrect VERSION
string to be generated.
* Fixed warnings in 'lib/rdaudioconvert.cpp'.
* Fixed warnings in 'lib/rdaudioexport.cpp'.
* Fixed warnings in 'lib/rdaudioimport.cpp'.
* Fixed warnings in 'lib/rdcart_dialog.cpp'.
* Fixed warnings in 'lib/rdconf.cpp'.
* Fixed warnings in 'lib/rdcopyaudio.cpp'.
* Fixed warnings in 'lib/rdescape_string.cpp'.
* Fixed warnings in 'lib/rdevent_line.cpp'.
* Fixed warnings in 'lib/rdfeed.cpp'.
* Refactored 'RDOneShot' to use int values in 'lib/rdoneshot.cpp'
and 'lib/rdoneshot.h'.
* Fixed warnings in 'lib/rdpeaksexport.cpp'.
* Fixed warnings in 'lib/rdtrimaudio.cpp'.
* Fixed warnings in 'lib/rdwavefile.cpp'.
* Fixed warnings in 'rdhpi/rdhpiplaystream.cpp'.
* Fixed warnings in 'rdhpi/rdhpirecordstream.cpp'.
* Fixed warnings in 'rdhpi/rdhpisoundcard.cpp'.
* Fixed warnings in 'pam_rd/pam_rd.cpp'.
* Fixed warnings in 'rdadmin/edit_rdairplay.cpp'.
* Fixed warnings in 'rdairplay/list_log.cpp'.
* Fixed warnings in 'rdairplay/log_play.cpp'.
* Fixed warnings in 'rdairplay/pie_counter.cpp'.
* Fixed warnings in 'rdairplay/rlm_host.cpp'.
* Fixed warnings in 'rdcatchd/rdcatchd.cpp'.
* Fixed warnings in 'rdlogedit/editlog.cpp'.
* Fixed warnings in 'rdlogmanager/rdlogmanager.cpp'.
* Fixed warnings in 'rdrepl/replfactory.h'.
* Fixed warnings in 'ripcd/acu1p.cpp' and 'ripcd/acu1p.h'.
* Fixed warnings in 'ripcd/bt16x2.cpp' and 'ripcd/bt16x2.h'.
* Fixed warnings in 'ripcd/btss164.cpp' and 'ripcd/btss164.h'.
* Fixed warnings in 'ripcd/btss42.cpp' and 'ripcd/btss42.h'.
* Fixed warnings in 'ripcd/btss44.cpp' and 'ripcd/btss44.h'.
* Fixed warnings in 'ripcd/btss82.cpp' and 'ripcd/btss82.h'.
* Fixed warnings in 'ripcd/btsrc16.cpp' and 'ripcd/btsrc16.h'.
* Fixed warnings in 'ripcd/btsrc8iii.cpp' and 'ripcd/btsrc8iii.h'.
* Fixed warnings in 'ripcd/livewire_mcastgpio.cpp'.
* Fixed warnings in 'ripcd/local_gpio.cpp' and 'ripcd/local_gpio.h'.
* Fixed warnings in 'ripcd/sas64000gpi.cpp' and 'ripcd/sas64000gpi.h'.
* Fixed warnings in 'ripcd/vguest.cpp' and 'ripcd/vguest.h'.
* Fixed warnings in 'utils/rdhpiinfo/rdhpiinfo.cpp'
* Fixed warnings in 'utils/rdgen/wavlib.cpp'
* Fixed warnings in 'utils/rdimport/rdimport.cpp'
* Fixed warnings in 'utils/rdsoftkeys/rdsoftkeys.cpp'
* Fixed warnings in 'web/rdxport/export.cpp'