1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-13 00:04:19 +00:00
This commit is contained in:
jules 2008-03-16 11:54:33 +00:00
parent 8df8227ead
commit 88fa4e0e56

View file

@ -280,14 +280,32 @@ int MidiKeyboardComponent::xyToNote (int x, int y)
int MidiKeyboardComponent::remappedXYToNote (int x, int y) const
{
const int noteX = x % roundFloatToInt (keyWidth * 7.0f);
const int octaveStart = 12 * ((x - noteX) / roundFloatToInt (keyWidth * 7.0f));
if (y < blackNoteLength)
{
for (int i = 0; i < 5; ++i)
for (int octaveStart = 12 * (rangeStart / 12); octaveStart < rangeEnd; octaveStart += 12)
{
const int note = rangeStart + octaveStart + blackNotes [i];
for (int i = 0; i < 5; ++i)
{
const int note = octaveStart + blackNotes [i];
if (note >= rangeStart && note <= rangeEnd)
{
int kx, kw;
getKeyPos (note, kx, kw);
kx += xOffset;
if (x >= kx && x < kx + kw)
return note;
}
}
}
}
for (int octaveStart = 12 * (rangeStart / 12); octaveStart < rangeEnd; octaveStart += 12)
{
for (int i = 0; i < 7; ++i)
{
const int note = octaveStart + whiteNotes [i];
if (note >= rangeStart && note <= rangeEnd)
{
@ -301,21 +319,6 @@ int MidiKeyboardComponent::remappedXYToNote (int x, int y) const
}
}
for (int i = 0; i < 7; ++i)
{
const int note = rangeStart + octaveStart + whiteNotes [i];
if (note >= rangeStart && note <= rangeEnd)
{
int kx, kw;
getKeyPos (note, kx, kw);
kx += xOffset;
if (x >= kx && x < kx + kw)
return note;
}
}
return -1;
}