warn user if we cannot play
This commit is contained in:
parent
c6c05582bd
commit
a7ded3325a
|
@ -1701,7 +1701,7 @@ unsigned int DivEngine::convertPanLinearToSplit(int val, unsigned char bits, int
|
||||||
return (panL<<bits)|panR;
|
return (panL<<bits)|panR;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DivEngine::play() {
|
bool DivEngine::play() {
|
||||||
BUSY_BEGIN_SOFT;
|
BUSY_BEGIN_SOFT;
|
||||||
curOrder=prevOrder;
|
curOrder=prevOrder;
|
||||||
sPreview.sample=-1;
|
sPreview.sample=-1;
|
||||||
|
@ -1788,10 +1788,12 @@ void DivEngine::play() {
|
||||||
}
|
}
|
||||||
output->midiOut->send(TAMidiMessage(TA_MIDI_MACHINE_PLAY,0,0));
|
output->midiOut->send(TAMidiMessage(TA_MIDI_MACHINE_PLAY,0,0));
|
||||||
}
|
}
|
||||||
|
bool didItPlay=playing;
|
||||||
BUSY_END;
|
BUSY_END;
|
||||||
|
return didItPlay;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DivEngine::playToRow(int row) {
|
bool DivEngine::playToRow(int row) {
|
||||||
BUSY_BEGIN_SOFT;
|
BUSY_BEGIN_SOFT;
|
||||||
sPreview.sample=-1;
|
sPreview.sample=-1;
|
||||||
sPreview.wave=-1;
|
sPreview.wave=-1;
|
||||||
|
@ -1802,7 +1804,9 @@ void DivEngine::playToRow(int row) {
|
||||||
for (int i=0; i<DIV_MAX_CHANS; i++) {
|
for (int i=0; i<DIV_MAX_CHANS; i++) {
|
||||||
keyHit[i]=false;
|
keyHit[i]=false;
|
||||||
}
|
}
|
||||||
|
bool didItPlay=playing;
|
||||||
BUSY_END;
|
BUSY_END;
|
||||||
|
return didItPlay;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DivEngine::stepOne(int row) {
|
void DivEngine::stepOne(int row) {
|
||||||
|
|
|
@ -708,11 +708,11 @@ class DivEngine {
|
||||||
// find song loop position
|
// find song loop position
|
||||||
void walkSong(int& loopOrder, int& loopRow, int& loopEnd);
|
void walkSong(int& loopOrder, int& loopRow, int& loopEnd);
|
||||||
|
|
||||||
// play
|
// play (returns whether successful)
|
||||||
void play();
|
bool play();
|
||||||
|
|
||||||
// play to row
|
// play to row (returns whether successful)
|
||||||
void playToRow(int row);
|
bool playToRow(int row);
|
||||||
|
|
||||||
// play by one row
|
// play by one row
|
||||||
void stepOne(int row);
|
void stepOne(int row);
|
||||||
|
|
|
@ -1105,9 +1105,13 @@ void FurnaceGUI::play(int row) {
|
||||||
memset(lastIns,-1,sizeof(int)*DIV_MAX_CHANS);
|
memset(lastIns,-1,sizeof(int)*DIV_MAX_CHANS);
|
||||||
if (!followPattern) e->setOrder(curOrder);
|
if (!followPattern) e->setOrder(curOrder);
|
||||||
if (row>0) {
|
if (row>0) {
|
||||||
e->playToRow(row);
|
if (!e->playToRow(row)) {
|
||||||
|
showError("the song is over!");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
e->play();
|
if (!e->play()) {
|
||||||
|
showError("the song is over!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
curNibble=false;
|
curNibble=false;
|
||||||
orderNibble=false;
|
orderNibble=false;
|
||||||
|
|
Loading…
Reference in a new issue