2019-03-06 Fred Gleason <fredg@paravelsystems.com>

* Added an 'RDWaveData::validateMarkers()' method.
	* Added an 'RDWaveData::validateDateTime()' method.
	* Removed the 'RDWaveData::checkDateTimes()' method.
This commit is contained in:
Fred Gleason 2019-03-06 10:32:37 -05:00
parent b2c1e70d9b
commit d024d27474
4 changed files with 131 additions and 6 deletions

View File

@ -18516,3 +18516,7 @@
* Incremented the database version to 307.
2019-03-01 Patrick Linstruth <patrick@deltecent.com>
* Updated schema map for version 3.0 to database version 307.
2019-03-06 Fred Gleason <fredg@paravelsystems.com>
* Added an 'RDWaveData::validateMarkers()' method.
* Added an 'RDWaveData::validateDateTime()' method.
* Removed the 'RDWaveData::checkDateTimes()' method.

View File

@ -945,21 +945,141 @@ void RDWaveData::setPlayGain(int lvl)
}
bool RDWaveData::checkDateTimes()
bool RDWaveData::validateMarkers(int msec)
{
int len=msec;
bool modified=false;
if(len<0) {
len=length();
}
//
// Start/End Markers
//
if(startPos()<0) {
setStartPos(0);
modified=true;
}
if((endPos()<0)||(endPos()>len)) {
setEndPos(len);
modified=true;
}
if(startPos()>endPos()) {
setStartPos(0);
setEndPos(len);
modified=true;
}
//
// Talk Markers
//
if((introStartPos()==startPos())&&(introEndPos()==endPos())) {
setIntroStartPos(-1);
setIntroEndPos(-1);
modified=true;
}
if((introStartPos()<0)||(introEndPos()<0)||(introStartPos()>introEndPos())) {
setIntroStartPos(-1);
setIntroEndPos(-1);
modified=true;
}
else {
if(introEndPos()>endPos()) {
setIntroEndPos(endPos());
modified=true;
}
if(introStartPos()>endPos()) {
setIntroStartPos(-1);
setIntroEndPos(-1);
modified=true;
}
}
//
// Segue Markers
//
if((segueStartPos()==startPos())&&(segueEndPos()==endPos())) {
setSegueStartPos(-1);
setSegueEndPos(-1);
modified=true;
}
if((segueStartPos()<0)||(segueEndPos()<0)||(segueStartPos()>segueEndPos())) {
setSegueStartPos(-1);
setSegueEndPos(-1);
modified=true;
}
else {
if(segueEndPos()>endPos()) {
setSegueEndPos(endPos());
modified=true;
}
if(segueStartPos()>endPos()) {
setSegueStartPos(-1);
setSegueEndPos(-1);
modified=true;
}
}
//
// Hook Markers
//
if((hookStartPos()<0)||(hookEndPos()<0)||(hookStartPos()>hookEndPos())) {
setHookStartPos(-1);
setHookEndPos(-1);
modified=true;
}
else {
if(hookEndPos()>endPos()) {
setHookEndPos(endPos());
modified=true;
}
if(hookStartPos()>endPos()) {
setHookStartPos(-1);
setHookEndPos(-1);
modified=true;
}
}
//
// FadeUp Marker
//
if(fadeUpPos()>=0) {
if(fadeUpPos()>endPos()) {
setFadeUpPos(endPos());
modified=true;
}
}
//
// FadeDown Marker
//
if(fadeDownPos()>=0) {
if(fadeDownPos()>endPos()) {
setFadeDownPos(endPos());
modified=true;
}
}
return modified;
}
bool RDWaveData::validateDateTimes()
{
if(data_datetime_set) {
if(startDateTime()<endDateTime()) {
return true;
return false;
}
else {
setStartDate(QDate());
setEndDate(QDate());
setStartTime(QTime());
setEndTime(QTime());
return false;
return true;
}
}
return true;
return false;
}

View File

@ -187,7 +187,8 @@ class RDWaveData
void setAudioSettings(const RDSettings &settings);
int playGain() const;
void setPlayGain(int lvl);
bool checkDateTimes();
bool validateMarkers(int msec=-1);
bool validateDateTimes();
QString dump() const;
void clear();
static QString endTypeText(EndType type);

View File

@ -1034,7 +1034,7 @@ MainObject::Result MainObject::ImportFile(const QString &filename,
QString groupname=effective_group->name();
found_cart=RunPattern(import_metadata_pattern,RDGetBasePart(filename),
wavedata,&groupname);
if(!wavedata->checkDateTimes()) {
if(wavedata->validateDateTimes()) {
Log(RDConfig::LogErr,QString().sprintf(
" File \"%s\": End date/time cannot be prior to start date/time, ignoring...\n",
(const char *)filename.utf8()));