| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- /* libbrotlienc Vala bindings
- *
- * Bindings for the Brotli compression library (encoder only)
- * Based on brotli encode.h and types.h
- */
- [CCode (cprefix = "BROTLI_", lower_case_cprefix = "brotli_", cheader_filename = "brotli/encode.h,brotli/types.h")]
- namespace Brotli {
- /* Boolean type */
- [CCode (cname = "BROTLI_BOOL", has_type_id = false, default_value = "BROTLI_FALSE")]
- public struct Bool : int {
- }
-
- [CCode (cname = "BROTLI_TRUE")]
- public const Bool TRUE;
- [CCode (cname = "BROTLI_FALSE")]
- public const Bool FALSE;
-
- [CCode (cname = "TO_BROTLI_BOOL")]
- public Bool to_bool(int x);
- /* Memory allocation callbacks */
- [CCode (cname = "brotli_alloc_func", has_target = false)]
- public delegate void* AllocFunc(void* opaque, size_t size);
-
- [CCode (cname = "brotli_free_func", has_target = false)]
- public delegate void FreeFunc(void* opaque, void* address);
- /* Constants from encode.h */
- [CCode (cname = "BROTLI_MIN_WINDOW_BITS")]
- public const int MIN_WINDOW_BITS;
- [CCode (cname = "BROTLI_MAX_WINDOW_BITS")]
- public const int MAX_WINDOW_BITS;
- [CCode (cname = "BROTLI_LARGE_MAX_WINDOW_BITS")]
- public const int LARGE_MAX_WINDOW_BITS;
- [CCode (cname = "BROTLI_MIN_INPUT_BLOCK_BITS")]
- public const int MIN_INPUT_BLOCK_BITS;
- [CCode (cname = "BROTLI_MAX_INPUT_BLOCK_BITS")]
- public const int MAX_INPUT_BLOCK_BITS;
- [CCode (cname = "BROTLI_MIN_QUALITY")]
- public const int MIN_QUALITY;
- [CCode (cname = "BROTLI_MAX_QUALITY")]
- public const int MAX_QUALITY;
- [CCode (cname = "BROTLI_DEFAULT_QUALITY")]
- public const int DEFAULT_QUALITY;
- [CCode (cname = "BROTLI_DEFAULT_WINDOW")]
- public const int DEFAULT_WINDOW;
- /* Encoder mode */
- [CCode (cname = "BrotliEncoderMode", has_type_id = false)]
- public enum EncoderMode {
- [CCode (cname = "BROTLI_MODE_GENERIC")]
- GENERIC,
- [CCode (cname = "BROTLI_MODE_TEXT")]
- TEXT,
- [CCode (cname = "BROTLI_MODE_FONT")]
- FONT
- }
- /* Encoder operation for streaming */
- [CCode (cname = "BrotliEncoderOperation", has_type_id = false)]
- public enum EncoderOperation {
- [CCode (cname = "BROTLI_OPERATION_PROCESS")]
- PROCESS,
- [CCode (cname = "BROTLI_OPERATION_FLUSH")]
- FLUSH,
- [CCode (cname = "BROTLI_OPERATION_FINISH")]
- FINISH,
- [CCode (cname = "BROTLI_OPERATION_EMIT_METADATA")]
- EMIT_METADATA
- }
- /* Encoder parameters */
- [CCode (cname = "BrotliEncoderParameter", has_type_id = false)]
- public enum EncoderParameter {
- [CCode (cname = "BROTLI_PARAM_MODE")]
- MODE,
- [CCode (cname = "BROTLI_PARAM_QUALITY")]
- QUALITY,
- [CCode (cname = "BROTLI_PARAM_LGWIN")]
- LGWIN,
- [CCode (cname = "BROTLI_PARAM_LGBLOCK")]
- LGBLOCK,
- [CCode (cname = "BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING")]
- DISABLE_LITERAL_CONTEXT_MODELING,
- [CCode (cname = "BROTLI_PARAM_SIZE_HINT")]
- SIZE_HINT,
- [CCode (cname = "BROTLI_PARAM_LARGE_WINDOW")]
- LARGE_WINDOW,
- [CCode (cname = "BROTLI_PARAM_NPOSTFIX")]
- NPOSTFIX,
- [CCode (cname = "BROTLI_PARAM_NDIRECT")]
- NDIRECT,
- [CCode (cname = "BROTLI_PARAM_STREAM_OFFSET")]
- STREAM_OFFSET
- }
- /* Encoder state - opaque structure */
- [CCode (cname = "BrotliEncoderState", free_function = "BrotliEncoderDestroyInstance")]
- [Compact]
- public class EncoderState {
- [CCode (cname = "BrotliEncoderCreateInstance")]
- public EncoderState(AllocFunc? alloc_func, FreeFunc? free_func, void* opaque);
-
- [CCode (cname = "BrotliEncoderSetParameter")]
- public Bool set_parameter(EncoderParameter param, uint32 value);
-
- [CCode (cname = "BrotliEncoderCompressStream")]
- public Bool compress_stream(EncoderOperation op, ref size_t available_in,
- ref uint8* next_in, ref size_t available_out, ref uint8* next_out,
- out size_t total_out);
-
- [CCode (cname = "BrotliEncoderIsFinished")]
- public Bool is_finished();
-
- [CCode (cname = "BrotliEncoderHasMoreOutput")]
- public Bool has_more_output();
-
- [CCode (cname = "BrotliEncoderTakeOutput")]
- public unowned uint8* take_output(ref size_t size);
- }
- /* Encoder one-shot functions */
- [CCode (cname = "BrotliEncoderMaxCompressedSize")]
- public size_t encoder_max_compressed_size(size_t input_size);
-
- [CCode (cname = "BrotliEncoderCompress")]
- public Bool encoder_compress(int quality, int lgwin, EncoderMode mode,
- size_t input_size, uint8* input_buffer,
- ref size_t encoded_size, uint8* encoded_buffer);
-
- [CCode (cname = "BrotliEncoderVersion")]
- public uint32 encoder_version();
- }
|