mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-23 13:05:11 +00:00
don't stop the song until it has been loaded
This commit is contained in:
parent
f24493efb6
commit
548fa2ad73
3 changed files with 11 additions and 5 deletions
|
@ -884,10 +884,17 @@ bool DivEngine::load(unsigned char* f, size_t slen) {
|
|||
}
|
||||
}
|
||||
|
||||
if (active) quitDispatch();
|
||||
isBusy.lock();
|
||||
song.unload();
|
||||
song=ds;
|
||||
chans=getChannelCount(song.system);
|
||||
renderSamples();
|
||||
isBusy.unlock();
|
||||
if (active) {
|
||||
initDispatch();
|
||||
syncReset();
|
||||
}
|
||||
} catch (EndOfFileException e) {
|
||||
logE("premature end of file!\n");
|
||||
delete[] file;
|
||||
|
@ -1867,6 +1874,7 @@ bool DivEngine::init(String outName) {
|
|||
|
||||
initDispatch();
|
||||
reset();
|
||||
active=true;
|
||||
|
||||
if (outName!="") {
|
||||
short* ilBuffer=new short[got.bufsize*2];
|
||||
|
@ -1911,5 +1919,6 @@ bool DivEngine::quit() {
|
|||
quitDispatch();
|
||||
logI("saving config.\n");
|
||||
saveConf();
|
||||
active=false;
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -72,6 +72,7 @@ class DivEngine {
|
|||
TAAudio* output;
|
||||
TAAudioDesc want, got;
|
||||
int chans;
|
||||
bool active;
|
||||
bool playing;
|
||||
bool speedAB;
|
||||
bool endOfSong;
|
||||
|
@ -267,6 +268,7 @@ class DivEngine {
|
|||
|
||||
DivEngine():
|
||||
chans(0),
|
||||
active(false),
|
||||
playing(false),
|
||||
speedAB(false),
|
||||
endOfSong(false),
|
||||
|
|
|
@ -1821,15 +1821,10 @@ int FurnaceGUI::load(String path) {
|
|||
return 1;
|
||||
}
|
||||
fclose(f);
|
||||
e->quitDispatch();
|
||||
if (!e->load(file,(size_t)len)) {
|
||||
logE("could not open file!\n");
|
||||
e->initDispatch();
|
||||
e->syncReset();
|
||||
return 1;
|
||||
}
|
||||
e->initDispatch();
|
||||
e->syncReset();
|
||||
}
|
||||
updateWindowTitle();
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue