360 Commits

Author SHA1 Message Date
Fred Gleason
28d8425b94 2017-01-18 Fred Gleason <fredg@paravelsystems.com>
* Added a <purgeDate> tag to the return document for the 'ListLogs'
	web service call.
2017-01-18 14:17:48 -05:00
Fred Gleason
9d5618c90c 2017-01-17 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'lib/rdlog_line.cpp' that caused invalid 'Type' values
	to be returned for Chain events.
2017-01-17 11:42:23 -05:00
Fred Gleason
0ba509eb1a 2017-01-17 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'lib/rdlog_line.cpp' that caused invalid 'Type' values
	to be returned for Traffic and Music Link events.
2017-01-17 11:38:22 -05:00
Fred Gleason
e65f9a9716 2017-01-13 Fred Gleason <fredg@paravelsystems.com>
* Implemented automatic cart/cut creation as part of the 'Import'
	web method.
2017-01-13 19:15:31 -05:00
Fred Gleason
21dcac3e4a 2017-01-13 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'lib/rduser.cpp' that caused the
	'RDUser::groupAuthorized()' to return false positive results.
2017-01-13 19:03:22 -05:00
Fred Gleason
3faa8dfbed 2016-10-20 Fred Gleason <fredg@paravelsystems.com>
* Added a 'LockRdairplayMemory=' parameter to the [Hacks] section
	of rd.conf(5).
2016-10-20 09:06:58 -04:00
Fred Gleason
38dc64c548 2016-09-26 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'lib/rdsimpleplayer.cpp' that caused RDAirPlay
	to freeze when attempting to audition an expired cart
	[GitHub issue #000051].
2016-09-26 09:07:08 -04:00
Fred Gleason
23c9d6136e 2016-09-13 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in 'lib/rdwavefile.cpp' that caused RDXL
	chunks to be written with odd chunk lengths.
2016-09-13 08:29:33 -04:00
Fred Gleason
51cdcfb9be 2016-08-03 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in rdlibrary(1) that caused exports to contain incorrect
	marker data in the RDXL file structure.
2016-08-03 12:21:05 -04:00
Fred Gleason
d232842b0c 2016-08-02 Fred Gleason <fredg@paravelsystems.com>
* Added a work-around in 'lib/rdwavefile.cpp' to ensure that RDXL
	chunks are always of even length.
2016-08-02 17:43:41 -04:00
Fred Gleason
1c52c13a7b 2016-08-02 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'lib/rdwavefile.cpp' that caused WAV files to
	be written with incorrect LEVL chunk data.
2016-08-02 16:18:30 -04:00
Fred Gleason
a55afed800 2016-07-27 Fred Gleason <fredg@paravelsystems.com>
* Fixed a regression in 'lib/rdsvc.cpp' that broke log data imports
	for data lines with leading whitespace.
2016-07-27 08:02:52 -04:00
Fred Gleason
232743415c 2016-07-27 Fred Gleason <fredg@paravelsystems.com>
* Removed dead code from 'lib/rdsvc.cpp'.
2016-07-27 07:29:28 -04:00
Fred Gleason
a20b7f2437 2016-07-26 Fred Gleason <fredg@paravelsystems.com>
* Added a sanity check in the 'RDCut::setMetadata()' method in
	'lib/rdcut.cpp' to ensure that the cut 'Description' field is always
	populated.
2016-07-26 11:55:43 -04:00
Fred Gleason
9550815023 2016-07-25 Fred Gleason <fredg@paravelsystems.com>
* 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.
2016-07-25 15:18:14 -04:00
Fred Gleason
fdc40e8bbb 2016-07-23 Fred Gleason <fredg@paravelsystems.com>
* Cleaned up warning in 'lib/rdlog_line.cpp'.
	* Cleaned up warning in 'lib/rdwavefile.cpp'.
	* Cleaned up warning in 'rdlogmanager/edit_event.cpp'.
2016-07-23 12:13:30 -04:00
Fred Gleason
29927e7709 2016-07-15 Fred Gleason <fredg@paravelsystems.com>
* Fixed bugs in 'lib/lib.pro', 'lib/rdweb.cpp, 'lib/rdweb.h' and
	'rdlogedit/edit_logline.cpp' that broke the build under Windows.
2016-07-15 14:16:32 -04:00
Fred Gleason
6c31c9e1d4 2016-07-13 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in the 'RDCart::GetXmlValue()' method that caused
	XML field values not to be unescaped correctly.
2016-07-13 10:47:42 -04:00
Fred Gleason
d8636ebb2c 2016-07-13 Fred Gleason <fredg@paravelsystems.com>
* Implemented storage of RDXML data structures within a 'rdxl'
	user defined information frame in ID3 tags 'lib/rdwavefile.cpp' and
	'lib/rdaudio_convert.cpp'.
2016-07-13 10:11:08 -04:00
Fred Gleason
b508b7a0ca 2016-07-12 Fred Gleason <fredg@paravelsystems.com>
* Added support for reading conductor field values (TPE3) from
	ID3 tags in 'lib/rdwavefile.cpp'.
2016-07-12 15:22:20 -04:00
Fred Gleason
b64b01b148 2016-07-12 Fred Gleason <fredg@paravelsystems.com>
* Implemented storage of RDXML data structures within a 'rdxl' chunk
	in WAV files.
2016-07-12 14:36:17 -04:00
Fred Gleason
fc332c3655 2016-07-12 Fred Gleason <fredg@paravelsystems.com>
* Added an '--xml' switch to rdimport(1) in
	'utils/rdimport/rdimport.cpp' and 'utils/rdimport/rdimport.h'.
2016-07-12 08:52:29 -04:00
Fred Gleason
edd8221b6f 2016-07-11 Fred Gleason <fredg@paravelsystems.com>
* 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'.
2016-07-11 14:01:30 -04:00
Fred Gleason
5c82d99de7 2016-06-23 Fred Gleason <fredg@paravelsystems.com>
* Refactored layout of dialogs in rdlogedit(1) so as to display
	dialog heirarchy correctly.
2016-06-23 10:37:43 -04:00
Fred Gleason
c1675087aa 2016-06-17 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'lib/rdsvc.cpp' that caused import events with
	minute field values greater than '59' in the Start Time to fail
	to be imported.
2016-06-17 14:55:03 -04:00
Fred Gleason
ec79802cb6 2016-06-17 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'lib/rddownload.cpp' that caused download URLs
	using 'https' protocol to fail to be properly escaped.
2016-06-17 14:06:19 -04:00
Fred Gleason
f04fa15090 2016-06-17 Fred Gleason <fredg@paravelsystems.com>
* Modified rdexport(1) to list correct audio format parameters
	in the XML output.
2016-06-17 12:02:43 -04:00
Fred Gleason
605dfbb964 2016-06-17 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'lib/rdcut.cpp' that caused a SQL error when
	generating an XML 'cutList' object.
2016-06-17 10:39:30 -04:00
Fred Gleason
d48935a00a 2016-06-15 Fred Gleason <fredg@paravelsystems.com>
* Added an '--xml' switch to rdexport(1) in
	'utils/rdexport/rdexport.cpp' and 'utils/rdexport/rdexport.h'.
2016-06-15 13:01:03 -04:00
Fred Gleason
d90a226e70 Minor formatting tweaks 2016-06-14 12:31:02 -04:00
Fred Gleason
c21c1a0d5d Merge branch 'stable' of https://github.com/waynemerricks/rivendell into waynemerricks-stable 2016-06-14 11:25:43 -04:00
Fred Gleason
815dea346c 2016-06-10 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in 'lib/rdlist_logs.cpp' that failed to process
	SQL NULL date values correctly.
2016-06-10 17:38:15 -04:00
Wayne Merricks
8baed5b104 Random Idiocy fixes
Compilation fixes due to idiocy as usual (apologies)
2016-06-09 22:46:07 +01:00
Wayne Merricks
f1175cd2f2 Fixes for invalid NULL sql on date/times
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
2016-06-09 00:01:38 +01:00
Fred Gleason
31cd72a7a4 2016-06-07 Fred Gleason <fredg@paravelsystems.com>
* Refactored the 'RDSvc::import()' method in 'lib/rdsvc.cpp' to
	improve robustness and readability.
2016-06-07 12:56:52 -04:00
Fred Gleason
6a05fd90a5 2016-06-07 Fred Gleason <fredg@paravelsystems.com>
* Added code in 'lib/rdevent_line.cpp' and 'lib/rdsvc.cpp' to allow
	embedded traffic breaks to be specified with start time and length
	in the music schedule.
2016-06-07 08:36:59 -04:00
Wayne Merricks
b9452b8e8d lib/rdcart.cpp MySQL v5.7+ date/time changes 2016-06-04 20:27:14 +01:00
Wayne Merricks
58d75f0b5c lib/rdcut.cpp MySQL v5.7+ date/time changes 2016-06-04 20:20:55 +01:00
Wayne Merricks
5a07b62d0c lib/rdrecording.cpp MySQL v5.7+ date/time changes
Amended SetRow(QString,QTime) to contain time checks for MySQL v5.7+
2016-06-04 20:04:52 +01:00
Wayne Merricks
7506d1567c lib/rdlog_event.cpp MySQL v5.7+ date/time checks
Usual date changes and some TODOs for potentially invalid SELECT statements
2016-06-04 20:04:16 +01:00
Wayne Merricks
69ea83d570 lib/rdsound_panel.cpp MySQL v5.7+ Date Changes
Usual checks.  Line 1493 and 1537 is not required as they are derived from
current system datetime as per lines 1466 and 1526 respectively.
2016-06-04 20:04:09 +01:00
Wayne Merricks
1e37f6bbdc lib/rdcartslot.cpp Added MySQL v5.7+ changes
Added usual checks.  Line 690 EVENT_DATETIME is not required as this is derived
from current system datetime as per line 665.
2016-06-04 20:03:57 +01:00
Wayne Merricks
4523e8e90f lib/rdsvc.cpp Added null checks to purge_date as per MySQL v5.7+ changes
Changed purge_date to a QString so that it can be checked with the normal
RDCheckDateTime function.  Also means the QString.isEmpty check is a straight
forward QDate.isValid and in that case we can use QDate.toString rather than
formatting via RDCheckDateTime (and incurring another QDate.isValid check).
2016-06-04 20:03:39 +01:00
Wayne Merricks
e1c9caa987 lib/rdreport.cpp Reverted date checks on SELECT statements
Checking is probably not needed and even if it did find an invalid date it would
likely not return valid SQL e.g this is just one paraphrased example from the
code:

SELECT x FROM y WHERE EVENT_DATETIME<="NULL 00:00:00"

I've reverted back the two select changes for the daypart code and put a TODO
note there as a marker.
2016-06-04 20:03:24 +01:00
Wayne Merricks
1cf11af447 lib/rdfeed.cpp MySQL v5.7+ date/time null changes
Fixed in setX rather than Row as these are converted to QString before the DB
2016-06-04 20:03:10 +01:00
Wayne Merricks
e98a915f90 lib/rdlog.cpp MySQL v5.7+ date/time null changes
Fixed in SetRow for QDate/QTime and QDateTime
2016-06-04 20:03:03 +01:00
Wayne Merricks
c2560a671b lib/rdevent_line.cpp MySQL v5.7+ date/time null changes
Time is based on event_start_time however can't guarantee validity hence
RDCheckDateTime again.
2016-06-04 20:02:47 +01:00
Wayne Merricks
ace1a01225 lib/rdpodcast.cpp MySQL v5.7+ changes for date nulls
This doesn't use a dedicated setRow, instead it converts to QString and then
tries to insert the dates instead.

Amended setOrigin and setEffectiveDateTime to use RDCheckDateTime
2016-06-04 20:02:25 +01:00
Wayne Merricks
e2eb07c615 Added date/time checks for MySQL v5.7+ date/time nulls
Shouldn't be necessary in the daypart SQL but can't verify validity so added
checks there too.
2016-06-03 23:50:29 +01:00
Wayne Merricks
d222ed9ca0 Added QDate/Time variant is valid checks for SQL use
With MySQL v5.7+ you have to specifically set either a valid date or NULL
otherwise you get SQL errors.  In previous versions setting a date to "" implied
NULL, this is no longer the case which causes nice SQL errors all over the
place.

This new RDCheckDateTime is an overloaded function that calls the respective
isValid method of QDate/Time/DateTime and either returns the requested formatted
string or returns NULL as a string.

This can then be used as part of an INSERT/UPDATE without breaking the stricter
NULL interpretation of MySQL v5.7+.
2016-06-03 23:45:31 +01:00