Browse Source

Changes for VC6 compatibility; added a couple of trimming methods to String; added a parameter to Socket::createConnection

tags/2021-05-28
Julian Storer 16 years ago
parent
commit
93e4236b57
13 changed files with 142 additions and 29 deletions
  1. +46
    -8
      juce_amalgamated.cpp
  2. +25
    -5
      juce_amalgamated.h
  3. +6
    -5
      src/gui/components/code_editor/juce_CodeDocument.cpp
  4. +4
    -3
      src/gui/components/code_editor/juce_CodeDocument.h
  5. +0
    -1
      src/gui/graphics/contexts/juce_Graphics.cpp
  6. +0
    -1
      src/gui/graphics/contexts/juce_LowLevelGraphicsContext.h
  7. +0
    -1
      src/gui/graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp
  8. +1
    -1
      src/gui/graphics/geometry/juce_Path.cpp
  9. +5
    -1
      src/io/network/juce_Socket.cpp
  10. +5
    -2
      src/io/network/juce_Socket.h
  11. +1
    -1
      src/native/windows/juce_win32_QuickTimeMovieComponent.cpp
  12. +33
    -0
      src/text/juce_String.cpp
  13. +16
    -0
      src/text/juce_String.h

+ 46
- 8
juce_amalgamated.cpp View File

@@ -7753,7 +7753,7 @@ void StreamingSocket::close()
isListener = false;
}

bool StreamingSocket::createListener (const int newPortNumber)
bool StreamingSocket::createListener (const int newPortNumber, const String& localHostName)
{
if (connected)
close();
@@ -7766,6 +7766,10 @@ bool StreamingSocket::createListener (const int newPortNumber)
zerostruct (servTmpAddr);
servTmpAddr.sin_family = PF_INET;
servTmpAddr.sin_addr.s_addr = htonl (INADDR_ANY);

if (localHostName.isNotEmpty())
servTmpAddr.sin_addr.s_addr = ::inet_addr (localHostName.toUTF8());

servTmpAddr.sin_port = htons ((uint16) portNumber);

handle = (int) socket (AF_INET, SOCK_STREAM, 0);
@@ -12133,6 +12137,39 @@ const String String::trimEnd() const throw()
return String (text->text, (int) (++endT - text->text));
}

const String String::trimCharactersAtStart (const tchar* charactersToTrim) const throw()
{
jassert (charactersToTrim != 0);

if (isEmpty())
return empty;

const tchar* t = text->text;

while (CharacterFunctions::indexOfCharFast (charactersToTrim, *t) >= 0)
++t;

if (t == text->text)
return *this;
else
return String (t);
}

const String String::trimCharactersAtEnd (const tchar* charactersToTrim) const throw()
{
jassert (charactersToTrim != 0);

if (isEmpty())
return empty;

const tchar* endT = text->text + (CharacterFunctions::length (text->text) - 1);

while ((endT >= text->text) && CharacterFunctions::indexOfCharFast (charactersToTrim, *endT) >= 0)
--endT;

return String (text->text, (int) (++endT - text->text));
}

const String String::retainCharacters (const tchar* const charactersToRetain) const throw()
{
jassert (charactersToRetain != 0);
@@ -44035,8 +44072,8 @@ void CodeDocument::insert (const String& text, const int insertPos, const bool u
lastAffectedLine = lines.size();
}

int lineStart = newFirstLine->lineStartInFile;
for (int i = firstAffectedLine; i < lines.size(); ++i)
int i, lineStart = newFirstLine->lineStartInFile;
for (i = firstAffectedLine; i < lines.size(); ++i)
{
CodeDocumentLine* const l = lines.getUnchecked (i);
l->lineStartInFile = lineStart;
@@ -44044,7 +44081,7 @@ void CodeDocument::insert (const String& text, const int insertPos, const bool u
}

const int newTextLength = text.length();
for (int i = 0; i < positionsToMaintain.size(); ++i)
for (i = 0; i < positionsToMaintain.size(); ++i)
{
CodeDocument::Position* const p = positionsToMaintain.getUnchecked(i);

@@ -44135,7 +44172,8 @@ void CodeDocument::remove (const int startPos, const int endPos, const bool undo
lines.removeRange (firstAffectedLine + 1, numLinesToRemove);
}

for (int i = firstAffectedLine + 1; i < lines.size(); ++i)
int i;
for (i = firstAffectedLine + 1; i < lines.size(); ++i)
{
CodeDocumentLine* const l = lines.getUnchecked (i);
const CodeDocumentLine* const previousLine = lines.getUnchecked (i - 1);
@@ -44144,7 +44182,7 @@ void CodeDocument::remove (const int startPos, const int endPos, const bool undo

const int totalChars = getNumCharacters();

for (int i = 0; i < positionsToMaintain.size(); ++i)
for (i = 0; i < positionsToMaintain.size(); ++i)
{
CodeDocument::Position* p = positionsToMaintain.getUnchecked(i);

@@ -90215,7 +90253,7 @@ Image* Path::createMaskBitmap (const AffineTransform& transform,
Image* im = Image::createNativeImage (Image::SingleChannel, imagePosition.getWidth(), imagePosition.getHeight(), true);

EdgeTable edgeTable (Rectangle (0, 0, imagePosition.getWidth(), imagePosition.getHeight()),
*this, transform.translated (-imagePosition.getX(), -imagePosition.getY()));
*this, transform.translated ((float) -imagePosition.getX(), (float) -imagePosition.getY()));

int stride, pixelStride;
uint8* const pixels = (uint8*) im->lockPixelDataReadWrite (0, 0, imagePosition.getWidth(), imagePosition.getHeight(), stride, pixelStride);
@@ -242079,7 +242117,7 @@ bool QuickTimeMovieComponent::loadMovie (const File& movieFile_,
bool QuickTimeMovieComponent::loadMovie (const URL& movieURL,
const bool isControllerVisible)
{
return loadMovie ((InputStream*) movieURL_.createInputStream (false), isControllerVisible);
return loadMovie ((InputStream*) movieURL.createInputStream (false), isControllerVisible);
}

void QuickTimeMovieComponent::goToStart()


+ 25
- 5
juce_amalgamated.h View File

@@ -1994,6 +1994,22 @@ public:
/** Returns a copy of this string with any whitespace characters removed from the end. */
const String trimEnd() const throw();

/** Returns a copy of this string, having removed a specified set of characters from its start.
Characters are removed from the start of the string until it finds one that is not in the
specified set, and then it stops.
@param charactersToTrim the set of characters to remove. This must not be null.
@see trim, trimStart, trimCharactersAtEnd
*/
const String trimCharactersAtStart (const tchar* charactersToTrim) const throw();

/** Returns a copy of this string, having removed a specified set of characters from its end.
Characters are removed from the end of the string until it finds one that is not in the
specified set, and then it stops.
@param charactersToTrim the set of characters to remove. This must not be null.
@see trim, trimEnd, trimCharactersAtStart
*/
const String trimCharactersAtEnd (const tchar* charactersToTrim) const throw();

/** Returns an upper-case version of this string. */
const String toUpperCase() const throw();

@@ -13063,11 +13079,14 @@ public:
which will spawn new sockets for each new connection, so that these can
be handled in parallel by other threads.

This returns true if it manages to open the socket successfully.
@param portNumber the port number to listen on
@param localHostName the interface address to listen on - pass an empty
string to listen on all addresses
@returns true if it manages to open the socket successfully.

@see waitForNextConnection
*/
bool createListener (const int portNumber);
bool createListener (const int portNumber, const String& localHostName = String::empty);

/** When in "listener" mode, this waits for a connection and spawns it as a new
socket.
@@ -44635,8 +44654,8 @@ public:

/** Called by a CodeDocument when it is altered.
*/
virtual void codeDocumentChanged (const CodeDocument::Position& affectedTextStart,
const CodeDocument::Position& affectedTextEnd) = 0;
virtual void codeDocumentChanged (const Position& affectedTextStart,
const Position& affectedTextEnd) = 0;
};

/** Registers a listener object to receive callbacks when the document changes.
@@ -44703,7 +44722,8 @@ public:
private:
friend class CodeDocumentInsertAction;
friend class CodeDocumentDeleteAction;
friend class CodeDocument::Iterator;
friend class Iterator;
friend class Position;

OwnedArray <CodeDocumentLine> lines;
Array <Position*> positionsToMaintain;


+ 6
- 5
src/gui/components/code_editor/juce_CodeDocument.cpp View File

@@ -778,8 +778,8 @@ void CodeDocument::insert (const String& text, const int insertPos, const bool u
lastAffectedLine = lines.size();
}
int lineStart = newFirstLine->lineStartInFile;
for (int i = firstAffectedLine; i < lines.size(); ++i)
int i, lineStart = newFirstLine->lineStartInFile;
for (i = firstAffectedLine; i < lines.size(); ++i)
{
CodeDocumentLine* const l = lines.getUnchecked (i);
l->lineStartInFile = lineStart;
@@ -787,7 +787,7 @@ void CodeDocument::insert (const String& text, const int insertPos, const bool u
}
const int newTextLength = text.length();
for (int i = 0; i < positionsToMaintain.size(); ++i)
for (i = 0; i < positionsToMaintain.size(); ++i)
{
CodeDocument::Position* const p = positionsToMaintain.getUnchecked(i);
@@ -879,7 +879,8 @@ void CodeDocument::remove (const int startPos, const int endPos, const bool undo
lines.removeRange (firstAffectedLine + 1, numLinesToRemove);
}
for (int i = firstAffectedLine + 1; i < lines.size(); ++i)
int i;
for (i = firstAffectedLine + 1; i < lines.size(); ++i)
{
CodeDocumentLine* const l = lines.getUnchecked (i);
const CodeDocumentLine* const previousLine = lines.getUnchecked (i - 1);
@@ -888,7 +889,7 @@ void CodeDocument::remove (const int startPos, const int endPos, const bool undo
const int totalChars = getNumCharacters();
for (int i = 0; i < positionsToMaintain.size(); ++i)
for (i = 0; i < positionsToMaintain.size(); ++i)
{
CodeDocument::Position* p = positionsToMaintain.getUnchecked(i);


+ 4
- 3
src/gui/components/code_editor/juce_CodeDocument.h View File

@@ -302,8 +302,8 @@ public:
/** Called by a CodeDocument when it is altered.
*/
virtual void codeDocumentChanged (const CodeDocument::Position& affectedTextStart,
const CodeDocument::Position& affectedTextEnd) = 0;
virtual void codeDocumentChanged (const Position& affectedTextStart,
const Position& affectedTextEnd) = 0;
};
/** Registers a listener object to receive callbacks when the document changes.
@@ -372,7 +372,8 @@ public:
private:
friend class CodeDocumentInsertAction;
friend class CodeDocumentDeleteAction;
friend class CodeDocument::Iterator;
friend class Iterator;
friend class Position;
OwnedArray <CodeDocumentLine> lines;
Array <Position*> positionsToMaintain;


+ 0
- 1
src/gui/graphics/contexts/juce_Graphics.cpp View File

@@ -30,7 +30,6 @@ BEGIN_JUCE_NAMESPACE
#include "juce_Graphics.h"
#include "../fonts/juce_GlyphArrangement.h"
#include "../geometry/juce_PathStrokeType.h"
#include "juce_EdgeTable.h"
#include "juce_LowLevelGraphicsContext.h"
#include "../brushes/juce_GradientBrush.h"
#include "../brushes/juce_ImageBrush.h"


+ 0
- 1
src/gui/graphics/contexts/juce_LowLevelGraphicsContext.h View File

@@ -30,7 +30,6 @@
#include "../geometry/juce_Path.h"
#include "../geometry/juce_RectangleList.h"
#include "../colour/juce_ColourGradient.h"
#include "juce_EdgeTable.h"
//==============================================================================


+ 0
- 1
src/gui/graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp View File

@@ -28,7 +28,6 @@
BEGIN_JUCE_NAMESPACE
#include "juce_LowLevelGraphicsPostScriptRenderer.h"
#include "juce_EdgeTable.h"
#include "../imaging/juce_Image.h"
#include "../colour/juce_PixelFormats.h"
#include "../geometry/juce_PathStrokeType.h"


+ 1
- 1
src/gui/graphics/geometry/juce_Path.cpp View File

@@ -1604,7 +1604,7 @@ Image* Path::createMaskBitmap (const AffineTransform& transform,
Image* im = Image::createNativeImage (Image::SingleChannel, imagePosition.getWidth(), imagePosition.getHeight(), true);
EdgeTable edgeTable (Rectangle (0, 0, imagePosition.getWidth(), imagePosition.getHeight()),
*this, transform.translated (-imagePosition.getX(), -imagePosition.getY()));
*this, transform.translated ((float) -imagePosition.getX(), (float) -imagePosition.getY()));
int stride, pixelStride;
uint8* const pixels = (uint8*) im->lockPixelDataReadWrite (0, 0, imagePosition.getWidth(), imagePosition.getHeight(), stride, pixelStride);


+ 5
- 1
src/io/network/juce_Socket.cpp View File

@@ -429,7 +429,7 @@ void StreamingSocket::close()
}
//==============================================================================
bool StreamingSocket::createListener (const int newPortNumber)
bool StreamingSocket::createListener (const int newPortNumber, const String& localHostName)
{
if (connected)
close();
@@ -442,6 +442,10 @@ bool StreamingSocket::createListener (const int newPortNumber)
zerostruct (servTmpAddr);
servTmpAddr.sin_family = PF_INET;
servTmpAddr.sin_addr.s_addr = htonl (INADDR_ANY);
if (localHostName.isNotEmpty())
servTmpAddr.sin_addr.s_addr = ::inet_addr (localHostName.toUTF8());
servTmpAddr.sin_port = htons ((uint16) portNumber);
handle = (int) socket (AF_INET, SOCK_STREAM, 0);


+ 5
- 2
src/io/network/juce_Socket.h View File

@@ -135,11 +135,14 @@ public:
which will spawn new sockets for each new connection, so that these can
be handled in parallel by other threads.
This returns true if it manages to open the socket successfully.
@param portNumber the port number to listen on
@param localHostName the interface address to listen on - pass an empty
string to listen on all addresses
@returns true if it manages to open the socket successfully.
@see waitForNextConnection
*/
bool createListener (const int portNumber);
bool createListener (const int portNumber, const String& localHostName = String::empty);
/** When in "listener" mode, this waits for a connection and spawns it as a new
socket.


+ 1
- 1
src/native/windows/juce_win32_QuickTimeMovieComponent.cpp View File

@@ -477,7 +477,7 @@ bool QuickTimeMovieComponent::loadMovie (const File& movieFile_,
bool QuickTimeMovieComponent::loadMovie (const URL& movieURL,
const bool isControllerVisible)
{
return loadMovie ((InputStream*) movieURL_.createInputStream (false), isControllerVisible);
return loadMovie ((InputStream*) movieURL.createInputStream (false), isControllerVisible);
}
void QuickTimeMovieComponent::goToStart()


+ 33
- 0
src/text/juce_String.cpp View File

@@ -1748,6 +1748,39 @@ const String String::trimEnd() const throw()
return String (text->text, (int) (++endT - text->text));
}
const String String::trimCharactersAtStart (const tchar* charactersToTrim) const throw()
{
jassert (charactersToTrim != 0);
if (isEmpty())
return empty;
const tchar* t = text->text;
while (CharacterFunctions::indexOfCharFast (charactersToTrim, *t) >= 0)
++t;
if (t == text->text)
return *this;
else
return String (t);
}
const String String::trimCharactersAtEnd (const tchar* charactersToTrim) const throw()
{
jassert (charactersToTrim != 0);
if (isEmpty())
return empty;
const tchar* endT = text->text + (CharacterFunctions::length (text->text) - 1);
while ((endT >= text->text) && CharacterFunctions::indexOfCharFast (charactersToTrim, *endT) >= 0)
--endT;
return String (text->text, (int) (++endT - text->text));
}
//==============================================================================
const String String::retainCharacters (const tchar* const charactersToRetain) const throw()
{


+ 16
- 0
src/text/juce_String.h View File

@@ -613,6 +613,22 @@ public:
/** Returns a copy of this string with any whitespace characters removed from the end. */
const String trimEnd() const throw();
/** Returns a copy of this string, having removed a specified set of characters from its start.
Characters are removed from the start of the string until it finds one that is not in the
specified set, and then it stops.
@param charactersToTrim the set of characters to remove. This must not be null.
@see trim, trimStart, trimCharactersAtEnd
*/
const String trimCharactersAtStart (const tchar* charactersToTrim) const throw();
/** Returns a copy of this string, having removed a specified set of characters from its end.
Characters are removed from the end of the string until it finds one that is not in the
specified set, and then it stops.
@param charactersToTrim the set of characters to remove. This must not be null.
@see trim, trimEnd, trimCharactersAtStart
*/
const String trimCharactersAtEnd (const tchar* charactersToTrim) const throw();
//==============================================================================
/** Returns an upper-case version of this string. */
const String toUpperCase() const throw();


Loading…
Cancel
Save