diff --git a/headers/libs/print/libprint/Halftone.h b/headers/libs/print/libprint/Halftone.h index f72691a8f6..42297495d1 100644 --- a/headers/libs/print/libprint/Halftone.h +++ b/headers/libs/print/libprint/Halftone.h @@ -102,6 +102,14 @@ protected: void SetupErrorBuffer(int x, int y, int width); void DitherFloydSteinberg(uchar* destination, const uchar* source, int x, int y, int width); + // Do nothing method to get around a bug in + // the gcc2 cross-compiler built on Mac OS X + // Lion where a compiler error occurs when + // assigning a member function pointer to NULL + // or 0: cast specifies signature type. + // However, this should be legal according to + // the C++03 standard. + void DitherNone(uchar*, const uchar*, int, int, int) {}; private: enum { diff --git a/src/add-ons/media/media-add-ons/mixer/Resampler.cpp b/src/add-ons/media/media-add-ons/mixer/Resampler.cpp index 1a758c23b4..1b4f987ebf 100644 --- a/src/add-ons/media/media-add-ons/mixer/Resampler.cpp +++ b/src/add-ons/media/media-add-ons/mixer/Resampler.cpp @@ -21,7 +21,7 @@ Resampler::Resampler(uint32 src_format, uint32 dst_format) : - fFunc(0) + fFunc(&Resampler::no_conversion) { if (dst_format == media_raw_audio_format::B_AUDIO_FLOAT) { switch (src_format) { @@ -81,7 +81,7 @@ Resampler::~Resampler() status_t Resampler::InitCheck() const { - return fFunc != 0 ? B_OK : B_ERROR; + return fFunc != &Resampler::no_conversion ? B_OK : B_ERROR; } diff --git a/src/add-ons/media/media-add-ons/mixer/Resampler.h b/src/add-ons/media/media-add-ons/mixer/Resampler.h index 9ad1b64b5f..3e6b531e52 100644 --- a/src/add-ons/media/media-add-ons/mixer/Resampler.h +++ b/src/add-ons/media/media-add-ons/mixer/Resampler.h @@ -65,6 +65,15 @@ private: int32 srcSampleOffset, int32 srcSampleCount, void* dest, int32 destSampleOffset, int32 destSampleCount, float gain); + // Do nothing method to get around a bug in + // the gcc2 cross-compiler built on Mac OS X + // Lion where a compiler error occurs when + // assigning a member function pointer to NULL + // or 0: cast specifies signature type. + // However, this should be legal according to + // the C++03 standard. + void no_conversion(const void*, int32, int32, void*, + int32, int32, float) {}; }; diff --git a/src/libs/print/libprint/Halftone.cpp b/src/libs/print/libprint/Halftone.cpp index 82b5e6e0bd..10e37c0009 100644 --- a/src/libs/print/libprint/Halftone.cpp +++ b/src/libs/print/libprint/Halftone.cpp @@ -31,21 +31,21 @@ ToGray(ColorRGB32 c) static uint GetRedValue(ColorRGB32 c) { - return c.little.red; + return c.little.red; } static uint GetGreenValue(ColorRGB32 c) { - return c.little.green; + return c.little.green; } static uint GetBlueValue(ColorRGB32 c) { - return c.little.blue; + return c.little.blue; } @@ -56,11 +56,11 @@ Halftone::Halftone(color_space colorSpace, double gamma, double min, fGray = ToGray; SetPlanes(kPlaneMonochrome1); SetBlackValue(kHighValueMeansBlack); - + InitFloydSteinberg(); - + CreateGammaTable(gamma, min); - + if (ditherType == kTypeFloydSteinberg) { fDither = &Halftone::DitherFloydSteinberg; return; @@ -79,13 +79,13 @@ Halftone::Halftone(color_space colorSpace, double gamma, double min, } switch (colorSpace) { - case B_RGB32: - case B_RGB32_BIG: - fDither = &Halftone::DitherRGB32; - break; - default: - fDither = NULL; - break; + case B_RGB32: + case B_RGB32_BIG: + fDither = &Halftone::DitherRGB32; + break; + default: + fDither = &Halftone::DitherNone; + break; } } @@ -364,4 +364,3 @@ Halftone::DitherFloydSteinberg(uchar *destination, const uchar* source0, *destination = ConvertUsingBlackValue(cur); } } -