Change envelope to show ADSR stats when ADSR mode is on

pull/170/head
James Ball 2023-12-19 12:11:12 +00:00
rodzic f9b9e09a53
commit c62b6a9f90
1 zmienionych plików z 50 dodań i 36 usunięć

Wyświetl plik

@ -100,7 +100,7 @@ EnvelopeHandleComponent::EnvelopeHandleComponent()
{ {
if (shouldDraw) { if (shouldDraw) {
setMouseCursor(juce::MouseCursor::CrosshairCursor); setMouseCursor(juce::MouseCursor::DraggingHandCursor);
} }
resetOffsets(); resetOffsets();
} }
@ -154,43 +154,57 @@ void EnvelopeHandleComponent::updateLegend()
int width = getParentWidth(); int width = getParentWidth();
int places; int places;
if(width >= 165) { if (width >= 115) {
if(env && env->isLoopNode(this))
text << "(Loop) ";
else if(env && env->isReleaseNode(this))
text << "(Release) ";
else
text << "Point ";
places = 3; places = 3;
} else if (width >= 100) {
places = 2;
} else {
places = 1;
} }
else if(width >= 140) {
text << "Point "; if (env->getAdsrMode()) {
places = 3; int index = env->getHandleIndex(this);
} else if(width >= 115) { Env envelope = env->getEnv();
text << "Pt ";
places = 3; double envTime = envelope.getTimes()[index - 1];
} else if(width >= 100) {
text << "Pt "; if (index == 1) {
places = 2; text = "Attack time (s): " + juce::String(legend->mapTime(envTime), places);
} else if(width >= 85) { text << ", Attack level: " << juce::String(legend->mapValue(value), places);
text << "Pt "; } else if (index == 2) {
places = 1; text = "Decay time (s): " + juce::String(legend->mapTime(envTime), places);
} else if(width >= 65) { text << ", Sustain level: " << juce::String(legend->mapValue(value), places);
text << "P "; } else {
places = 1; text = "Release time (s): " + juce::String(legend->mapTime(envTime), places);
}
} else { } else {
places = 1; if (width >= 165) {
if (env && env->isLoopNode(this))
text << "(Loop) ";
else if (env && env->isReleaseNode(this))
text << "(Release) ";
else
text << "Point ";
} else if (width >= 140) {
text << "Point ";
} else if (width >= 115) {
text << "Pt ";
} else if (width >= 100) {
text << "Pt ";
} else if (width >= 85) {
text << "Pt ";
} else if (width >= 65) {
text << "P ";
}
text << (getHandleIndex())
<< ": "
<< juce::String(legend->mapTime(time), places) << legend->getTimeUnits()
<< ", "
<< juce::String(legend->mapValue(value), places) << legend->getValueUnits();
} }
text << (getHandleIndex())
<< ": "
<< juce::String(legend->mapTime(time), places) << legend->getTimeUnits()
<< ", "
<< juce::String(legend->mapValue(value), places) << legend->getValueUnits();
getParentComponent()->setLegendText(text); getParentComponent()->setLegendText(text);
} }
@ -246,7 +260,7 @@ void EnvelopeHandleComponent::mouseEnter(const juce::MouseEvent& e)
#endif #endif
if (shouldDraw) { if (shouldDraw) {
setMouseCursor(juce::MouseCursor::CrosshairCursor); setMouseCursor(juce::MouseCursor::DraggingHandCursor);
updateLegend(); updateLegend();
} else { } else {
setMouseCursor(juce::MouseCursor::NormalCursor); setMouseCursor(juce::MouseCursor::NormalCursor);
@ -380,7 +394,7 @@ void EnvelopeHandleComponent::mouseUp(const juce::MouseEvent& e)
env->quantiseHandle(this); env->quantiseHandle(this);
// } // }
setMouseCursor(juce::MouseCursor::CrosshairCursor); setMouseCursor(juce::MouseCursor::DraggingHandCursor);
setMousePositionToThisHandle(); setMousePositionToThisHandle();
offsetX = 0; offsetX = 0;
@ -921,7 +935,7 @@ void EnvelopeComponent::mouseUp(const juce::MouseEvent& e)
if(e.mods.isCtrlDown() == false) if(e.mods.isCtrlDown() == false)
quantiseHandle(draggingHandle); quantiseHandle(draggingHandle);
setMouseCursor(juce::MouseCursor::CrosshairCursor); setMouseCursor(juce::MouseCursor::DraggingHandCursor);
draggingHandle->setMousePositionToThisHandle(); draggingHandle->setMousePositionToThisHandle();
draggingHandle->resetOffsets(); draggingHandle->resetOffsets();
draggingHandle = 0; draggingHandle = 0;