* Added virtual log entries to the 'LOG_MODES' table.
* Incremented the database version to 280.
* Added a control for setting vLog start modes to the 'Log Mode
Control' section of the 'Configure RDAirPlay' dialog in rdadmin(1).
* Added virtual log entries to the 'RDAIRPLAY_CHANNELS' table.
* Incremented the database version to 279.
* Added 'RDAirPlayConf::virtualCard()', 'RDAirPlay::setVirtualCard()',
'RDAirPlayConf::virtualPort()', 'RDAirPlay::setVirtualPort()',
'RDAirPlayConf::virtualStartRml()',
'RDAirPlayConf::setVirtualStartRml()',
'RDAirPlayConf::virtualStopRml()',
'RDAirPlayConf::setVirtualStopRml()' methods.
* Added a 'Virtual Log Outputs' subsection to the
'Channel Assignments' section of the 'Configure RDAirPlay' dialog
in rdadmin(1).
* 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 pseudo-schema change 263 to restore missing LOG_MODES table
records [GitHub issue #000175].
* Added code to create and remove LOG_MODES table records when
adding and removing Host definitions.
* Incremented the database version to 263.
* 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.
* Removed the 'not null' attribute from the 'LOGS.LINK_DATETIME',
'LOGS.START_DATE' and 'LOGS.END_DATE' fields in the database
[GitHub issue #000121].
* Incremented the database version to 257.
* 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'.
* Modified the definition of the 'JACK_CLIENTS.COMMAND_LINE'
field from 'char(255)' to 'text' in the database.
* Incremented the database version to 244.
* 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'.
* Applied a patch from albanpeignier that adds a second scheduler
code for music events.
* Added an 'EVENTS.HAVE_CODE2' field to the database.
* Incremented the database version to 241.
* 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'.