-Updated Stately, working on handling save-errors better
This commit is contained in:
parent
3362995530
commit
6c014ae2a6
3 changed files with 30 additions and 14 deletions
|
@ -62,7 +62,8 @@ void LooperClip::save()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Stately::done();
|
// notify of "success" of save if there *is* no state to save
|
||||||
|
Stately::success();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,12 +150,13 @@ void LooperClip::recieveSaveBuffer( AudioBuffer* saveBuffer )
|
||||||
EventStateSaveBuffer e ( track, scene, saveBuffer );
|
EventStateSaveBuffer e ( track, scene, saveBuffer );
|
||||||
writeToGuiRingbuffer( &e );
|
writeToGuiRingbuffer( &e );
|
||||||
|
|
||||||
Stately::done();
|
Stately::success();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
LUPPP_ERROR("LooperClip @ %i, %i could not save, save buffer too small!", track, scene);
|
LUPPP_ERROR("LooperClip @ %i, %i could not save, save buffer too small!", track, scene);
|
||||||
Stately::error();
|
Stately::error("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,8 @@
|
||||||
|
|
||||||
extern Jack* jack;
|
extern Jack* jack;
|
||||||
|
|
||||||
int Stately::savesDone = 0;
|
int Stately::saveSuccess = 0;
|
||||||
|
int Stately::saveErrors = 0;
|
||||||
|
|
||||||
Stately::Stately()
|
Stately::Stately()
|
||||||
{
|
{
|
||||||
|
@ -22,19 +23,27 @@ void Stately::save()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void Stately::done()
|
void Stately::checkCompletedSave()
|
||||||
{
|
{
|
||||||
savesDone++;
|
if ( (saveSuccess + saveErrors) >= jack->getState()->getNumStatelys() )
|
||||||
|
|
||||||
if ( savesDone >= jack->getState()->getNumStatelys() )
|
|
||||||
{
|
{
|
||||||
jack->getState()->finish();
|
jack->getState()->finish();
|
||||||
savesDone = 0; // reset in case of another save before quit
|
|
||||||
|
// reset in case of another save before quit
|
||||||
|
saveErrors = 0;
|
||||||
|
saveSuccess = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Stately::error()
|
void Stately::success()
|
||||||
|
{
|
||||||
|
saveSuccess++;
|
||||||
|
checkCompletedSave();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Stately::error(const char* errorString)
|
||||||
{
|
{
|
||||||
// CRITICAL FIXME: add error handling code, noting an error occured, perhaps prompt user?
|
// CRITICAL FIXME: add error handling code, noting an error occured, perhaps prompt user?
|
||||||
savesDone++;
|
saveErrors++;
|
||||||
|
checkCompletedSave();
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,14 +25,19 @@ class Stately
|
||||||
|
|
||||||
/// this function *must* be called by each sub-class when it is *finished*
|
/// this function *must* be called by each sub-class when it is *finished*
|
||||||
/// a successful save action. Once each Stately is done, the final save is OK-ed.
|
/// a successful save action. Once each Stately is done, the final save is OK-ed.
|
||||||
static void done();
|
static void success();
|
||||||
|
|
||||||
/// this function notes that a stately could *not* successfully save: buffer
|
/// this function notes that a stately could *not* successfully save: buffer
|
||||||
/// size mismatch in LooperClip for example.
|
/// size mismatch in LooperClip for example.
|
||||||
static void error();
|
static void error(const char* errorString);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static int savesDone;
|
/// holds the amount of successful / error-full saves. Used by success()
|
||||||
|
/// and error()
|
||||||
|
static int saveSuccess;
|
||||||
|
static int saveErrors;
|
||||||
|
|
||||||
|
static void checkCompletedSave();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // LUPPP_STATELY_H
|
#endif // LUPPP_STATELY_H
|
||||||
|
|
Loading…
Reference in a new issue