From e4f8681e796d3f459a35cebfef20b2c27713e06a Mon Sep 17 00:00:00 2001 From: Philippe Houdoin Date: Fri, 19 Nov 2010 13:10:16 +0000 Subject: [PATCH] * Switch to B_RGB24 output format * Renamed everything after WebP, as it turns out the official name is case-sensitive. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39505 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/translators/webp/ConfigView.cpp | 2 +- src/add-ons/translators/webp/Jamfile | 4 +- ...{WEBPTranslator.cpp => WebPTranslator.cpp} | 47 ++++++++----------- .../{WEBPTranslator.h => WebPTranslator.h} | 15 ++---- src/add-ons/translators/webp/main.cpp | 9 ++-- src/data/beos_mime/image/webp | 2 +- 6 files changed, 32 insertions(+), 47 deletions(-) rename src/add-ons/translators/webp/{WEBPTranslator.cpp => WebPTranslator.cpp} (82%) rename src/add-ons/translators/webp/{WEBPTranslator.h => WebPTranslator.h} (77%) diff --git a/src/add-ons/translators/webp/ConfigView.cpp b/src/add-ons/translators/webp/ConfigView.cpp index 245e8472e8..0da5f679d2 100644 --- a/src/add-ons/translators/webp/ConfigView.cpp +++ b/src/add-ons/translators/webp/ConfigView.cpp @@ -8,7 +8,7 @@ #include "ConfigView.h" -#include "WEBPTranslator.h" +#include "WebPTranslator.h" #include #include diff --git a/src/add-ons/translators/webp/Jamfile b/src/add-ons/translators/webp/Jamfile index fcb97a1eff..f44b4ab271 100644 --- a/src/add-ons/translators/webp/Jamfile +++ b/src/add-ons/translators/webp/Jamfile @@ -6,11 +6,11 @@ SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) shared ] ; SubDirHdrs [ FDirName $(SUBDIR) webp ] ; -Translator WEBPTranslator : +Translator WebPTranslator : main.cpp - WEBPTranslator.cpp + WebPTranslator.cpp ConfigView.cpp bits.c diff --git a/src/add-ons/translators/webp/WEBPTranslator.cpp b/src/add-ons/translators/webp/WebPTranslator.cpp similarity index 82% rename from src/add-ons/translators/webp/WEBPTranslator.cpp rename to src/add-ons/translators/webp/WebPTranslator.cpp index cc49fc983f..2c96140c95 100644 --- a/src/add-ons/translators/webp/WEBPTranslator.cpp +++ b/src/add-ons/translators/webp/WebPTranslator.cpp @@ -7,7 +7,7 @@ */ -#include "WEBPTranslator.h" +#include "WebPTranslator.h" #include "ConfigView.h" #include "decode.h" @@ -48,7 +48,7 @@ translation_format sInputFormats[] = { WEBP_IN_QUALITY, WEBP_IN_CAPABILITY, "image/webp", - "WEBP image" + "WebP image" }, }; @@ -60,7 +60,7 @@ translation_format sOutputFormats[] = { BITS_OUT_QUALITY, BITS_OUT_CAPABILITY, "image/x-be-bitmap", - "Be Bitmap Format (WEBPTranslator)" + "Be Bitmap Format (WebPTranslator)" }, }; @@ -78,25 +78,25 @@ const uint32 kNumDefaultSettings = sizeof(sDefaultSettings) / sizeof(TranSetting // #pragma mark - -WEBPTranslator::WEBPTranslator() - : BaseTranslator("WEBP images", "WEBP image translator", +WebPTranslator::WebPTranslator() + : BaseTranslator("WebP images", "WebP image translator", WEBP_TRANSLATOR_VERSION, sInputFormats, kNumInputFormats, sOutputFormats, kNumOutputFormats, - "WEBPTranslator_Settings", + "WebPTranslator_Settings", sDefaultSettings, kNumDefaultSettings, B_TRANSLATOR_BITMAP, WEBP_IMAGE_FORMAT) { } -WEBPTranslator::~WEBPTranslator() +WebPTranslator::~WebPTranslator() { } status_t -WEBPTranslator::DerivedIdentify(BPositionIO *stream, +WebPTranslator::DerivedIdentify(BPositionIO *stream, const translation_format *format, BMessage *settings, translator_info *info, uint32 outType) { @@ -121,7 +121,7 @@ WEBPTranslator::DerivedIdentify(BPositionIO *stream, info->group = B_TRANSLATOR_BITMAP; info->quality = WEBP_IN_QUALITY; info->capability = WEBP_IN_CAPABILITY; - snprintf(info->name, sizeof(info->name), "WEBP image"); + snprintf(info->name, sizeof(info->name), "WebP image"); strcpy(info->MIME, "image/webp"); return B_OK; @@ -129,7 +129,7 @@ WEBPTranslator::DerivedIdentify(BPositionIO *stream, status_t -WEBPTranslator::DerivedTranslate(BPositionIO *stream, +WebPTranslator::DerivedTranslate(BPositionIO *stream, const translator_info *info, BMessage *settings, uint32 outType, BPositionIO *target, int32 baseType) { @@ -162,7 +162,7 @@ WEBPTranslator::DerivedTranslate(BPositionIO *stream, printf("WebPDecodeRGB(%p, %lld) failed.\n", streamData, streamSize); return B_ILLEGAL_DATA; } - printf("WebPDecodeRGB(%p, %lld) succeed: %d x %d WEBP image decoded.\n", + printf("WebPDecodeRGB(%p, %lld) succeed: %d x %d WebP image decoded.\n", streamData, streamSize, width, height); FreeAllocation _(out); @@ -172,9 +172,9 @@ WEBPTranslator::DerivedTranslate(BPositionIO *stream, TranslatorBitmap bitmapHeader; bitmapHeader.magic = B_TRANSLATOR_BITMAP; bitmapHeader.bounds.Set(0, 0, width - 1, height - 1); - bitmapHeader.rowBytes = width * 4; - bitmapHeader.colors = B_RGB32; - bitmapHeader.dataSize = width * 4 * height; + bitmapHeader.rowBytes = width * 3; + bitmapHeader.colors = B_RGB24; + bitmapHeader.dataSize = width * 3 * height; // write out Be's Bitmap header swap_data(B_UINT32_TYPE, &bitmapHeader, sizeof(TranslatorBitmap), @@ -192,28 +192,19 @@ WEBPTranslator::DerivedTranslate(BPositionIO *stream, if (headerOnly) return B_OK; -/* - bytesWritten = target->Write(out, dataSize); - if (bytesWritten < B_OK) - return bytesWritten; - - if (bytesWritten != (ssize_t)dataSize) - return B_IO_ERROR; -*/ - uint32 dataLeft = dataSize; uint8* p = out; - uint8 rgb[4] = { 0, 0, 0, 255}; + uint8 rgb[3]; while (dataLeft) { rgb[0] = *(p+2); rgb[1] = *(p+1); rgb[2] = *(p); - bytesWritten = target->Write(rgb, 4); + bytesWritten = target->Write(rgb, 3); if (bytesWritten < B_OK) return bytesWritten; - if (bytesWritten != 4) + if (bytesWritten != 3) return B_IO_ERROR; p += 3; @@ -226,7 +217,7 @@ WEBPTranslator::DerivedTranslate(BPositionIO *stream, BView * -WEBPTranslator::NewConfigView(TranslatorSettings *settings) +WebPTranslator::NewConfigView(TranslatorSettings *settings) { return new ConfigView(); } @@ -241,5 +232,5 @@ make_nth_translator(int32 n, image_id you, uint32 flags, ...) if (n != 0) return NULL; - return new WEBPTranslator(); + return new WebPTranslator(); } diff --git a/src/add-ons/translators/webp/WEBPTranslator.h b/src/add-ons/translators/webp/WebPTranslator.h similarity index 77% rename from src/add-ons/translators/webp/WEBPTranslator.h rename to src/add-ons/translators/webp/WebPTranslator.h index b1fc5d0084..b170f2da7c 100644 --- a/src/add-ons/translators/webp/WEBPTranslator.h +++ b/src/add-ons/translators/webp/WebPTranslator.h @@ -21,7 +21,7 @@ #include "BaseTranslator.h" #define WEBP_TRANSLATOR_VERSION B_TRANSLATION_MAKE_VERSION(0,1,0) -#define WEBP_IMAGE_FORMAT 'WEBP' +#define WEBP_IMAGE_FORMAT 'WebP' #define WEBP_IN_QUALITY 0.90 #define WEBP_IN_CAPABILITY 0.90 @@ -29,9 +29,9 @@ #define BITS_OUT_QUALITY 1 #define BITS_OUT_CAPABILITY 0.9 -class WEBPTranslator : public BaseTranslator { +class WebPTranslator : public BaseTranslator { public: - WEBPTranslator(); + WebPTranslator(); virtual status_t DerivedIdentify(BPositionIO *inSource, const translation_format *inFormat, BMessage *ioExtension, @@ -44,17 +44,10 @@ public: virtual BView *NewConfigView(TranslatorSettings *settings); protected: - virtual ~WEBPTranslator(); + virtual ~WebPTranslator(); // this is protected because the object is deleted by the // Release() function instead of being deleted directly by // the user - -private: - status_t translate_from_bits(BPositionIO *inSource, uint32 outType, - BPositionIO *outDestination); - - status_t translate_from_tiff(BPositionIO *inSource, BMessage *ioExtension, - uint32 outType, BPositionIO *outDestination); }; #endif // #ifndef WEBP_TRANSLATOR_H diff --git a/src/add-ons/translators/webp/main.cpp b/src/add-ons/translators/webp/main.cpp index a00c50c9b5..a0d5e957d7 100644 --- a/src/add-ons/translators/webp/main.cpp +++ b/src/add-ons/translators/webp/main.cpp @@ -8,15 +8,16 @@ #include -#include "WEBPTranslator.h" + +#include "WebPTranslator.h" #include "TranslatorWindow.h" int main() { - BApplication app("application/x-vnd.Haiku-WEBPTranslator"); - if (LaunchTranslatorWindow(new WEBPTranslator, - "WEBP Settings") != B_OK) + BApplication app("application/x-vnd.Haiku-WebPTranslator"); + if (LaunchTranslatorWindow(new WebPTranslator, + "WebP Settings") != B_OK) return 1; app.Run(); diff --git a/src/data/beos_mime/image/webp b/src/data/beos_mime/image/webp index 272de9acbe..acc72c1420 100644 --- a/src/data/beos_mime/image/webp +++ b/src/data/beos_mime/image/webp @@ -5,7 +5,7 @@ resource(1, "META:TYPE") "image/webp"; resource(2, "META:SNIFF_RULE") "0.50 (\"RIFF????WEBP\" & 0xffffffff00000000ffffffff)"; -resource(3, "META:S:DESC") #'MSDC' "WEBP image"; +resource(3, "META:S:DESC") #'MSDC' "WebP image"; resource(4, "META:EXTENS") message(234) { "extensions" = "webp",