mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-26 02:14:22 +00:00
Tidied a few static functions away into private namespaces.
This commit is contained in:
parent
e1f3c2df6f
commit
038886510a
15 changed files with 1564 additions and 1594 deletions
|
|
@ -412,68 +412,66 @@ struct MidiPortAndCallback
|
|||
int pendingBytes;
|
||||
double pendingDataTime;
|
||||
bool active;
|
||||
};
|
||||
|
||||
static CriticalSection callbackLock;
|
||||
static VoidArray activeCallbacks;
|
||||
|
||||
static void processSysex (MidiPortAndCallback* const mpc, const uint8*& d, int& size, const double time)
|
||||
{
|
||||
if (*d == 0xf0)
|
||||
void processSysex (const uint8*& d, int& size, const double time)
|
||||
{
|
||||
mpc->pendingBytes = 0;
|
||||
mpc->pendingDataTime = time;
|
||||
}
|
||||
|
||||
mpc->pendingData.ensureSize (mpc->pendingBytes + size, false);
|
||||
uint8* totalMessage = (uint8*) mpc->pendingData.getData();
|
||||
|
||||
uint8* dest = totalMessage + mpc->pendingBytes;
|
||||
|
||||
while (size > 0)
|
||||
{
|
||||
if (mpc->pendingBytes > 0 && *d >= 0x80)
|
||||
if (*d == 0xf0)
|
||||
{
|
||||
if (*d >= 0xfa || *d == 0xf8)
|
||||
pendingBytes = 0;
|
||||
pendingDataTime = time;
|
||||
}
|
||||
|
||||
pendingData.ensureSize (pendingBytes + size, false);
|
||||
uint8* totalMessage = (uint8*) pendingData.getData();
|
||||
|
||||
uint8* dest = totalMessage + pendingBytes;
|
||||
|
||||
while (size > 0)
|
||||
{
|
||||
if (pendingBytes > 0 && *d >= 0x80)
|
||||
{
|
||||
mpc->callback->handleIncomingMidiMessage (mpc->input, MidiMessage (*d, time));
|
||||
++d;
|
||||
--size;
|
||||
if (*d >= 0xfa || *d == 0xf8)
|
||||
{
|
||||
callback->handleIncomingMidiMessage (input, MidiMessage (*d, time));
|
||||
++d;
|
||||
--size;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (*d == 0xf7)
|
||||
{
|
||||
*dest++ = *d++;
|
||||
pendingBytes++;
|
||||
--size;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (*d == 0xf7)
|
||||
{
|
||||
*dest++ = *d++;
|
||||
mpc->pendingBytes++;
|
||||
--size;
|
||||
}
|
||||
|
||||
break;
|
||||
*dest++ = *d++;
|
||||
pendingBytes++;
|
||||
--size;
|
||||
}
|
||||
}
|
||||
|
||||
if (totalMessage [pendingBytes - 1] == 0xf7)
|
||||
{
|
||||
callback->handleIncomingMidiMessage (input, MidiMessage (totalMessage, pendingBytes, pendingDataTime));
|
||||
pendingBytes = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
*dest++ = *d++;
|
||||
mpc->pendingBytes++;
|
||||
--size;
|
||||
callback->handlePartialSysexMessage (input, totalMessage, pendingBytes, pendingDataTime);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
if (totalMessage [mpc->pendingBytes - 1] == 0xf7)
|
||||
{
|
||||
mpc->callback->handleIncomingMidiMessage (mpc->input, MidiMessage (totalMessage,
|
||||
mpc->pendingBytes,
|
||||
mpc->pendingDataTime));
|
||||
mpc->pendingBytes = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
mpc->callback->handlePartialSysexMessage (mpc->input,
|
||||
totalMessage,
|
||||
mpc->pendingBytes,
|
||||
mpc->pendingDataTime);
|
||||
}
|
||||
namespace CoreMidiCallbacks
|
||||
{
|
||||
static CriticalSection callbackLock;
|
||||
static VoidArray activeCallbacks;
|
||||
}
|
||||
|
||||
static void midiInputProc (const MIDIPacketList* pktlist,
|
||||
|
|
@ -484,9 +482,9 @@ static void midiInputProc (const MIDIPacketList* pktlist,
|
|||
const double originalTime = time;
|
||||
|
||||
MidiPortAndCallback* const mpc = (MidiPortAndCallback*) readProcRefCon;
|
||||
const ScopedLock sl (callbackLock);
|
||||
const ScopedLock sl (CoreMidiCallbacks::callbackLock);
|
||||
|
||||
if (activeCallbacks.contains (mpc) && mpc->active)
|
||||
if (CoreMidiCallbacks::activeCallbacks.contains (mpc) && mpc->active)
|
||||
{
|
||||
const MIDIPacket* packet = &pktlist->packet[0];
|
||||
|
||||
|
|
@ -501,7 +499,7 @@ static void midiInputProc (const MIDIPacketList* pktlist,
|
|||
|
||||
if (mpc->pendingBytes > 0 || d[0] == 0xf0)
|
||||
{
|
||||
processSysex (mpc, d, size, time);
|
||||
mpc->processSysex (d, size, time);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -564,8 +562,8 @@ MidiInput* MidiInput::openDevice (int index, MidiInputCallback* callback)
|
|||
mpc->input = mi;
|
||||
mi->internal = (void*) mpc;
|
||||
|
||||
const ScopedLock sl (callbackLock);
|
||||
activeCallbacks.add (mpc.release());
|
||||
const ScopedLock sl (CoreMidiCallbacks::callbackLock);
|
||||
CoreMidiCallbacks::activeCallbacks.add (mpc.release());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -604,8 +602,8 @@ MidiInput* MidiInput::createNewDevice (const String& deviceName, MidiInputCallba
|
|||
mpc->input = mi;
|
||||
mi->internal = (void*) mpc;
|
||||
|
||||
const ScopedLock sl (callbackLock);
|
||||
activeCallbacks.add (mpc.release());
|
||||
const ScopedLock sl (CoreMidiCallbacks::callbackLock);
|
||||
CoreMidiCallbacks::activeCallbacks.add (mpc.release());
|
||||
}
|
||||
|
||||
CFRelease (name);
|
||||
|
|
@ -625,8 +623,8 @@ MidiInput::~MidiInput()
|
|||
mpc->active = false;
|
||||
|
||||
{
|
||||
const ScopedLock sl (callbackLock);
|
||||
activeCallbacks.removeValue (mpc);
|
||||
const ScopedLock sl (CoreMidiCallbacks::callbackLock);
|
||||
CoreMidiCallbacks::activeCallbacks.removeValue (mpc);
|
||||
}
|
||||
|
||||
if (mpc->portAndEndpoint->port != 0)
|
||||
|
|
@ -638,13 +636,13 @@ MidiInput::~MidiInput()
|
|||
|
||||
void MidiInput::start()
|
||||
{
|
||||
const ScopedLock sl (callbackLock);
|
||||
const ScopedLock sl (CoreMidiCallbacks::callbackLock);
|
||||
((MidiPortAndCallback*) internal)->active = true;
|
||||
}
|
||||
|
||||
void MidiInput::stop()
|
||||
{
|
||||
const ScopedLock sl (callbackLock);
|
||||
const ScopedLock sl (CoreMidiCallbacks::callbackLock);
|
||||
((MidiPortAndCallback*) internal)->active = false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -209,6 +209,40 @@ public:
|
|||
virtual NSRect constrainRect (NSRect r);
|
||||
|
||||
static void showArrowCursorIfNeeded();
|
||||
static void updateModifiers (NSEvent* e);
|
||||
static void updateKeysDown (NSEvent* ev, bool isKeyDown);
|
||||
|
||||
static int getKeyCodeFromEvent (NSEvent* ev)
|
||||
{
|
||||
const String unmodified (nsStringToJuce ([ev charactersIgnoringModifiers]));
|
||||
int keyCode = unmodified[0];
|
||||
|
||||
if (keyCode == 0x19) // (backwards-tab)
|
||||
keyCode = '\t';
|
||||
else if (keyCode == 0x03) // (enter)
|
||||
keyCode = '\r';
|
||||
|
||||
return keyCode;
|
||||
}
|
||||
|
||||
static int64 getMouseTime (NSEvent* e)
|
||||
{
|
||||
return (Time::currentTimeMillis() - Time::getMillisecondCounter())
|
||||
+ (int64) ([e timestamp] * 1000.0);
|
||||
}
|
||||
|
||||
static const Point<int> getMousePos (NSEvent* e, NSView* view)
|
||||
{
|
||||
NSPoint p = [view convertPoint: [e locationInWindow] fromView: nil];
|
||||
return Point<int> (roundToInt (p.x), roundToInt ([view frame].size.height - p.y));
|
||||
}
|
||||
|
||||
static int getModifierForButtonNumber (const NSInteger num)
|
||||
{
|
||||
return num == 0 ? ModifierKeys::leftButtonModifier
|
||||
: (num == 1 ? ModifierKeys::rightButtonModifier
|
||||
: (num == 2 ? ModifierKeys::middleButtonModifier : 0));
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
virtual void viewFocusGain();
|
||||
|
|
@ -724,22 +758,9 @@ bool KeyPress::isKeyCurrentlyDown (const int keyCode) throw()
|
|||
return false;
|
||||
}
|
||||
|
||||
static int getKeyCodeFromEvent (NSEvent* ev)
|
||||
{
|
||||
const String unmodified (nsStringToJuce ([ev charactersIgnoringModifiers]));
|
||||
int keyCode = unmodified[0];
|
||||
|
||||
if (keyCode == 0x19) // (backwards-tab)
|
||||
keyCode = '\t';
|
||||
else if (keyCode == 0x03) // (enter)
|
||||
keyCode = '\r';
|
||||
|
||||
return keyCode;
|
||||
}
|
||||
|
||||
static int currentModifiers = 0;
|
||||
|
||||
static void updateModifiers (NSEvent* e)
|
||||
void NSViewComponentPeer::updateModifiers (NSEvent* e)
|
||||
{
|
||||
int m = currentModifiers & ~(ModifierKeys::shiftModifier | ModifierKeys::ctrlModifier
|
||||
| ModifierKeys::altModifier | ModifierKeys::commandModifier);
|
||||
|
|
@ -759,7 +780,7 @@ static void updateModifiers (NSEvent* e)
|
|||
currentModifiers = m;
|
||||
}
|
||||
|
||||
static void updateKeysDown (NSEvent* ev, bool isKeyDown)
|
||||
void NSViewComponentPeer::updateKeysDown (NSEvent* ev, bool isKeyDown)
|
||||
{
|
||||
updateModifiers (ev);
|
||||
int keyCode = getKeyCodeFromEvent (ev);
|
||||
|
|
@ -783,25 +804,6 @@ void ModifierKeys::updateCurrentModifiers() throw()
|
|||
currentModifierFlags = currentModifiers;
|
||||
}
|
||||
|
||||
static int64 getMouseTime (NSEvent* e)
|
||||
{
|
||||
return (Time::currentTimeMillis() - Time::getMillisecondCounter())
|
||||
+ (int64) ([e timestamp] * 1000.0);
|
||||
}
|
||||
|
||||
static const Point<int> getMousePos (NSEvent* e, NSView* view)
|
||||
{
|
||||
NSPoint p = [view convertPoint: [e locationInWindow] fromView: nil];
|
||||
return Point<int> (roundToInt (p.x), roundToInt ([view frame].size.height - p.y));
|
||||
}
|
||||
|
||||
static int getModifierForButtonNumber (const NSInteger num)
|
||||
{
|
||||
return num == 0 ? ModifierKeys::leftButtonModifier
|
||||
: (num == 1 ? ModifierKeys::rightButtonModifier
|
||||
: (num == 2 ? ModifierKeys::middleButtonModifier : 0));
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
NSViewComponentPeer::NSViewComponentPeer (Component* const component_,
|
||||
const int windowStyleFlags,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue