GUI: add a sample preview rate hint

This commit is contained in:
tildearrow 2022-09-30 17:47:17 -05:00
parent 73a9eb5ccc
commit 3e997ae886
5 changed files with 82 additions and 23 deletions

View file

@ -2131,6 +2131,7 @@ void DivEngine::previewSample(int sample, int note, int pStart, int pEnd) {
if (rate<100) rate=100;
blip_set_rates(samp_bb,rate,got.rate);
samp_prevSample=0;
sPreview.rate=rate;
sPreview.pos=(sPreview.pBegin>=0)?sPreview.pBegin:0;
sPreview.sample=sample;
sPreview.wave=-1;
@ -2164,6 +2165,7 @@ void DivEngine::previewWave(int wave, int note) {
if (rate<100) rate=100;
blip_set_rates(samp_bb,rate,got.rate);
samp_prevSample=0;
sPreview.rate=rate;
sPreview.pos=0;
sPreview.sample=-1;
sPreview.wave=wave;
@ -2179,6 +2181,18 @@ void DivEngine::stopWavePreview() {
BUSY_END;
}
bool DivEngine::isPreviewingSample() {
return (sPreview.sample>=0 && sPreview.sample<(int)song.sample.size());
}
int DivEngine::getSamplePreviewPos() {
return sPreview.pos;
}
double DivEngine::getSamplePreviewRate() {
return sPreview.rate;
}
String DivEngine::getConfigPath() {
return configPath;
}

View file

@ -387,12 +387,14 @@ class DivEngine {
DivSystem sysFileMapDMF[256];
struct SamplePreview {
double rate;
int sample;
int wave;
int pos;
int pBegin, pEnd;
bool dir;
SamplePreview():
rate(0.0),
sample(-1),
wave(-1),
pos(0),
@ -601,6 +603,11 @@ class DivEngine {
// reset playback state
void syncReset();
// sample preview query
bool isPreviewingSample();
int getSamplePreviewPos();
double getSamplePreviewRate();
// trigger sample preview
void previewSample(int sample, int note=-1, int pStart=-1, int pEnd=-1);
void stopSamplePreview();