From b93c4adf0c9573e8e94252f2e7f6f2675c7a557e Mon Sep 17 00:00:00 2001 From: Evan Miller Date: Sun, 15 Jan 2023 10:54:23 -0500 Subject: [PATCH] Tumble support --- src/job.cc | 4 +++- src/job.h | 2 ++ src/main.cc | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/job.cc b/src/job.cc index fa6fb43..3321ab9 100644 --- a/src/job.cc +++ b/src/job.cc @@ -78,8 +78,10 @@ void job::write_page_header() { fputs("\033E", out_); fprintf(out_, "\033&l%dX", std::max(1, page_params_.num_copies)); - if (page_params_.duplex) { + if (page_params_.duplex && page_params_.tumble) { fputs("\033&l2S", out_); + } else if (page_params_.duplex) { + fputs("\033&l1S", out_); } else { fputs("\033&l0S", out_); } diff --git a/src/job.h b/src/job.h index bd7a83b..0c0442c 100644 --- a/src/job.h +++ b/src/job.h @@ -27,6 +27,7 @@ struct page_params { int num_copies; int resolution; bool duplex; + bool tumble; bool economode; std::string sourcetray; std::string mediatype; @@ -36,6 +37,7 @@ struct page_params { return num_copies == o.num_copies && resolution == o.resolution && duplex == o.duplex + && tumble == o.tumble && economode == o.economode && sourcetray == o.sourcetray && mediatype == o.mediatype diff --git a/src/main.cc b/src/main.cc index d6232b4..abe0528 100644 --- a/src/main.cc +++ b/src/main.cc @@ -111,6 +111,7 @@ page_params build_page_params(const cups_page_header2_t &header) { p.economode = header.cupsInteger[10]; p.mediatype = header.MediaType; p.duplex = header.Duplex; + p.tumble = header.Tumble; if (header.MediaPosition < sources.size()) p.sourcetray = sources[header.MediaPosition];