CAPS Universe documentation  1.0.4
All you need to know to be successful
encode_method_1030.h
Go to the documentation of this file.
1#pragma once
2
3/*
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 *
6 * (c) 2020 Juergen Borleis <projects@caps-printing.org>
7 *
8 * This library is free software; you can redistribute it and/or modify it under
9 * the terms of the GNU General Public License as published by the Free
10 * Software Foundation; either version 2 of the License, or (at your option)
11 * any later version.
12 */
13
14#include <stdio.h>
15#include <stdint.h>
16#include <stddef.h>
17
194{
195 uint8_t edit_count;
196 uint8_t edits[0];
197} __packed;
198
207{
208 uint16_t line_cnt;
209 uint8_t data[0];
210} __packed;
211
216#define C1030_MAX_BYTES_IN_ONE_BLOCK 16350
217
221#define MAX_LINE_LENGTH 1275
222
227#define C1030_LINE_LENGTH (MAX_LINE_LENGTH + 16)
228
232 size_t idx;
233};
234
237 uint8_t *out;
238 size_t avail_cnt;
239 size_t bused_cnt;
240 unsigned clines;
241 unsigned blines;
242};
251#define C1030_MAX_LINES_IN_ONE_BAND 256
252
254#define C1030_LINE_IS_EMPTY 0xff
256#define C1030_LINE_IS_EQUAL 0x00
257
262void hl_c1030_block_init(struct cm1030_band *block) __nonnull();
267void hl_c1030_block_exit(struct cm1030_band *block) __nonnull();
288void hl_c1030_line_edit(struct cm1030_line *c, size_t cnt, const uint8_t line[cnt] __nonstring, const uint8_t * __restrict last __nonstring) __nonnull((1,3));
306int hl_c1030_block_line_add(struct cm1030_band *block, const struct cm1030_line *line, FILE *outstream) __nonnull();
330int hl_c1030_block_flush(struct cm1030_band *band, FILE *outstream) __nonnull();
350int hl_c1030_block_pad(struct cm1030_band *block, unsigned missing_line_cnt, FILE *outstream) __nonnull();
int hl_c1030_block_line_add(struct cm1030_band *block, const struct cm1030_line *line, FILE *outstream)
Definition: encode_method_1030.c:580
int hl_c1030_block_pad(struct cm1030_band *block, unsigned missing_line_cnt, FILE *outstream)
Definition: encode_method_1030.c:609
void hl_c1030_block_exit(struct cm1030_band *block)
Definition: encode_method_1030.c:635
#define C1030_LINE_LENGTH
Definition: encode_method_1030.h:227
void hl_c1030_block_init(struct cm1030_band *block)
Definition: encode_method_1030.c:624
void hl_c1030_line_edit(struct cm1030_line *c, size_t cnt, const uint8_t line[cnt], const uint8_t *last)
Definition: encode_method_1030.c:402
int hl_c1030_block_flush(struct cm1030_band *band, FILE *outstream)
Definition: encode_method_1030.c:538
#define __nonstring
Definition: libcapsbase.h:174
#define __packed
Definition: libcapsbase.h:103
#define __nonnull(params)
Definition: libcapsbase.h:84
Definition: encode_method_1030.h:236
unsigned clines
Definition: encode_method_1030.h:240
size_t bused_cnt
Definition: encode_method_1030.h:239
uint8_t * out
Definition: encode_method_1030.h:237
size_t avail_cnt
Definition: encode_method_1030.h:238
unsigned blines
Definition: encode_method_1030.h:241
Definition: encode_method_1030.h:207
uint16_t line_cnt
Definition: encode_method_1030.h:208
uint8_t data[0]
Definition: encode_method_1030.h:209
Definition: encode_method_1030.h:194
uint8_t edit_count
Definition: encode_method_1030.h:195
uint8_t edits[0]
Definition: encode_method_1030.h:196
Definition: encode_method_1030.h:230
size_t idx
Definition: encode_method_1030.h:232
uint8_t data[(1275+16)]
Definition: encode_method_1030.h:231