#ifndef WOFF2_WOFF2_DEC_H_
#define WOFF2_WOFF2_DEC_H_
#include <stddef.h>
#include <inttypes.h>
#include <woff2/output.h>
extern "C" {
size_t wuff_woff2_compute_final_size(const uint8_t *data, size_t length);
uint8_t *wuff_woff2_decode(const uint8_t *data, size_t length, size_t *result_length);
void wuff_woff2_free(uint8_t *ptr, size_t length);
}
namespace woff2 {
size_t ComputeWOFF2FinalSize(const uint8_t *data, size_t length) {
return wuff_woff2_compute_final_size(data, length);
}
bool ConvertWOFF2ToTTF(const uint8_t *data, size_t length,
WOFF2Out* out) {
size_t result_length = 0;
uint8_t *result = wuff_woff2_decode(data, length, &result_length);
if (result == NULL) {
return false;
}
bool ok = out->Write(result, result_length);
wuff_woff2_free(result, result_length);
return ok;
}
bool ConvertWOFF2ToTTF(uint8_t *result, size_t result_length,
const uint8_t *data, size_t length) {
WOFF2MemoryOut out(result, result_length);
return ConvertWOFF2ToTTF(data, length, &out);
}
}
#endif