diff --git a/extras/Introjucer/Source/Project/jucer_ProjectExport_Android.h b/extras/Introjucer/Source/Project/jucer_ProjectExport_Android.h
index 02dddf65ee..46b1cae854 100644
--- a/extras/Introjucer/Source/Project/jucer_ProjectExport_Android.h
+++ b/extras/Introjucer/Source/Project/jucer_ProjectExport_Android.h
@@ -55,7 +55,7 @@ public:
getTargetLocation() = getDefaultBuildsRootFolder() + "Android";
if (getSDKPath().toString().isEmpty())
- getSDKPath() = "${user.home}/SDKs/android-sdk-mac_86";
+ getSDKPath() = "${user.home}/SDKs/android-sdk-mac_x86";
if (getNDKPath().toString().isEmpty())
getNDKPath() = "${user.home}/SDKs/android-ndk-r5";
diff --git a/extras/JuceDemo/Builds/Android/local.properties b/extras/JuceDemo/Builds/Android/local.properties
index 0f2a997c4e..d04423f3c7 100644
--- a/extras/JuceDemo/Builds/Android/local.properties
+++ b/extras/JuceDemo/Builds/Android/local.properties
@@ -1,6 +1,6 @@
# This file is used to override default values used by the Ant build system.
# It is automatically generated by the Jucer - DO NOT EDIT IT or your changes will be lost!.
-sdk.dir=${user.home}/SDKs/android-sdk-mac_86
+sdk.dir=${user.home}/SDKs/android-sdk-mac_x86
ndk.dir=${user.home}/SDKs/android-ndk-r5
diff --git a/extras/JuceDemo/Juce Demo.jucer b/extras/JuceDemo/Juce Demo.jucer
index 94cbedb865..c1874be94d 100644
--- a/extras/JuceDemo/Juce Demo.jucer
+++ b/extras/JuceDemo/Juce Demo.jucer
@@ -21,7 +21,7 @@
-
diff --git a/juce_amalgamated.cpp b/juce_amalgamated.cpp
index 17f27b87c7..57e611b09b 100644
--- a/juce_amalgamated.cpp
+++ b/juce_amalgamated.cpp
@@ -1658,9 +1658,15 @@ SystemStats::CPUFlags SystemStats::cpuFlags;
const String SystemStats::getJUCEVersion()
{
- return "JUCE v" + String (JUCE_MAJOR_VERSION)
- + "." + String (JUCE_MINOR_VERSION)
- + "." + String (JUCE_BUILDNUMBER);
+ #define JUCE_STRINGIFYVERSION2(a) #a
+ #define JUCE_STRINGIFYVERSION(a) JUCE_STRINGIFYVERSION2(a)
+
+ return "JUCE v" JUCE_STRINGIFYVERSION(JUCE_MAJOR_VERSION)
+ "." JUCE_STRINGIFYVERSION(JUCE_MINOR_VERSION)
+ "." JUCE_STRINGIFYVERSION(JUCE_BUILDNUMBER);
+
+ #undef JUCE_STRINGIFYVERSION
+ #undef JUCE_STRINGIFYVERSION2
}
#ifdef JUCE_DLL
@@ -1779,7 +1785,7 @@ namespace TimeHelpers
#elif JUCE_WINDOWS
HeapBlock tempDest;
tempDest.calloc (maxChars + 2);
- const int result = (int) wcsftime (tempDest, maxChars, format.toUTF16(), tm);
+ const int result = (int) wcsftime (tempDest, maxChars, format.toWideCharPointer(), tm);
if (result > 0)
dest.writeAll (CharPointer_UTF16 (tempDest.getData()));
return result;
@@ -71021,15 +71027,13 @@ public:
if (owner->shouldDropFilesWhenDraggedExternally (dragDescLocal, source, files, canMoveFiles)
&& files.size() > 0)
{
- WeakReference cdw (this);
+ WeakReference thisWeakRef (this);
setVisible (false);
if (ModifierKeys::getCurrentModifiersRealtime().isAnyMouseButtonDown())
DragAndDropContainer::performExternalDragDropOfFiles (files, canMoveFiles);
- if (cdw != 0)
- delete this;
-
+ delete thisWeakRef.get();
return;
}
}
@@ -242089,7 +242093,7 @@ DynamicLibraryLoader::~DynamicLibraryLoader()
bool DynamicLibraryLoader::load (const String& name)
{
FreeLibrary ((HMODULE) libHandle);
- libHandle = name.isNotEmpty() ? LoadLibrary (name.toUTF16()) : 0;
+ libHandle = name.isNotEmpty() ? LoadLibrary (name.toWideCharPointer()) : 0;
return libHandle != 0;
}
@@ -242110,7 +242114,7 @@ void* DynamicLibraryLoader::findProcAddress (const String& functionName)
void Logger::outputDebugString (const String& text)
{
- OutputDebugString ((text + "\n").toUTF16());
+ OutputDebugString ((text + "\n").toWideCharPointer());
}
static int64 hiResTicksPerSecond;
@@ -242698,9 +242702,9 @@ void Process::lowerPrivilege()
void Process::terminate()
{
- #if JUCE_MSVC && JUCE_CHECK_MEMORY_LEAKS
+ #if JUCE_MSVC && JUCE_CHECK_MEMORY_LEAKS
_CrtDumpMemoryLeaks();
- #endif
+ #endif
// bullet in the head in case there's a problem shutting down..
ExitProcess (0);
@@ -242712,7 +242716,7 @@ void* PlatformUtilities::loadDynamicLibrary (const String& name)
JUCE_TRY
{
- result = LoadLibrary (name.toUTF16());
+ result = LoadLibrary (name.toWideCharPointer());
}
JUCE_CATCH_ALL
@@ -242880,7 +242884,7 @@ namespace WindowsFileHelpers
{
ULARGE_INTEGER spc, tot, totFree;
- if (GetDiskFreeSpaceEx (getDriveFromPath (path).toUTF16(), &spc, &tot, &totFree))
+ if (GetDiskFreeSpaceEx (getDriveFromPath (path).toWideCharPointer(), &spc, &tot, &totFree))
return total ? (int64) tot.QuadPart
: (int64) spc.QuadPart;
@@ -242889,7 +242893,7 @@ namespace WindowsFileHelpers
unsigned int getWindowsDriveType (const String& path)
{
- return GetDriveType (getDriveFromPath (path).toUTF16());
+ return GetDriveType (getDriveFromPath (path).toWideCharPointer());
}
const File getSpecialFolderPath (int type)
@@ -242909,25 +242913,25 @@ const String File::separatorString ("\\");
bool File::exists() const
{
return fullPath.isNotEmpty()
- && GetFileAttributes (fullPath.toUTF16()) != INVALID_FILE_ATTRIBUTES;
+ && GetFileAttributes (fullPath.toWideCharPointer()) != INVALID_FILE_ATTRIBUTES;
}
bool File::existsAsFile() const
{
return fullPath.isNotEmpty()
- && (GetFileAttributes (fullPath.toUTF16()) & FILE_ATTRIBUTE_DIRECTORY) == 0;
+ && (GetFileAttributes (fullPath.toWideCharPointer()) & FILE_ATTRIBUTE_DIRECTORY) == 0;
}
bool File::isDirectory() const
{
- const DWORD attr = GetFileAttributes (fullPath.toUTF16());
+ const DWORD attr = GetFileAttributes (fullPath.toWideCharPointer());
return ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) && (attr != INVALID_FILE_ATTRIBUTES);
}
bool File::hasWriteAccess() const
{
if (exists())
- return (GetFileAttributes (fullPath.toUTF16()) & FILE_ATTRIBUTE_READONLY) == 0;
+ return (GetFileAttributes (fullPath.toWideCharPointer()) & FILE_ATTRIBUTE_READONLY) == 0;
// on windows, it seems that even read-only directories can still be written into,
// so checking the parent directory's permissions would return the wrong result..
@@ -242936,7 +242940,7 @@ bool File::hasWriteAccess() const
bool File::setFileReadOnlyInternal (const bool shouldBeReadOnly) const
{
- DWORD attr = GetFileAttributes (fullPath.toUTF16());
+ DWORD attr = GetFileAttributes (fullPath.toWideCharPointer());
if (attr == INVALID_FILE_ATTRIBUTES)
return false;
@@ -242949,22 +242953,21 @@ bool File::setFileReadOnlyInternal (const bool shouldBeReadOnly) const
else
attr &= ~FILE_ATTRIBUTE_READONLY;
- return SetFileAttributes (fullPath.toUTF16(), attr) != FALSE;
+ return SetFileAttributes (fullPath.toWideCharPointer(), attr) != FALSE;
}
bool File::isHidden() const
{
- return (GetFileAttributes (getFullPathName().toUTF16()) & FILE_ATTRIBUTE_HIDDEN) != 0;
+ return (GetFileAttributes (getFullPathName().toWideCharPointer()) & FILE_ATTRIBUTE_HIDDEN) != 0;
}
bool File::deleteFile() const
{
if (! exists())
return true;
- else if (isDirectory())
- return RemoveDirectory (fullPath.toUTF16()) != 0;
- else
- return DeleteFile (fullPath.toUTF16()) != 0;
+
+ return isDirectory() ? RemoveDirectory (fullPath.toWideCharPointer()) != 0
+ : DeleteFile (fullPath.toWideCharPointer()) != 0;
}
bool File::moveToTrash() const
@@ -242990,17 +242993,17 @@ bool File::moveToTrash() const
bool File::copyInternal (const File& dest) const
{
- return CopyFile (fullPath.toUTF16(), dest.getFullPathName().toUTF16(), false) != 0;
+ return CopyFile (fullPath.toWideCharPointer(), dest.getFullPathName().toWideCharPointer(), false) != 0;
}
bool File::moveInternal (const File& dest) const
{
- return MoveFile (fullPath.toUTF16(), dest.getFullPathName().toUTF16()) != 0;
+ return MoveFile (fullPath.toWideCharPointer(), dest.getFullPathName().toWideCharPointer()) != 0;
}
void File::createDirectoryInternal (const String& fileName) const
{
- CreateDirectory (fileName.toUTF16(), 0);
+ CreateDirectory (fileName.toWideCharPointer(), 0);
}
int64 juce_fileSetPosition (void* handle, int64 pos)
@@ -243015,7 +243018,7 @@ void FileInputStream::openHandle()
{
totalSize = file.getSize();
- HANDLE h = CreateFile (file.getFullPathName().toUTF16(), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, 0,
+ HANDLE h = CreateFile (file.getFullPathName().toWideCharPointer(), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, 0,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, 0);
if (h != INVALID_HANDLE_VALUE)
@@ -243041,7 +243044,7 @@ size_t FileInputStream::readInternal (void* buffer, size_t numBytes)
void FileOutputStream::openHandle()
{
- HANDLE h = CreateFile (file.getFullPathName().toUTF16(), GENERIC_WRITE, FILE_SHARE_READ, 0,
+ HANDLE h = CreateFile (file.getFullPathName().toWideCharPointer(), GENERIC_WRITE, FILE_SHARE_READ, 0,
OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
if (h != INVALID_HANDLE_VALUE)
@@ -243085,7 +243088,7 @@ int64 File::getSize() const
{
WIN32_FILE_ATTRIBUTE_DATA attributes;
- if (GetFileAttributesEx (fullPath.toUTF16(), GetFileExInfoStandard, &attributes))
+ if (GetFileAttributesEx (fullPath.toWideCharPointer(), GetFileExInfoStandard, &attributes))
return (((int64) attributes.nFileSizeHigh) << 32) | attributes.nFileSizeLow;
return 0;
@@ -243096,7 +243099,7 @@ void File::getFileTimesInternal (int64& modificationTime, int64& accessTime, int
using namespace WindowsFileHelpers;
WIN32_FILE_ATTRIBUTE_DATA attributes;
- if (GetFileAttributesEx (fullPath.toUTF16(), GetFileExInfoStandard, &attributes))
+ if (GetFileAttributesEx (fullPath.toWideCharPointer(), GetFileExInfoStandard, &attributes))
{
modificationTime = fileTimeToTime (&attributes.ftLastWriteTime);
creationTime = fileTimeToTime (&attributes.ftCreationTime);
@@ -243113,7 +243116,7 @@ bool File::setFileTimesInternal (int64 modificationTime, int64 accessTime, int64
using namespace WindowsFileHelpers;
bool ok = false;
- HANDLE h = CreateFile (fullPath.toUTF16(), GENERIC_WRITE, FILE_SHARE_READ, 0,
+ HANDLE h = CreateFile (fullPath.toWideCharPointer(), GENERIC_WRITE, FILE_SHARE_READ, 0,
OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
if (h != INVALID_HANDLE_VALUE)
@@ -243161,7 +243164,7 @@ void File::findFileSystemRoots (Array& destArray)
const String File::getVolumeLabel() const
{
TCHAR dest[64];
- if (! GetVolumeInformation (WindowsFileHelpers::getDriveFromPath (getFullPathName()).toUTF16(), dest,
+ if (! GetVolumeInformation (WindowsFileHelpers::getDriveFromPath (getFullPathName()).toWideCharPointer(), dest,
numElementsInArray (dest), 0, 0, 0, 0, 0))
dest[0] = 0;
@@ -243173,7 +243176,7 @@ int File::getVolumeSerialNumber() const
TCHAR dest[64];
DWORD serialNum;
- if (! GetVolumeInformation (WindowsFileHelpers::getDriveFromPath (getFullPathName()).toUTF16(), dest,
+ if (! GetVolumeInformation (WindowsFileHelpers::getDriveFromPath (getFullPathName()).toWideCharPointer(), dest,
numElementsInArray (dest), &serialNum, 0, 0, 0, 0))
return 0;
@@ -243282,7 +243285,7 @@ const File File::getCurrentWorkingDirectory()
bool File::setAsCurrentWorkingDirectory() const
{
- return SetCurrentDirectory (getFullPathName().toUTF16()) != FALSE;
+ return SetCurrentDirectory (getFullPathName().toWideCharPointer()) != FALSE;
}
const String File::getVersion() const
@@ -243290,11 +243293,11 @@ const String File::getVersion() const
String result;
DWORD handle = 0;
- DWORD bufferSize = GetFileVersionInfoSize (getFullPathName().toUTF16(), &handle);
+ DWORD bufferSize = GetFileVersionInfoSize (getFullPathName().toWideCharPointer(), &handle);
HeapBlock buffer;
buffer.calloc (bufferSize);
- if (GetFileVersionInfo (getFullPathName().toUTF16(), 0, bufferSize, buffer))
+ if (GetFileVersionInfo (getFullPathName().toWideCharPointer(), 0, bufferSize, buffer))
{
VS_FIXEDFILEINFO* vffi;
UINT len = 0;
@@ -243327,7 +243330,7 @@ const File File::getLinkedTarget() const
ComSmartPtr persistFile;
if (SUCCEEDED (shellLink.QueryInterface (IID_IPersistFile, persistFile)))
{
- if (SUCCEEDED (persistFile->Load (p.toUTF16(), STGM_READ))
+ if (SUCCEEDED (persistFile->Load (p.toWideCharPointer(), STGM_READ))
&& SUCCEEDED (shellLink->Resolve (0, SLR_ANY_MATCH | SLR_NO_UI)))
{
WIN32_FIND_DATA winFindData;
@@ -243366,7 +243369,7 @@ public:
if (handle == INVALID_HANDLE_VALUE)
{
- handle = FindFirstFile (directoryWithWildCard.toUTF16(), &findData);
+ handle = FindFirstFile (directoryWithWildCard.toWideCharPointer(), &findData);
if (handle == INVALID_HANDLE_VALUE)
return false;
@@ -243418,7 +243421,7 @@ bool PlatformUtilities::openDocument (const String& fileName, const String& para
JUCE_TRY
{
- hInstance = ShellExecute (0, 0, fileName.toUTF16(), parameters.toUTF16(), 0, SW_SHOWDEFAULT);
+ hInstance = ShellExecute (0, 0, fileName.toWideCharPointer(), parameters.toWideCharPointer(), 0, SW_SHOWDEFAULT);
}
JUCE_CATCH_ALL
@@ -243444,9 +243447,9 @@ public:
{
cancelEvent = CreateEvent (0, FALSE, FALSE, 0);
- pipeH = isPipe ? CreateNamedPipe (file.toUTF16(), PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED, 0,
+ pipeH = isPipe ? CreateNamedPipe (file.toWideCharPointer(), PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED, 0,
PIPE_UNLIMITED_INSTANCES, 4096, 4096, 0, 0)
- : CreateFile (file.toUTF16(), GENERIC_READ | GENERIC_WRITE, 0, 0,
+ : CreateFile (file.toWideCharPointer(), GENERIC_READ | GENERIC_WRITE, 0, 0,
OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
}
@@ -243870,7 +243873,7 @@ private:
uc.lpszUrlPath = file;
uc.lpszHostName = server;
- if (InternetCrackUrl (address.toUTF16(), 0, 0, &uc))
+ if (InternetCrackUrl (address.toWideCharPointer(), 0, 0, &uc))
{
int disable = 1;
InternetSetOption (sessionHandle, INTERNET_OPTION_DISABLE_AUTODIAL, &disable, sizeof (disable));
@@ -243930,7 +243933,7 @@ private:
INTERNET_BUFFERS buffers;
zerostruct (buffers);
buffers.dwStructSize = sizeof (INTERNET_BUFFERS);
- buffers.lpcszHeader = headers.toUTF16();
+ buffers.lpcszHeader = headers.toWideCharPointer();
buffers.dwHeadersLength = headers.length();
buffers.dwBufferTotal = (DWORD) postData.getSize();
@@ -244158,13 +244161,13 @@ namespace
if (createForWriting)
{
- if (RegCreateKeyEx (rootKey, name.toUTF16(), 0, 0, REG_OPTION_NON_VOLATILE,
+ if (RegCreateKeyEx (rootKey, name.toWideCharPointer(), 0, 0, REG_OPTION_NON_VOLATILE,
(KEY_WRITE | KEY_QUERY_VALUE), 0, &key, &result) == ERROR_SUCCESS)
return key;
}
else
{
- if (RegOpenKeyEx (rootKey, name.toUTF16(), 0, KEY_READ, &key) == ERROR_SUCCESS)
+ if (RegOpenKeyEx (rootKey, name.toWideCharPointer(), 0, KEY_READ, &key) == ERROR_SUCCESS)
return key;
}
}
@@ -244185,7 +244188,7 @@ const String PlatformUtilities::getRegistryValue (const String& regValuePath,
unsigned long bufferSize = sizeof (buffer);
DWORD type = REG_SZ;
- if (RegQueryValueEx (k, valueName.toUTF16(), 0, &type, (LPBYTE) buffer, &bufferSize) == ERROR_SUCCESS)
+ if (RegQueryValueEx (k, valueName.toWideCharPointer(), 0, &type, (LPBYTE) buffer, &bufferSize) == ERROR_SUCCESS)
{
if (type == REG_SZ)
result = buffer;
@@ -244207,7 +244210,7 @@ void PlatformUtilities::setRegistryValue (const String& regValuePath,
if (k != 0)
{
- RegSetValueEx (k, valueName.toUTF16(), 0, REG_SZ,
+ RegSetValueEx (k, valueName.toWideCharPointer(), 0, REG_SZ,
(const BYTE*) value.toWideCharPointer(),
CharPointer_UTF16::getBytesRequiredFor (value.getCharPointer()));
@@ -244227,7 +244230,7 @@ bool PlatformUtilities::registryValueExists (const String& regValuePath)
unsigned long bufferSize = sizeof (buffer);
DWORD type = 0;
- if (RegQueryValueEx (k, valueName.toUTF16(), 0, &type, buffer, &bufferSize) == ERROR_SUCCESS)
+ if (RegQueryValueEx (k, valueName.toWideCharPointer(), 0, &type, buffer, &bufferSize) == ERROR_SUCCESS)
exists = true;
RegCloseKey (k);
@@ -244243,7 +244246,7 @@ void PlatformUtilities::deleteRegistryValue (const String& regValuePath)
if (k != 0)
{
- RegDeleteValue (k, valueName.toUTF16());
+ RegDeleteValue (k, valueName.toWideCharPointer());
RegCloseKey (k);
}
}
@@ -244255,7 +244258,7 @@ void PlatformUtilities::deleteRegistryKey (const String& regKeyPath)
if (k != 0)
{
- RegDeleteKey (k, valueName.toUTF16());
+ RegDeleteKey (k, valueName.toWideCharPointer());
RegCloseKey (k);
}
}
@@ -244319,9 +244322,9 @@ void PlatformUtilities::setCurrentModuleInstanceHandle (void* const newHandle) t
void PlatformUtilities::fpuReset()
{
-#if JUCE_MSVC
+ #if JUCE_MSVC
_clearfp();
-#endif
+ #endif
}
void PlatformUtilities::beep()
@@ -244589,7 +244592,7 @@ void MessageManager::doPlatformSpecificInitialisation()
wc.lpfnWndProc = (WNDPROC) juce_MessageWndProc;
wc.cbWndExtra = 4;
wc.hInstance = hmod;
- wc.lpszClassName = className.toUTF16();
+ wc.lpszClassName = className.toWideCharPointer();
RegisterClassEx (&wc);
@@ -244602,7 +244605,7 @@ void MessageManager::doPlatformSpecificInitialisation()
void MessageManager::doPlatformSpecificShutdown()
{
DestroyWindow (juce_messageWindowHandle);
- UnregisterClass (getMessageWindowClassName().toUTF16(), 0);
+ UnregisterClass (getMessageWindowClassName().toWideCharPointer(), 0);
OleUninitialize();
}
@@ -245901,8 +245904,6 @@ static bool shouldDeactivateTitleBar = true;
#define WM_TRAYNOTIFY WM_USER + 100
-using ::abs;
-
typedef BOOL (WINAPI* UpdateLayeredWinFunc) (HWND, HDC, POINT*, SIZE*, HDC, POINT*, COLORREF, BLENDFUNCTION*, DWORD);
static UpdateLayeredWinFunc updateLayeredWindow = 0;
@@ -246027,7 +246028,7 @@ public:
previousBitmap = SelectObject (hdc, hBitmap);
if (format_ == Image::ARGB && clearImage)
- zeromem (bitmapData, abs (h * lineStride));
+ zeromem (bitmapData, std::abs (h * lineStride));
imageData = bitmapData - (lineStride * (h - 1));
}
@@ -246303,11 +246304,7 @@ public:
HWND parentToAddTo_)
: ComponentPeer (component, windowStyleFlags),
dontRepaint (false),
- #if JUCE_DIRECT2D
- currentRenderingEngine (direct2DRenderingEngine),
- #else
currentRenderingEngine (softwareRenderingEngine),
- #endif
fullScreen (false),
isDragging (false),
isMouseOver (false),
@@ -246374,7 +246371,7 @@ public:
void setTitle (const String& title)
{
- SetWindowText (hwnd, title.toUTF16());
+ SetWindowText (hwnd, title.toWideCharPointer());
}
void setPosition (int x, int y)
@@ -246905,7 +246902,7 @@ private:
wcex.cbSize = sizeof (wcex);
wcex.style = CS_OWNDC;
wcex.lpfnWndProc = (WNDPROC) windowProc;
- wcex.lpszClassName = windowClassName.toUTF16();
+ wcex.lpszClassName = windowClassName.toWideCharPointer();
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 32;
wcex.hInstance = moduleHandle;
@@ -246922,7 +246919,7 @@ private:
~WindowClassHolder()
{
if (ComponentPeer::getNumPeers() == 0)
- UnregisterClass (windowClassName.toUTF16(), (HINSTANCE) PlatformUtilities::getCurrentModuleInstanceHandle());
+ UnregisterClass (windowClassName.toWideCharPointer(), (HINSTANCE) PlatformUtilities::getCurrentModuleInstanceHandle());
clearSingletonInstance();
}
@@ -246987,12 +246984,12 @@ private:
&& Desktop::canUseSemiTransparentWindows())
exstyle |= WS_EX_LAYERED;
- hwnd = CreateWindowEx (exstyle, WindowClassHolder::getInstance()->windowClassName.toUTF16(), L"", type, 0, 0, 0, 0,
+ hwnd = CreateWindowEx (exstyle, WindowClassHolder::getInstance()->windowClassName.toWideCharPointer(), L"", type, 0, 0, 0, 0,
parentToAddTo, 0, (HINSTANCE) PlatformUtilities::getCurrentModuleInstanceHandle(), 0);
- #if JUCE_DIRECT2D
- updateDirect2DContext();
- #endif
+ #if JUCE_DIRECT2D
+ setCurrentRenderingEngine (1);
+ #endif
if (hwnd != 0)
{
@@ -247092,7 +247089,7 @@ private:
void handlePaintMessage()
{
-#if JUCE_DIRECT2D
+ #if JUCE_DIRECT2D
if (direct2DContext != 0)
{
RECT r;
@@ -247106,7 +247103,8 @@ private:
}
}
else
-#endif
+ #endif
+
{
HRGN rgn = CreateRectRgn (0, 0, 0, 0);
const int regionType = GetUpdateRgn (hwnd, rgn, false);
@@ -247231,9 +247229,9 @@ private:
EndPaint (hwnd, &paintStruct);
}
-#ifndef JUCE_GCC //xxx should add this fn for gcc..
+ #ifndef JUCE_GCC
_fpreset(); // because some graphics cards can unmask FP exceptions
-#endif
+ #endif
lastPaintTime = Time::getMillisecondCounter();
}
@@ -247247,15 +247245,11 @@ private:
{
StringArray s (ComponentPeer::getAvailableRenderingEngines());
-#if JUCE_DIRECT2D
- // xxx is this correct? Seems to enable it on Vista too??
- OSVERSIONINFO info;
- zerostruct (info);
- info.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
- GetVersionEx (&info);
- if (info.dwMajorVersion >= 6)
+ #if JUCE_DIRECT2D
+ if (SystemStats::getOperatingSystemType() >= SystemStats::Windows7)
s.add ("Direct2D");
-#endif
+ #endif
+
return s;
}
@@ -247264,7 +247258,7 @@ private:
return currentRenderingEngine;
}
-#if JUCE_DIRECT2D
+ #if JUCE_DIRECT2D
void updateDirect2DContext()
{
if (currentRenderingEngine != direct2DRenderingEngine)
@@ -247272,17 +247266,20 @@ private:
else if (direct2DContext == 0)
direct2DContext = new Direct2DLowLevelGraphicsContext (hwnd);
}
-#endif
+ #endif
void setCurrentRenderingEngine (int index)
{
(void) index;
-#if JUCE_DIRECT2D
- currentRenderingEngine = index == 1 ? direct2DRenderingEngine : softwareRenderingEngine;
- updateDirect2DContext();
- repaint (component->getLocalBounds());
-#endif
+ #if JUCE_DIRECT2D
+ if (getAvailableRenderingEngines().size() > 1)
+ {
+ currentRenderingEngine = index == 1 ? direct2DRenderingEngine : softwareRenderingEngine;
+ updateDirect2DContext();
+ repaint (component->getLocalBounds());
+ }
+ #endif
}
void doMouseMove (const Point& position)
@@ -248246,7 +248243,7 @@ bool AlertWindow::showNativeDialogBox (const String& title,
const String& bodyText,
bool isOkCancel)
{
- return MessageBox (0, bodyText.toUTF16(), title.toUTF16(),
+ return MessageBox (0, bodyText.toWideCharPointer(), title.toWideCharPointer(),
MB_SETFOREGROUND | (isOkCancel ? MB_OKCANCEL
: MB_OK)) == IDOK;
}
@@ -248513,7 +248510,6 @@ class JuceDropSource : public ComBaseClassHelper
{
public:
JuceDropSource() {}
- ~JuceDropSource() {}
HRESULT __stdcall QueryContinueDrag (BOOL escapePressed, DWORD keys)
{
@@ -248541,8 +248537,6 @@ public:
{
}
- ~JuceEnumFormatEtc() {}
-
HRESULT __stdcall Clone (IEnumFORMATETC** result)
{
if (result == 0)
@@ -248939,7 +248933,7 @@ void FileChooser::showPlatformDialog (Array& results, const String& title_
bi.hwndOwner = (HWND) parentWindow.getWindowHandle();
bi.pszDisplayName = files;
- bi.lpszTitle = title.toUTF16();
+ bi.lpszTitle = title.toWideCharPointer();
bi.lParam = (LPARAM) &info;
bi.lpfn = browseCallbackProc;
#ifdef BIF_USENEWUI
@@ -249006,8 +249000,8 @@ void FileChooser::showPlatformDialog (Array& results, const String& title_
of.nFilterIndex = 1;
of.lpstrFile = files;
of.nMaxFile = charsAvailableForResult;
- of.lpstrInitialDir = localPath.toUTF16();
- of.lpstrTitle = title.toUTF16();
+ of.lpstrInitialDir = localPath.toWideCharPointer();
+ of.lpstrTitle = title.toWideCharPointer();
of.Flags = flags;
of.lCustData = (LPARAM) &info;
@@ -249115,7 +249109,6 @@ namespace ActiveXHelpers
{
public:
JuceIStorage() {}
- ~JuceIStorage() {}
HRESULT __stdcall CreateStream (const WCHAR*, DWORD, DWORD, DWORD, IStream**) { return E_NOTIMPL; }
HRESULT __stdcall OpenStream (const WCHAR*, void*, DWORD, DWORD, IStream**) { return E_NOTIMPL; }
@@ -249140,7 +249133,6 @@ namespace ActiveXHelpers
public:
JuceOleInPlaceFrame (HWND window_) : window (window_) {}
- ~JuceOleInPlaceFrame() {}
HRESULT __stdcall GetWindow (HWND* lphwnd) { *lphwnd = window; return S_OK; }
HRESULT __stdcall ContextSensitiveHelp (BOOL) { return E_NOTIMPL; }
@@ -253710,7 +253702,7 @@ private:
// doing a direct load of the COM object (only available via the juce_createASIOAudioIODeviceForGUID function).
if (optionalDllForDirectLoading.isNotEmpty())
{
- HMODULE h = LoadLibrary (optionalDllForDirectLoading.toUTF16());
+ HMODULE h = LoadLibrary (optionalDllForDirectLoading.toWideCharPointer());
if (h != 0)
{
@@ -254690,7 +254682,7 @@ private:
{
HKEY subKey;
- if (RegOpenKeyEx (hk, keyName.toUTF16(), 0, KEY_READ, &subKey) == ERROR_SUCCESS)
+ if (RegOpenKeyEx (hk, keyName.toWideCharPointer(), 0, KEY_READ, &subKey) == ERROR_SUCCESS)
{
TCHAR buf [256] = { 0 };
DWORD dtype = REG_SZ;
@@ -257455,7 +257447,7 @@ public:
if (SUCCEEDED (hr))
{
- hr = fileSink->SetFileName (file.getFullPathName().toUTF16(), 0);
+ hr = fileSink->SetFileName (file.getFullPathName().toWideCharPointer(), 0);
if (SUCCEEDED (hr))
{
@@ -257499,7 +257491,7 @@ public:
.replace ("$AVGTIMEPERFRAME", String (10000000 / maxFramesPerSecond));
ComSmartPtr currentProfile;
- hr = profileManager->LoadProfileByData (prof.toUTF16(), currentProfile.resetAndGetPointerAddress());
+ hr = profileManager->LoadProfileByData (prof.toWideCharPointer(), currentProfile.resetAndGetPointerAddress());
hr = asfConfig->ConfigureFilterUsingProfile (currentProfile);
if (SUCCEEDED (hr))
diff --git a/juce_amalgamated.h b/juce_amalgamated.h
index 4ff32233a7..b646e1f53b 100644
--- a/juce_amalgamated.h
+++ b/juce_amalgamated.h
@@ -73,7 +73,7 @@ namespace JuceDummyNamespace {}
*/
#define JUCE_MAJOR_VERSION 1
#define JUCE_MINOR_VERSION 53
-#define JUCE_BUILDNUMBER 48
+#define JUCE_BUILDNUMBER 49
/** Current Juce version number.
@@ -17390,8 +17390,6 @@ public:
/** Returns the current version of JUCE,
- (just in case you didn't already know at compile-time.)
-
See also the JUCE_VERSION, JUCE_MAJOR_VERSION and JUCE_MINOR_VERSION macros.
*/
static const String getJUCEVersion();
@@ -34172,8 +34170,8 @@ public:
inline void skip (int numSamples) throw() { data += numSamples; }
inline float getAsFloatLE() const throw() { return (float) ((1.0 / (1.0 + maxValue)) * (int16) ByteOrder::swapIfBigEndian (*data)); }
inline float getAsFloatBE() const throw() { return (float) ((1.0 / (1.0 + maxValue)) * (int16) ByteOrder::swapIfLittleEndian (*data)); }
- inline void setAsFloatLE (float newValue) throw() { *data = ByteOrder::swapIfBigEndian ((uint16) jlimit ((int16) -maxValue, (int16) maxValue, (int16) roundToInt (newValue * (1.0 + maxValue)))); }
- inline void setAsFloatBE (float newValue) throw() { *data = ByteOrder::swapIfLittleEndian ((uint16) jlimit ((int16) -maxValue, (int16) maxValue, (int16) roundToInt (newValue * (1.0 + maxValue)))); }
+ inline void setAsFloatLE (float newValue) throw() { *data = ByteOrder::swapIfBigEndian ((uint16) jlimit ((int) -maxValue, (int) maxValue, roundToInt (newValue * (1.0 + maxValue)))); }
+ inline void setAsFloatBE (float newValue) throw() { *data = ByteOrder::swapIfLittleEndian ((uint16) jlimit ((int) -maxValue, (int) maxValue, roundToInt (newValue * (1.0 + maxValue)))); }
inline int32 getAsInt32LE() const throw() { return (int32) (ByteOrder::swapIfBigEndian ((uint16) *data) << 16); }
inline int32 getAsInt32BE() const throw() { return (int32) (ByteOrder::swapIfLittleEndian ((uint16) *data) << 16); }
inline void setAsInt32LE (int32 newValue) throw() { *data = ByteOrder::swapIfBigEndian ((uint16) (newValue >> 16)); }
diff --git a/src/audio/dsp/juce_AudioDataConverters.h b/src/audio/dsp/juce_AudioDataConverters.h
index 670c5a8532..834f48bfb8 100644
--- a/src/audio/dsp/juce_AudioDataConverters.h
+++ b/src/audio/dsp/juce_AudioDataConverters.h
@@ -156,8 +156,8 @@ public:
inline void skip (int numSamples) throw() { data += numSamples; }
inline float getAsFloatLE() const throw() { return (float) ((1.0 / (1.0 + maxValue)) * (int16) ByteOrder::swapIfBigEndian (*data)); }
inline float getAsFloatBE() const throw() { return (float) ((1.0 / (1.0 + maxValue)) * (int16) ByteOrder::swapIfLittleEndian (*data)); }
- inline void setAsFloatLE (float newValue) throw() { *data = ByteOrder::swapIfBigEndian ((uint16) jlimit ((int16) -maxValue, (int16) maxValue, (int16) roundToInt (newValue * (1.0 + maxValue)))); }
- inline void setAsFloatBE (float newValue) throw() { *data = ByteOrder::swapIfLittleEndian ((uint16) jlimit ((int16) -maxValue, (int16) maxValue, (int16) roundToInt (newValue * (1.0 + maxValue)))); }
+ inline void setAsFloatLE (float newValue) throw() { *data = ByteOrder::swapIfBigEndian ((uint16) jlimit ((int) -maxValue, (int) maxValue, roundToInt (newValue * (1.0 + maxValue)))); }
+ inline void setAsFloatBE (float newValue) throw() { *data = ByteOrder::swapIfLittleEndian ((uint16) jlimit ((int) -maxValue, (int) maxValue, roundToInt (newValue * (1.0 + maxValue)))); }
inline int32 getAsInt32LE() const throw() { return (int32) (ByteOrder::swapIfBigEndian ((uint16) *data) << 16); }
inline int32 getAsInt32BE() const throw() { return (int32) (ByteOrder::swapIfLittleEndian ((uint16) *data) << 16); }
inline void setAsInt32LE (int32 newValue) throw() { *data = ByteOrder::swapIfBigEndian ((uint16) (newValue >> 16)); }
diff --git a/src/core/juce_StandardHeader.h b/src/core/juce_StandardHeader.h
index 42bb1f4bcc..c9c615c631 100644
--- a/src/core/juce_StandardHeader.h
+++ b/src/core/juce_StandardHeader.h
@@ -33,7 +33,7 @@
*/
#define JUCE_MAJOR_VERSION 1
#define JUCE_MINOR_VERSION 53
-#define JUCE_BUILDNUMBER 48
+#define JUCE_BUILDNUMBER 49
/** Current Juce version number.