27# define caps_print_debug(fmt, ...) caps_print_debug_template(fmt, ##__VA_ARGS__)
29# define caps_print_debug(fmt, ...)
33#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
35#define DOTS_TO_BYTES(x) ((x + 7U) / 8U)
37#define DOTS_TO_WORDS(x) ((x + 15U) / 16U)
39#define BIT(x) (1 << (x))
45# error "Missing 'PACKAGE' macro: include 'config.h' first"
51# define _(string) dgettext(PACKAGE, string)
55# define _(string) (string)
60#define NLS_(string) (string)
70#define COLOUR_VAL_DARK 0x00
74#define COLOUR_VAL_BRIGHT 0xff
79#define PRINT_DOT_VAL 0x00
87#define DEFAULT_QL_LINE_SIZE 90
381#define QL_MEDIA_TYPE_CONTINUOUS 0xa
382#define QL_MEDIA_TYPE_DIE_CUT 0xb
383#define QL_QUALITY_PRINT 0x40
384#define QL_FAST_PRINT 0x00
398#define QL_MAX_SELECTIONS 10
503#define QL_FIRST_PAGE 1
508#define QL_NEXT_PAGE 0
574 unsigned char wire_data;
579 for (x = 0, u = input_cnt; u >= 8; x++, u -= 8) {
609 return (
unsigned)(((pts * (double)resolution) / 72.0) + 0.5);
617static inline unsigned mm_to_pixel(
unsigned mm,
unsigned resolution)
619 return (
unsigned)(mm * (double)resolution / 25.4);
628 return pts * 25.4 / 72.0;
637 return (mm * 72.0) / 25.4;
645static inline double pixel_to_mm(
unsigned pixel,
unsigned resolution)
647 return (pixel / (
double)resolution) * 25.4;
static struct caps_coordinator data
Definition: caps-printing-coordinator.c:83
#define __nonstring
Definition: libcapsbase.h:174
#define __packed
Definition: libcapsbase.h:103
#define __nonnull(params)
Definition: libcapsbase.h:84
#define caps_assert(expr)
Assert the given expression is true, else terminate the program.
Definition: libcapsbase.h:602
Basic API for everything else of the CAPS universe.
Generic printer driver specific API to simplify drivers.
Definition of known QL printer devices.
ql_printer
Definition: ql-printer-series.h:19
static unsigned pts_to_pixel(double pts, unsigned resolution)
Definition: ql-series.h:607
unsigned char conv_type
Definition: ql-series.h:98
static void transform_to_monochrome(size_t input_cnt, const conv_type input[input_cnt], unsigned char *data)
Definition: ql-series.h:572
void halftone_line_no_dither(struct halftone_converter *cnv)
Definition: ql-dither.c:491
int ql_dk_information_get(struct dk_roll_types *medium, const char *name)
Definition: ql-series.c:564
int ql_numerical_setting_read(struct ql_drv *t, const char *section, const char *keyword)
Definition: ql-series.c:30
int ql_status_request(struct ql_drv *t, unsigned char buffer[32]) __wur
Definition: ql-protocol.c:357
int ql_last_page_print(struct ql_drv *t) __wur
Definition: ql-protocol.c:55
void move_in_next_line(struct halftone_converter *cnv, const struct caps_dot_grey raw[cnv->pixel_count])
Definition: ql-dither.c:107
int ql_page_print(struct ql_drv *t) __wur
Definition: ql-protocol.c:48
void ql_driver_power_selection_setup(struct ql_drv *t, struct caps_ppd_base *base)
Definition: ql-series.c:337
int ql_invalidate_and_initialize(struct ql_drv *t) __wur
Definition: ql-protocol.c:109
void halftone_line_ordered(struct halftone_converter *cnv)
Definition: ql-dither.c:451
int ql_auto_powerdown(struct ql_drv *t, unsigned short time_out) __wur
Definition: ql-protocol.c:749
#define PRINT_DOT_VAL
Definition: ql-series.h:79
static double pixel_to_mm(unsigned pixel, unsigned resolution)
Definition: ql-series.h:645
void ql_driver_base_setup(struct ql_drv *t)
Definition: ql-series.c:267
void ql_driver_halftone_selection_setup(struct ql_drv *t, struct caps_ppd_base *base)
Definition: ql-series.c:366
void sliding_halftone_get(struct halftone_converter *cnv)
Definition: ql-dither.c:60
static double mm_to_pts(double mm)
Definition: ql-series.h:635
void ql_driver_bi_colour_medium_selection_setup(struct ql_drv *t, struct caps_ppd_base *base)
Definition: ql-series.c:411
int ql_job_header_generate(struct ql_drv *t)
Definition: ql-protocol.c:645
void halftone_line_with_error_diffusion(struct halftone_converter *cnv)
Definition: ql-dither.c:423
static unsigned mm_to_pixel(unsigned mm, unsigned resolution)
Definition: ql-series.h:617
void sliding_halftone_put(struct halftone_converter *cnv)
Definition: ql-dither.c:78
int ql_page_header_generate(struct ql_drv *t, int first_page) __wur
Definition: ql-protocol.c:658
int ql_reset(struct ql_drv *t) __wur
Definition: ql-protocol.c:95
int ql_monochome_page_print(struct ql_drv *t)
Definition: ql-monochrome.c:219
void ql_driver_raster_crop(struct ql_drv *t)
Definition: ql-series.c:593
dk_caps
Definition: ql-series.h:279
@ DK_CAP_DIE_CUT
Definition: ql-series.h:282
@ DK_CAP_RED
Definition: ql-series.h:283
@ DK_CAP_CONTINUOUS
Definition: ql-series.h:281
@ DK_CAP_UNKNOWN
Definition: ql-series.h:280
int ql_auto_powerup(struct ql_drv *t, unsigned short mode) __wur
Definition: ql-protocol.c:775
#define BIT(x)
Definition: ql-series.h:39
int ql_driver_send(struct ql_drv *t, size_t count, const void *data, int flush) __wur
Definition: ql-series.c:642
void move_in_empty_line(struct halftone_converter *cnv, conv_type val)
Definition: ql-dither.c:133
int ql_driver_data_send(struct ql_drv *t, size_t count, const void *data, int flush) __wur
Definition: ql-series.c:669
void ql_driver_job_bi_colour_medium_get(struct ql_drv *t)
Definition: ql-series.c:429
enum ql_half_tone ql_driver_job_halftone_get(struct ql_drv *t)
Definition: ql-series.c:372
ql_half_tone
Definition: ql-series.h:92
@ QL_NONE
Definition: ql-series.h:94
@ QL_ORDERED
Definition: ql-series.h:95
@ QL_ERROR_DIFFUSION
Definition: ql-series.h:96
@ QL_UNKNOWN
Definition: ql-series.h:93
static double pts_to_mm(double pts)
Definition: ql-series.h:626
static struct ql_drv * to_ql_drv(void *d)
Definition: ql-series.h:269
Defines an area by its left bottom and right top coordinates in floating point values.
Definition: libcapsbase.h:361
One byte per component, one component per dot.
Definition: libcapsbase.h:400
libcapsdriver internal data collection
Definition: libcapsdriver-local.h:124
Basic description of common features a printing device/printing driver can provide.
Definition: libcapsppd.h:322
QL printers roll types.
Definition: ql-series.h:287
enum dk_caps caps
Definition: ql-series.h:290
const char * like
Definition: ql-series.h:289
const char * dkname
Definition: ql-series.h:288
float margin
Definition: ql-series.h:291
Halftone converter run-time data.
Definition: ql-series.h:105
size_t pixel_count
Definition: ql-series.h:109
conv_type * sliding_lines[2]
Definition: ql-series.h:110
signed int threshold
Definition: ql-series.h:108
unsigned right_left
Definition: ql-series.h:106
signed int dotval[2]
Definition: ql-series.h:107
The main QL driver instance description.
Definition: ql-series.h:235
unsigned auto_cutter
Definition: ql-series.h:244
unsigned bi_colour_medium_present
Definition: ql-series.h:257
unsigned min_width
Definition: ql-series.h:253
unsigned pre_sized
Definition: ql-series.h:258
unsigned max_length
Definition: ql-series.h:252
unsigned dot_count
Definition: ql-series.h:242
unsigned manual_cutter
Definition: ql-series.h:243
unsigned max_margin
Definition: ql-series.h:250
FILE * writeto
Definition: ql-series.h:237
unsigned max_width
Definition: ql-series.h:254
unsigned bi_colour_prn_caps
Definition: ql-series.h:245
struct caps_area print_small_margins
Definition: ql-series.h:260
unsigned bytes_per_line
Definition: ql-series.h:241
unsigned leading_bytes
Definition: ql-series.h:240
unsigned min_length
Definition: ql-series.h:251
struct caps_drv * drvi
Definition: ql-series.h:236
enum ql_printer sel_prn
Definition: ql-series.h:238
struct ql_job job
Definition: ql-series.h:262
unsigned min_margin
Definition: ql-series.h:249
unsigned high_density_prn_caps
Definition: ql-series.h:246
struct caps_area print_large_margins
Definition: ql-series.h:259
Collected data for the current job to process.
Definition: ql-series.h:222
double resx
Definition: ql-series.h:223
double resy
Definition: ql-series.h:223
enum ql_half_tone half_tone_type
Definition: ql-series.h:224
struct ql_trim trim
Definition: ql-series.h:226
int first_page
Definition: ql-series.h:227
unsigned high_density_print
Definition: ql-series.h:225
A simple QL printer command declaration.
Definition: ql-series.h:387
uint8_t command
Definition: ql-series.h:389
uint8_t option
Definition: ql-series.h:390
uint8_t value
Definition: ql-series.h:391
uint8_t escape
Definition: ql-series.h:388
Trim the input raster to the available media.
Definition: ql-series.h:201
double medium_width_mm
Definition: ql-series.h:208
unsigned left_skip
Definition: ql-series.h:215
unsigned raster_height
Definition: ql-series.h:203
unsigned left_keep
Definition: ql-series.h:217
unsigned medium_height
Definition: ql-series.h:206
unsigned top_offset
Definition: ql-series.h:212
unsigned raster_width
Definition: ql-series.h:202
unsigned left_offset
Definition: ql-series.h:216
unsigned top_keep
Definition: ql-series.h:213
double medium_height_mm
Definition: ql-series.h:209
unsigned medium_width
Definition: ql-series.h:205
unsigned top_skip
Definition: ql-series.h:211