static int writeBlock(FPDF_FILEWRITE* owner, const void* buffer, unsigned long size) { const PdfToFdWriter* writer = reinterpret_cast<PdfToFdWriter*>(owner); const bool success = writeAllBytes(writer->dstFd, buffer, size); if (!success) { ALOGE("Cannot write to file descriptor. Error:%d", errno); return 0; } return 1; }
static int writeBlock( /* [in] */ FPDF_FILEWRITE* owner, /* [in] */ const void* buffer, /* [in] */ unsigned long size) { const PdfToFdWriter* writer = reinterpret_cast<PdfToFdWriter*>(owner); const bool success = writeAllBytes(writer->dstFd, buffer, size); if (success < 0) { Logger::E(String("PdfEditor"), String("Cannot write to file descriptor. Error:%d"), errno); return 0; } return 1; }
static void writeBitmapPixels(JNIEnv* env, jclass /* clazz */, jobject jbitmap, jint fd) { // Get the info. AndroidBitmapInfo info; int result = AndroidBitmap_getInfo(env, jbitmap, &info); if (result < 0) { throwIllegalStateException(env, (char*) "Cannot get bitmap info"); return; } // Write the info. bool written = writeAllBytes(fd, (void*) &info, sizeof(AndroidBitmapInfo)); if (!written) { throwIllegalStateException(env, (char*) "Cannot write bitmap info"); return; } // Lock the pixels. void* pixels; result = AndroidBitmap_lockPixels(env, jbitmap, &pixels); if (result < 0) { throwIllegalStateException(env, (char*) "Cannot lock bitmap pixels"); return; } // Write the pixels. size_t byteCount = info.stride * info.height; written = writeAllBytes(fd, (void*) pixels, byteCount); if (!written) { throwIllegalStateException(env, (char*) "Cannot write bitmap pixels"); return; } // Unlock the pixels. result = AndroidBitmap_unlockPixels(env, jbitmap); if (result < 0) { throwIllegalStateException(env, (char*) "Cannot unlock bitmap pixels"); } }