* Added a 'STATIONS.SSH_IDENTITY_FILE' field to the database.
* Added a 'RECORDINGS.URL_USE_ID_FILE' field to the database.
* Added a 'FEEDS.PURGE_USE_ID_FILE' field to the database.
* Incremented the database version to 333.
* Added 'RDStation::sshIdentityFile()' and
'RDStation::setSshIdentityFile()' methods.
* Added 'RDRecording::urlUseIdFile()' and
'RDRecording::setUrlUseIdFile()' methods.
* Added 'RDFeed::purgeUseIdFile()' and 'RDFeed::setPurgeUseIdFile()'
methods.
* Added a 'SSH Ident. File' control to the 'Host' dialog in
rdadmin(1).
* Added an 'Authenticate with local identity file' checkbox to
the 'Feed' dialog in rdadmin(1).
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Added a 'cmdline_parser_test' test harness.
* Fixed a bug in 'RDCmdSwitch' that caused value-only arguments
containing '=' characters to be incorrectly parsed.
Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
* Added a 'FEEDS.AUDIENCE_METRICS' field to the database.
* Incremented the database version to 316.
* Added a 'Collect Audience Metrics' checkbox to the 'Feed'
dialog in rdadmin(1).
* Added an 'RDTransfer' base class.
* Rebased 'RDDelete' to 'RDTransfer'.
* Added 'sftp' support to 'RDDelete'.
* Added 'file' support to 'RDDelete'.
* Refactored RSS generation to occur in 'RDFeed'.
* Added a 'delete_test' test harness.
* Fixed a bug with the '%y' metadata wildcard where garbage would
be returned if a valid year had not been set.
* Added a 'metadata_wildcard_test' harness.
* Removed all Qt3Support dependencies from the 'RDUpload' class.
* Removed all Qt3Support dependencies from the 'RDDownload' class.
* Added a 'test_download' test harness.
* Refactored routines for parsing/writing standard date/time strings
(RFC822 and XML xs:dateTime formats) into 'lib/rddatetime.[cpp|h].
* Removed the 'RDWebDateTime()', 'RDGetWebDateTime()',
'RDGetWebDate()', 'RDGetWebTime()', 'RDGetWebMonth()',
'RDXmlDate()', 'RDXmlTime()', 'RDXmlDateTime()' and
'RDXmlTimeZoneSuffix()' functions from 'lib/rdweb.[cpp|h].
* Added a 'dateparse_test' test harness.
* Added a '--metadata-cart=' switch to the 'audio_convert_test'
test harness.
* Added an 'audio_metadata_test' test harness.
* Modified ID3 tag reading/writing to use TagLib.
* Changed installation location of caed(8), ripcd(8), rdcatchd(8)
and rdrepld(8) from '@prefix@/bin' to '@prefix@/sbin'.
* Removed code to detach from controlling terminal after startup
from caed(8), ripcd(8), rdcatchd(8)
and rdrepld(8).
* Removed code to manage dropbox instances from rdcatchd(8).
* Removed code to start service daemons automatically from
user modules.
* Added rdservice(8).
* Converted ripcd(8) to use RDApplication.
* Documented a 'Notification' message type in
'docs/apis/notification.xml'.
* Added an 'RDMulticaster' class.
* Added an 'mcast_recv_test' program in 'tests/'.
* Added a 'SYSTEM.NOTIFICATION_ADDRESS' field to the database.
* Incremented the database version to 276.
* Added an 'Mcast Address for Notifications' control to the
'System-Wide Settings' dialog in rdadmin(1).
* Implemented the 'Process Notification' ['ON'] command in
ripcd(8).
* Added an 'RDRipc::sendNotification()' method.
* Added an 'RDRipc::notificationReceived()' signal.
* Modified log linking to retain parent link events in linked logs.
* Fixed a bug where re-merging linked logs would generate an
'Event not placed' exception for avails that were previously
unpopulated.
* Added a 'STATIONS.SHORT_NAME' field to the database.
* Incremented the database version to 270.
* Added 'RDStation::shortName()' and 'RDStation::setShortName()'
methods.
* Removed the 'Broadcast Security Model' control from the 'Edit
Host' dialog.
* Added a 'Short Name' control to the 'Edit Host' dialog.
* Implemented a '%R' wildcard for Rivendell Host Short Name.
* 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 rdxml_parse_test(1) in 'tests/'.
* Added a RDCart::readXml()' method in 'lib/rdcart.cpp' and
'lib/rdcart.h'.
* Fixed a typo in the 'averageSegueLength' field in the 'RDCart::xml()'
method in 'lib/rdcart.cpp'.
* Removed the 'validity' field from the output of the 'RDCart::xml()'
method in 'lib/rdcart.cpp'.
* Removed the 'validity' and 'localCounter' fields from the output
of the 'RDCut::xml()' method in 'lib/rdcut.cpp'.
Most files are simple swaps to get rid of extra " as a NULL return will give
invalid SQL if used as follows UPDATE x SET y="NULL";
See github issue 121 for more info.
Extra changes have been made to the following files:
* lib/rdcartslot.cpp
- Added a QDateTime variable to prevent EVENT_DATETIME becoming
"2016-06-09" "NULL" as it was checked separately for date and time
* lib/rdcut.cpp
- Reworked START_DATETIME and END_DATETIME to save the SQL ifs. I believe this
makes it easier to read and understand.
- The >QDate(1900,1,1) and < 8000 is probably not needed but I left it there
just in case.
* lib/rdescape_string.cpp
- Reworked to add extra " if the date is not NULL see issue 121
* lib/rdfeed.cpp && lib/rdpodcast.cpp
- Had to add a SetRow for QDateTime as with the string conversion the existing
SetRow would add an extra set of "
* lib/rdsound_panel.cpp && rdairplay/log_traffic.cpp
&& utils/rddgimport/rddgimport.cpp
- Added a QString to contain EVENT_DATETIME to prevent double checks of date
and time separately (similar to lib/rdcartslot.cpp)
* rdcatchd/rdcatchd.cpp
- Reverted the changes. The RML here is not touching the DB so is fine, plus
with the RDCheckDateTime changes you'd have extra " unless it was NULL
* tests/sas_switch_torture.cpp && sas_torture.cpp
- Included missing rdescape_string.h
* 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'.