Browse Source

Fix for ppc atomics. Fix for carbon wrapper mouse events.

tags/2021-05-28
Julian Storer 15 years ago
parent
commit
280b966ff6
6 changed files with 54 additions and 52 deletions
  1. +25
    -21
      juce_amalgamated.cpp
  2. +2
    -5
      juce_amalgamated.h
  3. +0
    -3
      src/audio/audio_file_formats/juce_AudioCDReader.h
  4. +2
    -2
      src/core/juce_Atomic.h
  5. +22
    -18
      src/native/mac/juce_mac_AudioCDReader.mm
  6. +3
    -3
      src/native/mac/juce_mac_CarbonViewWrapperComponent.h

+ 25
- 21
juce_amalgamated.cpp View File

@@ -1116,7 +1116,7 @@ public:
{
case kEventWindowHandleDeactivate:
ActivateWindow (wrapperWindow, TRUE);
break;
return noErr;

case kEventWindowGetClickActivation:
{
@@ -1128,11 +1128,11 @@ public:
sizeof (ClickActivationResult), &howToHandleClick);

HIViewSetNeedsDisplay (embeddedView, true);
return noErr;
}
break;
}

return noErr;
return eventNotHandledErr;
}

static pascal OSStatus carbonEventCallback (EventHandlerCallRef nextHandlerRef,
@@ -274336,30 +274336,34 @@ AudioCDReader::~AudioCDReader()
{
}

static int juce_getCDTrackNumber (const File& file)
{
return file.getFileName()
.initialSectionContainingOnly ("0123456789")
.getIntValue();
}

int AudioCDReader::compareElements (const File& first, const File& second)
{
const int firstTrack = juce_getCDTrackNumber (first);
const int secondTrack = juce_getCDTrackNumber (second);

jassert (firstTrack > 0 && secondTrack > 0);

return firstTrack - secondTrack;
}

void AudioCDReader::refreshTrackLengths()
{
tracks.clear();
trackStartSamples.clear();
volumeDir.findChildFiles (tracks, File::findFiles | File::ignoreHiddenFiles, false, "*.aiff");

tracks.sort (*this);
struct CDTrackSorter
{
static int getCDTrackNumber (const File& file)
{
return file.getFileName()
.initialSectionContainingOnly ("0123456789")
.getIntValue();
}

static int compareElements (const File& first, const File& second)
{
const int firstTrack = getCDTrackNumber (first);
const int secondTrack = getCDTrackNumber (second);

jassert (firstTrack > 0 && secondTrack > 0);

return firstTrack - secondTrack;
}
};

CDTrackSorter sorter;
tracks.sort (sorter);

AiffAudioFormat format;
int sample = 0;


+ 2
- 5
juce_amalgamated.h View File

@@ -5929,8 +5929,8 @@ template <typename Type>
inline Type Atomic<Type>::get() const throw()
{
#if JUCE_ATOMICS_MAC
return sizeof (Type) == 4 ? castFrom32Bit ((int32) OSAtomicAdd32Barrier (0, (volatile int32_t*) &value))
: castFrom64Bit ((int64) OSAtomicAdd64Barrier (0, (volatile int64_t*) &value));
return sizeof (Type) == 4 ? castFrom32Bit ((int32) OSAtomicAdd32Barrier ((int32_t) 0, (volatile int32_t*) &value))
: castFrom64Bit ((int64) OSAtomicAdd64Barrier ((int64_t) 0, (volatile int64_t*) &value));
#elif JUCE_ATOMICS_WINDOWS
return sizeof (Type) == 4 ? castFrom32Bit ((int32) juce_InterlockedExchangeAdd ((volatile long*) &value, (long) 0))
: castFrom64Bit ((int64) juce_InterlockedExchangeAdd64 ((volatile __int64*) &value, (__int64) 0));
@@ -30521,9 +30521,6 @@ private:
int currentReaderTrack;
ScopedPointer <AudioFormatReader> reader;
AudioCDReader (const File& volume);
public:
static int compareElements (const File&, const File&);
private:

#elif JUCE_WINDOWS
int numTracks;


+ 0
- 3
src/audio/audio_file_formats/juce_AudioCDReader.h View File

@@ -158,9 +158,6 @@ private:
int currentReaderTrack;
ScopedPointer <AudioFormatReader> reader;
AudioCDReader (const File& volume);
public:
static int compareElements (const File&, const File&);
private:
#elif JUCE_WINDOWS
int numTracks;


+ 2
- 2
src/core/juce_Atomic.h View File

@@ -230,8 +230,8 @@ template <typename Type>
inline Type Atomic<Type>::get() const throw()
{
#if JUCE_ATOMICS_MAC
return sizeof (Type) == 4 ? castFrom32Bit ((int32) OSAtomicAdd32Barrier (0, (volatile int32_t*) &value))
: castFrom64Bit ((int64) OSAtomicAdd64Barrier (0, (volatile int64_t*) &value));
return sizeof (Type) == 4 ? castFrom32Bit ((int32) OSAtomicAdd32Barrier ((int32_t) 0, (volatile int32_t*) &value))
: castFrom64Bit ((int64) OSAtomicAdd64Barrier ((int64_t) 0, (volatile int64_t*) &value));
#elif JUCE_ATOMICS_WINDOWS
return sizeof (Type) == 4 ? castFrom32Bit ((int32) juce_InterlockedExchangeAdd ((volatile long*) &value, (long) 0))
: castFrom64Bit ((int64) juce_InterlockedExchangeAdd64 ((volatile __int64*) &value, (__int64) 0));


+ 22
- 18
src/native/mac/juce_mac_AudioCDReader.mm View File

@@ -80,30 +80,34 @@ AudioCDReader::~AudioCDReader()
{
}
static int juce_getCDTrackNumber (const File& file)
{
return file.getFileName()
.initialSectionContainingOnly ("0123456789")
.getIntValue();
}
int AudioCDReader::compareElements (const File& first, const File& second)
{
const int firstTrack = juce_getCDTrackNumber (first);
const int secondTrack = juce_getCDTrackNumber (second);
jassert (firstTrack > 0 && secondTrack > 0);
return firstTrack - secondTrack;
}
void AudioCDReader::refreshTrackLengths()
{
tracks.clear();
trackStartSamples.clear();
volumeDir.findChildFiles (tracks, File::findFiles | File::ignoreHiddenFiles, false, "*.aiff");
tracks.sort (*this);
struct CDTrackSorter
{
static int getCDTrackNumber (const File& file)
{
return file.getFileName()
.initialSectionContainingOnly ("0123456789")
.getIntValue();
}
static int compareElements (const File& first, const File& second)
{
const int firstTrack = getCDTrackNumber (first);
const int secondTrack = getCDTrackNumber (second);
jassert (firstTrack > 0 && secondTrack > 0);
return firstTrack - secondTrack;
}
};
CDTrackSorter sorter;
tracks.sort (sorter);
AiffAudioFormat format;
int sample = 0;


+ 3
- 3
src/native/mac/juce_mac_CarbonViewWrapperComponent.h View File

@@ -242,7 +242,7 @@ public:
{
case kEventWindowHandleDeactivate:
ActivateWindow (wrapperWindow, TRUE);
break;
return noErr;
case kEventWindowGetClickActivation:
{
@@ -254,11 +254,11 @@ public:
sizeof (ClickActivationResult), &howToHandleClick);
HIViewSetNeedsDisplay (embeddedView, true);
return noErr;
}
break;
}
return noErr;
return eventNotHandledErr;
}
static pascal OSStatus carbonEventCallback (EventHandlerCallRef nextHandlerRef,


Loading…
Cancel
Save