* Added a 'STATIONS.REPORT_EDITOR_PATH' field to the database.
* Incremented the database version to 302.
* Added a 'Report Editor' control to the 'Edit Host' dialog in
rdadmin(1).
* Modified the report generator to use the editor specified in the
'Report Editor' control rather than than the value of the $VISUAL
environmental variable.
* Added a 'SERVICES.INCLUDE_IMPORT_MARKERS' field to the database.
* Added a 'LOGS.INCLUDE_IMPORT_MARKERS' field to the database.
* Incremented the database version to 301.
* Added an 'Inlcude Import Markers in Finished Logs' checkbox to
the 'Edit Service' dialog in rdadmin(1).
* Removed the 'Charset=' and 'Collation=' parameters from the
'[mySQL]' section of rd.conf(5).
* Removed support for the --mysql-charset=' and '--mysql-collation='
switches in rddbmgr(8).
* Refactored handling of character set and collation attributes
in rddbmgr(8) to treat them as immutable parts of the DB schema.
* Changed all instances of 'char' to 'varchar' in the database.
* Changed the width of the 'CART.TITLE' field to 191.
* Changed the width of the 'CART.ARTIST' field to 191.
* Changed the width of the 'CART.ALBUM' field to 191.
* Changed the width of the 'CART.USER_DEFINED' field to 191.
* Changed the width of the 'CUTS.ORIGIN_LOGIN_NAME' field to 191.
* Changed the width of the 'DROPBOXES.PATH' field to 191.
* Changed the width of the 'DROPBOXES.LOG_PATH' field to 191.
* Changed the width of the 'DROPBOXES.SET_USER_DEFINED' field to 191.
* Changed the width of the 'DROPBOX_PATHS.FILE_PATH' field to 191.
* Changed the width of the 'ELR_LINES.TITLE' field to 191.
* Changed the width of the 'ELR_LINES.ARTIST' field to 191.
* Changed the width of the 'ELR_LINES.USER_DEFINED' field to 191.
* Changed the width of the 'ELR_LINES.ALBUM' field to 191.
* Changed the width of the 'ENCODERS.COMMAND_LINE' field to 191.
* Changed the width of the 'EVENTS.NOTE_TEXT' field to 191.
* Changed the width of the 'EVENT_LINES.MARKER_COMMENT' field to 191.
* Changed the width of the 'FEEDS.CHANNEL_TITLE' field to 191.
* Changed the width of the 'FEEDS.CHANNEL_LINK' field to 191.
* Changed the width of the 'FEEDS.BASE_URL' field to 191.
* Changed the width of the 'FEEDS.BASE_PREAMBLE' field to 191.
* Changed the width of the 'FEEDS.PURGE_URL' field to 191.
* Changed the width of the 'FEEDS.REDIRECT_PATH' field to 191.
* Changed the width of the 'FEED_PERMS.USER_NAME' field to 191.
* Changed the width of the 'GROUPS.DESCRIPTION' field to 191.
* Changed the width of the 'GROUPS.DEFAULT_TITLE' field to 191.
* Changed the width of the 'HOSTVARS.VARVALUE' field to 191.
* Changed the width of the 'HOSTVARS.REMARK' field to 191.
* Changed the width of the 'IMPORTER_LINES.TITLE' field to 191.
* Changed the width of the 'IMPORTER_LINES.TRACK_STRING' field to 191.
* Changed the width of the 'INPUTS.NODE_HOSTNAME' field to 191.
* Changed the width of the 'LOGS.ORIGIN_USER' field to 191.
* Changed the width of the 'LOGS.LOCK_USER_NAME' field to 191.
* Changed the width of the 'LOG_LINES.COMMENT' field to 191.
* Changed the width of the 'LOG_LINES.ORIGIN_USER' field to 191.
* Changed the width of the 'LOG_MACHINES.UDP_ADDR' field to 191.
* Changed the width of the 'LOG_MACHINES.UDP_STRING' field to 191.
* Changed the width of the 'LOG_MACHINES.LOG_RML' field to 191.
* Changed the width of the 'MATRICES.GPIO_DEVICE' field to 191.
* Changed the width of the 'NOWNEXT_PLUGINS.PLUGIN_PATH' field to 191.
* Changed the width of the 'NOWNEXT_PLUGINS.PLUGIN_ARG' field to 191.
* Changed the width of the 'OUTPUTS.NODE_HOSTNAME' field to 191.
* Changed the width of the 'PODCASTS.ITEM_TITLE' field to 191.
* Changed the width of the 'PODCASTS.ITEM_LINK' field to 191.
* Changed the width of the 'PODCASTS.ITEM_COMMENTS' field to 191.
* Changed the width of the 'PODCASTS.ITEM_AUTHOR' field to 191.
* Changed the width of the 'PODCASTS.ITEM_SOURCE_URL' field to 191.
* Changed the width of the 'PODCASTS.AUDIO_FILENAME' field to 191.
* Changed the width of the 'RDAIRPLAY.SKIN_PATH' field to 191.
* Changed the width of the 'RDAIRPLAY_CHANNELS.START_RML' field to 191.
* Changed the width of the 'RDAIRPLAY_CHANNELS.STOP_RML' field to 191.
* Changed the width of the 'RDCATCH.ERROR_RML' field to 191.
* Changed the width of the 'RDPANEL.SKIN_PATH' field to 191.
* Changed the width of the 'RDPANEL_CHANNELS.START_RML' field to 191.
* Changed the width of the 'RDPANEL_CHANNELS.STOP_RML' field to 191.
* Changed the width of the 'RECORDINGS.URL' field to 191.
* Changed the width of the 'REPLICATORS.URL' field to 191.
* Changed the width of the 'REPL_CART_STATE.POSTED_FILENAME' field
to 191.
* Changed the width of the 'REPORTS.EXPORT_PATH' field to 191.
* Changed the width of the 'REPORTS.WIN_EXPORT_PATH' field to 191.
* Changed the width of the 'SERVICES.DESCRIPTION' field to 191.
* Changed the width of the 'SERVICES.NAME_TEMPLATE' field to 191.
* Changed the width of the 'SERVICES.DESCRIPTION_TEMPLATE' field to 191.
* Changed the width of the 'SERVICES.PROGRAM_CODE' field to 191.
* Changed the width of the 'SERVICES.TFC_PATH' field to 191.
* Changed the width of the 'SERVICES.TFC_WIN_PATH' field to 191.
* Changed the width of the 'SERVICES.MUS_PATH' field to 191.
* Changed the width of the 'SERVICES_MUS_WIN_PATH' field to 191.
* Changed the width of the 'STATIONS.USER_NAME' field to 191.
* Changed the width of the 'STATIONS.DEFAULT_NAME' field to 191.
* Changed the width of the 'STATIONS.EDITOR_PATH' field to 191.
* Changed the width of the 'STATIONS.JACK_COMMAND_LINE' field to 191.
* Changed the width of the 'SWITCHER_NODES.DESCRIPTION' field to 191.
* Changed the width of the 'SYSTEM.ISCI_XREFERENCE_PATH' field to 191.
* Changed the width of the 'USERS.LOGIN_NAME' field to 191.
* Changed the width of the 'USERS.FULL_NAME' field to 191.
* Changed the width of the 'USERS.DESCRIPTION' field to 191.
* Changed the width of the 'USER_PERMS.USER_NAME' field to 191.
* Changed the width of the 'USER_SERVICE_PERMS.USER_NAME' field to 191.
* Changed the width of the 'WEBAPI_AUTHS.LOGIN_NAME' field to 191.
* Changed the width of the 'WEB_CONNECTIONS.LOGIN_NAME' field to 191.
* Incremented the database version to 297.
* Changed the default DB charset to 'utf8mb4'.
* Changed the default DB collation to 'utf8mb4_general_ci'.
* Removed the MYSQL_BUILTIN_DATABASE define from 'lib/rd.h'.
* Removed the POSTGRESQL_BUILTIN_DATABASE define from 'lib/rd.h'.
* Added an 'IMPORTER_LINES' table to the database.
* Incremented the database version to 295.
* Refactored the log importer code to use the static 'IMPORTER_LINES'
table.
* Added an 'EVENT_LINES' table to the database.
* Incremented the database version to 290.
* Removed the 'RDEvent::preimportTableName()' method.
* Removed the 'RDEvent::postimportTableName()' method.
* Added a 'STATIONS.JACK_PORT' field to the database.
* Incremented the database version to 287.
* Added an 'Initial Audio Ports' control to the 'JACK Configuration'
dialog in rdadmin(1).
* Implemented 'Activate JACK Port' ['JA'] and 'Remove JACK Port' ['JR']
RMLs.
* Fixed a bug in rdadmin(1) that caused 'Length' parameters in
custom log import settings to fail to be copied correctly when
cloning a new service.
* Dropped the 'SERVICES.TFC_LENGTH_OFFSET' field from the database.
* Dropped the 'SERVICES.TFC_LENGTH_LENGTH' field from the database.
* Dropped the 'SERVICES.MUS_LENGTH_OFFSET' field from the database.
* Dropped the 'SERVICES.MUS_LENGTH_LENGTH' field from the database.
* Incremented the database version to 286.
* Removed drop of the 'RECORDINGS.SAMPRATE' field from schema
change 285.
* Cleaned up SQL calls in rdcatchd(8).
* Cleaned up SQL calls in 'RDStation'.
* Cleaned up SQL calls in 'RDLibraryConf'.
* Cleaned up SQL calls in 'RDLogeditConf'.
* Cleaned up SQL calls in 'RDLogLine'.
* Cleaned up SQL calls in 'RDSvc'.
* Cleaned up SQL calls in rivendell_filter(1).
* Dropped the 'CART.ISRC' field from the database.
* Dropped the 'DECKS.DEFAULT_SAMPRATE' field from the database.
* Dropped the 'RDLIBRARY.INPUT_STREAM' field from the database.
* Dropped the 'RDLIBRARY.OUTPUT_STREAM' field from the database.
* Dropped the 'RDLIBRARY.RECORD_GPI' field from the database.
* Dropped the 'RDLIBRARY.PLAY_GPI' field from the database.
* Dropped the 'RDLIBRARY.STOP_GPI' field from the database.
* Dropped the 'RDLIBRARY.DEFAULT_SAMPRATE' field from the database.
* Dropped the 'RECORDINGS.DEFAULT_SAMPRATE' field from the database.
* Dropped the 'RDLOGEDIT.SAMPRATE' field from the database.
* Dropped the 'SERVICES.TFC_START_OFFSET' field from the database.
* Dropped the 'SERVICES.TFC_START_LENGTH' field from the database.
* Dropped the 'SERVICES.MUS_START_OFFSET' field from the database.
* Dropped the 'SERVICES.MUS_START_LENGTH' field from the database.
* Incremented the database version to 285.
* Dropped the 'RDAIRPLAY.INSTANCE' field from the database.
* Dropped the 'RDAIRPLAY.CARD<n>' fields from the database.
* Dropped the 'RDAIRPLAY.PORT<n>' fields from the database.
* Dropped the 'RDAIRPLAY.START_RML<n>' fields from the database.
* Dropped the 'RDAIRPLAY.STOP_RML<n>' fields from the database.
* Dropped the 'RDAIRPLAY.OP_MODE' field from the database.
* Dropped the 'RDAIRPLAY.START_MODE' field from the database.
* Dropped the 'RDPANEL.INSTANCE' field from the database.
* Dropped the 'RDPANEL.CARD<n>' fields from the database.
* Dropped the 'RDPANEL.PORT<n>' fields from the database.
* Dropped the 'RDPANEL.START_RML<n>' fields from the database.
* Dropped the 'RDPANEL.STOP_RML<n>' fields from the database.
* Altered the default value of the 'MATRICES.PORT field to 0.
* Altered the default value of the 'MATRICES.PORT_2 field to 0.
* Altered the default value of the 'MATRICES.INPUTS field to 0.
* Altered the default value of the 'MATRICES.OUTPUTS field to 0.
* Altered the default value of the 'MATRICES.GPIS field to 0.
* Altered the default value of the 'MATRICES.GPOS field to 0.
* Incremented the database version to 284.
* Fixed bugs in rdcatch(1) that incorrectly escaped host
names in SQL calls.
* Fixed a bug in 'RDLog::create()' that failed to initialize
the modified datetime correctly.
* Added an 'AUDIO_CARDS' table to the database.
* Dropped the 'STATIONS.CARD<n>_DRIVER', 'STATIONS.CARD<n>NAME',
'STATIONS.CARD<n>_INPUTS' and 'STATIONS.CARD<n>OUTPUTS' fields
from the database.
* Incremented the database version to 282.
* Added an 'AUDIO_CARDS.CLOCK_SOURCE' field to the database.
* Added an 'AUDIO_INPUTS' table to the database.
* Added an 'AUDIO_OUTPUTS' table to the database.
* Dropped the 'AUDIO_PORTS' table from the database.
* Incremented the database version to 283.
* Changed the legend on the 'Audio Ports' button to 'ASI Audio Ports'
on the 'Edit Host' dialog in rdadmin(1).
* Changed the title of the 'Configure Audio Ports' dialog to
'Configure AudioScience Audio Ports' on the 'Edit Host' dialog
in rdadmin(1).
* Added a 'RDAIRPLAY.VIRTUAL_EXIT_CODE' field to the database.
* Incremented the database version to 281.
* Added 'RDAirPlayConf::virtualExitCode()' and
'RDAirPlayConf::setVirtualExitCode()' methods.
* Implemented Start/Stop settings for vlogs.
* Added a 'USERS.WEBGET_LOGIN_PRIV' field to the database.
* Incremented the database version to 277.
* Added 'RDUser::webgetLogin()' and 'RDUser::setWebgetLogin()'
methods.
* Added a 'Allow WebGet Login' control in the 'Production Rights'
section of the 'User' dialog in rdadmin(1).
* 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.
* Added a 'SERVICES.LOG_SHELFLIFE_ORIGIN' field to the database.
* Incremented the database version to 275.
* Added a drop-down control to the 'Set Logs to auto-delete' control
to allow origin to be specified in the 'Edit Service' dialog in
rdadmin(1).
* Added a 'LOGS.LOCK_USER_NAME' field to the database.
* Added a 'LOGS.LOCK_STATION_NAME' field to the database.
* Added a 'LOGS.LOCK_IPV4_ADDRESS' field to the database.
* Added a 'LOGS.LOCK_DATETIME' field to the database.
* Incremented the database version to 273.
* Added log locking logic to rdlogedit(1).
* Added a 'USER_SERVICE_PERMS' table to the database.
* Incremented the database version to 272.
* Added a 'Service Permissions' button to the Edit User dialog in
rdadmin(1).
* Added 'DROPBOXES.SEGUE_LEVEL' and 'DROPBOXES.SEGUE_LENGTH' fields
to the database.
* Incremented the database version to 271.
* Applied a pull request from Dennis Graiani <dennis.graiani@gmail.com>
the added Segue parameters to the 'Edit Dropbox' dialog.
* Modified the 'Segue Length' control in the 'Edit Dropbox' dialog
to take mS as units.
* 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 'GROUPS.DEFAULT_CUT_LIFE' field to the database.
* Incremented the database version to 269.
* Added 'RDGroup::defaultCutLife()' and 'RDGroup::setDefaultCutLife()'
methods.
* Added a 'Set End Date/Time' control to the 'Edit Group' dialog in
RDAdmin(1).
* Added a 'DROPBOXES.FORCE_TO_MONO' field to the database.
* Incremented the database version to 268.
* 'RDDropbox::forceToMono()' and 'RDDropbox::setForceToMon()' methods
in 'lib/rddropbox.cpp' and 'lib/rddropbox.h'.
* Added a 'Force to Monaural' checkbox to the 'Edit Dropbox' dialog
in rdadmin(1).
* Added 'CUTS.ORIGIN_LOGIN_NAME' and 'CUTS.SOURCE_HOSTNAME' fields to
the database.
* Incremented the database version to 267.
* Added 'RDCut::originLoginName()', 'RDCut::setOriginLoginName()',
'RDCut::sourceHostname()' and 'RDCut::setSourceHostname()' methods
in 'lib/rdcut.cpp' and 'lib/rdcut.h'.
* Added '<originLoginName>' and '<sourceHostname>' tags to the cut
XML schema in 'RDCart::xmlSql()' and 'RDCut::xml()' methods.
* Refactored the layout of the 'Cut Info/Record' dialog in RDLibrary.
* Added a 'Source Host' control to the 'Cut Info/Record' dialog
in RDLibrary.
* Added a 'SYSTEM.SHOW_USER_LIST' field to the database.
* Incremented the database version to 265.
* Added 'RDSystem::showUserList()' and 'RDSystem::setShowUserList()'
methods in 'lib/rdsystem.cpp' and 'lib/rdsystem.h'.
* Added a 'Show User List in RDLogin' control to the 'Edit System'
dialog in 'rdadmin/edit_settings.cpp' and 'rdadmin/edit_settings.h'.
* Altered RDLogin to display a text input field for the user name
when 'Show User List in RDLogin' is unchecked.
* Added a 'SYSTEM.FIX_DUP_CART_TITLES' field to the database.
* Incremented the database version to 264.
* Added 'RDSystem::fixDuplicateCartTitles()' and
'RDSystem::setFixDuplicateCartTitles()' methods in 'lib/rdsystem.cpp'
and 'lib/rdsystem.h'.
* Added an 'Auto-Correct Duplicate Cart Titles' checkbox to the
'System Settings' dialog in 'rdadmin/edit_settings.cpp' and
'rdadmin/edit_settings.h'.
* Modified the 'EditCart' web call to enforce the 'Auto-Correct
Duplicate Cart Titles' setting.
* 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'.
* 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.
* Added a 'SERVICE_CLOCKS' table to the database.
* Incremented the database version to 259.
* Modified 'rdlogmanager/edit_clock.cpp' to use the new
'SERVICE_CLOCKS' table.
* Modified 'rdlogmanager/list_clocks.cpp' to use the new
'SERVICE_CLOCKS' table.
* 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'.
* Added a 'Cut Log' report in 'lib/export_cutlog.cpp'.
* Added 'DESCRIPTION' and 'OUTCUE' fields to the '_SRT' table
schema.
* Incremented the database version to 255.
* Added a 'CART.USE_WEIGHTING' field to the database.
* Added a 'CUTS.PLAY_ORDER' field to the database.
* Incremented the database version to 254.
* Added a 'Schedule Cuts By' control to the Edit Cart dialog in
'rdlibrary/edit_cart.cpp' and 'rdlibrary/edit_cart.h'.
* Added 'RDCart::useWeighting()' and 'RDCart::setUseWeighting()'
methods in 'lib/rdcart.cpp' and 'lib/rdcart.h'.
* Added 'RDCut::playOrder()' and 'RDCut::setPlayOrder()' methods
in 'lib/rdcut.cpp' and 'lib/rdcut.h'.
* Added a 'RDLIBRARY.READ_ISRC' field to the database.
* Incremented the database version to 245.
* Added 'RDLibraryConf::readIsrc()' and 'RDLibraryConf::setReadIsrc()'
methods in 'lib/rdlibrary_conf.cpp' and 'lib/rdlibrary_conf.h'.
* Added a 'Read ISRCs from CD' control to the 'Edit RDLibrary' dialog
in 'rdadmin/edit_rdlibrary.cpp' and 'rdadmin/edi_rdlibrary.h'.
* Implemented the 'Read ISRCs from CD' option in the full disc
ripper in 'rdlibrary/disk_ripper.cpp'.
* Implemented the 'Read ISRCs from CD' option in the per-track disc
ripper in 'rdlibrary/cdripper.cpp'.
* Added a 'STATIONS.HAVE_MP4_DECODE' field to the database.
* Incremented the database version to 243.
* Added a 'Capability::HaveMp4Decode' value to the
'RDStation::Capability' enumeration in 'lib/rdstation.cpp' and
'lib/rdstation.h'.
* Added 'REPORTS.POST_EXPORT_CMD' and 'REPORTS.WIN_POST_EXPORT_CMD'
fields to the database.
* Incremented the database version to 242.
* Added 'RDReport::postExportCommand()' and
'RDReport::setPostExportCommand()' methods in 'lib/rdreport.cpp' and
'lib/rdreport.h'.
* Added 'Linux Post Export Cmd' and 'Windows Post Export Cmd' controls
to the 'Edit Report' dialog in 'rdadmin/edit_report.cpp' and
'rdadmin/edit_report.h'.
* Implemented post export commands in 'lib/rdreport.cpp'.
* Added a 'GPIO_EVENTS' table to the database.
* Incremented the database version to 240.
* Implemented GPIO event logging in 'ripcd/local_macros.cpp' and
'ripcd/ripcd.h'.
* Added an 'Events Log' area to RDGpiMon(1) in
'utils/rdgpimon/rdgpimon.cpp' and 'utils/rdgpimon/rdgpimon.h'.
* Added code in rdmaint(1) to purge logged GPIO events in
'utils/rdmaint/rdmaint.cpp' and 'utils/rdmaint/rdmaint.h'.